2022年重慶市計算機等級考試C語言二級考試試題及答案_第1頁
2022年重慶市計算機等級考試C語言二級考試試題及答案_第2頁
2022年重慶市計算機等級考試C語言二級考試試題及答案_第3頁
2022年重慶市計算機等級考試C語言二級考試試題及答案_第4頁
2022年重慶市計算機等級考試C語言二級考試試題及答案_第5頁
已閱讀5頁,還剩61頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、目 錄 TOC o 1-3 h z u HYPERLINK l _Toc2 二級C語言筆試試卷(2007年4月) PAGEREF _Toc2 h 2 HYPERLINK l _Toc3 二級C語言筆試試卷參考答案(2007年4月) PAGEREF _Toc3 h 8 HYPERLINK l _Toc4 二級C語言筆試試卷(2007年11月) PAGEREF _Toc4 h 9 HYPERLINK l _Toc5 二級C語言筆試試卷參考答案(2007年11月) PAGEREF _Toc5 h 17 HYPERLINK l _Toc6 二級C語言筆試試卷(2008年4月) PAGEREF _Toc

2、6 h 19 HYPERLINK l _Toc7 二級C語言筆試試卷參考答案(2008年4月) PAGEREF _Toc7 h 25 HYPERLINK l _Toc8 二級C語言筆試試卷(2008年11月) PAGEREF _Toc8 h 27 HYPERLINK l _Toc9 二級C語言筆試試卷參考答案(2008年11月) PAGEREF _Toc9 h 33二級C語言筆試試卷(A)2007年4月 注意事項:1.一、二題為客觀題,請將答案涂在機讀答題卡上 2. 三、四、五、六題為主觀題,請將答案做在答題紙上一、單項選擇題。(每小題分,共20分)1在C程序的函數調用時,主調函數中的實參和被

3、調函數中的形參( )。(A) 個數、次序必須相同,但數據類型可以不考慮(B) 個數、次序和對應參數的數據類型都應該相同(C) 個數、次序和數據類型均可以不相同(D) 對應參數數據類型應相同,但個數和次序可以不考慮2如a為int型,則與表達式a等價的C語言關系表達式是( )(A) a0 (B) a!=0 (C) a=0 (D) a03循環(huán)語句for(a=0,b=0;(b!=45)|(a5);a+);的循環(huán)次數是( )(A) 4 (B) 3 (C) 5 (D) 無數多次4設有字符數組a,則正確的輸入語句是( )。(A) gets(a); (B) scanf(%c,a);(C) scanf(%s,a

4、); (D) gets(a);5. enum colorred,green,yellow=5,white,black;定義了一枚舉類型。編譯程序為值表中各標識符分配的枚舉值依次為( )。(A)1、2、3、4、5 (B)0、1、5、2、3 (C)0、1、5、6、7 (D)3、4、5、6、76運行完下列程序后,在屏幕上的內容是( )。void main () int a=0; a+=(a=12); printf (%dn,a);(A)0 (B)6 (C)12 (D)247若x,y為實數類型的變量,要判斷x,y相等,最好使用下列關系表達式( )。(A)x=y (B)x-y=0(C) fabs(x-y

5、)1e-8 (D)labs(x-y)b (B) p-a (C) +(p-a) (D) (p+)-a9以下程序的輸出結果是( )。int x=3,y=4;void main( ) int x,y=5; x=y+; printf(%d,x);(A)3 (B) 4 (C) 5 (D) 610在C語言中,函數默認的存儲類型為( )。(A) auto(B) register(C)static (D) extern11有定義:float y,*p=&y;,假定變量y在內存中所占地址為100103。那么p的值為( )。(A) 100(B) 101(C) 102(D) 10312. 有定義:int a10,

6、n, *p1=a,*p2=&a9;,則正確的賦值語句為( )。(A) n=p2-p1;(B) n=p2*p1;(C) n=p2+p1; (D) n=p1/p2;13調用strlen(abcd0efng0)的結果為( )。 (A) 4 (B) 5 (C) 8 (D) 1014執(zhí)行下面程序中輸出語句后,a的值是( )。#includemain( )int a;printf(%dn,(a=3*5,a*4,a); (A)65 (B)20 (C)15 (D)1015若有定義int a,b,x;且變量都已正確賦值,下面選項中合法的if語句是( )。(A)if(a=b) x+; (B)if(a=b) x+;

