以文本方式查看主題 - 曙海教育集團論壇 (http://www.hufushizhe.com/bbs/index.asp) -- C語言開發 (http://www.hufushizhe.com/bbs/list.asp?boardid=62) ---- C語言自測題目A與答案 (http://www.hufushizhe.com/bbs/dispbbs.asp?boardid=62&id=2387) |
-- 作者:wangxinxin -- 發布時間:2010-12-10 9:51:28 -- C語言自測題目A與答案 一.選擇題(共20題,每題1。5分,共30分) 1.可在C程序中用作用戶標識符的一組的是 A.void B.as_b3 C.for D.2c 2. 若變量已正確定義并賦值,符合C語言語法的表達式是 A.a=a+7; B.a=7+b+c,a++ C.int(12.3%4) D.a=a+7=c+b 3. 不合法的八進制數是 A.0 B.028 C.077 D.01 4.下列運算符中優先級最高的運算是 A.! B.% C.-= D.&& 5.設a,b和c都是int型變量,且a=3,b=4,c=5;則表達式中,值為0的是 A.a&&b B.a<=b C.a||b+c&&b-c D.!((a<b)&&!c||1) 6.以下程序的輸出結果是 A.0 B.1 C.2 D.3 main() {int a=2,b=-1,c=2; If (a<b) If (b<0) c=0; else c+=1; printf(“%d\\n”,c); } 7.以下程序的輸出結果是 A.1 B.2 C.3 D.4 main() {int w=4,x=3,y=2,z=1 Printf(“%d\\n”,(w<x?w:z<y?z:x)) } 8.以下程序的輸出結果是 A.9 B.1 C.11 D.10 Int k,j,s; For(k=2;k<6;k++,k++) {s=1; for(j=k;j<6;j++) s+=j; } Printf(“%d\\n”,s); 9.以下程序的輸出結果是 A.741 B.852 C.963 D.875421 main() { int y=10; for(;y>0;y--) if (y%3==0) {printf(“%d”,--y); continue;} } 10.設有定義語句char a=’\\72’;則變量a包含 個字符。 A.1 B.2 C.3 D.說明不合法 11.以下程序的輸出結果是 A.因輸出格式不合法,無正確輸出 B.65,90 C.A,Y D.65,89 main() { char c1=’A’,c2=’Y’; Printf(“%d,%d\\n”,c1,c2); } 12.以下敘述中正確的是 A.C語言程序總是從第一個定義的函數開始執行 B.在C語言程序中,要調用的函數必須在main函數中定義 C.C語言程序總是從main函數開始執行 D.C語言程序中的main函數必須放在程序的開始部分 13.以下函數的類型是 A.與參數x的類型相同 B.void 類型 C.int類型 D.無法確定 Fff(float x) {printf(“%d\\n”,x*x);} 14.以下函數調用語句中,含有的實參個數是 A.1 B.2 C.4 D.5 Func((exp1,exp2),(exp3,exp4,exp5)); 15.以下程序的輸入結果是 。 A.1,5,9, B.1,4,7, C.3,5,7, D.3,6,9, Main() {int I,x[3][3]={1,2,3,4,5,6,7,8,9}; for(i=0;i<3;i++) printf(“%d,”,x[2-i]); } 16.執行語句”char a[10]={“abcd”};*p=a;”后,*(p+4)的值是 A.“abcd” B.’d’ C.’\\0’ D.不能確定 17. 執行語句“int (*ptr)[10];”其中的ptr是 A.10個指向整型變量的指針 B.指向10個整型變量的函數指針 C.一個指向具有10個元素的一維數組指針 D.具有10個指針元素的一維數組 18.設有如下定義,則對data中的a成員的正確引用是 Struct sk{int a;float b;}date,*p=&date; A.(*p).date.a B.(*p).a C.p->data.a D.p.data.a 19、以下對枚舉類型名的定義正確的是 A. enum a={one ,two ,three}; B. enum a{a1,a2,a3}; C. enum a={‘1’,’2’,’3’}; D. enum a{“one ”,”two”,”three”}; 20、若有如下定義,則printf(“%d\\n”,sizeof(them));的輸出是 Typedef union{long x[2];short y[4];char z[8];}MYTYPE; MYTYPE them A.32 B.16 C. 8 D.24 二.填空題(共30分,每空2分) 1.若k為int 整形變量且賦值11,請寫出運算k++后表達式的值為 和變量k 的值為 。 2.在內存中存儲“ABCD”要占用 字節。 3.表示存儲類型的關鍵字有auto, ,register和 。 4.描述命題“A小于B或者小于C”的表達式為 。 5.請寫出以下程序的輸出結果 。 main() {int a=100; If (a>100) printf(“%d\\n”,a>100); else printf(“%d\\n”,a<=100); } 6.當a=1,b=2,c=3時,以下if 語句執行后,a,b,c中的值分別為 , , 。 If(a>c) b=a;a=c;c=b; 7.若變量已正確定義,以下語句段的輸出結果是 。 x=0;y=2;z=3; Switch(x) { case 0: switch(y==2) {case 1:printf(“*”);break; case 2:printf(“%”);break; } Case 1: switch(z) {case 1:printf(“$”); case 2:printf(“*”);break; default :printf(“#”); } } 8.以下程序的輸出結果是 。 unsigned fun6(unsigned num) {unsigned k=1; do {k*=num%10;num/=10;} while(num); return k; } main() {unsigned n=26; Printf(“%d\\n”,fun6(n)); } 9.用遞歸法計算整數的階乘函數 float fac(int n) { if (n<0) {Printf(“error\\n”);return(0.0)} else if (n<1) f=1; else f= ; return(f); } 10、設有以下語句 Int a[3][4]{{1,3,5,7},{2,4,6,8},{9,10,11,12}},*p=a; 則printf(“%d”,*(p+2*4+1))的輸出結果為 . 11. C語言源程序的基本單位是_________。 三. 判斷對錯,對的劃“√”,錯的劃“×”(10分,每小題2分) 1.參加位運算的數據可以是任何類型的數據。( ) 2.若有定義和語句:int a;char c;float f;scanf("%d,%c,%f",&a,&c,&f);若通過鍵盤輸入:10,A,12.5,則a=10,c=‘A’,f=12.5。( ) 3.C語言把文件看作是一個字符(字節)的序列。( ) 4.若有定義和語句:int a[3][3]={{3,5},{8,9},{12,35}},i,sum=0;for(i=0;i<3;i++) sum+=a[2-i];則sum=21。( ) 5.在程序中定義了一個結構體類型后,可以多次用它來定義具有該類型的變量。( ) 四.程序填空(20分,每題5分) 1.以下程序的功能是:從鍵盤上輸入若干學生的成績,統計并輸出最高成績和最低成績,當輸入負數時結束輸入,請填空。 main() {float x,amax,amin; scanf(“%f”,&x); amax=x; while( ) { if(x>amax) amax=x; If ( ) amin=x; Scanf(“%f”,&x); } Printf(“\\namax=%f\\namin=%f\\n”,amax,amin); } 2.有以下程序段: s=1.0;n=10; for(k=1;k<n;k++) s=s+1.0/(k*(k+1)); printf(“%f\\n”,s); 請填空,使下面的程序段的功能完全與之等同。 S=0.0; ; k=0; do { s=s+d; ; d=1.0/(k*(k+1)); }while( ); Printf(“%f\\n”,s); 3.下列函數從字符數組s[]中刪除存放在c中的字符,請填空。 Void delete(s,c) Char s[],c; {int i,j; For (i=j=0; ;i++ ) If (s c) S[ ]=s; =’\\0’; } 4、下面的函數strcat(str1,str2)實現將字符串str2拼接到字符串str1后面的功能。請程序中的空白處填入一條語句或一個表達式。 strcat(str1,str2 ) Char *str1,*str2; {char *t=str1; While( )str1++; While( ); Return(t); } 五、寫一函數對數組前n個數按從小到大排序 (10 分) C程序設計題參考(A卷)答案 一. 選擇題(每小題2分,共同40分) 1、B 2、B 3、B 4、A 5、D 6、C 7、A 8、D 9、B 10、A 11、D 12 、C 13、C 14、B 15、C 16、C 17、C 18、B 19、B 20、C 二.填空題(共30分,每空2分) 1、11 12 2、5 3、static extern 4、A<B||A<C 5、1 6、3 2 2 7、*# 8、12 9、fac(n-1)*n 10、4 11. 函數 三. 判斷對錯,對的劃“√”,錯的劃“×”(10分,每小題2分) 1.( × ) 2.( √ ) 3.( √ )4.( √ ) 5.( √ ) 四.程序填空(20分,每題5分) 1.x>=0 x<min 2.d=1.0,n=10; k++; k<=n; 3.s != j++ s[j] 4.*str1 *str++=*str2++ 五、寫一函數對數組前n個數按從小到大排序 (10 分) void sort(int array[],int n) {int i,j,t; For (i=0;i<n-1;i++) For (j=i+1;j<n;j++) If (array>array) {t=array; Array=array[j]; Array[j]=t; } } |