![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
2015年3月全國計(jì)算機(jī)二級C語言選擇第2套 |
1.下列敘述中正確的是 A.算法復(fù)雜度是指算法控制結(jié)構(gòu)的復(fù)雜程度 B.算法復(fù)雜度是指設(shè)計(jì)算法的難度 C.算法的時間復(fù)雜度是指設(shè)計(jì)算法的工作量 D.算法的復(fù)雜度包括時間復(fù)雜度與空間復(fù)雜度 2.設(shè)循環(huán)隊(duì)列的存儲空間為Q(1:50),初始狀態(tài)為front=rear=50,F(xiàn)經(jīng)過一系列入隊(duì)與退隊(duì)操作后,front=rear=1,此后又正常地插入了兩個元素。最后該隊(duì)列中的元素個數(shù)為 A.2 B.1 C.3 D.52 3.一棵完全二叉樹共有360個結(jié)點(diǎn),則在該二叉樹中度為1的結(jié)點(diǎn)個數(shù)為 A.0 B.1 C.180 D.181 4.設(shè)某二叉樹的后序序列與中序序列均為ABCDEFGH,則該二叉樹的前序序列為 A.HGFEDCBA B.ABCDEFGH C.EFGHABCD D.DCBAHGFE 5.在排序過程中,每一次數(shù)據(jù)元素的移動會產(chǎn)生新的逆序的排序方法是 A.快速排序 B.簡單插入排序 C.冒泡排序 D.以上說法均不正確 6.下面對軟件工程描述正確的是 A.軟件工程是用工程、科學(xué)和數(shù)學(xué)的原則與方法研制、維護(hù)計(jì)算機(jī)軟件的有關(guān)技術(shù)及管理方法 B.軟件工程的三要素是方法、工具和進(jìn)程 C.軟件工程是用于軟件的定義、開發(fā)和維護(hù)的方法 D.軟件工程是為了解決軟件生產(chǎn)率問題 7.耦合性和內(nèi)聚性是對模塊獨(dú)立性度量的兩個標(biāo)準(zhǔn)。下列敘述中正確的是 A.內(nèi)聚性是指模塊間互相連接的緊密程度 B.提高耦合性降低內(nèi)聚性有利于提高模塊的獨(dú)立性 C.耦合性是指一個模塊內(nèi)部各個元素間彼此結(jié)合的緊密程度 D.降低耦合性提高內(nèi)聚性有利于提高模塊的獨(dú)立性 8.下列關(guān)于數(shù)據(jù)庫系統(tǒng)的敘述中正確的是 A.數(shù)據(jù)庫系統(tǒng)中數(shù)據(jù)的一致性是指數(shù)據(jù)類型一致 B.數(shù)據(jù)庫系統(tǒng)避免了一切冗余 C.數(shù)據(jù)庫系統(tǒng)減少了數(shù)據(jù)冗余 D.數(shù)據(jù)庫系統(tǒng)比文件系統(tǒng)能管理更多的數(shù)據(jù) 9.一名演員可以出演多部電影,則實(shí)體演員和電影之間的聯(lián)系是 A.多對多 B.一對一 C.多對一 D.一對多 10. A.表S中所有學(xué)生都選修了的課程的課號 B.全部課程的課號 C.成績不小于80的學(xué)生的學(xué)號 D.所選人數(shù)較多的課程的課號 11.有以下程序 #include <stdio.h> main() { int a=2,b=3,c=4; a*=16 +(b++) - (++c); printf("%d \n",a ); } 程序運(yùn)行后的輸出結(jié)果是 A.15 B.30 C.28 D.14 12.以下敘述正確的是 A.通過分解成簡單子任務(wù),可以完成任何復(fù)雜任務(wù) B.每個結(jié)構(gòu)化程序都要包含全部三種基本結(jié)構(gòu) C.C語言程序的所有自定義函數(shù)只能寫在同一個源文件中 D.C語言程序允許使用多個main函數(shù),只要它們的函數(shù)體各不相同即可 13.以下選項(xiàng)中,合法的C語言實(shí)數(shù)是 A.E4.8 B.4.3e0.2 C..4e0 D.0.29E 14.設(shè)a,b,c已定義為整型變量,以下選項(xiàng)中不正確的賦值表達(dá)式是 A.a = 3 = (b = 2) = 1; B.a = (b = 0) * c + 1; C.a = (b = 0) * c + 1; D.a = 10 % (b = c = 2.0); 15.若變量已正確定義并賦初值,以下合法的賦值語句是 A.k=(m==n); B.k=-m-n C.k=int(m+n); D.k=m*n=1; 16.以下關(guān)于邏輯運(yùn)算符兩側(cè)運(yùn)算對象的敘述中正確的是 A.只能是整數(shù)0或1 B.只能是整數(shù)0或非0整數(shù) C.可以是結(jié)構(gòu)體類型的數(shù)據(jù) D.可以是任意合法的表達(dá)式 17.以下選項(xiàng)中錯誤的是 A.printf("%s\n", 's'); B.printf("%d %c\n", 's','s'); C.printf("%c\n", 's'- 32); D.printf("%c\n", 65); 18.若有定義:char ch;當(dāng)執(zhí)行以下循環(huán)時從鍵盤輸入abcde<回車>,將輸出*的個數(shù)是 while((ch=getchar())=='e') printf("*"); A.4 B.0 C.5 D.1 19.有以下程序 #include <stdio.h> main() { int x=10,y=11,z=12; if( y< z ) x=y; y=z; z=x; printf("x=%d y=%d z=%d\n", x, y, z ); } 程序運(yùn)行后的輸出結(jié)果是 A.x=11 y=12 z=11 B.x=10 y=10 z=10 C.x=11 y=11 z=10 D.x=10 y=10 z=12 20.對于if(表達(dá)式)語句,以下敘述正確的是 A."表達(dá)式"不能是變量 B."表達(dá)式"的值只能是整數(shù)值 C."表達(dá)式"可以是常量 D."表達(dá)式"中不可以出現(xiàn)字符型變量的比較 21.有以下程序 #include <stdio.h> main( ) { char ch = '1'; while (ch < '9') { printf("%d", ch - '0'); ch++; } } 程序運(yùn)行后的輸出結(jié)果是 A.12345678 B.01234567 C.0 D.1 22.以下與表達(dá)式(!x==0) 的邏輯值不等價(jià)的選項(xiàng)是 A.x==1 B.x C.x!=0 D.x>0 || x<0 23.以下敘述正確的是 A.表達(dá)式9-'0'的值是數(shù)值 9 B.表達(dá)式'A'+32的值是字母A的ASCII碼 C.表達(dá)式'a'-32的值是字母a的ASCII碼 D.表達(dá)式9+'0'的值是字符9的ASCII碼 24.有以下程序 #include <stdio.h> int fun (int x, int y ) { if (x!=y) return ( (x+y) /2 ); else return ( x ); } main() { int a=4, b=5, c=6; printf( "%d\n" , fun(2*a, fun( b, c ) ) ); } 程序運(yùn)行后的輸出結(jié)果是 A.3 B.6 C.8 D.12 25.有以下程序 #include <stdio.h> int f( int x,int y) { return((y-x)*x); } main() { int a=3,b=4,c=5,d; d=f(f(a,b),f(a,c)); printf("%d\n",d); } 程序運(yùn)行后的輸出結(jié)果是 A.8 B.10 C.9 D.7 26.有以下程序 #include <stdio.h> void fun( int a[ ], int n, int flag ) { int i=0,j, t; for ( i=0; i<n-1; i++ ) for ( j=i+1; j<n; j++ ) if ( flag ) { if ( a[i] < a[j] ) { t = a[i]; a[i] = a[j]; a[j] = t; } } else { if ( a[i] > a[j] ) { t = a[i]; a[i] = a[j]; a[j] = t; } } } main( ) { int c[10]={ 7,9,10,8,3,5,1,6,2,4 },i; fun( c, 4, 1 ); fun( c+4, 6, 0 ); for ( i=0;i<10; i++ ) printf( "%d,", c[i] ); printf("\n"); } 程序運(yùn)行后的輸出結(jié)果是 A.7,8,9,10,6,5,4,3,2,1, B.10,9,8,7,6,5,4,3,2,1, C.10,9,8,7,1,2,3,4,5,6, D.1,2,3,4,5,6,7,8,9,10, 27.有以下程序 #include <stdio.h> int m1(int x, int y ) { if( x<= y ) return 2*x+1; else return y; } int m2(int x, int y ) { if( x<= y ) return 2*y+1; else return x; } main() { int i, t1=10, t2=0; for( i=1; i<=4; i++ ) { t1=m1( i,t1 ); t2=m2( i,t2 ); } printf("t1=%d t2=%d \n", t1, t2 ); } 程序運(yùn)行后的輸出結(jié)果是 A.t1=9 t2=4 B.t1=4 t2=9 C.t1=9 t2=9 D.t1=1 t2=4 28.有以下程序 #include <stdio.h> void f1(char *a, char b ){ char c; c=*a; *a=b; b=c; } void f2(char a, char b ){ char c; c=a; a=b; b=c; } void f3(char *a, char *b ){ char c; c=*a; *a=*b; *b=c; } main() { char t1, t2; t1 = 'A'; t2 = 'B'; f3( &t1,&t2 ); putchar(t1); putchar(t2); t1 = 'A'; t2 = 'B'; f2( t1, t2 ); putchar(t1); putchar(t2); t1 = 'A'; t2 = 'B'; f1( &t1, t2 ); putchar(t1); putchar(t2); printf("\n"); } 程序運(yùn)行后的輸出結(jié)果是 A.ABBABB B.BAABBB C.BABABA D.BABAAB 29.以下敘述正確的是 A.char c1, *c2, *c3[10]; 是合法的變量定義語句 B.數(shù)組說明符的一對方括號中不能使用表達(dá)式 C.數(shù)組元素下標(biāo)可以是非整數(shù) D.若有定義 char array[4]; 則語句 printf("%c", array["3"]);是合法的 30.有以下程序 #include <stdio.h> main( ) { int a[3][3]={{1,3,5,}, {7,9,11,}, {13,15,17}}; int (*p)[3]=a, i,j,n=0; for(i=0;i<3;i++) for(j=0;j<2;j++) n+=*(*(p+i)+j); printf("%d\n",n); } 程序運(yùn)行后的輸出結(jié)果是 A.54 B.60 C.36 D.48 31.設(shè)有定義: char p[]={'1', '2', '3'},*q=p; 以下不能計(jì)算出一個char型數(shù)據(jù)所占字節(jié)數(shù)的表達(dá)式是 A.sizeof(*q) B.sizeof(char) C.sizeof(p) D.sizeof(p[0]) 32.有以下程序 #include <stdio.h> fun(int x, int y) { static int m=0, i=2; i+=m+1; m=i+x+y; return m; } main() { int j=1, m=1, k; k=fun(j,m); printf("%d,",k); k=fun(j,m); printf("%d\n",k); } 執(zhí)行后的輸出結(jié)果是 A.5, 11 B.5, 5 C.11, 11 D.11, 5 33.有以下程序 #include <stdio.h> int f( int x[], int n ) { if ( n> 1) return x[n-1]+ f(x, n-1)*10; else return x[0]; } main( ) { int z[3] = {1,2,3}, y; y = f(z,3); printf( "%d\n", y ); } 程序運(yùn)行后的輸出結(jié)果是 A.321 B.123 C.1 D.3 34.有以下程序 #include <stdio.h> #include <string.h> main() { char ss[10]="12345"; strcat( ss, "6789" ); gets( ss ); printf("%s\n", ss ); } 執(zhí)行時輸入:ABC<回車>,則輸出結(jié)果是 A.123456ABC B.ABC9 C.ABC D.ABC456789 35.有以下程序 #include <stdio.h> #include <string.h> main() { printf("%d\n", strlen("0\t\n\0C011\1")); } 程序運(yùn)行后的輸出結(jié)果是 A.3 B.13 C.1 D.0 36.有以下程序 #include <stdio.h> int show( char *str ) { while (*str) { putchar(*str+1); str++; } return *str+1; } main( ) { printf("%d\n", show("ABCD")); } 程序運(yùn)行后的輸出結(jié)果是 A.ABCD0 B.BCDE0 C.BCDE1 D.ABCD1 37.有以下程序 #include <stdio.h> void my_put() { char ch; ch = getchar(); if (ch != 'C') my_put(); putchar(ch); } main( ) { my_put(); } 執(zhí)行時輸入:ABC<回車>,則輸出結(jié)果是 A.ABC B.CBA C.AB D.ABCC 38.有以下程序 #include <stdio.h> void fun(int n) { static int x[3]={1,2,3}; int k; for( k=0; k<3; k++ ) x[k] += x[k]-n; for( k=0; k<3; k++ ) printf("%d,",x[k]); } main() { fun(0); fun(1); } 程序運(yùn)行后的輸出結(jié)果是 A.1,2,3,0,1,2, B.2,4,6,1,3,5, C.2,4,6,3,7,11, D.2,4,6,4,8,12, 39.有以下定義 struct person { char name[10]; int age; }; struct person class[10]={ "Johu",17, "Paul",19, "Mary",18, "Adam",16, }; 能輸出字母M的語句是 A.printf("%c \n", class[2].name[0] ); B.printf("%c \n", class[3].name[0] ); C.printf("%c \n", class[3].name[1] ); D.printf("%c \n", class[2].name[1] ); 40.若要通過位運(yùn)算使整型變量a中的各位數(shù)字全部清零,以下選項(xiàng)正確的是 A.a=a^0; B.a=a|0; C.a=a&0; D.a=!a; 1.D 2.A 3.B 4.A 5.A 6.A 7.D 8.C 9.A 10.A 11.C 12.A 13.C 14.A 15.A 16.D 17.A 18.B 19.A 20.C 21.A 22.A 23.D 24.B 25.C 26.C 27.A 28.B 29.A 30.D 31.C 32.A 33.B 34.C 35.A 36.C 37.B 38.C 39.A 40.C |