7、(C)if(ab) x+; (D)if(a=b) x+;16執(zhí)行下面的程序后,變量a的值是( )。 #include#define SQR(X) X*Xvoid main() int a=10,k=2,m=3; a/=SQR(m)/SQR(k);printf(%d n,a); (A)10 (B)1 (C)5 (D)017若變量t為double類型,表達式(t=1,t+5,t)的值是( )。 (A)1 (B)6.0 (C)1.0 (D)618在C語言中,下面關于數組的描述中正確的是( )。(A)數組的大小是固定的,但可以有不同類型的數組元素(B)數組的大小是可變的,但所有數組元素的類型必須相同(

8、C)數組的大小是固定的,所有數組元素的類型必須相同(D)數組的大小是可變的,可以有不同的類型的數組元素19下述程序的輸出結果是( )。#include void main()int a,b,c=241; a=c/100%9; b=-1&-1; printf(%d,%dn,a,b);(A)2,0 (B)2,1 (C)6,1 (D)0,-120.若有以下說明和語句,則下列引用方式中不正確的是( )。 struct worker int no;char *name;work,*p=&work;(A)work.no (B)(*p).no (C)p-no (D)work-no二、基本概念選擇填空題(本大

9、題后面有若干備選項,請選擇合適的備選項并將其號碼填入各小題的空白處。每空2分,共10分)1在C語言中,函數一般由兩個部分組成,它們是函數首部和 。2任何程序都可調用標準函數exit(),當它被調用時就 程序的執(zhí)行。3一個C語言程序在可以被執(zhí)行之前,需要經過的4個處理程序是:編輯程序、預處理程序、編譯程序和 。4在C語言中無固有的輸入和輸出語句,但是用C語言編寫的程序可以用函數調用的形式來實現輸入、輸出,這些函數由 提供。5C標準庫函數rewind的作用是 。備選項:(A) 主函數(B) 函數體(C) 函數首部(D) 用戶自定義函數(E) 終止(F) 使讀寫指針指向文件的開頭(G) 標準I/O庫

10、/系統(tǒng)(H) 連接程序(J) 判斷文件指針是否指向文件末尾三、程序填空題。(每空2分,共20分)。1. 下面程序的功能是從鍵盤上輸入一行字符,將其中的小寫字母轉換為大寫字母后輸出。請?zhí)羁胀晟瞥绦颉?include void main()char c; while(c= )!=n) if(c=a&c=z) printf(%c,c-32);2.下面程序的功能是從當前目錄下的文本文件“f1.txt”中讀取前10個字符,依次顯示在屏幕上;如果文本文件中不足10個字符,則讀完為止;請?zhí)羁胀晟瞥绦颉?include void main()FILE *fp;int i;char c;if( =NULL) p

11、rintf(Cant open this file!n);return;for(i=0;i10;i+)if(feof(fp)break;c=fgetc(fp);putchar(c);fclose(fp);3. 下面程序的功能是輸出數組中的各字符串,請?zhí)羁胀瓿沙绦颉?#include void main() char *a=abcd,12345,efghijk,67890;char ; int j=0;p=a;for(;j4;j+) ; 4. 下面函數mfc用于求取兩個正整數的最大公因子,請?zhí)羁胀晟坪瘮?。int mcf(int a,int b)int temp;while(b)temp= ; a

12、=b;b=temp;return a;5. 下面程序的功能是將字符串str的內容顛倒過來并輸出,請?zhí)羁胀晟瞥绦颉?include void main()char str=abcdefg,*p1,*p2,ch; p1=p2=str;while(*p2!=0)p2+; ; while(p1p2)ch=*p1,*p1=*p2,*p2=ch; ; p2-;puts(str);6. 下面函數yh的功能是構成一個楊輝三角形,請?zhí)羁胀瓿稍摵瘮怠?include #define N 11void yh(int aN)int j,k;for(j=1;jN;j+)aj1=1;ajj= ; for( ;jN;j+)

