2014年9月全國計算機二級C選擇第1套 |
32
1.下列敘述中正確的是 A.循環隊列是順序存儲結構 B.循環隊列是鏈式存儲結構 C.循環隊列是非線性結構 D.循環隊列的插入運算不會發生溢出現象 2.下列敘述中正確的是 A.所有數據結構必須有根結點 B.所有數據結構必須有終端結點(即葉子結點) C.只有一個根結點,且只有一個葉子結點的數據結構一定是線性結構 D.沒有根結點或沒有葉子結點的數據結構一定是非線性結構 3.下列關于算法的描述中錯誤的是 A.算法強調動態的執行過程,不同于靜態的計算公式 B.算法必須能在有限個步驟之后終止 C.算法設計必須考慮算法的復雜度 D.算法的優劣取決于運行算法程序的環境 4.在線性表的順序存儲結構中,其存儲空間連續,各個元素所占的字節數 A.相同,元素的存儲順序與邏輯順序一致 B.相同,但其元素的存儲順序可以與邏輯順序不一致 C.不同,但元素的存儲順序與邏輯順序一致 D.不同,且其元素的存儲順序可以與邏輯順序不一致 5. A.ABDEGCFH B.DBGEAFHC C.DGEBHFCA D.ABCDEFGH 6.下面不屬于軟件需求分析階段工作的是 A.需求獲取 B.需求計劃 C.需求分析 D.需求評審 7.下面不屬于黑盒測試方法的是 A.邊界值分析法 B.基本路徑測試 C.等價類劃分法 D.錯誤推測法 8.在數據庫系統中,數據模型包括概念模型、邏輯模型和 A.物理模型 B.空間模型 C.時間模型 D.數據模型 9.若實體A和B是一對一的聯系,實體B和C是多對一的聯系,則實體A和C的聯系是 A.多對一 B.一對多 C.一對一 D.多對多 10.某二叉樹中共有935個結點,其中葉子結點有435個,則該二叉樹中度為2的結點個數為 A.64 B.66 C.436 D.434 11.C語言整數不包括 A.無符號整數 B. 正整數 C.負整數 D.帶小數點的整數 12.設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.以下選項中,合法的實數是 A.1.5E2 B. E1.1 C.2.10E D.1.9E1.4 14.關于程序設計基本概念,以下敘述錯誤的是 A.用任何一種計算機高級語言都可以把算法轉換為程序 B.高級語言都有與之對應的編譯程序或解釋程序 C.計算機可以直接執行由任意高級語言編寫的程序 D.結構化算法可以解決任何復雜的問題 15.以下不能用于實型數據的運算符是 A. / B. % C.* D. + 16.C語言中,最基本的數據類型包括 A.整型、字符型、數組 B.整型、實型、字符型 C.整型、實型、邏輯型 D.整型、實型、結構體 17.若有定義:int a=0,b=0,c=0,d=0; ,有C語言表達式 (a++ && b++) ? c++ : d++,以下關于其執行順序的敘述正確是 A.先執行a++,表達式a++的值為0,由此即可確定(a++&&b++)的值為0,因此執行d++ B.先執行a++,表達式a++的值為0;再執行b++,表達式b++的值為0,由此可確定(a++ && b++)值為0,因此執行d++ C.先執行a++,表確定(a++ && b++)值為1,因此執行c++達式a++的值為1;再執行b++,表達式b++的值為1,由此可 D.先執行b++,表達式b++的值為1;再執行a++,表達式a++的值為1,由此可確定(a++ && b++)值為1,因此執行c++ 18. 有以下程序 #include <stdio.h> main( ) { char ch = 'B'; while (ch < 'E') { printf("%d", ch - 'A'); ch++; } printf("\n"); } 程序運行后的輸出結果是 A.123 B. ABC C.abc D.012 19.以下關于指針的敘述,錯誤的是 A.一個指針變量可以通過不同的方式獲得一個確定的地址值 B.可以通過對指針變量加上或減去一個整數來移動指針 C. 在關系表達式中可以對兩個指針變量進行比較 D. 兩個基類型相同的指針變量不能指向同一個對象 20. 對于函數聲明 void fun(float array[], int *ptr); 下敘述正確的是 A.調用函數時,array數組的元素和ptr都是按值傳送 B.函數聲明有語法錯誤,參數 array 缺少數組大小定義 C. 調用函數時,array數組中將存儲從實參中復制來的元素值 D.函數參數 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"); } 程序運行后的輸出結果是 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型一維數組,以下選項中錯誤的是 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]); } 執行時若輸入以下字符串: Peach flower is pink.<回車> 則輸出結果是 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); } 程序運行后的輸出結果是 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)); } 程序運行后的輸出結果是 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<回車>,輸出結果是 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.以下合法的轉義字符是 A. '\0X41' B.'\0x41' C. '\X41' D.'\x41' 30. 在源程序的開始處加上 #include <stdio.h> 進行文件引用的原因,以下敘述正確的是 A. stdio.h文件中包含標準輸入輸出函數的函數說明,通過引用此文件以便能正確使用printf、scanf等函數 B.將stdio.h中標準輸入輸出函數鏈接到編譯生成的可執行文件中,以便能正確運行 C.將stdio.h中標準輸入輸出函數的源程序插入到引用處,以便進行編譯鏈接 D.將stdio.h中標準輸入輸出函數的源程序插入到引用處,以便進行編譯鏈接 31. 設有定義:int a[10]={0,1,2,3,4,5,6,7,8,9},*p=a,i;,若0≤i≤9,則對a數組元素的引用錯誤的是 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); } 程序運行后的輸出結果是 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); } 程序運行后的輸出結果是 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"); } 程序運行后的輸出結果是 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); } 程序的運行結果是 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; 以下對內嵌結構體成員的引用形式錯誤的是 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); } 程序運行后的輸出結果是 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.設有定義:int a=0,b=1;,以下表達式中,會產生"短路"現象,致使變量b的值不變的是 A.a++ || ++b B.a++ && b++ C. a++ && b++ D.+a || ++b 40.關于地址和指針,以下說法正確的是 A.通過強制類型轉換可以將一種類型的指針變量賦值給另一種類型的指針變量 B.可以取一個常數的地址賦值給同類型的指針變量 C.可以取一個表達式的地址賦值給同類型的指針變量 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
|