![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
2015年3月全國計(jì)算機(jī)二級C語言選擇第1套 |
1.算法的時(shí)間復(fù)雜度是指 A.設(shè)計(jì)該算法所需的工作量 B.執(zhí)行該算法所需要的時(shí)間 C.執(zhí)行該算法時(shí)所需要的基本運(yùn)算次數(shù) D.算法中指令的條數(shù) 2.設(shè)循環(huán)隊(duì)列存儲空間為Q(1:50),初始狀態(tài)為front=rear=50。經(jīng)過一系列入隊(duì)和退隊(duì)操作后,front=rear=25,則該循環(huán)隊(duì)列中元素個(gè)數(shù)為 A.26 B.25 C.24 D.0或50 3.某棵樹的度為4,且度為4、3、2、1的結(jié)點(diǎn)數(shù)分別為1、2、3、4,則該樹中的葉子結(jié)點(diǎn)數(shù)為 A.11 B.9 C.10 D.8 4.設(shè)某二叉樹的前序序列與中序序列均為ABCDEFGH,則該二叉樹的后序序列為 A.HGFEDCBA B.EFGHABCD C.DCBAHGFE D.ABCDEFGH 5.下列敘述中正確的是 A.二分查找法適用于任何存儲結(jié)構(gòu)的有序線性表 B.二分查找法只適用于順序存儲的有序線性表 C.二分查找法適用于有序循環(huán)鏈表 D.二分查找法適用于有序雙向鏈表 6.下列序列中不滿足堆條件的是 A. (98,95,93,96,89,85,76,64,55,49) B.(98,95,93,94,89,85,76,64,55,49) C.(98,95,93,94,89,90,76,64,55,49) D.(98,95,93,94,89,90,76,80,55,49) 7.下面屬于面向?qū)ο蠓椒ㄖ袑ο蠡咎攸c(diǎn)的是 A.多態(tài)性 B.方法唯一性 C.可修改性 D.靈活性 8.下面可以作為軟件需求分析工具的是 A.包圖 B.程序流程圖 C.PAD圖 D.數(shù)據(jù)流程圖(DFD圖) 9.數(shù)據(jù)庫的數(shù)據(jù)模型分為 A.層次、關(guān)系和網(wǎng)狀 B.網(wǎng)狀、環(huán)狀和鏈狀 C.大型、中型和小型 D.線性和非線性 10.數(shù)據(jù)庫系統(tǒng)的數(shù)據(jù)獨(dú)立性是指 A.不會(huì)因?yàn)橄到y(tǒng)數(shù)據(jù)存儲結(jié)構(gòu)與數(shù)據(jù)邏輯結(jié)構(gòu)的變化而影響應(yīng)用程序 B.不會(huì)因?yàn)閿?shù)據(jù)的變化而影響應(yīng)用程序 C.不會(huì)因?yàn)榇鎯Σ呗缘淖兓绊懘鎯Y(jié)構(gòu) D.不會(huì)因?yàn)槟承┐鎯Y(jié)構(gòu)的變化而影響其他的存儲結(jié)構(gòu) 11.以下敘述正確的是 A.C程序由函數(shù)組成,可以不包含main函數(shù) B.每個(gè)C程序文件中的main函數(shù)都應(yīng)當(dāng)放在最前面 C.每個(gè)C程序文件都應(yīng)當(dāng)包含一個(gè)main函數(shù) D.每個(gè)C程序都只能有一個(gè)main函數(shù) 12.以下敘述錯(cuò)誤的是 A.計(jì)算機(jī)可以直接識別由十六進(jìn)制代碼構(gòu)成的程序 B.可以連續(xù)執(zhí)行的指令的集合稱為"程序" C."程序"是人與計(jì)算機(jī)"對話"的語言 D.計(jì)算機(jī)可以直接識別由0和1組成的機(jī)器語言代碼 13.以下與數(shù)學(xué)表達(dá)式 “0<x<5且x≠2” 不等價(jià)的C語言邏輯表達(dá)式是 A.(0<x<5) && (x!=2) B.0<x && x<5 && x!=2 C.x>0 && x<5 && x!=2 D.(x>0 && x<2) || (x>2 && x<5) 14.以下選項(xiàng)中與 ( !a== 0 )的邏輯值不等價(jià)的表達(dá)式是 A.( a== !0 ) B.a C.(a>0 || a<0) D.(a!= 0 ) 15.變量math和engl中存放了兩門課的成績。若兩門課成績均在60分以上(含60),則顯示"pass";有一門低于60分則顯示"fail",以下不能實(shí)現(xiàn)上述功能的程序段是 A. if(math<60) if(engl<60) printf("fail\n"); else printf("pass\n"); B.if(math<60) printf("fail\n"); else if(engl>=60) printf("pass\n"); else printf("fail\n"); C.if ((math<60) ||(engl<60)) printf("fail\n"); else printf("pass\n"); D.if ((math>=60) && (engl>=60)) printf("pass\n"); else printf("fail\n"); 16.設(shè)有以下程序段 main( ) { int x[M][N]; ... Arrlet(x); ... } 則作為函數(shù)Arrlet的形參,以下表示形式非法的是 A.int x[M][ ] B.int (*x)[N] C.int x[ ][N] D.int x[M][N] 17.有以下程序 #include <stdio.h> void fun( int n ) { if( n/2 ) fun(n/2); printf("%d",n%2 ); } main() { fun( 10 ); printf("\n"); } 程序運(yùn)行后的輸出結(jié)果是 A.0101 B.1000 C.1100 D.1010 18. 有以下程序 #include <stdio.h> void fun(char *a,char *b) { char *s=a; while(*s) s++; s--; while(s>=a) { *b=*s; s--; b++; } *b='\0'; } main() { char s1[]="abc",s2[6]; fun(s1,s2); puts(s2); } 程序運(yùn)行后的輸出結(jié)果是 A.cbaabc B.abc C.cba D.abccba 19.有以下程序 #include <stdio.h> main( ) { char b[4][10]; int i; for ( i=0; i<4; i++ ) scanf( "%s", b[i] ); for( i=3; i>=0; i-- ) printf( "%s ", b[i] ); printf( "\n" ); } 執(zhí)行時(shí)若輸入: Peach flower is pink.<回車> ,則輸出結(jié)果是 A.Peachflower is pink. B.pink. is flower Peach C.Peachflowerispink. D.Pink is flower peach. 20.有以下程序 #include <stdio.h> int * f(int *s) { s[1] +=6; *s=7; s+=2; return s; } main( ) { int a[5]={1,2,3,4,5}, *p=a; p= f(p); printf( "%d,%d,%d\n", a[0], a[1], *p ); } 程序運(yùn)行后的輸出結(jié)果是 A.9,8,9 B.7,8,7 C.7,8,3 D.1,2,1 21.設(shè)有定義: char s[81]; int i=0; 以下不能將一行(不超過80個(gè)字符)帶有空格的字符串正確讀入的語句或語句組是 A.scanf("%s",s); B.while((s[i++]=getchar())!='\n');s[i]='\0'; C.gets(s); D.do{ scanf("%c",&s[i]); }while(s[i++]!='\n'); s[i]='\0'; 22.以下敘述中錯(cuò)誤的是( )。 A.C語言中的每條可執(zhí)行語句和非執(zhí)行語句最終都將被轉(zhuǎn)換成二進(jìn)制的機(jī)器指令 B.C程序經(jīng)過編譯、連接步驟之后才能形成一個(gè)真正可執(zhí)行的二進(jìn)制機(jī)器指令文件 C.用C語言編寫的程序稱為源程序,它以ASCII代碼形式存放在一個(gè)文本文件中 D.C語言源程序經(jīng)編譯后生成后綴為.obj的目標(biāo)程序 23.以下選項(xiàng)中,合法的一組C語言數(shù)值常量是( )。 A.12. 0Xa23 4.5e0 B.028 .5e-3。0xf C..177 4e1.5 0abc D.0x8A 10,000 3.e5 24.以下選項(xiàng)中不合法的標(biāo)識符是( )。 A.&a B.FOR C.print D. 00 25.若有代數(shù)式 A.sqrt(fabs(pow(n,x)+exp(x))) B.sqrt(fabs(pow(n,x)+pow(x,e))) C.sqrt(abs(n^x+e^x)) D.sqrt(fabs(pow(x,n)+exp(x))) 26.若有定義:double a=22;int i=0,k=18;,則不符合C語言規(guī)定的賦值語句是( ) A.i=(a+k)<=(i+k); B.i=a%11; C.a=a++,i++ D.i=!a; 27.有以下程序: #include <stdio.h> main() { int s,t,A=10; double B=6; s=sizeof(A); t=sizeof(B); printf("%d,%d\n",s,t); } 在VC6.0平臺上編譯運(yùn)行,程序運(yùn)行后的輸出結(jié)果是( )。 A.10,6 B.4,4 C.2,4 D.4,8 28.有以下程序: #include <stdio.h> main() { char a,b,c,d; scanf("%c%c",&a, &b); c=getchar(); d=getchar(); printf("%c%c%c%c\n",a,b,c,d); } 當(dāng)執(zhí)行程序時(shí),按下列方式輸入數(shù)據(jù)(從第1列開始,<CR>代表回車,注意:回車也是一個(gè)字符) 12<CR> 34<CR> 則輸出結(jié)果是( )。 A.12 34 B.12 C.1234 D.12 3 29.下關(guān)于邏輯運(yùn)算符兩側(cè)運(yùn)算對象的敘述中正確的是( )。 A.可以是任意合法的表達(dá)式 B.只能是整數(shù)0或非0整數(shù) C.可以是結(jié)構(gòu)體類型的數(shù)據(jù) D.只能是整數(shù)0或1 30.有以下程序: #include <stdio.h> main() { int a=0,b=0,c=0,d=0; if(a=1) b=1;c=2; else d=3; printf("%d,%d,%d,%d\n",a,b,c,d); } 程序輸出( )。 A.1,1,2,0 B.0,0,0,3 C.編譯有錯(cuò) D.0,1,2,0 31.有以下程序: #include <stdio.h> main() { int x=1, y=0, a=0, b=0; switch (x) { case 1: switch(y) { case 0: a++; break; case 1: b++; break; } case 2: a++; b++; break; case 3: a++; b++; } printf("a=%d, b=%d\n", a, b); } 程序的運(yùn)行結(jié)果是( )。 A.a=2,b=2 B.a=2,b=1 C.a=1,b=1 D.a=1,b=0 32.以下程序段中的變量已正確定義: for( i=0; i<4; i++,i++ ) for( k=1; k<3; k++ ); printf("*" ); 程序段的輸出結(jié)果是( )。 A.** B.**** C.* D.******** 33.有以下程序段: #include <stdio.h> int i, n; for( i=0; i<8; i++ ) { n = rand() % 5; switch (n) { case 1: case 3: printf("%d \n", n); break; case 2: case 4: printf("%d \n", n); continue; case 0: exit(0); } printf("%d \n",n); } 以下關(guān)于程序段執(zhí)行情況的敘述,正確的是( )。 A.for循環(huán)語句固定執(zhí)行8次 B.當(dāng)產(chǎn)生的隨機(jī)數(shù)n為4時(shí)結(jié)束循環(huán)操作 C.當(dāng)產(chǎn)生的隨機(jī)數(shù)n為1和2時(shí)不做任何操作 D.當(dāng)產(chǎn)生的隨機(jī)數(shù)n為0時(shí)結(jié)束程序運(yùn)行 34.有以下程序: #include <stdio.h> int f(int x); main() { int n=1,m; m=f(f(f(n))); printf("%d\n",m); } int f(int x) { return x*2; } 程序運(yùn)行后的輸出結(jié)果是( )。 A.8 B.2 C.4 D.1 35.以下敘述中錯(cuò)誤的是( )。 A.可以給指針變量賦一個(gè)整數(shù)作為地址值 B.函數(shù)可以返回地址值 C.改變函數(shù)形參的值,不會(huì)改變對應(yīng)實(shí)參的值 D.當(dāng)在程序的開頭包含頭文件stdio.h時(shí),可以給指針變量賦NULL 36.設(shè)已有定義:float x;,則以下對指針變量p進(jìn)行定義且賦初值的語句中正確的是( )。 A.int *p=(float)x; B.float *p=&x; C.float p=&x; D.float *p=1024; 37.以下數(shù)組定義中錯(cuò)誤的是( )。 A.int x[2][3]={1,2,3,4,5,6}; B.int x[][3]={0}; C.int x[][3]={{1,2,3},{4,5,6}}; D.int x[2][3]={{1,2},{3,4},{5,6}}; 38.有以下程序: #include <stdio.h> void fun( int a[], int n) { int i, t; for(i=0; i<n/2; i++) { t=a[i]; a[i]=a[n-1-i]; a[n-1-i]=t; } } main() { int k[10]={ 1,2,3,4,5,6,7,8,9,10},i; fun(k,5); for(i=2; i<8; i++) printf("%d",k[i]); printf("\n"); } 程序的運(yùn)行結(jié)果是( )。 A.321678 B.876543 C.1098765 D.345678 39.有以下程序: #include <stdio.h> #define N 4 void fun(int a[][N], int b[]) { int i; for (i=0; i<N; i++) b[i] = a[i][i] - a[i][N-1-i]; } main() { int x[N][N]={{1, 2, 3, 4}, {5, 6, 7, 8}, {9,10,11,12}, {13,14,15,16}}, y[N], i; fun (x, y); for (i=0; i<N; i++) printf("%d,", y[i]); printf("\n"); } 程序運(yùn)行后的輸出結(jié)果是( )。 A.-3,-1,1,3, B.-12,-3,0,0, C.0,1,2,3, D.-3,-3,-3,-3, 40.設(shè)有定義:char s[81]; int i=0;,以下不能將一行(不超過80個(gè)字符)帶有空格的字符串正確讀入的語句或語句組是( )。 A.gets(s); B.while((s[i++]=getchar())。'\n');s[i]='\0'; C.scanf("%s",s); D.do{ scanf("%c",&s[i]); }while(s[i++]。'\n'); s[i]='\0'; 1.C 2.D 3.A 4.A 5.B 6.A 7.A 8.D 9.A 10.A 11.D 12.A 13.A 14.A 15.A 16.A 17.D 18.C 19.B 20.C 21.A 22.A 23.A 24.A 25.A 26.B 27.D 28.D 29.A 30.C 31.B 32.C 33.D 34.A 35.A 36.B 37.D 38.A 39.A 40.C |