13、for(k=2;kj;k+)ajk= +aj-1k; 四、閱讀程序題(每小題5分,共30分1下面程序的輸出結果是( )。#include void main()void fun(int *k);int w=5;fun(&w);void fun(int *k) (*k)+;printf(%dn,*k+);2下面程序的輸出結果是( )。#include void main()char ch25=1234,5678,*p2; int j,k,s=0;for(k=0;k2;k+)pk=chk;for(k=0;k0&pkj=9;j+=2)s=10*s+pkj-0;printf(s=%dn,s); 3下面

14、程序的輸出結果是( )。#includeint func(int,int);void main()int k=4,m=1,p; p=func(k,m); printf(%d,p); p=func(k,m); printf(%dn,p);int func(int a,int b)static int m=1,n=2; n+=m+1; m=n+a+b; return m;4下面程序的輸出結果是( )。#include void main()int a10=1,2,3,4,5,6,7,8,9,10,k,s,i;double ave;for(k=s=i=0;i10;i+)if(ai%2)continu

15、e;s+=ai;k+;if(k!=0)ave=s/k;printf(%d,%fn,k,ave);5在下列程序中,若輸入為:today is Monday!,則輸出結果是( )。#includevoid main()char s40,c,*str=s;int num=0,word=0; gets(str); while(c=*str+)!=0) if(c= )word=0;else if(word=0)word=1; num+;printf(%d wordsn,num);6. 下列程序的輸出結果是( )。#includeunsigned f(unsigned num)unsigned k=1;

16、do k*=num%10;num/=10;while(num); return k;void main()int x=35,y=550;printf(%d,%dn,f(x),f(y);五、編程序。(每小題10分,共20分)1函數delspace的功能是刪除一個字符串中所有的空格。例如,輸入字符串為This is a string,則輸出結果為Thisisastring。測試用主函數如下所示,請編制函數delspace。 #include #include void main()char *delspace(char *str);char s81,*ds;gets(s);ds=delspace(

17、s);printf(nResult: %sn, ds);2. 已知兩個3位數abc和cba之和為1333(即abc+cba=1333),編程序求出3個數字a、b和c。二級C語言筆試試卷(A)參考答案(2007年4月)一、單項選擇題。(每小題分,共20分)BBDCCDCCCDAAACABCCBD二、基本概念選擇填空題(每空2分,共10分) B E H G F三、程序填空題。(每空2分,共20分)。 getchar() (fp=fopen(f1.txt,r) *p puts(pj)或puts(*(p+j) a%b p2- p1+ 1 j=3 aj-1k-1四、閱讀程序題(每小題5分,共30分)1.

18、62. s=13573 9,19 4 5,6.0000005 3 words6 15,0五、編程序。(每小題10分,共20分)1參考程序及評分標準char *delspace(char *str)char *p=str; /2分while(*p)if(*p= )strcpy(p,p+1);elsep+;/6分return str;/2分2. 參考程序及評分標準/參考程序一#include void main()int n,a,b,c;/2分for(n=100;n1000;n+)a=n/100;b=n/10%10;c=n%10;if(a*100+b*10+c+c*100+b*10+a=1333)

19、printf(abc is: %d%d%dn,a,b,c);/8分/參考程序二#include void main()int n,m,a,b,c;/2分for(a=1;a10;a+)for(b=0;b10;b+)for(c=0;c10;c+)n=a*100+b*10+c;m=c*100+b*10+a;if(n+m=1333)printf(abc is: %d%d%dn,a,b,c);/8分二級C語言筆試試卷(A)2007年11月注意事項:1.一題為客觀題,請將答案涂在機讀答題卡上 2.請將二、三、四、五題的答案做在答題紙上一.單項選擇題。(每小題1分,共20分)1. 一個C程序的執(zhí)行是從( )

20、。 (A)本程序的main函數開始 (B)本程序文件的第一個函數開始,到本程序文件的最后一個函數結束 (C)本程序的main函數開始,到本程序文件的最后一個函數結束 (D)本程序文件的第一個函數開始,到本程序main函數結束2. 設有C語句:int x=3, y=4,z=5;,則下面表達式中值為0的是( )。 (A)x&y (B)x=y(C) x|y+z&y-z (D)!(xy )& !z|1)3. 以下有關宏替換的敘述不正確的是( )。(A)宏替換不占用運行時間 (B)宏名無類型(C)宏替換只是字符串替換; (D)宏替換是在運行時進行的4. 在標準庫函數的調用形式“fread(buffer,

21、size,count,fp);”中,參數buffer代表的是( )。 (A)一個整型變量,代表要讀入的數據總數 (B)一個文件指針,指向要讀的文件 (C)一個指針,指向讀入數據存放的首地址 (D)一個存儲區(qū),存放要讀的數據項5. 位運算中,操作數每左移一位,在沒有溢出的情況下其結果相當于( )。 (A)操作數乘以2 (B) 操作數除以2(C) 操作數除以4 (D) 操作數乘以4 6. 下面程序運行后,變量m的值為( )。 #include void main() int m, n, k; m=(n=4)+(k=10-7); printf(m=%dn”,m);(A)4 (B) 3 (C) 7 (

22、D)147. 下面程序運行結果(或出現的情況)是( )。 #include void main() int x=3,y=0,z=0; if (x=y+z) printf(*); else printf(#n);(A)有語法錯誤不能通過編譯 (B)輸出:* (C)可以通過編譯,但不能通過連接,因而不能運行 (D)輸出:# 8. 已有定義int k=2; int *ptrl, *ptr2,且ptr1和ptr2 均已指向變量k,下面不能正確執(zhí)行的賦值語句是( )。 (A)k =*ptr1+*ptr2; (B) ptr2 = k;(C) ptr1=ptr2; (D) k = *ptr1*(*ptr2)

23、; 9. 若有已經建好的鏈表結構如下,指針平p、q分別指向圖示節(jié)點(b節(jié)點為插入c節(jié)點前的鏈表末尾); a b c p q 不能實現將q所指節(jié)點插入到鏈表末尾的一組語句是( )。 (A)qnext = NULL; p=pnext; pnext=q; (B)p=pnext;qnext=pnext; pnext=q; (C)p= pnext;qnext=p; pnext=q; (D)p= (*p).next; (*q).next = (*p).next; (*p).next = q;10. 有定義int a=3,b=4,c=5;執(zhí)行完表達式a+-b&b+c-&+c后,a,b,c的值分別為( )(A

24、)3 4 5 (B) 4 3 5 (C) 4 4 4 (D) 4 4 511. 下列程序的執(zhí)行結果是( )。 #include union ss short int i; char c2; ; void main () union ss x ; x.c0=10; x.c1=1; printf(%d,x.i);(A)11 (B) 266 (C) 265 (D) 138 12. 若有C語言int i = 10;,則執(zhí)行下面程序段后變量i 的值是( )。 switch (i) case 9: i+=1; case 10: case 11: i-=1; default: i+=1; (A)10 (B)

25、 11 (C) 12 (D) 9 13. 在下列選項中,不正確的賦值語句是( )。(A)t/=5; (B) n1=(n2=(n3=0); (C) k=i= = j; (D) a=b+c=1;14. 下面C程序運行后變量x的值是( )。 #include void main() int a,b,c,x; a=b=c=0; x=35; if(!a) x-; else if(b) ; if (c) x=3; else x=4; printf (%dn,x);(A)34 (B) 4 (C) 35 (D) 3 15. 設有以下宏定義:#define N 3#define Y(n) (N+1*n)則執(zhí)行語

26、句: z=2 *(N*Y(5+1); 后,z的值為( )。(A)30 (B) 72 (C) 48 (D) 54 16. 在以下的四個運算符中,優(yōu)先級最低的運算符是( )。(A)= (B) / (C) != (D) & 17. 已知E的ASCII碼是69,則執(zhí)行下面語句的結果是( )。printf(%c,D-);(A)66 (B) A (C) B (D) E 18. 設有以下語句:int a=3, b=6,c; c=ab2; 執(zhí)行后c的低8位二進制值是( )。(A)00011011 (B)00010100 (C) 00011100 (D) 0001100019. 在C語言中,以下敘述錯誤的是(

27、)。 (A)函數被調用時,系統(tǒng)才為形參分配內存 (B)實參和對應形參的數據類型必須一致 (C)實參可以是變量、常量或表達式 (D)形參可以是變量、常量或表達式20. 字符串常量ab cnt012xa1*2在內存中所占的存儲空間節(jié)數是( )。(A)11 (B)13 (C) 15 (D) 18 二基本概念選擇填空題(本大題后面有若干備選項,請選擇合適的備選項,并講其號碼填入各小題的空白處。每空2分,共10分)1. 函數首部int main(int argc, char *argv )中argc表示的是 。2. C語言能處理的文件類型可以是文本文件和 。3. 下面語句定義了共用體(聯(lián)合體)變量a,則

28、a占用 個字節(jié)。 union data short int i ;char c ; double d;a;4. 為了避免嵌套的if-else 語句的二義性,C語言規(guī)定else 總是與 組成配對關系。5. 宏定義中的宏名不能包含 。備選項:(A)空格(B)二進制文件(C)數字(D)在其之前未配對的if(E)參數字符串(F)命令行參數的個數(G)11(H)在其之前最近的未配對的if(J)8(K)在定義該函數時所指定的數據類型(L)下劃線(M)程序文件三. 程序填空題(每空2分,共20分)1. 下面程序的功能是:從鍵盤上輸入若干個學生的成績(用負數結束輸入過程),統(tǒng)計計算出平均成績;請?zhí)羁胀瓿沙绦颉?/p>

29、 #include void main() float sum=0.0,ave,a; int n=0; printf(nter markn); scanf(%,); while(a=0.0) sum=sum+a; ; scanf(%,); ave=sum/n; printf(ave=%fn,ave); 2. 下面程序的功能是將一個字符串str的內容顛倒并輸出,請?zhí)羁胀瓿沙绦颉?#include void main() char str=abcdefg; char *p1,*p2,ch; p1=str; p2=str; while(*p2!=0) p2+ ; while(p1p2) ch=*p1

30、,*p1=*p2,*p2=ch; ; p2-; puts(str); 3. 下面程序從終端輸入一行字符串存入字符數組,然后輸出;請?zhí)羁胀瓿沙绦颉?#include void main() char str80,*sp; int n; for(n=0;n80;n+) strn= ; if(strn=n) break; strn=0; sp=str; while(*sp) putchar( ); 4. 下面函數fun的功能是比較兩個字符串的大小,若兩字符串相同則返回0值,否則返回兩個字符串中第一個不相同字符之差;請?zhí)羁胀瓿珊瘮怠?#include int fun(char *s,char *t)

31、while(*t+=*s+ & *t!=0& *s!=0) ; return( );void main() char str180,str280; gets(str1); gets(str2); printf(dn,fun(str1,str2);5. 下面程序的功能是統(tǒng)計字符串中大小寫字母的個數,請?zhí)羁胀瓿沙绦颉?#include #define IA(x) void main() char str80,*s,ch; int count=0; gets(str); s=str; while(*s) ch=*s+; if(IA(ch) count+; printf(the sum is %dn,

32、count);6. 下面函數在一維數組v中將x插入到下標為i(i=0)的元素前,如果i大于等于元素的個數,則x添加到v數組原數據的末尾。V數組原有元素個數保存在指針n所指向的變量中,插入后元素個數加1;請?zhí)羁胀瓿沙绦颉?#include void insline(double,int *n,double x,int ,i) int j; if( ) for(j=*n-1; ;j-) =vj; else i=*n; vi=x; (*n)+; void main() double s10=11,23,65,78,x; int m=4,*p=&m,k; x=99; scanf(%d,&k); ins

