一.選擇題(共20題,每題1。5分,共30分) 1.可在C程序中用作用戶標識符的一組的是 A.void B.a(chǎn)s_b3 C.for D.2c 2. 若變量已正確定義并賦值,符合C語言語法的表達式是 A.a(chǎn)=a+7; B.a(chǎn)=7+b+c,a++ C.int(12.3%4) D.a(chǎn)=a+7=c+b 3. 不合法的八進制數(shù)是 A.0 B.028 C.077 D.01 4.下列運算符中優(yōu)先級最高的運算是 A.! B.% C.-= D.&& 5.設a,b和c都是int型變量,且a=3,b=4,c=5;則表達式中,值為0的是 A.a(chǎn)&&b B.a(chǎn)<=b C.a(chǎn)||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語言程序總是從第一個定義的函數(shù)開始執(zhí)行 B.在C語言程序中,要調用的函數(shù)必須在main函數(shù)中定義 C.C語言程序總是從main函數(shù)開始執(zhí)行 D.C語言程序中的main函數(shù)必須放在程序的開始部分 13.以下函數(shù)的類型是 A.與參數(shù)x的類型相同 B.void 類型 C.int類型 D.無法確定 Fff(float x) {printf(“%d\n”,x*x);} 14.以下函數(shù)調用語句中,含有的實參個數(shù)是 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.執(zhí)行語句”char a[10]={“abcd”};*p=a;”后,*(p+4)的值是 A.“abcd” B.’d’ C.’\0’ D.不能確定 17. 執(zhí)行語句“int (*ptr)[10];”其中的ptr是 A.10個指向整型變量的指針 B.指向10個整型變量的函數(shù)指針 C.一個指向具有10個元素的一維數(shù)組指針 D.具有10個指針元素的一維數(shù)組 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.在內(nèi)存中存儲“ABCD”要占用 字節(jié)。 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 語句執(zhí)行后,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.用遞歸法計算整數(shù)的階乘函數(shù) 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.參加位運算的數(shù)據(jù)可以是任何類型的數(shù)據(jù)。( ) 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語言把文件看作是一個字符(字節(jié))的序列。( ) 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.以下程序的功能是:從鍵盤上輸入若干學生的成績,統(tǒng)計并輸出最高成績和最低成績,當輸入負數(shù)時結束輸入,請?zhí)羁铡?br/>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); 請?zhí)羁眨瓜旅娴某绦蚨蔚墓δ芡耆c之等同。 S=0.0; ; k=0; do { s=s+d; ; d=1.0/(k*(k+1)); }while( ); Printf(“%f\n”,s);
3.下列函數(shù)從字符數(shù)組s[]中刪除存放在c中的字符,請?zhí)羁铡?br/>Void delete(s,c) Char s[],c; {int i,j; For (i=j=0; ;i++ ) If (s c) S[ ]=s; =’\0’; } 4、下面的函數(shù)strcat(str1,str2)實現(xiàn)將字符串str2拼接到字符串str1后面的功能。請程序中的空白處填入一條語句或一個表達式。 strcat(str1,str2 ) Char *str1,*str2; {char *t=str1; While( )str1++; While( ); Return(t); } 五、寫一函數(shù)對數(shù)組前n個數(shù)按從小到大排序 (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. 函數(shù) 三. 判斷對錯,對的劃“√”,錯的劃“×”(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++ 五、寫一函數(shù)對數(shù)組前n個數(shù)按從小到大排序 (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; } }
|