全國計算機等級考試二級C語言筆試試題及答案(200604)_第1頁
全國計算機等級考試二級C語言筆試試題及答案(200604)_第2頁
全國計算機等級考試二級C語言筆試試題及答案(200604)_第3頁
全國計算機等級考試二級C語言筆試試題及答案(200604)_第4頁
全國計算機等級考試二級C語言筆試試題及答案(200604)_第5頁
已閱讀5頁,還剩9頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)

文檔簡介

1、.2006年4月全國計算機等級考試二級C語言筆試試題(含參考答案)一選擇題(1)-(10)每題2分,(11)-(50)每題1分,共60分)    下列各題A)、B)、C)、D)四個選項中,只有一個選項是正確的,請將正確選項涂寫在答題卡相應(yīng)位置上,答在試卷上不得分。    1)下列選項中不屬于結(jié)構(gòu)化程序設(shè)計方法的是      A) 自頂向下  B)逐步求精  C)模塊化  D)可復(fù)用  &

2、#160; 2)兩個或兩個以上模塊之間關(guān)聯(lián)的緊密程度稱為      A)耦合度  B)內(nèi)聚度  C)復(fù)雜度  D)數(shù)據(jù)傳輸特性    3)下列敘述中正確的是      A)軟件測試應(yīng)該由程序開發(fā)者來完成      B)程序經(jīng)調(diào)試后一般不需要再測試     &#

3、160;C)軟件維護只包括對程序代碼的維護      D)以上三種說法都不對    4)按照“后進先出”原則組織數(shù)據(jù)的數(shù)據(jù)結(jié)構(gòu)是      A)隊列 B)棧  C)雙向鏈表  D)二叉樹    5)下列敘述中正確的是      A)線性鏈表是線性表的鏈?zhǔn)酱鎯Y(jié)構(gòu)  &#

4、160;   B)棧與隊列是非線性結(jié)構(gòu)      C)雙向鏈表是非線性結(jié)構(gòu)      D)只有根結(jié)點的二叉樹是線性結(jié)構(gòu)    6)對如下二叉樹               進行后序遍歷的結(jié)果為      A) ABCDE

5、F  B) DBEAFC  C) ABDECF  D) DEBFCA     7)在深度為7的滿二叉樹中,葉子結(jié)點的個數(shù)為      A)32  B)31  C)64  D)63     8)“商品”與“顧客”兩個實體集之間的聯(lián)系一般是      A)一對一  B)一對多  C)多對一 &

6、#160;D)多對多    9)在E-R圖中,用來表示實體的圖形是      A)矩形  B)橢圓形  C)菱形  D)三角形    10)數(shù)據(jù)庫DB,數(shù)據(jù)庫系統(tǒng)DBS,數(shù)據(jù)庫管理系統(tǒng)DBMS之間的關(guān)系是      A)DB包含DBS和DBMS       B)DBMS包含DB和

7、DBS       C)DBS包含DB和DBMS       D)沒有任何關(guān)系    11)以下不合法的用戶標(biāo)識符是      A)j2_KEY  B)Double  C) 4d  D) _8_     12)以下不合法的數(shù)值常量是      A)0

8、11  B)lel  C) 8.0 E0.5  D) 0xabcd     13)以下不合法的字符常量是      A)'018'  B)'”'   C) ''   D) xcc'     14)表達(dá)式3.6-5/2+1.2+5%2的值是      A)

9、4.3  B) 4.8  C) 3.3  D) 3.8     15)以下能正確定義字符串的語句是      A)char str=064'       B) char str=”x43”;       C) char str=”;       D) char str=”0”; &

10、#160;   16)以下數(shù)組定義中錯誤的是      A) int x3=0;       B) int x23=1,2,3,4,5,6;       C) nt x3=1,2,3,4,5,6;       D)int x23=1,2,3,4,5,6;     17)若要求從鍵盤讀入含有

11、空格字符的字符串,應(yīng)使用函數(shù)      A)getc()  B) gets()   C) getchar()   D) scanf()     18) 下四個程序中,完全正確的是      A)#includeB)#include       main(); main()       /*