33、line(s,p,x,k); for(k=0;km;k+)printf(%f,sk); putchar(n); 四閱讀程序題(每小題5分,共30分)1. 寫出下面程序的運行結果。 #include int f(int num,int run) strtic int fact,i; if(run=0) fact=1; i=1; fact *=i; if(+i=num) f(num,1); return(fact); void main() int i=0; printf(f=%dn,f(3,0);2. 寫出下面程序的運行結果。 #include void main() int a,b; for(

34、a=1,b=1;a=20) break; if(b%3=1) b+=3; continue; b-=5; printf(%d,%dn,a,b); 3. 寫出下面程序的運行結果。 #include void main() char ch25=1234,5678,*p2; int j,k,s=0; for(k=0;k2;k+) pk=chk; for(k=0;k0&pkj=9;j+=2) s=10*s+pkj-0; printf(s=%dn,s);4. 寫出下面程序在輸入數據為:a4BZ!(表示按Enter鍵)時的運行結果。 #include void main() char ps80,*str;

35、 char c; gets(ps); str=ps; while(c=*str)!=0) if(c= a& c=A& cZ&cz) c=c-26; *str=c; str+; printf(%sn,ps); 5. 寫出下面程序的運行結果。 #include void main() long fun(int n); printf(%ldn,fun(4);long fun(int n) long s; if(n=1n=2) s=2; else s=n+fun(n-1); return s;6. 寫出下面程序的運行結果。 #include void main() void fun(int *x,in

