2014年3月全國計算機二級C選擇題考試真題 |
26 1.設數據元素的集合D={ 1,2,3,4,5 },則滿足下列關系R的數據結構中為線性結構的是 A.R={ (1,2), (3,4), (5,1) } B.R={ (1,3), (4,1), (3,2), (5,4) } C.R={ (1,2), (2,3), (4,5) } D.R={ (1,3), (2,4), (3,5) } 2.下列敘述中正確的是 A.鏈表結點中具有兩個指針域的數據結構可以是線性結構,也可以是非線性結構 B.線性表的鏈式存儲結構中,每個結點必須有指向前件和指向后件的兩個指針 C.線性表的鏈式存儲結構中,每個結點只能有一個指向后件的指針 D.線性表的鏈式存儲結構中,葉子結點的指針只能是空 3.一個棧的初始狀態為空,F將元素A,B,C,D,E依次入棧,然后依次退棧三次,并將退棧的三個元素依次入隊(原隊列為空),最后將隊列中的元素全部退出。則元素退隊的順序為 A.ABC B.CBA C.EDC D.CDE 4.某二叉樹的中序序列為DCBAEFG,后序序列為DCBGFEA,則該二叉樹的深度(根結點在第1層)為 A.5 B.4 C.3 D.2 5.軟件生命周期是指 A.軟件產品從提出、實現、使用、維護到停止使用退役的過程 B.軟件的需求分析、設計與實現 C.軟件的開發與管理 D.軟件的實現和維護 6.某系統結構圖如下圖所示 該系統結構圖的深度是 A.1 B.2 C.3 D.4 7.下面屬于應用軟件的是 A.學生成績管理系統 B.UNIX操作系統 C.匯編程序 D.編譯程序 8.將E-R圖轉換為關系模式時,E-R圖中的屬性可以表示為 A.屬性 B.鍵 C.關系 D.域 9.有兩個關系R與S如下,由關系R和S得到關系T,則所使用的操作為 A.并 B.自然連接 C.除法 D.交 10.優化數據庫系統查詢性能的索引設計屬于數據庫設計的 A.需求分析 B.概念設計 C.邏輯設計 D.物理設計 11.結構化程序由順序、選擇、循環三種基本結構組成,以下相關敘述錯誤的是 A.三種基本結構不可以嵌套使用 B.順序結構是按語句在程序中的先后順序逐條執行,沒有分支,沒有轉移 C.選擇結構是根據不同的條件執行不同分支中的語句 D.循環結構是根據條件決定是否重復、重復執行多少次循環體語句 12.以下能正確表述算式 sin(2πr+30°)的C語言表達式是 A.sin(2*3.14*r+3.14*30/180.0) B.sin(2*π*r+ 30 ) C.sin(2*3.14*r+ 30 ) D.sin(2*3.14*r+30*3.14/360.0) 13.設有定義:int x=11,y=12,z=0;,以下表達式值不等于12的是 A.z=(x==y) B.(z=x,y) C.z=(x,y) D.(z,x,y) 14.以下可以將任意一個兩位整數n的個位數與十位數對換的表達式為 A.(n-n/10*10)*10+n/10 B.n-n/10*10+n/10 C.n/10+(n-n/10) D.(n-n/10)*10+(n/10) 15.設有以下程序段 int y; y=rand() % 30+1; 則變量y的取值范圍是 A.0<y≤30 B.0≤y≤30 C.1<y<30 D.1<y≤30 16.以下程序段中,循環次數不超過10的是 A.int i=10; do{ i=i+1;} while(i<0); B.int i=5; do{ i+=1;} while(i>0); C.int i=1; do{ i+=2;} while(i!=10); D.int i=6; do{ i-=2;} while(i!=1); 17.有以下程序 #include <stdio.h> main() { int x; scanf("%d",&x); if(x>10) printf("1"); else if(x>20) printf("2"); else if(x>30) printf("3"); } 若運行時輸入:35<回車>,則輸出結果是 A.1 B.2 C.3 D.123 18.若要實現total=1+2+3+4+5求和,以下程序段錯誤的是 A.int i=1,total=1; while(i<5) { total+=i; i+=1; } B.int i=1,total=0; while(i<=5) { total+=i; i+=1; } C.int i=0,total=0; while(i<5) { i+=1; total+=i; } D.int i=0,total=0; while(i<=5) { total+=i; i+=1; } 19.有以下程序 #include <stdio.h> main() { int i=1,k=0; for( ; i<6 ; ) { switch(i%3) { case 0: k++; case 1: k++; break; case 2: k++; continue; } i+=1; } printf("%d\n",k); } 程序的運行情況是 A.形成無限循環 B.輸出6 C.輸出5 D.輸出4 20.以下不能輸出小寫字母a的選項是 A.printf("%c\n","a"); B.printf("%c\n",'A'+32); C.putchar(97); D.putchar('a'); 21.有以下程序段 char c1,c2,c3; scanf("%c%c%c",&c1,&c2,&c3); 若要給c1、c2、c3分別輸入字母A、B、C,則以下對輸入形式的描述正確的是 A.字母A、B、C之間不能有分隔符 B.字母A、B、C之間可以用空格分隔 C.字母A、B、C之間可以用回車符分隔 D.字母A、B、C之間可以用Tab鍵分隔 22.有以下程序段 scanf("%d%d%d",&a,&b,&c); if(a<b) a==b; if(a<c) a==c; printf("%d\n",a); 該程序段的功能是 A.輸出a的原始值 B.輸出a、b、c中的最大值 C.輸出a、b、c中的最小值 D.輸出a、b、c中值相等的數值 23.以下程序的功能是:通過調用calc函數,把所求得的兩數之和值放入變量add中,并在主函數中輸出。 #include <stdio.h> void calc(float x,float y, float *sum) { ________ = x+y; } main() { float x,y,add; scanf("%f%f",&x,&y); calc(x,y,&add); printf("x+y=%f\n",add); } calc函數中下劃線處應填入的是 A.*sum B.sum C.&sum D.add 24.有以下程序 #include <stdio.h> main() { char a[4][4]={' '}; int i,j; for(i=0;i<4; i++) { a[i][0]=a[i][3]='#'; for(j=1; j<3; j++) { a[0][j]=a[3][j]='#'; if((i!=0)&&(i!=3)) a[i][j]='o'; } } for(i=1;i<3; i++) { for(j=0; j<4;j++) printf("%2c",a[i][j]); printf("\n"); } } 程序的運行結果是 A.# o o # # o o # B.# # # # # o o # C.# o o # # # # # D.# # # # # # # # 25.設有函數定義:void sub(int k,char ch){ … } 則以下對函數sub的調用語句中,正確的是 A.sub(1,97); B.sub(2,'97'); C.n=sub(3,'a'); D.sub(4,"a"); 26.有以下程序 #include <stdio.h> void fun(int *x,int s,int n) { int i; for(i=s; i>=n; i--) *(x+i+3) = *(x+i); } main() { int m[]={0,1,2,3,4,5,6,7,8,9},k; fun(m,10-4,3); for(k=0; k<10;k++) printf("%d",m[k]); } 程序的運行結果是 A.0123453456 B.0123456345 C.0123456666 D.0123454569 27.若有定義語句:int m[ ][3]={1,2,3,4,5,6,7};,則與該語句等價的是 A.int m[ ][3]={{1,2,3},{4,5,6},{7}}; B.int m[ ][3]={{1,2},{3, 4 },{5, 6,7}}; C.int m[ ][3]={{1,2,3},{4,5},{6,7}}; D.int m[ ][3]={{1},{2,3,4},{5,6,7}}; 28.設有以下說明和語句:int x[3][4],(*p)[4]; p=a;,則與表達式*(*p+2) 等價的選項是 A.a[0][2] B.*(a+2)[0] C.(*a+2)[0] D.a[2][0] 29.以下不能將鍵盤輸入的字符串:This is a string<回車>讀入到str中的程序段是 A.char str[80]; scanf("%s",str) ; B.char str[80]; int i=0; while((str[i++]=getchar())!='\n'); str[i]=0; C.char str[80]; gets(str); D.char str[80], *ps=str; do{ scanf("%c",ps); } while(*ps++ !='\n'); *(ps)=0; 30.有以下程序 #include <stdio.h> main() { char s[10]="verygood", *ps=s; ps+=4; ps="nice"; puts(s); } 程序的運行結果是 A.verygood B.verynice C.nicegood D.nice 31.有以下程序 #include <stdio.h> int fun(char *s) { char *p=s; while( *p != '\0') p++; return(p-s); } main() { char *p="01234"; printf("%d\n",fun(p)); } 程序的運行結果是 A.5 B.6 C.4 D.3 32.有以下程序 #include <stdio.h> main() { int findmax(int,int,int),m; ┋ m=findmax(a,b,c); ┋ } int findmax(int x,int y,int z) { … } 則以下敘述正確的是 A.在main函數中聲明了findmax函數 B.在main函數中定義了findmax函數 C.在main函數中兩次調用了findmax函數 D.在main函數內、外重復定義了findmax函數 33.有以下程序 #include <stdio.h> void fun(int n) { int i; if((i=n/10)!=0) fun(i); putchar( n%10+'0'); } main() { fun(256); } 程序運行后的輸出結果是 A.256 B.652 C.2560 D.52 34.有以下程序 #include <stdio.h> #include <stdlib.h> void fun(int *p1, int *s) { int *t; t=(int *)malloc(2 * sizeof(int)); *t=*p1 + *p1++; *(t+1)=*p1+ *p1; s=t; } main() { int a[2]={1,2},b[2]={0}; fun(a,b); printf("%d,%d\n",b[0],b[1]); } 程序運行后的輸出結果是 A.0,0 B.2,6 C.2,4 D.1,2 35.有以下程序 #include <stdio.h> #define FNA(x) x*x #define FNB(x) x+x main() { int a=2,b=4; printf("%d,%d\n",FNA(FNB(a)),FNB(FNA(b))); } 程序運行后的輸出結果是 A.8,32 B.16,32 C.8,16 D.16,16 36.設有如下語句 typedef struct Date{ int year; int month; int day; } DATE; 則以下敘述中錯誤的是 A.DATE是用戶定義的結構體變量 B.struct Date是用戶定義的結構體類型 C.DATE是用戶說明的新結構體類型名 D.struct是結構體類型的關鍵字 37.設有如下定義 struct{ int n; char c; } a[2],*p=a; 則以下錯誤引用結構體成員n的是 A.(*a)->n B.a[0].n C.p->n D.(*p).n 38.有以下程序 #include <stdio.h> #include <string.h> typedef struct { char name[10]; char sex; int age; } STU; void fun(STU t) { strcpy(t.name,"Tong"); t.age++; } main() { STU s[2]={"Hua",'m',18,"Qin",'f',19}; fun(s[1]); printf("%s,%d,%s,%d\n",s[0].name,s[0].age,s[1].name ,s[1].age ); } 程序運行后的輸出結果是 A.Hua,18,Qin,19 B.Hua,18,Tong,20 C.Tong,19,Qin,19 D.Hua,19,Tong,19 39.設有定義:int a=64,b=8;,則表達式(a&b)||(a&&b)和(a|b)&&(a||b)的值分別為 A.1和1 B.1和0 C.0和1 D.0和0 40.有以下程序段 FILE *fp; if( (fp=fopen("test.txt","w")) == NULL) { printf("不能打開文件!"); exit(0);} else printf("成功打開文件!"); 若文件test.txt已存在,則以下敘述正確的是 A.程序運行后,文件test.txt中的原有內容將全部消失 B.程序運行時,會因文件存在而出錯 C.對文件test.txt進行寫操作后,可以隨機進行讀取 D.對文件test.txt寫入的內容總是被添加到文件尾部 1.B 2.A 3.C 4.B 5.A 6.C 7.A 8.A 9.C 10.D 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
|