2010年9月全國計算機二級 C語言筆試試題一、選擇題(每小題2分,共70分)下列各題A)、B)、C)、D)四個選項中,只有一個選項是正確的請將正 確選項填涂在答題卡相應位置上,答在試卷上不得分1)下列敘述中正確的是A)線性表的鏈式存儲結構與順序存儲結構所需要的存儲空間是相同的B)線性表的鏈式存儲結構所需要的存儲空間一般要多于順序存儲結構C)線性表的鏈式存儲結構所需要的存儲空間一般要少于順序存儲結構D)上述三種說法都不對(2)下列敘述中正確的是A)在棧中,棧中元素隨棧底指針與棧頂指針的變化而動態(tài)變化B)在棧中,棧頂指針不變,棧中元素隨棧底指針的變化而動態(tài)變化C)在棧中,棧底指針不變,棧中元素隨棧頂指針的變化而動態(tài)變化D)上述三種說法都不對(3)軟件測試的目的是A)評估軟件可靠性B)發(fā)現并改正程序中的錯誤C)改正程序中的錯誤D)發(fā)現程序中的錯誤(4)下面描述中,不屬于軟件危機表現的是A)軟件過程不規(guī)范B)軟件開發(fā)生產率低C)軟件質量難以控制D)軟件成本不斷提高(5)軟件生命周期是指A)軟件產品從提出、實現、使用維護到停止使用退役的過程B)軟件從需求分析、設計、實現到測試完成的過程C)軟件的開發(fā)過程D)軟件的運行維護過程(6)面向對象方法中,繼承是指A)一組對象所具有的相似性質8) 一個對象具有另一個對象的性質C)各對象之間的共同性質D)類之間共享屬性和操作的機制(7)層次型、網狀型和關系型數據庫劃分原則是A)記錄長度B)文件的大小C)聯(lián)系的復雜程度D)數據之間的聯(lián)系方式(8) 一個工作人員可以使用多臺計算機,而一臺計算機可被多個人使用,則實 體工作人員、與實體計算機之間的聯(lián)系是A) 一對一B) 一對多C)多對多D)多對一(9)數據庫設計中反映用戶對數據要求的模式是A)內模式B)概念模式C)外模式D)設計模式(10)有三個關系R、S和T如下:則由關系R和S得到關系T的操作是A)自然連接B)交C)投影D)并(11)以下關于結構化程序設計的敘述中正確的是A) 一個結構化程序必須同時由順序、分支、循環(huán)三種結構組成B)結構化程序使用goto語句會很便捷C)在C語言中,程序的模塊化是利用函數實現的D)由三種基本結構構成的程序只能解決小規(guī)模的問題(12)以下關于簡單程序設計的步驟和順序的說法中正確的是A)確定算法后,整理并寫出文檔,最后進行編碼和上機調試B)首先確定數據結構,然后確定算法,再編碼,并上機調試,最后整理文檔C)先編碼和上機調試,在編碼過程中確定算法和數據結構,最后整理文檔D)先寫好文檔,再根據文檔進行編碼和上機調試,最后確定算法和數據結構(13)以下敘述中錯誤的是A) C程序在運行過程中所有計算都以二進制方式進行B) C程序在運行過程中所有計算都以十進制方式進行C)所有C程序都需要編譯鏈接無誤后才能運行D) C程序中整型變量只能存放整數,實型變量只能存放浮點數(14)有以下定義:int a; long b; double x, y;則以下選項中正確的表 達式是A) a% (int) ( x-y)B) a=x!=y;C) (a*y) %bD) y=x+y=x(15)以下選項中能表示合法常量的是A)整數:1, 200B)實數:1.5E2.0C )字符斜杠:'D)字符串:"\007"(16)表達式a+=a-=a=9的值是A) 9B) _9C) 18D) 0(17)若變量已正確定義,在if (W) printf ( "%ch,k');中,以下不可替代W的是A) a<>b+cB) ch二getchar ()C) a==b+cD) a++(18)有以下程序# includemain (){int a=1, b=0;if (! a) b++;else if (a==0) if (a) b+=2 ;else b+=3;printf (" %dn",b);}程序運行后的輸出結果是A) 0B) 1C) 2D) 3(19)若有定義語句intA) switch (x%2)a, b; double x;則下列選項中沒有錯誤的是B) switch ( (int) x/2.0{case 0: a++; break; case 1: b++; break; default : a++; b++;} }C) switch ( (int) x%2){case 0: a++; break;case 1: b++; break; default : a++; b++;D) switch ( (int) (x) %2){case 0: a++; break; case 1: b++; break; default : a++; b++;} }{case 0.0: a++; break; case 1.0: b++; break; default : a++; b++;(20)有以下程序# include main (){int a=1, b=2;while (a<6) {b+=a; a+=2; b%二 10; }printf ("%d, %d'n”,a, b);}程序運行后的輸出結果是A) 5,11B) 7,1C) 7,11D) 6,1(21)有以下程序# includemain (){int y=10;while (y--);printf (" Y=%d'n”, Y);}程序執(zhí)行后的輸出結果是A) y=0B) y= -1C) y=1D) while構成無限循環(huán)(22)有以下程序# includemain (){char s [」=" rstuv"printf ("%c\ n",*s + 2);}程序運行后的輸出結果是A) tuvB)字符t的ASCII碼值C) tD)出錯(23)有以下程序# include# includemain ()# char x 口 = " STRING;x [0」=0; x [1] = '0'; x [2」=’Qprintf ("%d % n",sizeof (x) , strlen (x)); }程序運行后的輸出結果是A) 6 1B) 7 0C) 6 3D) 7 1(24)有以下程序 # include Int f (int x);main (){int n=1, m;m=f (f (f (n) ) ) ; printf (" %d\n",m);}int f (int x) {return x*2 ; }程序運行后的輸出結果是A) 1B) 2C) 4D) 8(25)以下程序段完全正確的是A) int *p; scanf ("%d", &p);B) int *p; scanf ( "%d ,p ;C) int k, *p=&k; scanf ("%d",p);D) int k, *p:; *p= &k; scanf ( "%d ,p ;(26)有定義語句:int *p[4];以下選項中與此語句等價的是A) int p[4];B) int **p;C) int * (p「4」);D) int (*p) 「4」;(27)下列定義數組的語句中,正確的是A) int N=10; B) # define N 10int x[N]; int x[N];C) int x[0..10] ; D) int x 口 ;(28)若要定義一個具有5個元素的整型數組,以下錯誤的定義語句是A) int a[5]= { 0 };B) int b[]={0,0,0,0,0};C) int c[2+3];D) int i=5,d[i];(29)有以下程序# includevoid f (int *p);main (){int a [5] = { 1, 2, 3, 4, 5} , *r=a;f (r) ; printf ("% n"; * r);}void f (int *p){p=p+3; printf ("%d, ",*p) ; }程序運行后的輸出結果是A) 1,4B) 4,4C) 3,1D) 4,1(30)有以下程序(函數fun只對下標為偶數的元素進行操作)# includevoid fun (int* a; int n){int i、 j、 k、 t;for (i=0;ia〔k]) k=j;t=a〔 i]; a〔 i]=a [k]; a[k] = t;}}main (){int aa「10」={1、2、3、4、5、6、7} , i;fun (aa、7);for (i=0, i<7; i++) printf ("%d,",aai]));printf ("'n”);程序運行后的輸出結果是A) 725,4,3,6,1B) 1,6,3,4,5,2,7C) 7,6,5,4,3,2,1D) 1,7,3,5,6;2,1(31)下列選項中,能夠滿足 若字符串s1等于字符串s2則執(zhí)行ST"要求的是A) if (strcmp (s2,s1) ==0) ST;B) if (sl==s2) ST;C) if (strcpy (s l ,s2) ==1) ST;D) if (sl-s2==0) ST;(32)以下不能將s所指字符串正確復制到t所指存儲空間的是A) while (*t=*s ) {t++;s++; }B) for (i=0;t[i]=s[i ] ;i++);C) do {*t++=*s++; } while ( * s);D) for (i=0,j=0;t[i++]=s[j++];);(33)有以下程序(strcat函數用以連接兩個字符串)# include# include < string . h>main (){char a [20]二" ABCD\OEFG'0",b 口 = " IJK;“strcat (a, b) ; printf ("% n",a);}程序運行后的輸出結果是A) ABCDE\OFG\OIJKB) ABCDIJKC) IJKD) EFGIJK(34)有以下程序,程序中庫函數islower (ch)用以判斷ch中的字母是否為 小寫字母# include# include void fun (char* p)# int i=0;while (p[i ]){if (p[i]== ''&& islower (p「i-1」))p[i-1]=p[i-1]- 'a' + 'A';i + + ;}}main (){char si [100] = 。