![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
最新真實全國二級C選擇題真題第1套 |
1.下列敘述中正確的是 A.循環(huán)隊列是順序存儲結(jié)構(gòu) B.循環(huán)隊列是鏈?zhǔn)酱鎯Y(jié)構(gòu) C.循環(huán)隊列是非線性結(jié)構(gòu) D.循環(huán)隊列的插入運算不會發(fā)生溢出現(xiàn)象 2.下列敘述中正確的是 A.所有數(shù)據(jù)結(jié)構(gòu)必須有根結(jié)點 B.所有數(shù)據(jù)結(jié)構(gòu)必須有終端結(jié)點(即葉子結(jié)點) C.只有一個根結(jié)點,且只有一個葉子結(jié)點的數(shù)據(jù)結(jié)構(gòu)一定是線性結(jié)構(gòu) D.沒有根結(jié)點或沒有葉子結(jié)點的數(shù)據(jù)結(jié)構(gòu)一定是非線性結(jié)構(gòu) 3.下列關(guān)于算法的描述中錯誤的是 A.算法強調(diào)動態(tài)的執(zhí)行過程,不同于靜態(tài)的計算公式 B.算法必須能在有限個步驟之后終止 C.算法設(shè)計必須考慮算法的復(fù)雜度 D.算法的優(yōu)劣取決于運行算法程序的環(huán)境 4.在線性表的順序存儲結(jié)構(gòu)中,其存儲空間連續(xù),各個元素所占的字節(jié)數(shù) A.相同,元素的存儲順序與邏輯順序一致 B.相同,但其元素的存儲順序可以與邏輯順序不一致 C.不同,但元素的存儲順序與邏輯順序一致 D.不同,且其元素的存儲順序可以與邏輯順序不一致 5. A.ABDEGCFH B.DBGEAFHC C.DGEBHFCA D.ABCDEFGH 6.下面不屬于軟件需求分析階段工作的是 A.需求獲取 B.需求計劃 C.需求分析 D.需求評審 7.下面不屬于黑盒測試方法的是 A.邊界值分析法 B.基本路徑測試 C.等價類劃分法 D.錯誤推測法 8.在數(shù)據(jù)庫系統(tǒng)中,數(shù)據(jù)模型包括概念模型、邏輯模型和 A.物理模型 B.空間模型 C.時間模型 D.數(shù)據(jù)模型 9.若實體A和B是一對一的聯(lián)系,實體B和C是多對一的聯(lián)系,則實體A和C的聯(lián)系是 A.多對一 B.一對多 C.一對一 D.多對多 10.某二叉樹中共有935個結(jié)點,其中葉子結(jié)點有435個,則該二叉樹中度為2的結(jié)點個數(shù)為 A.64 B.66 C.436 D.434 11.C語言整數(shù)不包括 A.無符號整數(shù) B. 正整數(shù) C.負(fù)整數(shù) D.帶小數(shù)點的整數(shù) 12.設(shè)a,b,c是整型變量,且已正確賦初值,以下選項中錯誤的賦值語句是 A.a = 2 = (b = 9) = 1; B.a = (b = 3) * c; C. a = b = c / 10; D.a = 1 % (b = c = 2); 13.以下選項中,合法的實數(shù)是 A.1.5E2 B. E1.1 C.2.10E D.1.9E1.4 14.關(guān)于程序設(shè)計基本概念,以下敘述錯誤的是 A.用任何一種計算機(jī)高級語言都可以把算法轉(zhuǎn)換為程序 B.高級語言都有與之對應(yīng)的編譯程序或解釋程序 C.計算機(jī)可以直接執(zhí)行由任意高級語言編寫的程序 D.結(jié)構(gòu)化算法可以解決任何復(fù)雜的問題 15.以下不能用于實型數(shù)據(jù)的運算符是 A. / B. % C.* D. + 16.C語言中,最基本的數(shù)據(jù)類型包括 A.整型、字符型、數(shù)組 B.整型、實型、字符型 C.整型、實型、邏輯型 D.整型、實型、結(jié)構(gòu)體 17.若有定義:int a=0,b=0,c=0,d=0; ,有C語言表達(dá)式 (a++ && b++) ? c++ : d++,以下關(guān)于其執(zhí)行順序的敘述正確是 A.先執(zhí)行a++,表達(dá)式a++的值為0,由此即可確定(a++&&b++)的值為0,因此執(zhí)行d++ B.先執(zhí)行a++,表達(dá)式a++的值為0;再執(zhí)行b++,表達(dá)式b++的值為0,由此可確定(a++ && b++)值為0,因此執(zhí)行d++ C.先執(zhí)行a++,表確定(a++ && b++)值為1,因此執(zhí)行c++達(dá)式a++的值為1;再執(zhí)行b++,表達(dá)式b++的值為1,由此可 D.先執(zhí)行b++,表達(dá)式b++的值為1;再執(zhí)行a++,表達(dá)式a++的值為1,由此可確定(a++ && b++)值為1,因此執(zhí)行c++ 18. 有以下程序 #include <stdio.h> main( ) { char ch = 'B'; while (ch < 'E') { printf("%d", ch - 'A'); ch++; } printf("\n"); } 程序運行后的輸出結(jié)果是 A.123 B. ABC C.abc D.012 19.以下關(guān)于指針的敘述,錯誤的是 A.一個指針變量可以通過不同的方式獲得一個確定的地址值 B.可以通過對指針變量加上或減去一個整數(shù)來移動指針 C. 在關(guān)系表達(dá)式中可以對兩個指針變量進(jìn)行比較 D. 兩個基類型相同的指針變量不能指向同一個對象 20. 對于函數(shù)聲明 void fun(float array[], int *ptr); 下敘述正確的是 A.調(diào)用函數(shù)時,array數(shù)組的元素和ptr都是按值傳送 B.函數(shù)聲明有語法錯誤,參數(shù) array 缺少數(shù)組大小定義 C. 調(diào)用函數(shù)時,array數(shù)組中將存儲從實參中復(fù)制來的元素值 D.函數(shù)參數(shù) array, ptr 都是指針變量 21. 有以下程序 #include <stdio.h> main( ) { int i, k; int array[4][2] = {{1,0}, {0}, {2,9}, {3}}; for (i=0; i<2; i++) for (k=0; k<3; k++) { printf("%d,", array[k][i]); } printf("\n"); } 程序運行后的輸出結(jié)果是 A.1,0,2,0,0,9, B. 1,2,4,9,6,0, C.2,9,0,0,1,4, D.1,2,0,1,4,1, 22. 要求定義一個具有6個元素的int型一維數(shù)組,以下選項中錯誤的是 A.int a[2*3] = {0}; B.int N = 6, a[N]; C. #define N 3 int a[N+N]; D.int a[] = {1,2,3,4,5,6}; 23.有以下程序 #include <stdio.h> main( ) { char b[3][10],c; int i; for (i=0; i<2; i++) scanf("%s", b[i]); i=0; while ((c=getchar())!='\n') b[2][i++] = c; b[2][i] = '\0'; printf("%s%s%s\n", b[0], b[1], b[2]); } 執(zhí)行時若輸入以下字符串: Peach flower is pink.<回車> 則輸出結(jié)果是 A.Peach flower is pink. B.Peachfloweris pink. C.Peachflowerispink. D.Peachflower is pink. 24. 有以下程序 #include <stdio.h> main( ) { char w[20], a[5][10] = {"abcdef", "ghijkl", "mnopq", "rstuv", "wxyz"}; int i, j; for (i=0; i<5; i++) { j = 0; while (a[i][j] != '\0') j++; w[i] = a[i][j-2]; } w[5] = '\0'; puts(w); } 程序運行后的輸出結(jié)果是 A.ekpuy B.agmrw C.djotx D.flqvz 25. 有以下程序 #include <stdio.h> #include <string.h> main( ) { char name[9] = "c##line"; char* str = name; printf("%d,%d,%d,%d\n", sizeof(name), strlen(name), sizeof(str), strlen(str)); } 程序運行后的輸出結(jié)果是 A. 10,8,5,8 B.8,6,9,6 C.8,6,3,6 D. 9,7,4,7 26.有以下程序 #include <stdio.h> main( ) { int password; char *p, old_str[10] = "wind"; scanf("%d", &password); p = old_str; while (*p) { printf("#%c", *p + password); p++; } printf("\n"); } 程序運行時,從鍵盤輸入2<回車>,輸出結(jié)果是 A.#y#k#p#f B.#wi#nd# C.#wi#nd# D.#2222# 27.若有定義:char *ps[ ]={"aa","bb","cc","dd"};,則以下敘述正確的是 A.ps[0]是字符串"aa" B.*ps[0]是字符串"aa"的首地址 C.ps[0]是字符串"aa"的首地址 D.*ps[0]是字符串"aa" 28.若有定義: char *ps[ ] = {"aa", "bb", "cc", "dd"};, 則以下敘述正確的是 A.*ps[0]是字符'a' B.*ps[0]是字符串"aa" C. ps[0]是字符'a' D. ps是字符串"aa" 29.以下合法的轉(zhuǎn)義字符是 A. '\0X41' B.'\0x41' C. '\X41' D.'\x41' 30. 在源程序的開始處加上 #include <stdio.h> 進(jìn)行文件引用的原因,以下敘述正確的是 A. stdio.h文件中包含標(biāo)準(zhǔn)輸入輸出函數(shù)的函數(shù)說明,通過引用此文件以便能正確使用printf、scanf等函數(shù) B.將stdio.h中標(biāo)準(zhǔn)輸入輸出函數(shù)鏈接到編譯生成的可執(zhí)行文件中,以便能正確運行 C.將stdio.h中標(biāo)準(zhǔn)輸入輸出函數(shù)的源程序插入到引用處,以便進(jìn)行編譯鏈接 D.將stdio.h中標(biāo)準(zhǔn)輸入輸出函數(shù)的源程序插入到引用處,以便進(jìn)行編譯鏈接 31. 設(shè)有定義:int a[10]={0,1,2,3,4,5,6,7,8,9},*p=a,i;,若0≤i≤9,則對a數(shù)組元素的引用錯誤的是 A.*(&a[i]) B.a[10] C. p[i] D.a[p-a] 32. 有以下程序 #include <stdio.h> main( ) { int c,d; c = (13>>1)|1; d = (13>1)||1; printf("%d,%d\n", c, d); } 程序運行后的輸出結(jié)果是 A. 7,1 B.1,1 C.6,1 D.7,2 33. 有以下程序 #include <stdio.h> #include <string.h> struct S { char name[10]; }; main() { struct S s1, s2; strcpy(s1.name, "XXX"); strcpy(s2.name, "="); s1 = s2; printf("%s\n", s1.name); } 程序運行后的輸出結(jié)果是 A. X= B.XXX C. =XX D.= 34.有以下程序 #include <stdio.h> main( ) { int i, array[6] = {1, 5, 0, 4}; for (i=0; i<5; i++) printf("%d,", array[i] & 4); printf("\n"); } 程序運行后的輸出結(jié)果是 A.0,4,0,4,0, B.1,5,0,4,0, C. 1,5,5,4,0, D.1,2,1,2,0 35. 有以下程序 #include <stdio.h> #include <stdlib.h> void fun(int **s, int x[2][3]) { **s=*(x[1]+1); } main() { int a[2][3] = {1,2,3,4,5,6}, *p; p = (int*)malloc(sizeof(int)); fun(&p,a); printf("%d\n",*p); } 程序的運行結(jié)果是 A.5 B.2 C.6 D.3 36. 有如下定義: struct { int num; char name[10]; struct { int y; int m; int d;} birth; } s,*ps=&s; 以下對內(nèi)嵌結(jié)構(gòu)體成員的引用形式錯誤的是 A. (*ps).birth.y B.s.birth.y C. ps->birth.y D.ps.birth.y 37.有以下程序 #include <stdio.h> main( ) { FILE *fp; int i, a[6] = {1,2,3,4,5,6}, k; fp = fopen("data.dat", "w+"); fprintf(fp, "%d\n", a[0]); for (i=1; i<6; i++) { rewind(fp); fprintf(fp, "%d\n", a[i]); } rewind(fp); fscanf(fp, "%d", &k); fclose(fp); printf("%d\n", k); } 程序運行后的輸出結(jié)果是 A. 6 B.21 C. 123456 D. 654321 38. 以下程序段中,與其他三個功能不同的程序段是 A.s=0; for(i=1; i<=10; i++) {s+=i;} B. s=0,i=1; for( ; i<=10; ) {s+=i,i++;} C. s=0;i=1; for( ; ; ) {s+=i; i++; if(i<=10) break;} D. for(s=0,i=1; i<=10; s+=i,i++) ; 39.設(shè)有定義:int a=0,b=1;,以下表達(dá)式中,會產(chǎn)生"短路"現(xiàn)象,致使變量b的值不變的是 A.a++ || ++b B.a++ && b++ C. a++ && b++ D.+a || ++b 40.關(guān)于地址和指針,以下說法正確的是 A.通過強制類型轉(zhuǎn)換可以將一種類型的指針變量賦值給另一種類型的指針變量 B.可以取一個常數(shù)的地址賦值給同類型的指針變量 C.可以取一個表達(dá)式的地址賦值給同類型的指針變量 D.可以取一個指針變量的地址賦值給基類型相同的指針變量 1.A 2.D 3.D 4.A 5.B 6.B 7.B 8.A 9.A 10.D 11.D 12.A 13.A 14.C 15.B 16.B 17.A 18.A 19.D 20.D 21.A 22.B 23.D 24.A 25.D 26.A 27.C 28.A 29.D 30.A 31.B 32.A 33.D 34.A 35.A 36.D 37.A 38.C 39.B 40.A |