![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
全國(guó)計(jì)算機(jī)二級(jí)C語(yǔ)言選擇題 |
1.下列敘述中正確的是 A.棧與隊(duì)列都只能順序存儲(chǔ) B.循環(huán)隊(duì)列是隊(duì)列的順序存儲(chǔ)結(jié)構(gòu) C.循環(huán)鏈表是循環(huán)隊(duì)列的鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu) D.棧是順序存儲(chǔ)結(jié)構(gòu)而隊(duì)列是鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu) 2.設(shè)某二叉樹(shù)的前序序列為ABC,中序序列為CBA,則該二叉樹(shù)的后序序列為 A.BCA B.CBA C.ABC D.CAB 3.下列排序方法中,最壞情況下時(shí)間復(fù)雜度最小的是 A.冒泡排序 B.快速排序 C.堆排序 D.直接插入排序 4.為了對(duì)有序表進(jìn)行對(duì)分查找,則要求有序表 A.只能順序存儲(chǔ) B.只能鏈?zhǔn)酱鎯?chǔ) C.可以順序存儲(chǔ)也可以鏈?zhǔn)酱鎯?chǔ) D.任何存儲(chǔ)方式 5.軟件設(shè)計(jì)中模塊劃分應(yīng)遵循的準(zhǔn)則是 A.低耦合低內(nèi)聚 B.高耦合高內(nèi)聚 C.低耦合高內(nèi)聚 D.內(nèi)聚與耦合無(wú)關(guān) 6.下面屬于整數(shù)類(lèi)的實(shí)例是 A.0x518 B.0.518 C."-518" D.518E-2 7.下面屬于白盒測(cè)試方法的是 A.邊界值分析法 B.基本路徑測(cè)試 C.等價(jià)類(lèi)劃分法 D.錯(cuò)誤推測(cè)法 8.設(shè)有一個(gè)商店的數(shù)據(jù)庫(kù),記錄客戶及其購(gòu)物情況,由三個(gè)關(guān)系組成:商品 (商品號(hào),商品名,單價(jià),商品類(lèi)別,供應(yīng)商) ,客戶 (客戶號(hào),姓名,地址,電郵,性別,身份證號(hào)) ,購(gòu)買(mǎi) (客戶號(hào),商品號(hào),購(gòu)買(mǎi)數(shù)量),則關(guān)系購(gòu)買(mǎi)的鍵為 A.客戶號(hào) B.商品號(hào) C.客戶號(hào), 商品號(hào) D.客戶號(hào), 商品號(hào), 購(gòu)買(mǎi)數(shù)量 9.有兩個(gè)關(guān)系R,S如下,由關(guān)系R和S通過(guò)運(yùn)算得到關(guān)系T,則所使用的操作為 A.并 B.自然連接 C.差 D.交 10.在數(shù)據(jù)庫(kù)管理系統(tǒng)提供的數(shù)據(jù)語(yǔ)言中,負(fù)責(zé)數(shù)據(jù)的查詢、增加、刪除和修改等操作的是 A.數(shù)據(jù)定義語(yǔ)言 B.數(shù)據(jù)管理語(yǔ)言 C.數(shù)據(jù)操縱語(yǔ)言 D.數(shù)據(jù)控制語(yǔ)言 11.流程圖是描述算法的很好的工具,一般的流程圖中由幾種基本圖形組成。其中判斷框的圖形是 A.菱形 B.長(zhǎng)方形 C.平行四邊形 D.橢圓型 12.以下敘述錯(cuò)誤的是 A.在進(jìn)行模塊化程序設(shè)計(jì)的時(shí)候,應(yīng)首先完成每個(gè)模塊的編寫(xiě)調(diào)試,再集中考慮主程序中的算法 B.同一程序各模塊可由一組人員同時(shí)進(jìn)行編寫(xiě)調(diào)試,可提高編寫(xiě)程序的效率 C.模塊化的程序設(shè)計(jì)是采用自頂向下、逐步細(xì)化的原則 D.程序的每個(gè)模塊都可通過(guò)三種基本結(jié)構(gòu)實(shí)現(xiàn) 13.關(guān)于C語(yǔ)言的變量名,以下敘述正確的是 A.變量名不可以與關(guān)鍵字同名 B.變量名不可以與預(yù)定義標(biāo)識(shí)符同名 C.變量名必須以字母開(kāi)頭 D.變量名是沒(méi)有長(zhǎng)度限制的 14.有以下程序 #include <stdio.h> main() { int a; a = (int)1.99*3; printf("%d\n", a); } 程序的運(yùn)行結(jié)果是 A.3 B.5 C.6 D.結(jié)果不確定 15.有以下程序 #include <stdio.h> main() { int k=-17; printf("%d,%o,%x\n", k, 1-k, 1-k); } 程序的運(yùn)行結(jié)果是 A.-17,22,12 B.-17,12,22 C.-17,-22,-12 D.17,22,12 16.若有定義:int a; float b; double c; ,程序運(yùn)行時(shí)輸入:a=1,b=2,c=3 <回車(chē)>,能把值1輸入給變量a、值2輸入給變量b、值3輸入給變量c的輸入語(yǔ)句是 A.scanf("a=%d,b=%f,c=%lf", &a,&b,&c); B.scanf("%d%f%lf", &a,&b,&c); C.scanf("a=%d,b=%lf,c=%lf", &a,&b,&c); D.scanf("a=%d,b=%f,c=%f", &a,&b,&c); 17.有以下程序 #include <stdio.h> main() { int a=0,b=0,c=0,d=0; (++a || ++b) ? ++c : ++d; printf("%d,%d,%d,%d\n", a,b,c,d); } 程序的運(yùn)行結(jié)果是 A.1,0,1,0 B.1,1,0,1 C.1,0,0,1 D.1,1,1,0 18.有以下程序 #include <stdio.h> main() { int a,b; for (a=0; a<3; a++) { scanf("%d", &b); switch(b) { case 1: printf("%d,", b++); case 2: printf("%d,", b++); default: printf("%d,", b++); } } printf("\n"); } 執(zhí)行時(shí)輸入:1 2 3 <回車(chē)>,則輸出結(jié)果是 A.1,2,3,2,3,3, B.1,2,3, C.2,3,4,3,4,4, D.1,1,1,2,2,3 19.有以下程序 #include <stdio.h> main() { int a=1,b=1; while(a--) b--; printf("%d,%d\n", a,b); } 程序的運(yùn)行結(jié)果是 A.-1,0 B.0,0 C.-1,-1 D.1,1 20.有以下程序 #include <stdio.h> main() { int a=1, b=0; for(;a<5; a++) { if (a%2==0) break; b += a; } printf("%d \n", b); } 程序的運(yùn)行結(jié)果是 A.1 B.10 C.0 D.4 21.以下能正確輸出字符a 的語(yǔ)句是 A.printf("%s", "a"); B.printf("%s", 'a'); C.printf("%c", "a"); D.printf("%d", 'a'); 22.有以下程序 #include <stdio.h> main() { char c; do { c=getchar(); putchar(c); } while(c != '#'); printf("\n"); } 執(zhí)行時(shí)如輸入:abcdefg##<回車(chē)> , 則輸出結(jié)果是 A.abcdefg# B.abcdefg C.abcdefg## D.## 23.以下關(guān)于C語(yǔ)言函數(shù)參數(shù)傳遞方式的敘述正確的是 A.數(shù)據(jù)只能從實(shí)參單向傳遞給形參 B.數(shù)據(jù)可以在實(shí)參和形參之間雙向傳遞 C.數(shù)據(jù)只能從形參單向傳遞給實(shí)參 D.C語(yǔ)言的函數(shù)參數(shù)既可以從實(shí)參單向傳遞給形參,也可以在實(shí)參和形參之間雙向傳遞,可視情況選擇使用 24.以下關(guān)于指針的敘述正確是 A.所有類(lèi)型的指針變量所占內(nèi)存的大小是一樣的 B.指針變量所占內(nèi)存的大小與其類(lèi)型有關(guān),char型指針變量只占1個(gè)字節(jié),double型指針變量占8個(gè)字節(jié) C.指針變量可直接指向任何類(lèi)型的變量,而不會(huì)出現(xiàn)編譯或運(yùn)行錯(cuò)誤 D.指針變量既可以直接指向結(jié)構(gòu)體,也可直接指向結(jié)構(gòu)體中某個(gè)成員,而不會(huì)出現(xiàn)編譯或運(yùn)行錯(cuò)誤 25.有以下程序 #include <stdio.h> int k=5; void f(int *s) { s=&k; } main() { int m=3,*p=&m; f(p); printf("%d,%d\n", m, *p); } 程序的運(yùn)行結(jié)果是 A.3,3 B.5,5 C.3,5 D.5,3 26.有以下程序 #include <stdio.h> int *f(int *s,int *t) { if (*s < *t) *s=*t; return s; } main() { int i=3, j=5, *p=&i, *q=&j, *r; r=f(p,q); printf("%d,%d,%d,%d,%d\n", i, j, *p, *q, *r); } 程序的運(yùn)行結(jié)果是 A.5,5,5,5,5 B.3,5,5,5,5 C.5,3,3,3,5 D.3,5,3,5,5 27.有以下程序 #include <stdio.h> #define N 4 void fun(int a[][N]) { int b[N][N],i,j; for(i=0; i<N; i++) for(j=0; j<N; j++) b[i][j] = a[N-1-j][i]; for(i=0; i<N; i++) for(j=0; j<N; j++) a[i][j] = b[i][j]; } main() { int x[N][N]={ {1, 2, 3, 4}, {5, 6, 7, 8}, {9,10,11,12}, {13,14,15,16} }, i; fun(x); fun(x); for (i=0;i<N; i++) printf("%d,", x[i][i]); printf("\n"); } 程序的運(yùn)行結(jié)果是 A.16,11,6,1, B.1,6,11,16, C.4,7,10,13, D.13,10,7,4, 28.有以下程序 #include <stdio.h> void fun(int a[ ], int n) { int i,j=0,k=n/2, b[10]; for (i=n/2-1; i>=0; i--) { b[i] =a[j]; b[k] =a[j+1]; j+=2; k++; } for (i=0; i<n; i++) a[i] = b[i]; } main() { int c[10]={10,9,8,7,6,5,4,3,2,1},i ; fun(c, 10); for (i=0;i<10; i++) printf("%d,", c[i]); printf("\n"); } 程序的運(yùn)行結(jié)果是 A.2,4,6,8,10,9,7,5,3,1, B.10,8,6,4,2,1,3,5,7,9, C.1,2,3,4,5,6,7,8,9,10, D.1,3,5,7,9,10,8,6,4,2, 29.有以下程序 #include <stdio.h> #include <string.h> main() { int i; char a[]="How are you!"; for (i=0; a[i]; i++) if (a[i] == ' ') { strcpy(a, &a[i+1]); i=0; } printf("%s\n",a); } 程序的運(yùn)行結(jié)果是 A.you! B.Howareyou! C.areyou! D.are you! 30.有以下程序(其中的strstr()函數(shù)頭部格式為:char *strstr(char *p1, char *p2) 確定p2字符串是否在p1中出現(xiàn),并返回p2第一次出現(xiàn)的字符串首地址) #include <stdio.h> #include <string.h> char *a="you"; char *b="Welcome you to Beijing!"; main() { char *p; p = strstr(b, a) + strlen(a) + 1; printf("%s\n", p); } 程序的運(yùn)行結(jié)果是 A.to Beijing! B.you to Beijing! C.Welcome you to Beijing! D.Beijing! 31.有以下程序 #include <stdio.h> main() { char b[4][10]; int i; for (i=0; i<4; i++) scanf("%s", b[i]); printf("%s%s%s%s\n", b[0],b[1],b[2],b[3]); } 執(zhí)行時(shí)若輸入: Fig flower is red. <回車(chē)>則輸出結(jié)果是 A.Figflowerisred. B.Figfloweris red. C.Figflower is red. D.Fig flower is red. 32.有以下程序 #include <stdio.h> #include <string.h> main() { char w[20], a[5][10]={"abcdef", "ghijkl", "mnopq", "rstuv", "wxyz."}; int i; for (i=0; i<5; i++) w[i]=a[i][ strlen(a[i]) - 1]; w[5]= '\0'; puts(w); } 程序的運(yùn)行結(jié)果是 A.flqv. B.agmrw C.ekpuy D.flqvz 33.有以下程序 #include <stdio.h> void f(int x[], int n) { if ( n> 1) { f(&x[1], n-1); printf("%d,", x[0]); } else printf("%d,", x[0]); } main() { int z[6] = {1,2,3,4,5,6}; f(z,6); printf("\n"); } 程序的運(yùn)行結(jié)果是 A.6,5,4,3,2,1, B.1,1 C.1,1,1,1,1,1, D.1,2,3,4,5,6, 34.有以下程序 #include <stdio.h> int a=2; int f() { static int n; int m; m=n=0; n++; a++; m++; return n+m+a; } main() { int k; for (k=0; k<3; k++) printf("%d,", f( )); printf("\n"); } 程序的運(yùn)行結(jié)果是 A.5,6,7, B.5,7,9, C.5,8,11, D.5,5,5, 35.有以下程序 #include <stdio.h> #define S(x) x*x main() { int k=5, j=2; printf("%d,%d\n", S(k+j+2),S(j+k+2)); } 程序的運(yùn)行結(jié)果是 A.21,18 B.81,81 C.21,21 D.18,18 36.有以下程序 #include <stdio.h> typedef struct stu { char name[10]; char gender; int score; } STU; void f(STU *a, STU *b) { *b = *a; printf("%s,%c,%d,", b->name, b->gender, b->score); } main() { STU a={"Zhao", 'm', 290}, b={"Qian", 'f', 350}; f(&a,&b); printf("%s,%c,%d\n", b.name, b.gender, b.score); } 程序的運(yùn)行結(jié)果是 A.Zhao,m,290,Zhao,m,290 B.Zhao,m,290,Qian,f,350 C.Qian,f,350,Qian,f,350 D.Qian,f,350,Zhao,m,290 37.有以下程序 #include <stdio.h> #include <string.h> typedef struct stu { char name[10]; char gender; int score; } STU; void f(char *name, char gender, int score) { strcpy(name, "Qian"); gender = 'f'; score = 350; } main() { STU a={"Zhao", 'm', 290}, b; b=a; f(b.name,b.gender,b.score); printf("%s,%c,%d,", a.name, a.gender, a.score); printf("%s,%c,%d\n", b.name, b.gender, b.score); } 程序的運(yùn)行結(jié)果是 A.Zhao,m,290,Qian,m,290 B.Zhao,m,290,Zhao,m,290 C.Zhao,m,290,Qian,m,350 D.Zhao,m,290,Qian,f,350 38.若有定義 typedef int T[10]; T *a[20]; 則與上述定義完全等價(jià)的說(shuō)明語(yǔ)句是 A.int *a[20][10]; B.int *a[20]; C.int *a[10]; D.int *a[10][20]; 39.有以下程序 #include <stdio.h> main() { int c,d; c= 13&5; d=10&&5; printf("%d,%d\n", c, d); } 程序的運(yùn)行結(jié)果是 A.5,1 B.1,1 C.18,1 D.13,1 40.有以下程序 #include <stdio.h> main() { FILE *fp; int i, a[6]={1,2,3,4,5,6}, k; fp = fopen("data.dat", "w+b"); fwrite(&a[0], sizeof(int), 1, fp); for (i=1; i<6; i++) { fseek(fp, 0L, 0); fread(&k, sizeof(int), 1, fp); fseek(fp, 0L, 0); a[i] +=k; fwrite(&a[i], sizeof(int), 1, fp); } rewind(fp); fread(&k, sizeof(int), 1, fp); fclose(fp); printf("%d\n", k); } 程序的運(yùn)行結(jié)果是 A.21 B.6 C.123456 D.11 1.B 2.B 3.C 4.A 5.C 6.A 7.B 8.C 9.D 10.C 11.A 12.A 13.A 14.A 15.A 16.A 17.A 18.A 19.A 20.A 21.A 22.A 23.A 24.A 25.A 26.A 27.A 28.A 29.A 30.A 31.A 32.A 33.A 34.A 35.A 36.A 37.A 38.A 39.A 40.A
|