南昌大學C語言04~05第二學期試卷A(理)及答案_第1頁
南昌大學C語言04~05第二學期試卷A(理)及答案_第2頁
南昌大學C語言04~05第二學期試卷A(理)及答案_第3頁
南昌大學C語言04~05第二學期試卷A(理)及答案_第4頁
南昌大學C語言04~05第二學期試卷A(理)及答案_第5頁
已閱讀5頁,還剩9頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、精選優質文檔-傾情為你奉上 南昌大學 20042005 學年第 二 學期期期 末 考試試卷 試卷編號: ( A )卷課程名稱: C程序設計 適用班級: 全校理工科 姓名: 學號: 班級: 專業: 學院: 系別: 考試日期:2005、07、04 題號一二三四五六七八九十總分累分人 簽名題分30302218 100得分考生注意事項:1、本試卷共 8 頁,請查看試卷中是否有缺頁或破損。如有立即舉手報告以便更換。 2、考試結束后,考生不得將試卷、答題紙和草稿紙帶出考場。一、 單項選擇題 (每空 1 分,共 30 分) 得分說明:請將各小題正確答案的字母序號填到相應小題的下劃線上。評閱人 1一個C程序的

2、執行是從 。A)本程序的main函數開始,到main函數結束B)本程序文件的第一個函數開始,到本程序文件的最后一個函數結束C)本程序的main函數開始,到本程序文件的最后一個函數結束D)本程序文件的第一個函數開始,到本程序main函數結束2一個C語言程序是由 。A)若干主程序和若干子程序組成B)函數組成C)若干過程組成D)若干子程序組成3假設所有變量均為整型,則表達式(a=2,b=5,b+,a+b)的值是 。A)7 B)8 C)6D)24下列四組選項中,均不是C語言關鍵字的選項是 。A)defineB)getcC)includeD)whileIFcharscanfgoTypeprintfcas

3、epow5下面四個選項中,均是合法轉義字符的選項是 。A)'''B)''C)'018'D)'0''''017''f''101''n''"''xab''xlf'專心-專注-專業6若有代數式3ae/bc,則不正確的C語言表達式是 。A) a/b/c*e*3B)3*a*e/b/cC)3*a*e/b*cD)a*e/c/b*37已知各變量的類型說明如下:int k,a,b;unsigned lon

4、g w= 5;double x=1.42;則以下不符合C語言語法的表達式是 。A) x%(-3)B) w+=-2C) k=(a=2,b=3,a+b)D) a+= a-=(b=4)*(a=3)8以下正確的敘述是 。A)在C程序中,每行中只能寫一條語句B)若a是實型變量, C程序中允許賦值a=10, 因此實型變量編譯后允許存放整型數C)在C程序中,無論是整數還是實數,都能被準確無誤地表示D)在C程序中,%是只能用于整數運算的運算符, 當然, %在C程序中還有別的用途9設變量a是整型,f是實型,i是雙精度型,則表達式10+'a'+i*f值的數據類型為 。A)intB) floatC)

