![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
2012年3月全國計算機二級C考試筆試真題 |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||
2012年3月全國計算機等級考試二級筆試試卷 C語言程序設計 (考試時間90分鐘,滿分100分) 一、選擇題((1)—(10)、(21)—(40)每題2分,(11)—(20)每題1分,共70分) 下列各題A)、B)、C)、D)四個選項中,只有一個選項是正確的。請將正確選項填涂在答題卡相應位置上,答在試卷上不得分。 (1)下列敘述中正確的是 A)循環(huán)隊列是隊列的一種順序存儲結(jié)構(gòu) B)循環(huán)隊列是隊列的一種鏈式存儲結(jié)構(gòu) C)循環(huán)隊列是非線性結(jié)構(gòu) D)循環(huán)隊列是一種邏輯結(jié)構(gòu) (2)下列敘述中正確的是 A)棧是一種先進先出的線性表 B)隊列是一種后進先出的線性表 C)棧與隊列都是非線性結(jié)構(gòu) D)以上三種說法都不對 (3)一棵二叉樹共有25個結(jié)點,其中5個是葉子結(jié)點,則度為1的結(jié)點數(shù)為 A)4 B)6 C)10 D)16 (4)在下列模式中,能夠給出數(shù)據(jù)庫物理存儲結(jié)構(gòu)與物理存取方法的是 A) 內(nèi)模式 B)外模式 C) 概念模式 D)邏輯模式 (5)在滿足實體完整性約束的條件下 A)一個關系中可以沒有候選關鍵字 B)一個關系中只能有一個候選關鍵字 C)一個關系中必須有多個候選關鍵字 D)一個關系中應該有一個或多個候選關鍵字 (6)有三個關系R、S和T如下:
則由關系R和S得到關系T的操作是 A)自然連接 B)并 C)差 D)交 (7)軟件生命周期的活動中不包括 A)軟件維護 B)需求分析 C)市場調(diào)研 D)軟件測試 (8)下面不屬于需求分析階段任務的是 A)確定軟件系統(tǒng)的性能需求 B)確定軟件系統(tǒng)的功能需求 C)指定軟件集成測試計劃 D)需求規(guī)格說明書評審 (9)在黑盒測試方法中,設計測試用例的主要根據(jù)是 A)程序外部功能 B)程序數(shù)據(jù)結(jié)構(gòu) C)程序流程圖 D)程序內(nèi)部結(jié)構(gòu) (10)在軟件設計中不使用的工具是 A)系統(tǒng)結(jié)構(gòu)圖 B)程序流程圖 C)PAD圖 D)數(shù)據(jù)流圖(DFD圖) (11)針對簡單程序設計,以下敘述的實施步驟順序正確的是 A)確定算法和數(shù)據(jù)結(jié)構(gòu)、編碼、調(diào)試、整理文檔 B)編碼、確定算法和數(shù)據(jù)結(jié)構(gòu)、調(diào)試、整理文檔 C)整理文檔、確定算法和數(shù)據(jù)結(jié)構(gòu)、編碼、調(diào)試 D)確定算法和數(shù)據(jù)結(jié)構(gòu)、調(diào)試、編碼、整理文檔 (12)關于C語言中數(shù)的表示,以下敘述中正確的是 A)只有整型數(shù)在允許范圍內(nèi)能精確無誤的表示,實型數(shù)會有誤差 B)只要在允許范圍內(nèi)整型數(shù)和實型數(shù)都能精確的表示 C)只有實型數(shù)在允許范圍內(nèi)能精確無誤的表示,整型數(shù)會有誤差 D)只有用八進制表示的數(shù)才不會有誤差 (13)以下關于算法的敘述中錯誤的是 A)算法可以用偽代碼、流程圖等多種形式來描述 B)一個正確的算法必須有輸入 C)一個正確的算法必須有輸出 D)用流程圖描述的算法可以用任何一種計算機高級語言編寫成程序代碼 (14)以下敘述中錯誤的是 A)一個C程序中可以包含多個不同名的函數(shù) B)一個C程序只能有一個主函數(shù) C)C程序在書寫時,有嚴格的縮進要求,否則不能編譯通過 D)C程序中主函數(shù)必須用main作為函數(shù)名 (15)設有以下語句 char ch1, ch2; scanf("%c%c",&ch1,&ch2); 若要為變量ch1和ch2分別輸入字符A和B,正確的輸入形式應該是 A)A和B之間用逗號間隔 B)A和B之間不能有任何間隔符 C)A和B之間可以用回車間隔 D)A和B之間用空格間隔 (16)以下選項中非法的字符常量是 A)'\101' B)'\65' C)'\xff' D)'\019' (17)有以下程序 # include <stdio.h> main( ) { int a=0, b=0, c=0; c=(a-=a-5); (a=b,b+=4); printf("%d,%d,%d\n",a,b,c); } 程序運行后的輸出結(jié)果是 A)0,4,5 B)4,4,5 C)4,4,4 D)0,0,0 (18)設變量均已正確定義并賦值,以下與其他三組輸出結(jié)果不同的一組語句是 A)x++; printf("%d\n",x); B)n=++x; printf("%d\n",n); C)++x; printf("%d\n",x); D)n=x++; printf("%d\n",n); (19)以下選項中,能表示邏輯值“假”的是 A)1 B)0.000001 C)0 D)100.0 (20)有以下程序 # include <stdio.h> main( ) { int a; scanf("%d",&a); if(a++<9) printf("%d\n",a); else printf("%d\n",a--); } 程序運行時從鍵盤輸入9<回車>,則輸出結(jié)果是 A)10 B)11 C)9 D)8 (20)有以下程序 # include <stdio.h> main( ) { int a; scanf("%d",&a); if( a++<9 ) printf( "%d\n",a ); else prinft( "%d\n",a-- ); } 程序運行時從鍵盤輸入9<回車>,則輸出結(jié)果是 A)10 B)11 C)9 D)8 (21)有以下程序 # include <stdio.h> main( ) { int s=0, n; for( n=0; n<3; n++ ) { switch(s) { case 0: case 1: s+=1; case 2: s+=2; break; case 3: s+=3; default: s+=4; } printf("%d,",s); } } 程序運行后的輸出結(jié)果是 A)1,2,4, B)1,3,6, C)3,10,14, D)3,6,10, (22)若k是int類型變量,且有以下for語句 for (k=-1; k<0; k++ ) printf("****\n"); 下面關于語句執(zhí)行情況的敘述中正確的是 A)循環(huán)體執(zhí)行一次 B)循環(huán)體執(zhí)行兩次 C)循環(huán)體一次也不執(zhí)行 D)構(gòu)成無限循環(huán) (23)有以下程序 # include <stdio.h> main( ) { char a,b,c; b='1'; c='A'; for (a=0; a<6; a++) { if(a%2) putchar(b+a); else putchar(c+a); } } 程序運行后的輸出結(jié)果是 A)1B3D (24)設有如下定義語句 int m={2,4,6,8,10}, *k=m; 以下選項中,表達式的值為6的是 A)*(k+2) B)k+2 C)*k+2 D)*k+=2 (25)fun函數(shù)的功能是:通過鍵盤輸入給x所指的整型數(shù)組所有元素賦值。在下劃線處應 填寫的是 # include <stdio.h> #define N 5 void fun(int x[N]) { int m; for (m=N-1; m>=0; m-- ) scanf( "%d", _____ ); } A)&x[++m] B)&x[m+1] C)x+(m++) D)x+m (26)若有函數(shù) void fun(double a, int *n) { ...... } 以下敘述中正確的是 A)調(diào)用fun函數(shù)時只有數(shù)組執(zhí)行按值傳送,其他實參和形參之間執(zhí)行按地址傳送 B)形參a和n都是指針變量 C)形參a是一個數(shù)組名,n是指針變量 D)調(diào)用fun函數(shù)時將把double型實參數(shù)組元素一一對應地傳送給形參a數(shù)組 (27)有以下程序 # include <stdio.h> main( ) { int a,b,k,m,*p1,*p2; k=1, m=8; p1=&k, p2=&m; a=*p1-m; b=*p1+*p2+6; printf( "%d ",a ); printf( "%d\n",b ); } 編譯時編譯器提示錯誤信息,你認為出錯的語句是 A)a=/*p1-m B)b=*p1+*p2+6; C)k=1,m=8; D)p1=&k,p2=&m; (28)以下選項中有語法錯誤的是 A)char *str[ ] = {"guest"}; B)char str[ ][10] = {"guest"}; C)char *str[3]; str[1]="guest"; D)char str[3][10]; str[1]="guest"; (29)avg函數(shù)的功能是求整型數(shù)組中的前若干個元素的平均值,設數(shù)組元素個數(shù)最多不超過10,則下列函數(shù)說明語句錯誤的是 A)int avg( int *a, int n ); B)int avg( int a[10], int n ); C)int avg( int a, int n ); D)int avg( int a, int n ); (30)有以下程序 # include <stdio.h> # include <string.h> main( ) { printf( "%d\n",strlen("ATS\n012\1")); } 程序運行后的輸出結(jié)果是 A)3 B)8 C)4 D)9 (31)有以下程序 # include <stdio.h> main( ) { char a[20], b[20], c[20]; scanf( "%s%s" ,a,b ); gets(c); printf("%s%s%s\n",a,b,c); } 程序運行時從第一列開始輸入: This is a cat!<回車> 則輸出結(jié)果是 A)Thisisacat! B)Thisis a C)thisis a cat! D)Thisisa cat! (32)有以下程序 # include <stdio.h> void fun( char c ) { if (c>'x') fun( c-1 ); printf( "%c%",c); } main( ) { fun('z'); } 程序運行后的輸出結(jié)果是 A)xyz B)wxyz C)zyxw D)zyx (33)有以下程序 # include <stdio.h> void func( int n ) { int i; for (i=0; i<=n; i++) printf("*"); printf("#"); } main( ) { func( 3 ); printf("????"); func(4); printf("\n"); } 程序運行后的輸出結(jié)果是 A)****#????***# B)***#????****# C)**#????*****# D)****#????*****# (34)有以下程序 # include <stdio.h> void fun( int *s ) { static int j=0; do { s[j] = s[j] + s[j+1]; } while( ++j < 2 ); } main( ) { int k,a[10]={1,2,3,4,5}; for( k=1; k<3; k++) fun(a); for( k=0; k<5; k++) printf("%d", a[ k ] ); printf("\n" ); } 程序運行后的輸出結(jié)果是 A)12345 B)23445 C)34756 D)35745 (35)有以下程序 # include <stdio.h> # define S(x) (x)*x*2 main( ) { int k=5, j=2; printf( "%d,", S(k+j)); printf( "%d\n",S((k-j)) ); } 程序運行后的輸出結(jié)果是 A)98,18 B)39,11 C)39,18 D)98,11 (36)有以下程序 # include <stdio.h> void exch( int t ) { t[0] = t[5]; } main( ) { int x[10] = {1,2,3,4,6,7,8,9,10},i=0; while ( i<=4 ) { exch( &x[i]); i++; } for (i=0; i<5; i++) printf("%d ",x[i]); printf( "\n" ); } 程序運行后的輸出結(jié)果是 A)2 4 6 8 10 B)1 3 5 7 9 C)1 2 3 4 5 D)6 7 8 9 10 (37)設有以下程序段 struct MP3 { char name[20]; char color; float price; } std, *ptr; ptr = &std; 若要引用結(jié)構(gòu)體變量std中的color成員,寫法錯誤的是 A)std.color B)ptr->color C)std->color D)(*ptr).color (38)有以下程序 # include <stdio.h> struct stu { int num; char name[10]; int age; }; void fun(sruct stu *p ) { printf( "%s\n", p->name ); } main( ) { struct stu x[3]={ {01,"Zhang",20},{02,"Wang",19},{03,"Zhao",18} }; fun( x+2 ); } 程序運行后的輸出結(jié)果是 A)Zhang B)Zhao C)Wang D)19 (39)有以下程序 # include <stdio.h> main( ) { int a=12,c; c = (a<<2)<<1; printf("%d\n",c); } 程序運行后的輸出結(jié)果是 A)3 B)50 C)2 D)96 (40)以下函數(shù)不能用于向文件中寫入數(shù)據(jù)的是 A)ftell B)fwrite C)fputc D)fprintf 二、填空題(每空2分,共30分) 請將每空的正確答案寫在答題卡【1】至【15】序號的橫線上,答在試卷上不得分。 (1)在長度為n的順序存儲的線性表中刪除一個元素,最壞情況下需要移動表中的元素個數(shù)為 【1】 。 (2)設循環(huán)隊列的存儲空間為Q(1:30),初始狀態(tài)為front=rear=30,F(xiàn)經(jīng)過一系列入隊與退隊運算后,front=16,rear=15,則循環(huán)隊列中有 【2】 個元素。 (3)數(shù)據(jù)庫管理系統(tǒng)提供的數(shù)據(jù)語言中,負責數(shù)據(jù)的增、刪、改和查詢的是 【3】 。 (4)在將E-R圖轉(zhuǎn)換到關系模式時,實體和聯(lián)系都可以表示成 【4】 。 (5)常見的軟件工程方法有結(jié)構(gòu)化方法和面向?qū)ο蠓椒,類、繼承以及多態(tài)性等概念屬于 【5】 。 (6)變量a和b已定義為int類型,若要通過scanf("a=%d,b=%d",&a,&b); 語句分別給a和b輸入1和2,則正確的數(shù)據(jù)輸入內(nèi)容是 【6】 。 (7)以下程序的輸出結(jié)果是 【7】 。 # include <stdio.h> main( ) { int a=37; a+=a%=9; printf(%d\n”,a); } (8)設a、b、c都是整型變量,如果a的值為1,b的值為2,則執(zhí)行c=a++||b++; 語句后,變量b的值是 【8】 。 (9)有以下程序段 s=1.0; for (k=1; k<=n; k++) s=s+1.0/(k*(k+1)); printf("%f\n",s); 請?zhí)羁眨挂韵鲁绦蚨蔚墓δ芘c上面的程序段完全相同。 s=1.0; k=1; while ( 【9】 ) { s=s+1.0/(k*(k+1)); k=k+1; } printf("%f\n", s); (10)以下程序的輸入結(jié)果是 【10】 。 # include <stdio.h> main( ) { char a,b; for (a=0; a<20; a+=7) { b=a%10; putchar(b+'0'); } } (11)以下程序的輸出結(jié)果是 【11】 。 # include <stdio.h> main( ) { char *ch[4]={"red","green","blue"}; int i=0; while ( ch[i] ) { putchar(ch[i][0]); i++; } } (12)有以下程序 # include <stdio.h> main( ) { int arr={1,3,5,7,2,4,6,8}, i, start; scanf("%d", &start); for (i=0; i<3; i++) printf("%d", arr[start+i)%8] ); } 若在程序運行時輸入整數(shù)10<回車>,則輸出結(jié)果為 【12】 。 (13)以下程序的功能是輸出a數(shù)組中所有字符串,請?zhí)羁铡?/SPAN> # include <stdio.h> main( ) { char *a[ ]={"ABC", "DEFGH", "IJ", "KLMNOP" } int i=0; for (; i<4; i++) printf("%s\n", 【13】 ); } (14)以下程序的輸出結(jié)果是 【14】 。 # include <stdio.h> # include <stdio.h> # include <string.h> main( ) { char *p, *q, *r); p = q = r = (char *) malloc(sizeof(char)*20); strcpy(p,"attaboy,welcome!"); printf("%c%c%c\n",p[11],q[3],r[4]); free(p); } (15)設文件 test.txt中原已已寫入字符串Begin,執(zhí)行以下程序后,文件中的內(nèi)容為 【15】 。 # include <stdio.h> main( ) { FILE *fp; fp = fopen( "test.txt","w+" ); fputs("test", ftp ); fclose(fp); } 2012年3月全國計算機等級考試二級C語言程序設計筆試標準答案(花卷貴州版) 一、選擇題(1)ADDAD CBCAD (11)ABBCB DADCA (21)CACAD CADCB (31)CADDC DCBDA 二、填空題(1)n-1 (2)29 (3)數(shù)據(jù)庫操縱語言 (4)關系 (5)面向?qū)ο蠓椒?SPAN lang=EN-US> (6)a=1,b=2 (7)2 (8)2 (9)k<=n (10)074 (11)rgb (12)572 (13)a[i] (14)cab (15)test |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||