![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
2015年3月全國(guó)計(jì)算機(jī)二級(jí)C語(yǔ)言選擇第1套 |
1.算法的時(shí)間復(fù)雜度是指 A.設(shè)計(jì)該算法所需的工作量 B.執(zhí)行該算法所需要的時(shí)間 C.執(zhí)行該算法時(shí)所需要的基本運(yùn)算次數(shù) D.算法中指令的條數(shù) 2.設(shè)循環(huán)隊(duì)列存儲(chǔ)空間為Q(1:50),初始狀態(tài)為front=rear=50。經(jīng)過(guò)一系列入隊(duì)和退隊(duì)操作后,front=rear=25,則該循環(huán)隊(duì)列中元素個(gè)數(shù)為 A.26 B.25 C.24 D.0或50 3.某棵樹(shù)的度為4,且度為4、3、2、1的結(jié)點(diǎn)數(shù)分別為1、2、3、4,則該樹(shù)中的葉子結(jié)點(diǎn)數(shù)為 A.11 B.9 C.10 D.8 4.設(shè)某二叉樹(shù)的前序序列與中序序列均為ABCDEFGH,則該二叉樹(shù)的后序序列為 A.HGFEDCBA B.EFGHABCD C.DCBAHGFE D.ABCDEFGH 5.下列敘述中正確的是 A.二分查找法適用于任何存儲(chǔ)結(jié)構(gòu)的有序線性表 B.二分查找法只適用于順序存儲(chǔ)的有序線性表 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ū)ο蠓椒ㄖ袑?duì)象基本特點(diǎn)的是 A.多態(tài)性 B.方法唯一性 C.可修改性 D.靈活性 8.下面可以作為軟件需求分析工具的是 A.包圖 B.程序流程圖 C.PAD圖 D.數(shù)據(jù)流程圖(DFD圖) 9.數(shù)據(jù)庫(kù)的數(shù)據(jù)模型分為 A.層次、關(guān)系和網(wǎng)狀 B.網(wǎng)狀、環(huán)狀和鏈狀 C.大型、中型和小型 D.線性和非線性 10.數(shù)據(jù)庫(kù)系統(tǒng)的數(shù)據(jù)獨(dú)立性是指 A.不會(huì)因?yàn)橄到y(tǒng)數(shù)據(jù)存儲(chǔ)結(jié)構(gòu)與數(shù)據(jù)邏輯結(jié)構(gòu)的變化而影響應(yīng)用程序 B.不會(huì)因?yàn)閿?shù)據(jù)的變化而影響應(yīng)用程序 C.不會(huì)因?yàn)榇鎯?chǔ)策略的變化而影響存儲(chǔ)結(jié)構(gòu) D.不會(huì)因?yàn)槟承┐鎯?chǔ)結(jié)構(gòu)的變化而影響其他的存儲(chǔ)結(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ī)可以直接識(shí)別由十六進(jìn)制代碼構(gòu)成的程序 B.可以連續(xù)執(zhí)行的指令的集合稱為"程序" C."程序"是人與計(jì)算機(jī)"對(duì)話"的語(yǔ)言 D.計(jì)算機(jī)可以直接識(shí)別由0和1組成的機(jī)器語(yǔ)言代碼 13.以下與數(shù)學(xué)表達(dá)式 “0<x<5且x≠2” 不等價(jià)的C語(yǔ)言邏輯表達(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中存放了兩門課的成績(jī)。若兩門課成績(jī)均在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; 以下不能將一行(不超過(guò)80個(gè)字符)帶有空格的字符串正確讀入的語(yǔ)句或語(yǔ)句組是 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語(yǔ)言中的每條可執(zhí)行語(yǔ)句和非執(zhí)行語(yǔ)句最終都將被轉(zhuǎn)換成二進(jìn)制的機(jī)器指令 B.C程序經(jīng)過(guò)編譯、連接步驟之后才能形成一個(gè)真正可執(zhí)行的二進(jìn)制機(jī)器指令文件 C.用C語(yǔ)言編寫的程序稱為源程序,它以ASCII代碼形式存放在一個(gè)文本文件中 D.C語(yǔ)言源程序經(jīng)編譯后生成后綴為.obj的目標(biāo)程序 23.以下選項(xiàng)中,合法的一組C語(yǔ)言數(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)識(shí)符是( )。 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語(yǔ)言規(guī)定的賦值語(yǔ)句是( ) 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平臺(tái)上編譯運(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列開(kāi)始,<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)算對(duì)象的敘述中正確的是( )。 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)語(yǔ)句固定執(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ì)改變對(duì)應(yīng)實(shí)參的值 D.當(dāng)在程序的開(kāi)頭包含頭文件stdio.h時(shí),可以給指針變量賦NULL 36.設(shè)已有定義:float x;,則以下對(duì)指針變量p進(jìn)行定義且賦初值的語(yǔ)句中正確的是( )。 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;,以下不能將一行(不超過(guò)80個(gè)字符)帶有空格的字符串正確讀入的語(yǔ)句或語(yǔ)句組是( )。 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 |