5、 doubleD)不確定10設變量n為f1oat類型,m為int類型,則以下能實現將n中的數值保留小數點后兩位,第三位進行四舍五入運算的表達式是 。A) n=(n*100+0.5)/100.0B)m=n*100+0.5 ,n= m/100.0C) n=n*100+0.5/100.0D)n=(n/100+0.5)*100.011putchar函數可以向終端輸出一個 。A)整型變量表達式值 B)實型變量值C)字符串D)字符或字符型變量值12閱讀下列程序,若運行結果為如下形式 ,輸入輸出語句的正確內容是 。main()int x; float y;printf("enter x,y :&q

6、uot;)輸入語句; 輸出語句輸入形式 enter x,y: 2 3.4輸出形式 x+y=5.40A)scanf("%d,%f",&x,&y);printf("nx+y= %4.2f",x+y);B)scanf("%d%f",&x,&y );printf("nx+y=%4.2f",x+y);C)scanf("%d%f",&x,&y); printf("nx+y=%6.lf",x+y);D)scanf("%d%3.1f&

7、quot;,&x,&y );printf("nx+y=%4.2f",x+y);13x,y,z均為int型變量,則執行語句x=(y=(z=10)+5)-5后,x 、y 和z的值是 。A) x=10B) x=10C) x=10D) x=10y=15y=10y=10y=5z=10z=10z=15z=1014判斷char型變量ch是否為大寫字母的正確表達式是 。A)' A' <=ch<='Z'B)(ch> = 'A')&(ch<=' Z' )C)(ch>='

8、 A' )&&(ch<='Z')D)(' A' < = ch)AND('Z'> = ch)15若有定義int a35, i, j; (且0i<3, 0j<5),則aij不正確的地址表示是 。 A) &aij B) ai+j C) *(a+i)+j D) *(*(a+i)+j)16下面程序段的運行結果是 。if n=0;while(n+<=2); printf("%d",n);A) 2 B) 3C) 4 D)有語法錯17下列選項中,不正確的 if 語句是 。A)

9、 if ( a > b ) printf ( “ %d ” , a ); B) if ( a > b ) m = a else m = b; C) if ( 3 ) a = m ; else a = n; D) if ( a > 0 ) ; else a = n; 18以下程序的輸出結果是 。 # include <stdio.h > fun ( int a , int b , int m ) m = a * b ; return ; main ( ) int m = 1; fun ( 2 , 3 , m ) ; printf ( “ %d n ” , m ) ;

10、 A) 1 B) 2 C) 3 D) 619若有定義:int a = 511 , * b = & a ; ,則 printf ( “ % d n ” , * b ) ; 的輸出結果為 。 A) 無確定的值 B) a的地址 C) 512 D) 511 20以下程序的輸出結果是 。 # define ADD ( x ) x + x main ( ) int m = 1 , n = 2 , k = 3 , sum ; sum = ADD ( m + n ) * k ; printf ( “ sum = %d n ” , sum ) ; A) sum = 9 B) sum = 10 C) su

11、m = 12 D) sum = 18 21已知 int i , x 3 4 ; ,則不能將 x 1 1 的值賦給變量 i 的語句是 。 A) i = * ( * ( x + 1 ) + 1 ) B) i = x 1 1 C) i = * ( * ( x + 1 ) ) D) i = * ( x 1 + 1 ) 22以下函數的類型是 。fun ( float x ) printf ( “ %d n ” , x * x ) ; A) int B) float C) void D) 無法確定 23設有語句:char str1 = “string”, str2 8 , * str3, * str4=

12、“string” ; , 則下列選項中,不是對庫函數strcpy的正確調用的是 。A) strcpy ( str1, “hello1”); B) strcpy ( str2, “hello2”);C) strcpy (str3, “hello3”); D) strcpy (str4, “hello4”);24已有定義 int ( * p ) ( ) ; , 則指針 p 可以 。A) 代表函數的返回值 B) 指向函數的入口地址C) 代表函數的類型 D) 代表函數返回值的類型25以下能正確進行字符串賦值操作的是 。A) char * s ; * s = “apple” ; B) char * s

13、; s = “apple” ; C) char s8 ; s = “apple” ; D) char s8 ; * s = “apple” ; 26以下符合C語言語法的賦值表達式是 。A) d = 9 + e + f = d + 9 B) d = e + = d + 9 C) 5 = d + e + f D) d = 9 + e , f + 3 = d + 9 27設有如下說明語句: struct stud int a ; float b ; studtype ; 則下面的敘述中,不正確的是 。A) struct 是結構體類型的關鍵字 B) struct stud 是用戶定義的結構體類型名C)

14、 a 和 b 都是結構體成員名 D) studtype是用戶定義的結構體類型名28以下C語言中,對函數不正確的描述是 。 A) 當用數組名作形參時,形參數組改變可使實參數組隨之改變 B) 允許函數遞歸調用 C) 函數形參的作用范圍只是局限于所定義的函數內 D) 函數說明必須在主調函數之前29若有定義typedef char STRING255; STRING s; 則s是 。 A) 字符指針數組變量 B) 字符數組變量 C) 字符變量 D) 字符指針變量30對以下程序段描述正確的是 。x= -1;dox=x*x;while(!x);A) 是死循環 B) 循環執行二次 C) 循環執行一次 D)