36、t *y); int a=1,2,3,4,j,x=0; for(j=0;j= a & x=z i=ivj+1四.閱讀程序題(每小題5分,共30分)1. f=6 2. 8, 17 3. s=1357 4. e4FD! 5. 9 6. 4321五.編程序(每小題10分,共20分)1.參考程序及評分標準:#includeviod main() int check(int n); int n; for(n=1;n=100;n+) if(check(n) printf(%d,%dn,n,n*n); 5分int check(int n) int k; k=n*n; if(k%10=nk%100=n) re

37、turn 1; else return 0; 5分 2.參考程序及評分標準一:#include#define N 5viod main() int aN+1,x,i,k; for(i=0;iN;i+) scanf(%d,&ai); scanf(%d,&x); /2分 for(i=0;aixⅈk-) ak=ak-1; ai=x; /3分 for(i=0;i=N;i+) printf(%5d,ai); putchar(n); /2分 參考程序及評分標準二:#include#define N 5viod main() void insert(int v,int n,int x);int aN+

38、1,x,i; for(i=0;iN;i+) scanf(%d,&ai); scanf(%d,&x); /2分 insert(a,N,x); /2分 for(i=0;i=N;i+) printf(%5d,ai); putchar(n); /2分 void insert(int v,int n,int x) int i,k; for(i=0;vixⅈk-) vk=vk-1; vi=x; /2分二級C語言筆試試卷(A)2008年4月注意事項:1.一題答案填涂在答題卡上 2.二、三、四、五題答案做在答題紙上一.單項選擇題。(每小題1分,共20分)1. C程序的源程序由預處理命令和( )組成。 (

39、A)函數 (B)語句 (C)保留字 (D)標始符2. 下面程序段中,與if(x%2)中的x%2所表示條件等價的是( )。 scanf(%d,&x); (A)x%2=0 (B)x%2!=1 (C) x%2!=0 (D) x%2=13. 執(zhí)行下面C語言序列后,變量b的值是( )。 Int a,b,c; a=b=c=1; +a|+b&+c; (A)錯誤 (B)0 (C) 2 (D) 14. 設有C語句int a34;, 則每次移動過a數組一行元素的指針變量定義形式是( )。 (A)int *p; (B)int *p; (C) int(*p)4; (D) int *p4;5. 設有整型變量a, 實型變

40、量f,雙精度型變量x,則表達式10+b+x*f值的類型為( )。 (A)int (B)float (C)double (D)不能確定6. C語言中規(guī)定,函數調用中用簡單變量做實參時,它和對應形參之間的數據傳遞方式是( )。(A)地址傳遞 (B)單向值傳遞 (C) 由實參傳給形參,再由形參傳回給實參 (D) 由用戶指定傳遞方式7. 下面程序的輸出是( )。 #include void main() int x=10,y=3; printf(%dn,y=x/y);(A)0 (B)1 (C) 3 (D) 不確定的值8. 執(zhí)行下面的程序段后,B的值為( )。 int x=35; char z=A; i

41、nt B; B=(X&5)&(za); (A)0 (B)1 (C)2 (D) 39. 以下程序的輸出結果為( )。 #include void main() int i=0; for(;) if(i+=5) break; printf(%dn,i); (A)0 (B)5 (C) 6 (D) 前3個選項都錯10. 已知:char s4=cba;char *p; 執(zhí)行語句列p=s;printf(%cn,*p+1);后,其輸出為( )。 (A)c (B)b (C) a (D) d11. 運行完下列程序后,在屏幕上的內容是( )。 #include void main() int a=0; a+=a=

42、12; printf(%dn,a); (A)0 (B)6 (C) 12 (D) 2412. 已知:int x= 1 , y = 2, z =0,則執(zhí)行z=xy?(10+x,10-x):(20+y,20-y)后,z的值為( )。 (A)11 (B)9 (C) 18 (D) 2213. 若已定義x和y為double類型,則表達式x=2,y=x+10/4的值是( ) (A)2 (B)4 (C)4.0 (D) 4.514. 以下程序的輸出結果是( )。 #include int x=3,y=4; void main() int x=0; x+=y+; printf(%d,x); (A)3 (B)4 (

43、C)5 (D) 615. 在下面C語言的函數說明語句中,正確的是( )。(A)int fun(int x, int y); (B)int fun(int x,y);(C) int fun(x,y); (D) int fun(int x; int y);16. 有定義:int x,y=10,*p=&y;, 則能使得x的值也等于10的語句是( )。 (A)x=p; (B)x=&p; (C)x=&y; (D) x=*p;17. 有定義: int a54, (*p)4=a;, 則*(*(p+2)+3)等價于( )。 (A)a20 (B)a21 (C) a22 (D) a2318. 有定義:char*