12、programming*/ /*/programming/*/       printf(“programming!n”);printf(“programming!n”);       C) #includeD) include       main() main()       /*/*programming*/*/ /*programming*/ 

13、60;     printf(“programming!n”);printf(“programming!n”);     19)若有定義:float x=1.5; int a=1,b=3,c=2;則正確的switch語句是       A)switch(x)B) switch(int)x);       case 1.0: printf(“*n”);case 1: printf(“*n”

14、);       Case 2.0: printf(“*n”);case 2: printf(“*n”);       C) switch(a+b) D) switch(a+b)        case 1: printf(“*n”); case 1: printf(*n”);       case 2+1: printf(“*n”); case c: pr

15、intf(“*n”);     20)若各選項中所用變量已正確定義,函數(shù)fun中通過return語句返回一個函數(shù)值,以下選項中錯誤的程序是      A)main()B) float fun(int a,int b)       x=fun(2,10); main()       float fun(int a,int b)x=fun(i,j);   

16、60;   C)float fun(int,int);D) main()       main() float fun(int i,int j);       x=fun(2,10); x=fun(i,j);       float fun(int a,int b) float fun(int a,int b)     21)在以下給出的表達(dá)式中,

17、與while(E)中的(E)不等價的表達(dá)式是      A)(!E=0) B) (E>0|E<0) C) (E=0) D) (E!=0)     22)要求通過while循環(huán)不斷讀入字符,當(dāng)讀入字母N時結(jié)束循環(huán)。若變量已正確定義,以下正確的程序段是      A) while(ch=getchar()!='N') printf(“%c”,ch);      &

18、#160;B) while(ch=getchar()!='N') printf(“%c”,ch);       C) while(ch=getchar()=N') printf(“%c”,ch);       D) while(ch=getchar()='N') printf(“%c”,ch);     23)已定義以下函數(shù)      i

19、nt fun(int *p)       return *p;       fun 函數(shù)返回值是      A)不確定的值 B)一個整數(shù) C)形參p中存放的值 D)形參p的地址值    24)若有說明語句:double *p,a;則能通過scanf語句正確給輸入項讀入數(shù)據(jù)的程序段是      A)*p=&a;

20、scanf(“%lf”,p); B)*p=&a; scanf(“%f”,p);       C) p=&a; scanf(“%lf”,*p); D)p=&a; scanf(“%lf”,p);     25)現(xiàn)有以下結(jié)構(gòu)體說明和變量定義,如圖所示,指針p,q,r分別指向一個鏈表中連續(xù)的三個結(jié)點。             struct node  

21、            char data;       struct node *next;       *p,*q,*r;       現(xiàn)要將q和r所指結(jié)點交換前后位置,同時要保持鏈表的連續(xù),以下不能完成此操作的語句是      A)q->

22、next=r->next; p->next=r; r->next=q;       B) p->next=r; q->next=r->next; r-.next=q;       C) q->next=r->next; r->next=q; p->next=r;      D) r->next=q; p-next=r; q-next=r->nex

23、t;     26)有以下程序段      struct st        int x; int *y;*pt:       int a=1,2,b=3,4;       struct st c2=10,a,20,b;      pt=c;  &#

24、160;    以下選項中表達(dá)式的值為11的是      A) *pt->y  B) pt->x  C) +pt->x  D) (pt+)->x     27)設(shè)fp為指向某二進制文件的指針,且已讀到此文件末尾,則函數(shù)feof(fp)的返回值為      A)EOF  B)非0值  C) 0  D)NUL

25、L     28)設(shè)有以下語句      int a=1,b=2,c;       c=a(b<<2);       執(zhí)行后,c的值為      A) 6  B) 7  C) 8  D) 9     29)有以下程序  

26、;    #include       main()              char c1,c2,c3,c4,c5,c6;       scanf(“%c%c%c%c”,&c1,&c2,&c3,&c4);       c5=

27、getchar(); c6=getchar();       putchar(c1); putchar(c2);       printf(“%c%cn”,c5,c6);              程序運行后,若從鍵盤輸入(從第1列開始)      123<回車>   

28、;    45678<回車>       則輸出結(jié)果是      A)1267  B)1256  C)1278  D)1245     30)若有以下程序      main()       int y=10;   &