15、有語法錯誤二、 程序閱讀題 (每小題 6分,共30分) 得分評閱人 1 源程序如下:#include <stdio.h> main() int i; for(i=1;i<=5;i+) if (i%2) printf(“*”);else continue; printf(“#”); printf(“$n”); 程序運算后的結果為:2 源程序如下:main() char ch25=“6937”, “8254”,*p2; int i,j,s=0; for(i=0;i<2;i+) pi=chi; for(i=0;i<2;i+) for(j=0;pij>0;j+=2)

16、 s=10 *s+pij-0; printf(“%dn”,s);程序運算后的結果為:3 源程序如下:#include <string.h>main() char s48="Hello","help","save me","groan" char t="help" char *p=s3; printf("%4s?n",s0); printf("%s!n",p); printf("%sn",s2); printf("%

17、dn",strcmp(t,s1); printf("%c!n",s00); 程序運算后的結果為:4源程序如下:#include <stdio.h> main() int day_of_week = 4;switch (day_of_week) case 0: printf("today is Sunday.n"); case 1: printf("today is Monday.n"); case 2: printf("today is Tuesday.n"); case 3: pr

18、intf("today is Wednesday.n"); case 4: printf("today is Thursday.n"); case 5: printf("today is Friday.n"); case 6: printf("today is Saturday.n"); default: printf("Something is missing."); break;程序運算后的結果為:5源程序如下:#include <stdio.h>#define NRows 5m

19、ain() int i, j; for (i = 1; i <= NRows; i+) for (j = i; j < NRows; j+) printf(" "); for (j = 0; j < 2 * i - 1; j+) printf("*"); printf("n"); 程序運算后的結果為:三、 程序填空題 (每空 2 分,共 22 分) 得分評閱人 1下面的程序是用選擇法對10個整數進行升序排序,請填空。 #define N 10 main() int i,j,min,temp,aN; printf(“請

20、輸入十個整數:n”); for (i=0;i<N;i+) printf (“a%d=”,i); scanf(“%d”,&ai); printf(“n”); for(i=0,i<N-1;i+) ; for(j=i+1;j<N;j+) if min=j; if( ) temp=ai;ai=amin;amin=temp; 2以下程序的fun函數用于統計字符串s中元音字母(a,A,e,E,i,I,o,O,u,U)的個數。#include <stdio.h>main() char str255; gets(str); printf("元音字母的個數為: %

21、dn", fun(str);fun(char *s) char a="aAeEiIoOuU", *p; int n=0; while( ) for(p=a; *p; p+) if( ) n+; ; s+; return n;3下面fun函數的功能是將形參x的值轉換成二進制數,所得二進制數的每一位數放在一維數組中返回,二進制數的最低位放在下標為0的元素中,其它依此類推,請填空。fun(int x,int b) int k=0,r; do r=x% _; bk+=r; x/=_; while(x); 4以下程序是用來從10到99數字中挑出能被3整除且至少有一位是5的兩

22、位數,并打印出所有這樣的數及其個數。#include <stdio.h>main() int k, m=0; for(k=10; k<=99; k+) m+=sub(k); printf("個數為: %dn", );sub(int k) int a1, a2, n=0; a2= ; a1=k/10; if(k%3=0&&( ) printf("%d ", k); return 1; else return 0;四、 程序設計題 (第1小題 8 分,第2小題10分,共 18 分) 1編一程序,計算sum=1+1/2+1/4+.+1/50的值,并顯示出來。2寫兩個函數,分別求兩個整數的最大公約數和最小公倍數,用主函數調用這兩個函數,并輸出結果,兩個整數由鍵盤輸入。 2005、06 C程序設計(理工科)試卷A參考答案及評分標準一、 單項選擇題 (每空 1 分,共 30 分) 1 A 2 B 3 B 4A 5 A 6C 7A 8D 9C 10B 11 D 12 B 13 A 14 C 15 D 16 C 17 B 1

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論