44、s=tNameAddress;, 那么strlen(s)等于( )。 (A)15 (B)16 (C) 17 (D) 1819.設有定義int m=1,n=-1;則執(zhí)行語句printf(%dn,(m-&+n);后的輸出結果是()。 (A)-1 (B)0 (C) 1 (D) 220. 設有C語句:struct Tint n; double x;d,*p;, 若要使p指向結構體變量中的成員n,正確的賦值語句是( )。(A)p=&d.n (B)*p=d.n(C) p=(struct T *)&d.n (D) p=(struct T *)d.n二. 基本概念選擇填空題(本大題后面有若干備選項,請選擇合適

45、的備選項并將其號碼填入各個小題的空白處。沒空2分,共10分)1.一個C程序無論由多少個函數組成,只能有一個主函數,其函數名是 。2.表達式x*=x+b等價于表達式 。3.在C語言中, 語句是一條限定轉移語句,其功能是提前結束本次循環(huán)體的執(zhí)行過程而直接進入下一次循環(huán)。4.結構體數據類型仍然是一類變量的抽象形式,系統(tǒng)不會為數據類型分配存儲空間。要使用結構體類型數據,必須要 。5.調用feof庫函數可以判斷文件內部讀寫位置指針是否達到文件尾,當讀寫位置指針到達文件尾時,該函數的返回值是: 。備選項:(A)void (B)x=x*x+b (C)continue(D)x=x*(x+b) (E)break

46、 (F)定義結構體成員(G)定義結構體類型變量 (H)定義聯(lián)合體類型變量 (I)0(J)非0 (K)main (L)goto三.程序填空題。(每空2分,共20分)。1. 程序的功能是:統(tǒng)計輸入字符串中小寫字母的個數。 #include void main() char c;int num=0; while(c=getchar()!= ) if(cz) continue; printf(%dn,num);2. 下面程序的功能是輸出數組中的各字符串,請?zhí)羁胀瓿沙绦颉?#include void main() char*a=abcd,12345,efghijk,67890; int j=0; for

47、(; ;j+) puts( );3. 下面程序實現計算1+(1+2)+(1+2+3)+(1+2+3+10),請?zhí)羁胀晟瞥绦颉?#include void main() int total,sum,m,n; total=0; for(m=1;m=10;m+) sum=0; for(n=1; ;n+) sum=sum+n; ; printf(total=%dn,total); 4. 函數fun的功能是判斷一個3位整數的各位數和百位數之和是否等于其十位上的數字,是則返回yes!,否則返回no!,請?zhí)羁胀瓿珊瘮怠?#include fun(int n) int g,s,b; g=n%10; s=n/1