29、#160;   while(y- -); printf(“y=%dn”y);              程序運行后的輸出結(jié)果是      A)y=0 B)y=-1 C)y=1 D)while構(gòu)成無限循環(huán)    31)有以下程序      main()    &

30、#160;         int a=0,b=0,c=0,d=0;       if(a=1) b=1;c=2;       else d=3;       printf(“%d,%d,%d,%dn”,a,b,c,d);          

31、0;  程序輸出      A)0,1,2,0  B) 0,0,0,3  C)1,1,2,0  D)編譯有錯    32)有以下程序      main()              int i,j,x=0;      

32、 for(i=0;i<2;i+)       V x+;       for(j=0;j<=3;j+)              if(j%2) continue;       x+;         

33、60;    x+;              printf(“x=%dn”,x);              程序執(zhí)行后的輸出結(jié)果是      A)x=4  B) x=8  C) x=6  D) x=12   

34、;  33)有以下程序      int fun1(double a)return a*=a;       int fun2(double x,double y)              double a=0,b=0;       a=fun1(x); b=fun1(y); r

35、eturn (int)(a+b);              main()       double w; w=fun2(1.1,2.0);       程序執(zhí)行后變量w中的值是      A)5.21  B) 5  C) 5.0  D) 0.0   

36、;  34)有以下程序      main()              int i,t3=9,8,7,6,5,4,3,2,1;       for(i=0;i<3;i+) printf(“%d”,t2-ii);            

37、;  程序的執(zhí)行后的輸出結(jié)果是      A)7 5 3  B) 3 5 7  C)3 6 9  D)7 5 1     35)有以下程序      fun(char p10)       int n=0,i;       for(i=0;i<7;i+) 

38、0;     if(pi0='T') n+;       return n;              main()             char str10=“Mon”, “Tue”, “Wed”, “Thu”,”Fri”,”S

39、at”,”Sun”;      printf(“%dn”,fun(str);            程序執(zhí)行后的輸出結(jié)果是      A)1 N B) 2 C)3  D) 0     36)有以下程序      main()

40、60;           int i,s=0,t=1,2,3,4,5,6,7,8,9;      for(i=0;i<9;i+=2) s+=*(t+i);      printf(“%dn”,s);            程序執(zhí)行后的輸出結(jié)果

41、是      A)45  B)20  C)25  D)36     37)有以下程序      void fun1(char *p)            char *q;      q=p;   &

42、#160;  while(*q!='0')       (*q)+; q+;             main()       char a=“Program”,*p;      p=&a3; fun1(p); printf(“%sn”,a); 

43、           程序執(zhí)行后的輸出結(jié)果是      A)P rohsbn  B)Prphsbn  C)Progsbn  D)Program    38)有以下程序      void swap(char *x,char *y)     

44、       char t;      t=*x; *x=*y; *y=t;            main()            char *s1=”abc”,*s2=”123”;   

45、0;  swap(s1,s2); printf(“%s,%sn”,s1,s2);            程序執(zhí)行后的輸出結(jié)果是      A)123,abc  B) abc,123   C) 1bc,a23  D) 321,cba    39)有以下程序    

46、0; int fun(int n)            if(n=1) return 1;      else      return (n+fun(n-1);            main()  

47、0;    int x;      scanf(“%d”,&x); x=fun(x); printf(“%dn”,x);            程序執(zhí)行時,給變量x輸入10,程序的輸出結(jié)果是      A)55  B) 54  C) 65  D) 45   &#

48、160;40)有以下程序      int fun(int x,int n)      static int sum=0,i;      for(i=0;i sum+=xi;      return sum;            main

49、()      int a=1,2,3,4,5,b=6,7,8,9,s=0;      s=fun(a,5)+fun(b,4); printf(“%dn”,s);            程序執(zhí)行后的輸出結(jié)果是      A)45  B)50  C)60  D)55 &#

50、160;   41)有以下程序      main()            union       char ch2;      int d;      s;    &

51、#160; s.d=0x4321;      printf(“%x,%xn”,s.ch0,s.ch1);            在16位編譯系統(tǒng)上,程序執(zhí)行后的輸出結(jié)果是      A)21,43  B)43,21  C)43,00  D)21,00     42)有以下程序&#