48、0%10; b=n/100; if(g+b)=s) returnyes; else return ;void main() int n; scanf(%d,&n); printf(%sn,fun(n);5. 下面程序的功能是打印出整數11000中滿足條件:個位數字的立方等于其本身的所有數,請?zhí)羁胀瓿沙绦颉?#include void main() int n; for(i=1;i1000;i+) g= ; if( ) printf(%4d,i); printf(n); 四. 閱讀程序,填寫結果(每小題5分,共30分)1. 下列程序的運行結果是( )。 #include void main()

49、void add(); int i; for(i=0;i3;i+) add()void add() static int x=0; x+; printf(%d,x);2. 以下程序的輸出結果為( )。 #include void main() int a,b,c,x; a=b=c=0; x=35; if(!a) x-; else if(b) ; if(c) x=3; else x=4 printf(%dn,x);3. 以下程序的輸出結果為( )。 #include void main() int i,j,row,colum,max; int a34=1,2,3,4,9,8,7,6,-10,10

50、,-5,2; max=a00; for(i=0;i=2;i+) for(j=0;jmax) max=aij; row=i; colum=j; printf(max=%d,row=%d,colum=%dn,max,row,colum);4. 下面程序的執(zhí)行結果是( )。 #include #define Min(x,y) (x)(y)?(x):(y) void main() int a=1,b=2,c=3,d=4,t; t=Min(a+b,c+d)*1000; printf(t=%dn,t); 5. 下列程序的運行結果是( )。#include void fun(int x) putchar(0

51、+x%10); if(x/10) fun(x/10); void main() int m=1234; fun(m); putchar(n);6. 以下程序的運行結果是( )。 #include void main() int a=1,3,5,s=1,j,*p=a; for(j=0;j3;j+) s*=*(p+j); printf(s=%dn,s);五、程序設計題。(每小題10分,共20分)1. 編程序實現功能:一個正整數與3的和是5的倍數,與3的差是6的倍數,求出符合此條件的最小正整數。2. 函數reverse的原型為:void reverse(char s);,其功能是將字符串s中的字符位

52、置顛倒。例如,字符串“abcdefg”中的字符位置顛倒后變?yōu)椤癵fedcba”。編制函數reverse并用相應的主函數進行測試。二級C語言筆試試卷(A)參考答案(2008年4月)單項選擇題。(每小題1分,共20分)1A 2C 3D 4C 5C 6B 7C 8B 9C 10D 11D 12C 13C 14B 15A 16D 17D 18A 19B 20C二、基本概念選擇填空題 K D C G J三、程序填空題。(每空2分,共20分)。1.n num+;2.j4 *(a+j) 或aj3.n=m total+=sum;4.char* no5.i%10; g*g*g=i四、閱讀程序題(每小題5分,共3

53、0分)1.1 2 32.43.max=10,row=2,colum=14.t=35.43216.s=15五編程序(每小題10分,共20分)1.參考程序評分標準評分標準:主函數框架結構正確2分;循環(huán)控制結構正確4分;判斷條件正確4分;參考程序#includevoid main() int i; for(i=9;i+) if(i+3)%5=0&(i-3)%6=0) printf(%dn,i); break; 2.參考程序及評分標準評分標準:(1)函數reverse中的循環(huán)控制結構正確3分;(2)字符交換正確3分;(3)主函數調用函數reverse正確2分;(4)主函數中字符串輸入/輸出操作正確2分

54、;#include#includevoid reverse(char s) int i,j; char c; for(i=0,j=strlen(s)-1;i=y)&(y=z) (B)(x=y) AND (y=z) (C)(x=y=z) (D) (x=y)&(y=z)6. 若有C語句int k=5;float x=1.2;,則表達式(int)(x+k) 的值是( )(A)5 (B)6.2 (C) 7 (D) 67. 設有定義:int x,*p;,能使指針變量p指向變量x的語句是( )(A)*p=&x; (B)p=&x; (C)*p=x; (D) p=*&x;8. 在執(zhí)行語句if(x=y=2)=x

55、&(x=5) y*=x;后變量x,y的值應分別為( ) (A)2、2 (B)5、2 (C)5、10 (D) 執(zhí)行時報錯9. 以下程序的輸出結果為( ) #include void main() int x,n; for(n=10,x=0;n=0;x+,n-) ; printf(%dn,x); (A)程序無限循環(huán)無輸出 (B)10 (C)1 (D)010. 下面程序的輸出結果為( ) #include void main() int x=1,y=1,z; z=1|+x&y-; printf(n%d,%d,%d,x,y,z); (A)1,1,1 (B)2,0,1 (C) 2,1,1 (D)2,0,

56、011. 下面程序執(zhí)行后輸出為( ) #include void main() enum weekdaysun,mon=3,tue,wed,thu;enum weekday day;day=wed; printf(%dn,day); (A)5 (B)6 (C) 4 (D) 編譯時出錯12. 下面程序執(zhí)行后輸出為( ) #include void main() int a; printf(%dn,(a=3*5,a*4,a+5); (A)65 (B)20 (C) 15 (D) 1013. 以下程序的輸出結果是( )。 #include void main() struct int x,y; d2=

57、1,3,2,7; printf(%dn,d0.y/d0.x*d1.x); (A)0 (B)1 (C)3 (D) 614. 下面程序執(zhí)行后輸出為( ) #include int f(int n) if(n=1) return 1; else if(n=2) return 2; else return f(n-1)+f(n-2);void main() printf(%dn,f(4); (A)1 (B)2 (C)3 (D) 515.下面程序的輸出結果為( ) #include void main() union int short x; /32位系統(tǒng)中,短整型數據占2個字節(jié) char ch2; u

58、; u.x=100; u.ch0=a; u.ch1=0; printf(%xn,u.x); (A)100 (B)97 (C) 61 (D) 016. 設有int a=0,b=5,c=2,x=0;,下面可以執(zhí)行到x+的語句是( ) (A)if(a)x+; (B)if(a=b)x+; (C) if(a=b)x+; (D) if(!(b-c)x+;17. 設有下列C語句,則下面敘述正確的選項是( ) typedef struct int n; char ch8; Stt;(A)Stt是結構體變量名 (B)Stt是結構體類型名 (C) typedef struct是結構體類型 (D) struct是結

59、構體類型名18. 下面程序執(zhí)行后輸出為( ) #include void main() int a=5,*p1,*p2; p1=&a; p2=&p1; (*p1)+; printf(%dn,*p2); (A)5 (B)4 (C) 6 (D) 不確定19.表達式k=(1210)?4:1?2:3的值為( ) (A)1 (B)2 (C) 3 (D) 420. 若fp是指向某文件的指針,且已讀到該文件的末尾,則C標準函數feof(fp)的返回值是( )(A)-1 (B)1 (C) 0 (D) NULL二. 基本概念選擇填空題(本大題后面有若干備選項,請選擇合適的備選項并將其號碼填入各個小題的空白處。沒

60、空2分,共10分)1.表達式y(tǒng)/=x+a等價于表達式 。2.在執(zhí)行while循環(huán)時,其循環(huán)體 。3.二維數組中,各數組元素的存放順序是 。4.在對文件進行操作的過程中,若要求文件的讀寫位置回到文件的開頭,應當調用的標準庫函數是 。5.要將一個整數12000分別以ASCII碼文件和二進制文件形式存放,各自所占的存儲空間分別是 字節(jié)。備選項:(A)按列存放 (B)y=y/x+a (C)5和4(D)y=1/(x+a) (E)輸入函數 (F)有可能一次都不被執(zhí)行(G)rewind (H)按列存放 (I)y=y/(x+a)(J)至少要被執(zhí)行一次 (K)fseek (L) 4和5三.程序填空題。(每空2分

溫馨提示

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

評論

0/150

提交評論