52、160;     main()            char *p=“3697”,”2584”;      int i,j; long num=0;      for(i=0;i<2;i+)      j=0;  

53、0;   while(pij!='0')       if(pij-0')%2)num=10*num+pij-0'      j+=2;             printf(“%dn”num);        

54、60;   程序執(zhí)行后的輸出結(jié)果是      A)35  B)37  C)39  D)3975    43)執(zhí)行以下程序后,test.txt文件的內(nèi)容是(若文件能正常打開)      #include      main()       FILE *fp;&#

55、160;     char *s1=”Fortran”,*s2=”Basic”;      if(fp=fopen(“test.txt”,”wb”)=NULL)       printf(“Can't open test.txt filen”); exit(1);      fwrite(s1,7,1,fp); /*把從地址s1開始的7個字符寫到fp所指文件中

56、*/      fseek(fp,0L,SEEK_SET); /*文件位置指針移到文件開頭*/      fwrite(s2,5,1,fp);      fclose(fp);            A)Basican B)BasicFortran C)Basic D)FortranBasic

57、60;   44)以下敘述中錯誤的是      A)C語言源程序經(jīng)編譯后生成后綴為.obj的目標(biāo)程序      B)C語言經(jīng)過編譯、連接步驟之后才能形成一個真正可執(zhí)行的二進制機器指令文件      C)用C語言編寫的程序稱為源程序,它以ASCII代碼形式存放在一個文本文件中      D)C語言的每條可執(zhí)行語句和非執(zhí)行語句最終都

58、將被轉(zhuǎn)換成二進制的機器指令    45)以下敘述中錯誤的是      A)算法正確的程序最終一定會結(jié)束      B)算法正確的程序可以有零個輸出      C)算法正確的程序可以有零個輸入      D)算法正確的程序?qū)τ谙嗤妮斎胍欢ㄓ邢嗤慕Y(jié)果    46)以下敘述中錯誤的

59、是      A)C程序必須由一個或一個以上的函數(shù)組成      B)函數(shù)調(diào)用可以作為一個獨立的語句存在      C)若函數(shù)有返回值,必須通過return語句返回      D)函數(shù)形參的值也可以傳回對應(yīng)的實參    47)設(shè)有以下定義和語句      ch

60、ar str20=”Program”,*p;      p=str;      則以下敘述中正確的是      A)*p與str0中的值相等      B)str與p的類型完全相同      C)str數(shù)組長度和p所指向的字符串長度相等     &#

61、160;D)數(shù)組str中存放的內(nèi)容和指針變量p中存放的內(nèi)容相同    48)以下敘述中錯誤的是      A)C程序中的#include和#define行均不是C語句      B)除逗號運算符外,賦值運算符的優(yōu)先級最低      C)C程序中,j+;是賦值語句      D)C程序中,+、-、*、/、%號是算術(shù)運算符

62、,可用于整型和實型數(shù)的運算    49)以下敘述中正確的是      A)預(yù)處理命令行必須位于C源程序的起始位置      B)在C語言中,預(yù)處理命令行都以“#”開頭      C)每個C程序必須在開頭包括預(yù)處理命令行:#include      D)C語言的預(yù)處理不能實現(xiàn)宏定義和條件編譯的功能  

63、  50)以下敘述中錯誤的是      A)可以通過typedef增加新的類型      B)可以用typedef將已存在的類型用一個新的名字來代表      C)用typedef定義新的類型名后,原有類型名仍有效      D)用typedef可以為各種類型起別名,但不能為變量起別名二:填空題(每空2分,共40分)  

64、;  請將每一個空的正確答案寫在答題卡1至20序號的橫線上,答在試卷上不得分    1)對長度為10的線性表進行冒泡排序,最壞情況下需要比較的次數(shù)為_1_。    2)在面向?qū)ο蠓椒ㄖ?,_2_描述的是具有相似屬性與操作的一組對象。    3)在關(guān)系模型中,把數(shù)據(jù)看成是二維表,每一個二維表稱為一個_3_。    4)程序測試分為靜態(tài)分析和動態(tài)測試,其中_4_是指不執(zhí)行程序,而只是對程序文本進行檢查,通過閱讀和討論,分析

65、和發(fā)現(xiàn)程序中的錯誤。    5)數(shù)據(jù)獨立性分為邏輯獨立性與物理獨立性,當(dāng)數(shù)據(jù)的存儲結(jié)構(gòu)改變時,其邏輯結(jié)構(gòu)可以不變,因此,基于邏輯結(jié)構(gòu)的應(yīng)用程序不必修改,稱為_5_。    6)若變量a,b已定義為int類型并賦值21和55,要求用printf函數(shù)以a=21,b=55的形式輸出,請寫出完整的輸出語句_6_。    7)以下程序用于判斷a,b,c能否構(gòu)成三角形,若能輸出YES,若不能輸出NO。當(dāng)a,b,c輸入三角形三條邊長時,確定a,b,c能構(gòu)成三角形的條件是需要同時滿足三條件:

66、a+b>c,a+c>b,b+c>a。請?zhí)羁铡?#160;     main()            float a,b,c;      scanf(“%f%f%f”,&a,&b,&c);      if(_7_)printf(“YESn”);/*a,b,c能構(gòu)成三角

67、形*/      else printf(“NOn”);/*a,b,c不能構(gòu)成三角形*/          8)以下程序的輸出結(jié)果是_8_      main()       int a33=1,2,9,3,4,8,5,6,7,i,s=0;      for(

68、i=0;i<3;i+) s+=aii+ai3-i-1;      printf(“%dn”,s);          9)當(dāng)運行以下程序時,輸入abcd,程序的輸出結(jié)果是:_9_。      insert(char str)       int i;     &#

69、160;i=strlen(str);      while(i>0)       str2*i=stri; str2*i-1='*'i-;      printf(“%sn”,str);            main()    

70、0; char str40;      scanf(“%s”,str ); insert(str);          10)以下程序的運行結(jié)果是:_10_      fun(int t,int n)       int i,m;      if(n

71、=1) return t0;      else      if(n>=2) m=fun(t,n-1); return m;            main()            int a=11,4,6,3,8,2,3,5,9,

72、2;      printf(“%dn”,fun(a,10);          11)現(xiàn)有兩個C程序文件T18.c和myfun.c同時在TC系統(tǒng)目錄(文件夾)下,其中T18.c文件如下:      #include      #include”myfun.c”     

73、; main()       fun(); printf(“n”);       myfun.c文件如下:      void fun()       char s80,c; int n=0;      while(c=getchar()!='n') sn+=c; 

74、;     n-;      while(n>=0) printf(“%c”,sn-);            當(dāng)編譯連接通過后,運行程序T18時,輸入Thank!則輸出的結(jié)果是:_11 。    12)以下函數(shù)fun的功能是返回str所指字符串中以形參c中字符開頭的后續(xù)字符串的首地址,例如:str所指字符串為Hello!

75、, c中的字符為e,則函數(shù)返回字符串:ello!的首地址。若str所指字符串為空串或不包含c中的字符,則函數(shù)返回NULL。請?zhí)羁铡?#160;     char *fun(char *str,char c)       int n=0;char *p=str;      if(p!=NULL)      while(pn!=c&&pn!='0&

76、#39;) n+;      if(pn='0' return NULL;      return (_12_);          13)以下程序的功能是:輸出100以內(nèi)(不含100)能被3整除且個位數(shù)為6的所有整數(shù),請?zhí)羁铡?#160;     main()    &#

77、160;  int i,j;      for(i=0;_13_;i+)       j=i*10+6;      if(_14_) continue;      printf(“%d ”,j);           14)以下isprime函數(shù)的功

78、能是判斷形參a是否為素數(shù),是素數(shù),函數(shù)返回1,否則返回0,請?zhí)羁?#160;     int isprime(int a)       int i;      for(i=2;i<=a/2;i+)      if(a%i=0) _15_;      _16_;          15)以下程序的功能是輸入任意整數(shù)給n后,輸出n行由大寫字母A開始構(gòu)成的三角形字符陣列圖形,例如,輸入整數(shù)5時(注意:n不得大于10),程序運行結(jié)果如下:      A B C D E      F G H I      

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論