2022年廣東省江門市全國計算機等級考試C語言程序設計_第1頁
2022年廣東省江門市全國計算機等級考試C語言程序設計_第2頁
2022年廣東省江門市全國計算機等級考試C語言程序設計_第3頁
2022年廣東省江門市全國計算機等級考試C語言程序設計_第4頁
2022年廣東省江門市全國計算機等級考試C語言程序設計_第5頁
已閱讀5頁,還剩99頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

2022年廣東省江門市全國計算機等級考試C語言程序設計學校:________班級:________姓名:________考號:________

一、單選題(20題)1.設二叉排序樹中有n個結點,則二叉排序樹的平均查找長度為()。A.O(1)

B.O(log2n)

C.O(n)

D.(n2)

2.若有說明語句:double*P,a;則能通過scanf語句正確給輸入項讀入數(shù)據(jù)的程序段是()。

A.*p=&a;scanf("%lf",p);

B.*p=&a;scanf("%f",p);

C.p=&a;scanf("%lf",*p);

D.p=&a;scanf("%lf",p);

3.

4.以下對C語言函數(shù)的有關描述中,正確的是

A.在C語言中調用函數(shù)時,只能把實參的值傳給形參,形參的值不能傳送給實參

B.C函數(shù)既可以嵌套定義又可以遞歸調用

C.函數(shù)必須有返回值,否則不能使用函數(shù)

D.函數(shù)必須有返回值,返回值類型不定

5.計算機系統(tǒng)的組成是______。

A.主機、外設B.運算器、控制器C.硬件系統(tǒng)和軟件系統(tǒng)D.CPU、內存儲器

6.用單鏈表方式存儲的線性表,存儲每個結點需要兩個域,一個數(shù)據(jù)域,另一個是()。

A.當前結點的所在地址B.后繼結點的所在地址C.空指針域D.空閑域

7.程序設計的任務包括()。

A.編寫程序代碼并上機調試B.確定所用數(shù)據(jù)結構C.確定所用算法D.以上選項均正確

8.下列程序的輸出結果是()。#include<stdio.h>main{inta=0,i;for(i=1;i<5;i++){switch(i){case0:case3:a+=1;case1;case2:a+=2;default:a+=3;}}printf("%d",a);}A.19B.1C.6D.8

9.數(shù)據(jù)的邏輯關系是指數(shù)據(jù)元素的()。

A.關聯(lián)B.結構C.數(shù)據(jù)項D.存儲方式

10.有以下程序:#include<stdio.h>main(){intb[3][3]={0,1,2,0,1,2,0,1,2},i,j,t=1;for(i=0;i<3;i++)for(j=i;j<=i;j++)t+=b[i][b[j][i]];printf(“%d\n”,t);}程序的運行結果是()。

A.3B.4C.1D.9

11.有以下程序:#include<stdio.h>main(){intt;scanf(“%d”,&t);if(t++<6)printf(“%d\n”,t);elseprintf(“%d\n”,t--);printf(“\n”);}執(zhí)行時輸入6并按<Enter>鍵,則輸出結果是()。A.6B.8C.7D.5

12.

13.一個算法的語句執(zhí)行次數(shù)為(2n2+2nlog2n+4n-7),則其時間復雜度為()。

A.O(n2)B.O(nlog2n)C.O(n)D.O(2n2)

14.

15.一個順序棧一旦聲明,其占用空間的大小()。

A.已固定B.可以變動C.不能固定D.動態(tài)變化

16.下面哪些使用的不是貪心算法()

A.單源最短路徑中的Dijkstra算法

B.最小生成樹的Prim算法

C.最小生成樹的Kruskal算法

D.計算每對頂點最短路徑的Floyd-Warshall算法

17.

18.針對二分查找算法,假設一個有序數(shù)組有136個元素,那么要查找到第10個元素,需要比較的元素為()

A.68,34,17,9,13,11,10

B.68,34,17,8,12,10

C.69,35,18,10

D.68,34,18,9,13,11,10

19.有以下程序:

程序執(zhí)行后的輸出結果是()。

A.45B.50C.60D.55

20.以下程序的輸出結果是()。main{inta=1,b;for(b=1,b<=10;b++){if(a>=8)break;if(a%2==1){a+=5;continue;}a=3;}printf("%d\n",b);}A.A.3B.4C.5D.6

二、2.填空題(20題)21.若有下列定義和語句:

char*s1="12345",*s2="1234";

printf("%d\n",strlen(strcpy(s1,s2)));

則輸出結果為______。

22.計算機網絡按通信距離來劃分可以分為【】。

23.以下程序中函數(shù)f的功能是在數(shù)組x的n個數(shù)(假定n個數(shù)互不相同)中找出最大最小數(shù),將其中最小的數(shù)與第一個數(shù)對換,把最大的數(shù)與最后一個數(shù)對換。請?zhí)羁铡?/p>

#include<stdio.h>

voidf(intx[],intn)

{intp0,p1,i,j,t,m;

i=j=x[0];p0=p1=0;

for(m=0;m<n;m++)

{if(x[m]>i){i=x[m];p0=m;}

elseif(x[m]<j){j=x[m];p1=m;}

}

t=x[p0];x[p0]=x[n-1];x[n-1]=t;

t=x[p1];x[p1]=【】;【】=t;

}

main()

{inta[10],u;

for(u=0;u<10;u++)scanf("%d",&a[u]);

f(a,10);

for(u=0;u<10;u++)printf("%d",a[u]);

printf("\n");

}

24.關系模型的3類完整性指的是【】、參照完整性、用戶定義的完整性。

25.用樹形結構表示實體之間聯(lián)系的模型是()。

26.數(shù)據(jù)獨立性分為邏輯獨立性與物理獨立性。當數(shù)據(jù)的存儲結構改變時,其邏輯結構可以不變,因此,基于邏輯結構的應用程序不必修改,稱為【】。

27.數(shù)據(jù)庫系統(tǒng)中實現(xiàn)各種數(shù)據(jù)管理功能的核心軟件稱為【】。

28.下面的語句要使指針p指向一個double類型的動態(tài)存儲單元,請?zhí)羁铡?/p>

p=【】malloc(sizeof(double));

29.深度為5的滿二叉樹中,葉子結點的個數(shù)為______。

30.若按功能劃分,軟件測試的方法通常分為白盒測試方法和【】測試方法。

31.有以下程序:

#include<stdio.h>

main()

{

charc;

while((c=getchar())!='?')putchar(--c);

}

程序運行時,如查從鍵盤輸入:Y?N?<回車>,則輸出的結果為______。

32.以下程序的運行結果是【】。

#include<stdio.h>

main()

{intfun();fun();}

fun()

{staticinta[3]={0,1,2};

inti;

for(i=0;i<3;i++)a[i]+=a[i];

for(i=0;i<3;i++)printf("%d,",a[i]);

printf("\n");}

33.以下程序的輸出結果是______。

main()

{inta=1,b=2;

a=a+b;b=a-b;a=a-b;

printf("%d,%d\n",a,b);

}

34.以下程序的運行結果是【】。

#defineMAX(a,b)(a>b?a:b)+1

main()

{inti=6,j=8,k;

printf("%d\n",MAX(i,j));

}

35.數(shù)據(jù)結構分為邏輯結構與存儲結構,線性鏈表屬于【】。

36.設Y是int型變量,請寫出判斷Y為奇數(shù)的關系表達式【】。

37.以下程序的輸出結果是【】。

#include<stdlib.h>

main()

{char*s1,*s2,m;

s1=s2=(char*)malloc(sizeof(char));

*s1=15;*s2=20;m=*s1+*s2;

printf("%d\n",m);

}

38.以下程序運行后的輸出結果是【】。

main()

{chars[]="9876",*p;

for(p=s;p<s+2;p++)printf("%s\n",p);

}

39.以下程序的輸出結果是______。

voidreverse(inta[],intn)

{inti,t;

for(i=0;i<n/2;i++)

{t=a[i];a[i]=a[n+1+i];a[n-1-i]=t;}

}

main()

{intb[10]={1,2,3,4,5,6,7,8,9,10};inti,s=0;

reverse(b,8);

for(i=6;i<10;i++)s+=b[i];

printf("%d\n",s);

}

40.下列程序段的輸出結果是【】。

intn='c';

switch(n++)

{default:printf("error");break;

case'a':

case'A':

case'b':

case'B':printf("good");break;

case'c':case'C':printf("pass");

case'd':case'D':printf("warn");

}

三、1.選擇題(20題)41.有以下程序:main(){intx=102,y=012;printf(“%2d,%2d\n”,x,y);}執(zhí)行后輸出結果是()。

A.10,01B.02,12C.102,10D.02,10

42.下列程序執(zhí)行后輸出的結果是______。intd=1;fun(intp){intd=5;d+=p++;printf("%d,",D);}main(){inta=3;fun(A);d+=a++;printf("%d\n",D);}

A.8,12B.9,13C.8,4D.9,5

43.下列敘述中錯誤的是()。

A.在C語言中,對二進制文件的訪問速度比文本文件快

B.在C語言中,隨機文件以二進制代碼形式存儲數(shù)據(jù)

C.語句FILEfp;定義了一個名為fp的文件指針

D.C語言中的文本文件以ASCII碼形式存儲數(shù)據(jù)

44.下列不是合法的C語言語句是()。

A.a=5B.{inti;i++;}C.;D.{;}

45.信息隱蔽的概念與下述______概念直接相關。

A.軟件結構定義B.模塊獨立性C.模塊類型劃分D.模擬耦合度

46.下列敘述中,不屬于軟件需求規(guī)格說明書的作用的是()

A.便于用戶,開發(fā)人員進行理解和交流

B.反映出用戶問題的結構,可以作為軟件開發(fā)工作的基礎和依據(jù)

C.作為確認測試和驗收的依據(jù)

D.便于開發(fā)人員進行需求分析

47.下列選項中不符合良好程序設計風格的是A.源程序要文檔化B.數(shù)據(jù)說明的次序要規(guī)范化C.避免濫用goto語句D.模塊設計要保證高耦合、高內聚

48.有以下程序:#include<string.h>main(){charstr[][20]={"Hello","beijing"},*p=str;ptintf("%\n",strlen(p+20));}程序運行后的輸出結果是()。

A.0B.5C.7D.20

49.有下列程序:

main()

{intt,a=1,b=5,C=-2;

while(a>b>C)

{t=a;a=b;b=t;c++;}

printf("%d,%d,%d",a,b,C);

}

程序的輸出結果是()。

A.1,5,0B.1,5,-2C.5,1,-1D.5,1,-2

50.下面的程序在編澤時產生錯誤,其出錯原因是()。#include<stdio.h>main(){int1_case;floatprintF;printf("請輸入2個數(shù):");scanf("%d%f",&1_case,&printF);printf("%d%f\n",1_case,printF);}

A.定義語句出錯,1_case不能作為變量名

B.定義語句出錯,printF不能用作用戶自定義標識符

C.定義語句無錯,scanf不能作為輸入函數(shù)使用

D.定義語句無錯,printf不能輸出1_case的值

51.有以下程序:main(){inti,s=0;for(i=1;i<10;i+=2)s+=i+1;ptintf("%d\n",s);}程序執(zhí)行后的輸出結果是()。

A.自然數(shù)1~9的累加和B.自然數(shù)1~10的累加和C.自然數(shù)1~9中奇數(shù)之和D.自然數(shù)1~10中偶數(shù)之和

52.中國國家計算機網絡設施是()

A.NCFCB.CERNETC.ISDND.Iinternet

53.已知函數(shù)的調用形式為fread(buf,size,count,fp),參數(shù)buf的含義是

A.一個整型變量,代表要讀入的數(shù)據(jù)項總數(shù)

B.一個文件指針,指向要讀的文件

C.一個指針;指向要讀入數(shù)據(jù)的存放地址

D.一個存儲區(qū),存放要讀的數(shù)據(jù)項

54.若有以下定義:intt[3][2];,能正確表示t數(shù)組元素地址的表達式是______。

A.&t[3][2]B.t[3]C.t[1]D.*t[2]

55.結構化程序設計的3種結構是()

A.順序結構,分支結構,跳轉結構

B.順序結構,選擇結構,循環(huán)結構

C.分支結構,選擇結構,循環(huán)結構

D.分支結構,跳轉結構,循環(huán)結構

56.若有定義語句:inta[2][3],*p[3],則以下語句中正確的是A.p=a;B.p[0]=a;C.p[0]=&a[1][2];D.p[1]=&a;

57.若有以下說明和語句:structst{intn;char*ch;};structsta[3]={5,"abc",7,"def",9,"ghk"},*p=a;則值為6的表達式是______。

A.p++->nB.p->n++C.(*p).n++D.++p->n

58.C語言庫函數(shù)fgets(str,n,fp)的功能是______。

A.從中指向的文件中讀取長度n的字符串存入str指向的內存

B.從fp指向的文件中讀取長度不超過n-1的字符串存入str指向的內存

C.從fp指向的文件中讀取n個字符串存入str指向的內存

D.從str讀取至多n個字符到文件fp

59.定義如下變量和數(shù)組:intk;inta[3][3]={9,8,7,6,5,4,3,2,1};則下面語句的輸出結果是()。for(k=0;k<3;k++)printf("%d",a[k][k]);

A.753B.951C.963D.741

60.以下敘述正確的是()。

A.continue語句的作用是結束整個循環(huán)的執(zhí)行

B.只能在循環(huán)體內和switch語句體內使用break語句

C.在循環(huán)體內使用break語句或continue語句的作用相同

D.從多層循環(huán)嵌套中退出時,只能使用goto語句

四、選擇題(20題)61.有以下程序:

當執(zhí)行程序時,按下列方式輸入數(shù)據(jù)(從第l列開始,<;CR>;代表回車,注意:回車也是一個字符]12<;CR>;34<;CR>;則輸出結果是()。

A.12B.123C.1234D.12343

62.下列語句中,顯示沒有下畫線的超鏈接的語句是()。

A.a{text—decoration:none}

B.a{text—decoration:nounderline}

C.a{underline:none}

D.a{decoration:nounderline}

63.在面向對象方法中,一個對象請求另一對象為其服務的方式是通過發(fā)送()。A.調用語句B.命令C.口令D.消息

64.

若有定義和語句:

int**pp),*P,a=20,b=10;

pp=&p;p=&a;p=&b;printf("%d,%d\n",*P,*PP);

則輸出結果是()。

A.20,10B.20,20C.10,20D.10,10

65.若有以下的定義:‘intt[3][2];”,能正確表示t數(shù)組元素地址的表達式是()。

A.&t[3][2]B.t[3]C.t[l]D.t[2][2]

66.負責數(shù)據(jù)庫中查詢操作的數(shù)據(jù)庫語言是()。

A.數(shù)據(jù)定義語言B.數(shù)據(jù)管理語言C.數(shù)據(jù)操縱語言D.數(shù)據(jù)控制語言

67.以下程序愛中,與語句:

68.

有以下程序:

main

{intx=102,y=012;

printf("%2d,%2d\n",x,y);

}

執(zhí)行后輸出結果是()。

A.10,01B.02,12C.102,10D.02,10

69.

70.以下選項中合法的標識符是()。A.1_2B._12C.2_1D.12__

71.

72.以下程序段中的變量已正確定義:

程序段的輸出結果是()。

A.********B.****C.**D.*

73.串的長度是______。A.A.串中不同字符的個數(shù)

B.串中不同字母的個數(shù)

C.串中所含字符的個數(shù)且字符個數(shù)大于零

D.串中所含字符的個數(shù)

74.

75.

76.

77.

有以下程序:

fun(intx,inty){return(x+y);)

main

{inta=1,b=2,c=2,sum;

sum=fun((a++,b++,a+b),c++);

printf("%d\n",sum);

}

執(zhí)行后的結果是()。

A.6B.7C.8D.9

78.以下選項中不能作為c語言合法常量的是()。.

A.0.1e+6B.’cd’.C.”、a”D.’\011

79.在結構化方法中,軟件功能分解屬于下列軟件開發(fā)中的階段是______。

A.詳細設計B.需求分析C.總體設計D.編程調試

80.若在定義語句:inta,b,c,*p=&c;之后,接著執(zhí)行以下選項中的語句,則能正確執(zhí)行的語句是()。A.A.scanf("%d",a,b,c);B.scanf("%d%d%d",a,b,c):

C.scanf("%d",p);

D.scanf("%d",&p);

五、程序改錯題(1題)81.下列給定程序中函數(shù)fun()的功能是:把從主函數(shù)中輸人的3個數(shù)。最大的數(shù)放在a中,中間的數(shù)放在b中,最小的數(shù)放在C中。例如,若輸入的數(shù)為:55,12,34,輸出的結果應當是:a=55.0,b=34.0,c=12.0。請改正程序中的錯誤,使它能得出正確的結果。注意:不要改動main()函數(shù),不得增行或刪行,也不得更改程序的結構!試題程序:

六、程序設計題(1題)82.請編寫函數(shù)proc,其功能是將兩個兩位數(shù)的正整數(shù)a、b合并形成一個整數(shù)放在c中。合并的方式是:將a數(shù)的十位和個位數(shù)依次放在c數(shù)個位和十位上,b數(shù)的十位和個位數(shù)依次放在c數(shù)的百位和千位上。例如,當a=25,b=43,實際輸入時個數(shù)之間以Enter鍵分隔,調用該函數(shù)后,c=3452。注意:部分源程序給出如下。請勿改動main()函數(shù)和其他函數(shù)中的任何內容,僅在函數(shù)proc()的花括號中填入所編寫的若干語句。試題程序:

參考答案

1.B

2.D解析:*p間接引用指針指向的變量,因此“(*p)=&a”不對。scanf()的輸入變量必須為地址,因此C是錯誤的。

3.C

4.A解析:C語言中的函數(shù)可以進行遞歸調用,但不能在函數(shù)中定義函數(shù),即函數(shù)不能嵌套定義。函數(shù)可以沒有返回值,若有返回值,則返回值類型必須確定。

5.C

6.B

7.D程序設計是一門技術,需要相應的理論、技術、方法和工具來支持。程序設計的任務包括選項A)、B)、c)等方面。

8.A本題考查switch語句。當i一1時,執(zhí)行case1,因為沒有遇到break語句,所以依次往下運行,“a=a+2=2,a=a+3=5”;當i=2時,執(zhí)行case2,因為沒有遇到break語句,所以依次往下執(zhí)行,“a=a+2=7,a=a+3=10”;當i=3時,執(zhí)行case3,a=a+1=11,因為沒有遇到break語句,所以依次往下運行,a—a+2—13,a—a+3一l6:當i=4時,執(zhí)行default,a=a+3=19,結束循環(huán)。

9.A

10.B內循環(huán)只循環(huán)一次就結束,第1次外循環(huán)時,t=t+b[0][b[0][0]]=1+b[0][0]=1+0=1;第2次外循環(huán)時,t=t+b[1][b[1][1]]=1+b[1][1]=1+1=2;第3次外循環(huán)時,1=1+b[2][b[2][2]]=2+b[2][2]=2+2=4。故本題答案為B選項。

11.C后綴自增運算“t++”表示先運算,再自加。語句“if(t++<6)printf(“%d\\n”,t);elseprintf(“%d\\n”,t--);”中t的初值為6,則“t++<6”,條件為假,t自增至7,執(zhí)行“printf(“%d\\n”,t--);”,此時t=7,輸出t值為7,之后進行自減操作t=6。因此輸出的結果為7。故本題答案為C選項。

12.C

13.A

14.B

15.A

16.D

17.C

18.B

19.C內部靜態(tài)變量是始終存在的,當函數(shù)被調用退出后,內部靜態(tài)變量會保存數(shù)據(jù),再次調用該函數(shù)時,以前調用時的數(shù)值仍然保留著。Fun(a,5)的值是l5,再次調用后slim=15,所以Fun(b,4)=45,s=45+15=60。

20.B當b=1時,a=1,第二個if語句成立,此時a=6,返回for循環(huán);當b=2,兩個if語句都為假,此時a=3,再返回循環(huán);當b=3,第二個if成立,此時a=8,繼續(xù)循環(huán);當b=4,第一個if成立,退出for循環(huán)體時b為4,a為8。

21.44解析:strcpy(s1,s2)函數(shù)的作用是將字符串s2中的內容拷貝到字符串s1中的內容覆蓋。strlen()函數(shù)是求字符串的長度。本題實際上是要求s2字符串的長度,即是4。

22.局域網和廣域網局域網和廣域網

23.x[0]x[0]x[0],x[0]解析:函數(shù)f()通過for循環(huán)逐個比較數(shù)組x中的元素,循環(huán)結束后,p0和p1分別表示最大值和最小值在數(shù)組中的下標位置,然后按照題意將最大值x[p0]和數(shù)組的最后一個元素x[n-1]交換位置,再將最小值x[p1]和第一個元素(x[0])進行交換,所以空白處應該填入x[0]。

24.實體完整性實體完整性解析:關系模型中的完整性是指數(shù)據(jù)庫中數(shù)據(jù)的正確性和一致性。為了維護數(shù)據(jù)庫中數(shù)據(jù)與現(xiàn)實世界的一致性,關系數(shù)據(jù)庫的插入、刪除、修改操作必須遵循3類完整性規(guī)則。關系模型的3類完整性指的是實體完整性、參照完整性和用戶定義的完整性。

25.層次模型層次模型解析:層次模型是最早發(fā)展起來的數(shù)據(jù)庫模型。層次模型的基本結構是樹形結構。

26.物理獨立性物理獨立性解析:數(shù)據(jù)獨立性分為邏輯獨立性與物理獨立性。當數(shù)據(jù)的存儲結構改變時,其邏輯結構可以不變,因此,基于邏輯結構的應用程序不必修改,稱為物理獨立性。

27.數(shù)據(jù)庫管理系統(tǒng)數(shù)據(jù)庫管理系統(tǒng)(DBMS)

28.(double*)(double*)解析:本題考查強制類型轉換。函數(shù)malloc的默認返回是void*,若要使指針指向double類型,必須進行類型轉換,類型轉換格式為:(數(shù)據(jù)類型*)。

29.1616解析:滿二叉樹的葉子結點都在最后一層,即第4層,且第4層的結點達到最大數(shù),即25-1=16。

30.黑盒軟件測試的方法有三種:動態(tài)測試、靜態(tài)測試和正確性證明。設計測試實例的方法一般有兩類:黑盒測試法和白盒測試法。在使用黑盒法設計測試實例時,測試人員將程序看成一個“黑盒”,即不關心程序內部是如何實現(xiàn)的,只是檢查程序是否符合它的“功能說明”,所以使用黑盒法設計的測試用例完全是根據(jù)程序的功能說明來設計的。

31.xx解析:本題考查的知識點是while循環(huán)的程序分析;主函數(shù)中首先定義了一個字符型變量C,接著執(zhí)行下面while語句,在while循環(huán)中,首先從鍵盤上讀入一個字符Y并給賦給字符變量C,賦值表達式的值不為'?',執(zhí)行輸出語句,輸出字符x。接著判斷while中的循環(huán)條件,讀入一個字符'?',并賦值給c,賦值表達式的值為'?',循環(huán)條件不再滿足,退出循環(huán)。

32.0240480,2,4\r\n0,4,8解析:本題主要考查for循環(huán)語句的使用以及靜態(tài)局部變量的特點。

33.21

34.99解析:本題考查宏定義與三目運算符的綜合用法,宏定義是原樣替換,本題中,如果a>b成立,則a+1的值為整個表達式的值,否則為b+1的值為整個表達式的值,(應注意后面的加1)。

35.存儲結構

36.Y%2=1或Y%2!=0Y%2=1或Y%2!=0解析:判斷變量是否為奇數(shù)可以用變量與2取模,判斷結果是為1或下為0。本題具體做法如下:Y%2=1或Y%2!=0。

37.4040解析:本題中指針s1和s2都指向同一個內存中的地址。因此語句“*s2=20;”執(zhí)行后,*\u3000s1=*s2=20。所以m最后的值為40。

38.98768769876\r\n876解析:指針是一種數(shù)據(jù)類型,這種數(shù)據(jù)類型的變量用來存放內存中分配的存儲單元的首地址。指針的定義:

類型說明符*指針變量名;

39.在main函數(shù)中,調用reverse函數(shù)將b數(shù)組中的前8個成員進行互置,執(zhí)行完畢后,b數(shù)組中的成員為{8,7,6,5,4,3,2,1,9,10},然后再執(zhí)行for循環(huán)結構,將b[6],b[7]…b[9]的值相加,結果為盟。\r\n\r\n

40.passwarnpasswarn解析:n++是在執(zhí)行完其所在的語句后再加1,因此,在執(zhí)行case的時候,n的值依然為'c',執(zhí)行case'c'后面的語句,先打印出“pass”;在執(zhí)行完case'c'后,未遇到break跳出switch,便接著執(zhí)行下面的語句,又打印出warn。所以此題輸出結果是passwarn。

41.C解析:本題中,printf('%2d,%2d\\n',x,y)表示輸出形式是十進制整數(shù),域寬是2,而在C語言中規(guī)定:當域寬小于實際寬度時域寬不起作用,按實際寬度輸出因此最后的輸出值為102和10,所以,4個選項中選項C符合題意。

42.C解析:本題執(zhí)行過程如下:首先調用fun函數(shù),使得實參a的值3傳遞給形參p,得到局部變量d=8,打印出局部變量d的值8;返回主函數(shù)執(zhí)行“d+=a++”,此處d為全局變量,所以d=1+3+4(由于本題是值傳遞,所以在函數(shù)run中對p值的改變并不能引起a的改變),故本題材的輸出是8,4。

43.C在C語言中,文件指針實際上是指向一個結構體類型的指針,一般稱這個結構體類型名為FILE,可以用此類型名來定義文件指針。定義文件類型指針變量的一般形式為:FILE*指針變量名:選項c)中少了“*”,所以選項C)錯誤。

44.A解析:選項A)是一個表達式,它后面沒有分號結尾(C語言中規(guī)定語句必須以分號結束),所以它不是語句;選項B)用一個花括號把幾條語句括起來了,這是一個復合語句;選項C)中只有一個分號,是一個空語句;選項D)是個復合語句,也是一個空語句。

45.B解析:信息隱蔽是指在一個模塊內包含的信息(過程或數(shù)據(jù)),對于不需要這些信息的其他模塊來說是不合晰問的。模塊獨立性是指每個模塊只完成系統(tǒng)要求的獨立的子功能,并且與其他模塊的聯(lián)系最少且接口簡單。衡量軟件的模塊獨立性的度量標準是耦合性和內聚性。一個模塊的內聚性越強,則該模塊的模塊獨立性越強。而內聚性是信息隱蔽和局部化概念的自然擴長。

46.D解析:軟件需求規(guī)格說明書SRS,SoftwareRequirementSpecification)是需求分析階段的最后成果,是軟件開發(fā)中的重要文檔之一。它有以下幾個方面的作用,①便于用戶、開發(fā)人員進行理解和交流;②反映出用戶問題的結構,可以作為軟件開發(fā)工作的基礎和依據(jù);③作為確認測試和驗收的依據(jù)。

47.D解析:編程風格是在不影響性能的前提下,有效地編排和組織程序,以提高可讀性和可維護性。更直接地說,風格就是意味著要按照規(guī)則進行編程。這些規(guī)則包括:(1)程序文檔化。就是程序文檔包含恰當?shù)臉俗R符、適當?shù)淖⒔夂统绦虻囊曈X組織等。(2)數(shù)據(jù)說明。出于閱讀理解和維護的需要,最好使模塊前的說明語句次序規(guī)范化。此外,為方便查找,在每個說明語句的說明符后,數(shù)據(jù)名應按照字典順序排列。(3)功能模塊化。即把源程序代碼按照功能劃分為低耦合、高內聚的模塊。(4)注意goto語句的使用。合理使用goto語句可以提高代碼的運行效率,但goto語句的使用會破壞程序的結構特性。因此,除非確實需要,否則最好不使用goto語句。因此,本題的正確答案是D。

48.C解析:主函數(shù)中定義了一個二維字符數(shù)組并初始化,初始化后的結果為str[0]='Hello'、str[1]='Beijing',然后定義一個字符指針變量p并讓它指向數(shù)組的首地址,即指向str[0],而在C語言中無論是一維還是多維數(shù)組,其元素在內存中都是順序存放的,故p+20后指針指向str[1],所以strlen(p+20);返回的是str[1]中的字符串的長度,即Beijing的長度為7,所以最后輸出的值為7,所以,4個選項中選項C符合題意。

49.A解析:本題考查while循環(huán)。先判斷while循環(huán)的控制表達式是否成立,發(fā)現(xiàn)a>b>c不成立,所以不執(zhí)行循環(huán)。直接輸出a、b、c的值。

50.A解析:C語言變量名可由數(shù)字,字母,下劃線構成,但首字符不能為數(shù)字。

51.D解析:本題中,i賦初值為1,并對其每次進行加2操作,即i每次均為1~10之間的奇數(shù),s+=i+1,即s=s+i+1,相當于s等于原來的s每次加上1~10之間的偶數(shù),直到i<lO不成立;當i=1時,s=0+1+1=2;當i=3時,s=2+3+1=2+4;當i=5時,s=2+4+5+1=2+4+6;當i=7時,s=2+4+6+7+1=2+4+6+8;當i=9時,s=2+4+6+8+9+1=2+4+6+8+10;當i=11時,i<10不成立,結束循環(huán)。所以,4個選項中選項D符合題意。

52.A

53.C解析:這是一道考查fread函數(shù)的題。buf是一個指針,fread是讀入數(shù)據(jù)的存放地址;fwrite是輸出數(shù)據(jù)的地址(以上指的是起始地址)。

54.C解析:選項A和B兩個表達式都越界了;選項D中,*t[2]是目標變量,即—個整型值,而不是地址值。

55.BB)【解析】程序設計語言僅僅使用順序、選擇和重復(循環(huán))三種基本控制結構就足以表達出各種其他形式結構的程序設計方法。遵循程序結構化的設計原則,按結構化程序設計方法設計出的程序易于理解、使用和維護;可以提高編程工作的效率,降低軟件的開發(fā)成本。

56.C解析:選項A中,p為數(shù)組名,其值是不能被改變的,故非法;選項B中,p[0]的類型是int*,而a是二維數(shù)組名(類型為int[][3]),兩者無法賦值,故非法:選項C中,p[0]為int型指針,&a[1][2]是int型變量的地址,可以合法賦值;選項D中,p[1]是int型指針,而&a是二維數(shù)組的地址(類型為int(*)[2][3]),兩者無法賦值,故非法。所以本題應該選擇C。

57.D解析:根據(jù)結構變量的存儲特點,p+1意味著增加地址值為結構體數(shù)組a的一個元素所占的字節(jié)數(shù),即p++使p由a[0]指向a[1]起始地址。本題++p->n得到p指向的結構體變量中成員n的值使之加1。因為p指向數(shù)組a起始地址,p->n的值為5,再掏打自加1運行,結果為6。

58.B解析:fgets函數(shù)的作用是從指定的文件讀入一個字符串。fgets(str,n,fp)沖的n為要求得到的字符的個數(shù),但只從fp指向的文件輸入n-1個字符,然后在最后加一個'\\0'字符,因此得到的字符串共有n個字符。

59.B解析:本題中的二維數(shù)組的每個元素就是一個由3個元素構成的一維數(shù)組,根據(jù)條件for(k=0;k<3;++)和要求的a[k][k]可以得出本題的答案應該是951。

60.B解析:continue是結束本次循環(huán),直接進入到下次循環(huán)中,break用于循環(huán)語句中的作用是直接跳出本層循環(huán),能從多層循環(huán)中退出的語句除了goto語句,exit,return等語句也能直接跳出多層循環(huán)。注意:continue和break語句在while語句中的作用。

61.D按照從鍵盤輸入的數(shù)據(jù)可以_判斷字符l給了變量a,字符2給了變量b,字符<CR>即回車給了變量c,字符3給了變量d。所以打印輸出的結果為D選項。

62.A

63.D解析:面向對象的世界是通過對象與對象間彼此的相互合作來推動的,對象間的這種相互合作需要一個機制協(xié)助進行,這樣的機制稱為消息。消息是一個實例與另一個實例之間傳遞的信息,它請求對象執(zhí)行某一處理或回答某一要求的信息,它統(tǒng)一了數(shù)據(jù)流和控制流。

64.D

\n本題考查指針變量的賦值。**PP是定義一個指針變量,語句pp=&p是將pp指向指針P,*P和**PP都是指針P所指的內存空間的內容,即b的值。

\n

65.C數(shù)組的下標是從0開始的,A中越界,行下標和列下標都不能越界;B中,雖然是個地址,但是也同樣越界了;選項C中表示的是第一個的首地址;選項D表示的為其元素的值,并不是地址。

66.C數(shù)據(jù)定義語言:負責數(shù)據(jù)的模式定義與數(shù)據(jù)的物理存取構建;數(shù)據(jù)操縱語言:負責數(shù)據(jù)的操縱,包括查詢及增加、刪除、修改等操作;數(shù)據(jù)控制語言:負責數(shù)據(jù)完整性、安全性的定義與檢查以及并發(fā)控制、故障恢復等功能。因此本題答案為C)。

67.Ak=a>b?(b>C?1:o):o;a>b并且b>C,k為1,其他情況k為o,答案為A)。

68.C解析:本題中,“printf('%2d,%2d\\n',x,y)”表示以逗號隔開輸出兩個十進制整數(shù),每個整數(shù)域寬是2。而在C語言中規(guī)定:當域寬小于實際寬度時域寬不起作用,按實際寬度輸出,因此最后的輸出值為102和10(y的初值012表示八進制整數(shù)12,等于十進制的10)。所以,4個選項中選項C符合題意。

69.C

70.B標識符命名規(guī)則:標識符必須由字母(a~z或A~z)或下劃線(_)開頭;標識符的其他部分可以用字母、下劃線或數(shù)字(0~9)組成;大小寫字母表示不同意義,如cout和Cout代表不同的標識符;在定義標識符時,雖然語法上允許用下劃線開頭,但是,最好避免定義用下劃線開頭的標識符,因為編譯器常常定義一些下劃線開頭的標識符。因此,本題正確答案為B)。

71.C

72.D本題考察for循環(huán)語句,注意第二個for語句的后面有一個分號,即printf函數(shù)不屬于循環(huán)體,無論循環(huán)執(zhí)行多少次,printf(”*”)語句只執(zhí)行一次。因此,本題正確答案為D)。

73.D解析:串的長度指的是串中字符的個數(shù),且其字符個數(shù)可以為零。選項D正確。

74.A

75.C

76.D

77.C

\n表達式a++,b++,a+b是一個逗號表達式,在逗號表達式中,從左向右進行各個表達式的運算,最后一個表達式的值就是逗號表達式的結果,所以表達式a++,b++,a+b的值為5,所以fun函數(shù)中的形參x的值為5;表達式c++先把變量C的值傳給形參y,然后c的值加1,所以y的值為3,因此函數(shù)fun((a++,b++,a+b),c++)的返回值為8。

\n

78.B要想表示字符串常量應該用雙引號表示,即“cd”,單引號用于表示字符常量,所以B選項中的表示方法錯誤。

79.C解析:軟件系統(tǒng)結構的總體設計包括:基于功能層次結構建立系統(tǒng)、按功能劃分成模塊的層次結構、確定每個模塊的功能、建立與已確定的軟件需求的對應關系、確定模塊間的調用關系和模塊間的接口、評估模塊劃分的質量等方面。詳細設計的任務是:在使用程序設計語言編制程序以前,對所采用算法的邏輯關系進行分析,設計出全部必要的過程細節(jié),并給予清晰的表達。需求分析是指用戶對目標軟件系統(tǒng)在功能、行為、性能、設計約束等方面的期望。需求分析的任務是發(fā)現(xiàn)需求、求精、建模和定義需求,通常包括:功能需求、性能需求、環(huán)境需求、可靠性需求、安全保密要求、用戶界面需求、資源使用需求、成本消耗需求、開發(fā)進度需求等。編程調試的任務是診斷和改正程序中潛在的錯誤。綜上所述。軟件功能分解只能發(fā)生在總體設計階段。

80.C題中整型指針變量P存放的是變量C的地址。所以本題答案為C。

81.(1)錯誤:float*k;

正確:floatk;

(2)錯誤:if(*a>*c)

正確:if(*a<*c)

【解析】變量定義首先要判斷變量的類型,給定程序的賦值語句中,k是以變量形式進行賦值的,所以k不是指針,定義為指針是不正確的;由給出程序可以看出,if語句是為了將小于*C的值放入*C中,所以應該改為“if(*a<*c)”。

82.

【解析】按題目中的要求,要得到整數(shù)c,首先要得到整數(shù)a和b的個位和十位上的數(shù),可以通過取余和整除來實現(xiàn),再將其分別乘以1000,100,10,1就可以得到所要求的整數(shù)c。

2022年廣東省江門市全國計算機等級考試C語言程序設計學校:________班級:________姓名:________考號:________

一、單選題(20題)1.設二叉排序樹中有n個結點,則二叉排序樹的平均查找長度為()。A.O(1)

B.O(log2n)

C.O(n)

D.(n2)

2.若有說明語句:double*P,a;則能通過scanf語句正確給輸入項讀入數(shù)據(jù)的程序段是()。

A.*p=&a;scanf("%lf",p);

B.*p=&a;scanf("%f",p);

C.p=&a;scanf("%lf",*p);

D.p=&a;scanf("%lf",p);

3.

4.以下對C語言函數(shù)的有關描述中,正確的是

A.在C語言中調用函數(shù)時,只能把實參的值傳給形參,形參的值不能傳送給實參

B.C函數(shù)既可以嵌套定義又可以遞歸調用

C.函數(shù)必須有返回值,否則不能使用函數(shù)

D.函數(shù)必須有返回值,返回值類型不定

5.計算機系統(tǒng)的組成是______。

A.主機、外設B.運算器、控制器C.硬件系統(tǒng)和軟件系統(tǒng)D.CPU、內存儲器

6.用單鏈表方式存儲的線性表,存儲每個結點需要兩個域,一個數(shù)據(jù)域,另一個是()。

A.當前結點的所在地址B.后繼結點的所在地址C.空指針域D.空閑域

7.程序設計的任務包括()。

A.編寫程序代碼并上機調試B.確定所用數(shù)據(jù)結構C.確定所用算法D.以上選項均正確

8.下列程序的輸出結果是()。#include<stdio.h>main{inta=0,i;for(i=1;i<5;i++){switch(i){case0:case3:a+=1;case1;case2:a+=2;default:a+=3;}}printf("%d",a);}A.19B.1C.6D.8

9.數(shù)據(jù)的邏輯關系是指數(shù)據(jù)元素的()。

A.關聯(lián)B.結構C.數(shù)據(jù)項D.存儲方式

10.有以下程序:#include<stdio.h>main(){intb[3][3]={0,1,2,0,1,2,0,1,2},i,j,t=1;for(i=0;i<3;i++)for(j=i;j<=i;j++)t+=b[i][b[j][i]];printf(“%d\n”,t);}程序的運行結果是()。

A.3B.4C.1D.9

11.有以下程序:#include<stdio.h>main(){intt;scanf(“%d”,&t);if(t++<6)printf(“%d\n”,t);elseprintf(“%d\n”,t--);printf(“\n”);}執(zhí)行時輸入6并按<Enter>鍵,則輸出結果是()。A.6B.8C.7D.5

12.

13.一個算法的語句執(zhí)行次數(shù)為(2n2+2nlog2n+4n-7),則其時間復雜度為()。

A.O(n2)B.O(nlog2n)C.O(n)D.O(2n2)

14.

15.一個順序棧一旦聲明,其占用空間的大小()。

A.已固定B.可以變動C.不能固定D.動態(tài)變化

16.下面哪些使用的不是貪心算法()

A.單源最短路徑中的Dijkstra算法

B.最小生成樹的Prim算法

C.最小生成樹的Kruskal算法

D.計算每對頂點最短路徑的Floyd-Warshall算法

17.

18.針對二分查找算法,假設一個有序數(shù)組有136個元素,那么要查找到第10個元素,需要比較的元素為()

A.68,34,17,9,13,11,10

B.68,34,17,8,12,10

C.69,35,18,10

D.68,34,18,9,13,11,10

19.有以下程序:

程序執(zhí)行后的輸出結果是()。

A.45B.50C.60D.55

20.以下程序的輸出結果是()。main{inta=1,b;for(b=1,b<=10;b++){if(a>=8)break;if(a%2==1){a+=5;continue;}a=3;}printf("%d\n",b);}A.A.3B.4C.5D.6

二、2.填空題(20題)21.若有下列定義和語句:

char*s1="12345",*s2="1234";

printf("%d\n",strlen(strcpy(s1,s2)));

則輸出結果為______。

22.計算機網絡按通信距離來劃分可以分為【】。

23.以下程序中函數(shù)f的功能是在數(shù)組x的n個數(shù)(假定n個數(shù)互不相同)中找出最大最小數(shù),將其中最小的數(shù)與第一個數(shù)對換,把最大的數(shù)與最后一個數(shù)對換。請?zhí)羁铡?/p>

#include<stdio.h>

voidf(intx[],intn)

{intp0,p1,i,j,t,m;

i=j=x[0];p0=p1=0;

for(m=0;m<n;m++)

{if(x[m]>i){i=x[m];p0=m;}

elseif(x[m]<j){j=x[m];p1=m;}

}

t=x[p0];x[p0]=x[n-1];x[n-1]=t;

t=x[p1];x[p1]=【】;【】=t;

}

main()

{inta[10],u;

for(u=0;u<10;u++)scanf("%d",&a[u]);

f(a,10);

for(u=0;u<10;u++)printf("%d",a[u]);

printf("\n");

}

24.關系模型的3類完整性指的是【】、參照完整性、用戶定義的完整性。

25.用樹形結構表示實體之間聯(lián)系的模型是()。

26.數(shù)據(jù)獨立性分為邏輯獨立性與物理獨立性。當數(shù)據(jù)的存儲結構改變時,其邏輯結構可以不變,因此,基于邏輯結構的應用程序不必修改,稱為【】。

27.數(shù)據(jù)庫系統(tǒng)中實現(xiàn)各種數(shù)據(jù)管理功能的核心軟件稱為【】。

28.下面的語句要使指針p指向一個double類型的動態(tài)存儲單元,請?zhí)羁铡?/p>

p=【】malloc(sizeof(double));

29.深度為5的滿二叉樹中,葉子結點的個數(shù)為______。

30.若按功能劃分,軟件測試的方法通常分為白盒測試方法和【】測試方法。

31.有以下程序:

#include<stdio.h>

main()

{

charc;

while((c=getchar())!='?')putchar(--c);

}

程序運行時,如查從鍵盤輸入:Y?N?<回車>,則輸出的結果為______。

32.以下程序的運行結果是【】。

#include<stdio.h>

main()

{intfun();fun();}

fun()

{staticinta[3]={0,1,2};

inti;

for(i=0;i<3;i++)a[i]+=a[i];

for(i=0;i<3;i++)printf("%d,",a[i]);

printf("\n");}

33.以下程序的輸出結果是______。

main()

{inta=1,b=2;

a=a+b;b=a-b;a=a-b;

printf("%d,%d\n",a,b);

}

34.以下程序的運行結果是【】。

#defineMAX(a,b)(a>b?a:b)+1

main()

{inti=6,j=8,k;

printf("%d\n",MAX(i,j));

}

35.數(shù)據(jù)結構分為邏輯結構與存儲結構,線性鏈表屬于【】。

36.設Y是int型變量,請寫出判斷Y為奇數(shù)的關系表達式【】。

37.以下程序的輸出結果是【】。

#include<stdlib.h>

main()

{char*s1,*s2,m;

s1=s2=(char*)malloc(sizeof(char));

*s1=15;*s2=20;m=*s1+*s2;

printf("%d\n",m);

}

38.以下程序運行后的輸出結果是【】。

main()

{chars[]="9876",*p;

for(p=s;p<s+2;p++)printf("%s\n",p);

}

39.以下程序的輸出結果是______。

voidreverse(inta[],intn)

{inti,t;

for(i=0;i<n/2;i++)

{t=a[i];a[i]=a[n+1+i];a[n-1-i]=t;}

}

main()

{intb[10]={1,2,3,4,5,6,7,8,9,10};inti,s=0;

reverse(b,8);

for(i=6;i<10;i++)s+=b[i];

printf("%d\n",s);

}

40.下列程序段的輸出結果是【】。

intn='c';

switch(n++)

{default:printf("error");break;

case'a':

case'A':

case'b':

case'B':printf("good");break;

case'c':case'C':printf("pass");

case'd':case'D':printf("warn");

}

三、1.選擇題(20題)41.有以下程序:main(){intx=102,y=012;printf(“%2d,%2d\n”,x,y);}執(zhí)行后輸出結果是()。

A.10,01B.02,12C.102,10D.02,10

42.下列程序執(zhí)行后輸出的結果是______。intd=1;fun(intp){intd=5;d+=p++;printf("%d,",D);}main(){inta=3;fun(A);d+=a++;printf("%d\n",D);}

A.8,12B.9,13C.8,4D.9,5

43.下列敘述中錯誤的是()。

A.在C語言中,對二進制文件的訪問速度比文本文件快

B.在C語言中,隨機文件以二進制代碼形式存儲數(shù)據(jù)

C.語句FILEfp;定義了一個名為fp的文件指針

D.C語言中的文本文件以ASCII碼形式存儲數(shù)據(jù)

44.下列不是合法的C語言語句是()。

A.a=5B.{inti;i++;}C.;D.{;}

45.信息隱蔽的概念與下述______概念直接相關。

A.軟件結構定義B.模塊獨立性C.模塊類型劃分D.模擬耦合度

46.下列敘述中,不屬于軟件需求規(guī)格說明書的作用的是()

A.便于用戶,開發(fā)人員進行理解和交流

B.反映出用戶問題的結構,可以作為軟件開發(fā)工作的基礎和依據(jù)

C.作為確認測試和驗收的依據(jù)

D.便于開發(fā)人員進行需求分析

47.下列選項中不符合良好程序設計風格的是A.源程序要文檔化B.數(shù)據(jù)說明的次序要規(guī)范化C.避免濫用goto語句D.模塊設計要保證高耦合、高內聚

48.有以下程序:#include<string.h>main(){charstr[][20]={"Hello","beijing"},*p=str;ptintf("%\n",strlen(p+20));}程序運行后的輸出結果是()。

A.0B.5C.7D.20

49.有下列程序:

main()

{intt,a=1,b=5,C=-2;

while(a>b>C)

{t=a;a=b;b=t;c++;}

printf("%d,%d,%d",a,b,C);

}

程序的輸出結果是()。

A.1,5,0B.1,5,-2C.5,1,-1D.5,1,-2

50.下面的程序在編澤時產生錯誤,其出錯原因是()。#include<stdio.h>main(){int1_case;floatprintF;printf("請輸入2個數(shù):");scanf("%d%f",&1_case,&printF);printf("%d%f\n",1_case,printF);}

A.定義語句出錯,1_case不能作為變量名

B.定義語句出錯,printF不能用作用戶自定義標識符

C.定義語句無錯,scanf不能作為輸入函數(shù)使用

D.定義語句無錯,printf不能輸出1_case的值

51.有以下程序:main(){inti,s=0;for(i=1;i<10;i+=2)s+=i+1;ptintf("%d\n",s);}程序執(zhí)行后的輸出結果是()。

A.自然數(shù)1~9的累加和B.自然數(shù)1~10的累加和C.自然數(shù)1~9中奇數(shù)之和D.自然數(shù)1~10中偶數(shù)之和

52.中國國家計算機網絡設施是()

A.NCFCB.CERNETC.ISDND.Iinternet

53.已知函數(shù)的調用形式為fread(buf,size,count,fp),參數(shù)buf的含義是

A.一個整型變量,代表要讀入的數(shù)據(jù)項總數(shù)

B.一個文件指針,指向要讀的文件

C.一個指針;指向要讀入數(shù)據(jù)的存放地址

D.一個存儲區(qū),存放要讀的數(shù)據(jù)項

54.若有以下定義:intt[3][2];,能正確表示t數(shù)組元素地址的表達式是______。

A.&t[3][2]B.t[3]C.t[1]D.*t[2]

55.結構化程序設計的3種結構是()

A.順序結構,分支結構,跳轉結構

B.順序結構,選擇結構,循環(huán)結構

C.分支結構,選擇結構,循環(huán)結構

D.分支結構,跳轉結構,循環(huán)結構

56.若有定義語句:inta[2][3],*p[3],則以下語句中正確的是A.p=a;B.p[0]=a;C.p[0]=&a[1][2];D.p[1]=&a;

57.若有以下說明和語句:structst{intn;char*ch;};structsta[3]={5,"abc",7,"def",9,"ghk"},*p=a;則值為6的表達式是______。

A.p++->nB.p->n++C.(*p).n++D.++p->n

58.C語言庫函數(shù)fgets(str,n,fp)的功能是______。

A.從中指向的文件中讀取長度n的字符串存入str指向的內存

B.從fp指向的文件中讀取長度不超過n-1的字符串存入str指向的內存

C.從fp指向的文件中讀取n個字符串存入str指向的內存

D.從str讀取至多n個字符到文件fp

59.定義如下變量和數(shù)組:intk;inta[3][3]={9,8,7,6,5,4,3,2,1};則下面語句的輸出結果是()。for(k=0;k<3;k++)printf("%d",a[k][k]);

A.753B.951C.963D.741

60.以下敘述正確的是()。

A.continue語句的作用是結束整個循環(huán)的執(zhí)行

B.只能在循環(huán)體內和switch語句體內使用break語句

C.在循環(huán)體內使用break語句或continue語句的作用相同

D.從多層循環(huán)嵌套中退出時,只能使用goto語句

四、選擇題(20題)61.有以下程序:

當執(zhí)行程序時,按下列方式輸入數(shù)據(jù)(從第l列開始,<;CR>;代表回車,注意:回車也是一個字符]12<;CR>;34<;CR>;則輸出結果是()。

A.12B.123C.1234D.12343

62.下列語句中,顯示沒有下畫線的超鏈接的語句是()。

A.a{text—decoration:none}

B.a{text—decoration:nounderline}

C.a{underline:none}

D.a{decoration:nounderline}

63.在面向對象方法中,一個對象請求另一對象為其服務的方式是通過發(fā)送()。A.調用語句B.命令C.口令D.消息

64.

若有定義和語句:

int**pp),*P,a=20,b=10;

pp=&p;p=&a;p=&b;printf("%d,%d\n",*P,*PP);

則輸出結果是()。

A.20,10B.20,20C.10,20D.10,10

65.若有以下的定義:‘intt[3][2];”,能正確表示t數(shù)組元素地址的表達式是()。

A.&t[3][2]B.t[3]C.t[l]D.t[2][2]

66.負責數(shù)據(jù)庫中查詢操作的數(shù)據(jù)庫語言是()。

A.數(shù)據(jù)定義語言B.數(shù)據(jù)管理語言C.數(shù)據(jù)操縱語言D.數(shù)據(jù)控制語言

67.以下程序愛中,與語句:

68.

有以下程序:

main

{intx=102,y=012;

printf("%2d,%2d\n",x,y);

}

執(zhí)行后輸出結果是()。

A.10,01B.02,12C.102,10D.02,10

69.

70.以下選項中合法的標識符是()。A.1_2B._12C.2_1D.12__

71.

72.以下程序段中的變量已正確定義:

程序段的輸出結果是()。

A.********B.****C.**D.*

73.串的長度是______。A.A.串中不同字符的個數(shù)

B.串中不同字母的個數(shù)

C.串中所含字符的個數(shù)且字符個數(shù)大于零

D.串中所含字符的個數(shù)

74.

75.

76.

77.

有以下程序:

fun(intx,inty){return(x+y);)

main

{inta=1,b=2,c=2,sum;

sum=fun((a++,b++,a+b),c++);

printf("%d\n",sum);

}

執(zhí)行后的結果是()。

A.6B.7C.8D.9

78.以下選項中不能作為c語言合法常量的是()。.

A.0.1e+6B.’cd’.C.”、a”D.’\011

79.在結構化方法中,軟件功能分解屬于下列軟件開發(fā)中的階段是______。

A.詳細設計B.需求分析C.總體設計D.編程調試

80.若在定義語句:inta,b,c,*p=&c;之后,接著執(zhí)行以下選項中的語句,則能正確執(zhí)行的語句是()。A.A.scanf("%d",a,b,c);B.scanf("%d%d%d",a,b,c):

C.scanf("%d",p);

D.scanf("%d",&p);

五、程序改錯題(1題)81.下列給定程序中函數(shù)fun()的功能是:把從主函數(shù)中輸人的3個數(shù)。最大的數(shù)放在a中,中間的數(shù)放在b中,最小的數(shù)放在C中。例如,若輸入的數(shù)為:55,12,34,輸出的結果應當是:a=55.0,b=34.0,c=12.0。請改正程序中的錯誤,使它能得出正確的結果。注意:不要改動main()函數(shù),不得增行或刪行,也不得更改程序的結構!試題程序:

六、程序設計題(1題)82.請編寫函數(shù)proc,其功能是將兩個兩位數(shù)的正整數(shù)a、b合并形成一個整數(shù)放在c中。合并的方式是:將a數(shù)的十位和個位數(shù)依次放在c數(shù)個位和十位上,b數(shù)的十位和個位數(shù)依次放在c數(shù)的百位和千位上。例如,當a=25,b=43,實際輸入時個數(shù)之間以Enter鍵分隔,調用該函數(shù)后,c=3452。注意:部分源程序給出如下。請勿改動main()函數(shù)和其他函數(shù)中的任何內容,僅在函數(shù)proc()的花括號中填入所編寫的若干語句。試題程序:

參考答案

1.B

2.D解析:*p間接引用指針指向的變量,因此“(*p)=&a”不對。scanf()的輸入變量必須為地址,因此C是錯誤的。

3.C

4.A解析:C語言中的函數(shù)可以進行遞歸調用,但不能在函數(shù)中定義函數(shù),即函數(shù)不能嵌套定義。函數(shù)可以沒有返回值,若有返回值,則返回值類型必須確定。

5.C

6.B

7.D程序設計是一門技術,需要相應的理論、技術、方法和工具來支持。程序設計的任務包括選項A)、B)、c)等方面。

8.A本題考查switch語句。當i一1時,執(zhí)行case1,因為沒有遇到break語句,所以依次往下運行,“a=a+2=2,a=a+3=5”;當i=2時,執(zhí)行case2,因為沒有遇到break語句,所以依次往下執(zhí)行,“a=a+2=7,a=a+3=10”;當i=3時,執(zhí)行case3,a=a+1=11,因為沒有遇到break語句,所以依次往下運行,a—a+2—13,a—a+3一l6:當i=4時,執(zhí)行default,a=a+3=19,結束循環(huán)。

9.A

10.B內循環(huán)只循環(huán)一次就結束,第1次外循環(huán)時,t=t+b[0][b[0][0]]=1+b[0][0]=1+0=1;第2次外循環(huán)時,t=t+b[1][b[1][1]]=1+b[1][1]=1+1=2;第3次外循環(huán)時,1=1+b[2][b[2][2]]=2+b[2][2]=2+2=4。故本題答案為B選項。

11.C后綴自增運算“t++”表示先運算,再自加。語句“if(t++<6)printf(“%d\\n”,t);elseprintf(“%d\\n”,t--);”中t的初值為6,則“t++<6”,條件為假,t自增至7,執(zhí)行“printf(“%d\\n”,t--);”,此時t=7,輸出t值為7,之后進行自減操作t=6。因此輸出的結果為7。故本題答案為C選項。

12.C

13.A

14.B

15.A

16.D

17.C

18.B

19.C內部靜態(tài)變量是始終存在的,當函數(shù)被調用退出后,內部靜態(tài)變量會保存數(shù)據(jù),再次調用該函數(shù)時,以前調用時的數(shù)值仍然保留著。Fun(a,5)的值是l5,再次調用后slim=15,所以Fun(b,4)=45,s=45+15=60。

20.B當b=1時,a=1,第二個if語句成立,此時a=6,返回for循環(huán);當b=2,兩個if語句都為假,此時a=3,再返回循環(huán);當b=3,第二個if成立,此時a=8,繼續(xù)循環(huán);當b=4,第一個if成立,退出for循環(huán)體時b為4,a為8。

21.44解析:strcpy(s1,s2)函數(shù)的作用是將字符串s2中的內容拷貝到字符串s1中的內容覆蓋。strlen()函數(shù)是求字符串的長度。本題實際上是要求s2字符串的長度,即是4。

22.局域網和廣域網局域網和廣域網

23.x[0]x[0]x[0],x[0]解析:函數(shù)f()通過for循環(huán)逐個比較數(shù)組x中的元素,循環(huán)結束后,p0和p1分別表示最大值和最小值在數(shù)組中的下標位置,然后按照題意將最大值x[p0]和數(shù)組的最后一個元素x[n-1]交換位置,再將最小值x[p1]和第一個元素(x[0])進行交換,所以空白處應該填入x[0]。

24.實體完整性實體完整性解析:關系模型中的完整性是指數(shù)據(jù)庫中數(shù)據(jù)的正確性和一致性。為了維護數(shù)據(jù)庫中數(shù)據(jù)與現(xiàn)實世界的一致性,關系數(shù)據(jù)庫的插入、刪除、修改操作必須遵循3類完整性規(guī)則。關系模型的3類完整性指的是實體完整性、參照完整性和用戶定義的完整性。

25.層次模型層次模型解析:層次模型是最早發(fā)展起來的數(shù)據(jù)庫模型。層次模型的基本結構是樹形結構。

26.物理獨立性物理獨立性解析:數(shù)據(jù)獨立性分為邏輯獨立性與物理獨立性。當數(shù)據(jù)的存儲結構改變時,其邏輯結構可以不變,因此,基于邏輯結構的應用程序不必修改,稱為物理獨立性。

27.數(shù)據(jù)庫管理系統(tǒng)數(shù)據(jù)庫管理系統(tǒng)(DBMS)

28.(double*)(double*)解析:本題考查強制類型轉換。函數(shù)malloc的默認返回是void*,若要使指針指向double類型,必須進行類型轉換,類型轉換格式為:(數(shù)據(jù)類型*)。

29.1616解析:滿二叉樹的葉子結點都在最后一層,即第4層,且第4層的結點達到最大數(shù),即25-1=16。

30.黑盒軟件測試的方法有三種:動態(tài)測試、靜態(tài)測試和正確性證明。設計測試實例的方法一般有兩類:黑盒測試法和白盒測試法。在使用黑盒法設計測試實例時,測試人員將程序看成一個“黑盒”,即不關心程序內部是如何實現(xiàn)的,只是檢查程序是否符合它的“功能說明”,所以使用黑盒法設計的測試用例完全是根據(jù)程序的功能說明來設計的。

31.xx解析:本題考查的知識點是while循環(huán)的程序分析;主函數(shù)中首先定義了一個字符型變量C,接著執(zhí)行下面while語句,在while循環(huán)中,首先從鍵盤上讀入一個字符Y并給賦給字符變量C,賦值表達式的值不為'?',執(zhí)行輸出語句,輸出字符x。接著判斷while中的循環(huán)條件,讀入一個字符'?',并賦值給c,賦值表達式的值為'?',循環(huán)條件不再滿足,退出循環(huán)。

32.0240480,2,4\r\n0,4,8解析:本題主要考查for循環(huán)語句的使用以及靜態(tài)局部變量的特點。

33.21

34.99解析:本題考查宏定義與三目運算符的綜合用法,宏定義是原樣替換,本題中,如果a>b成立,則a+1的值為整個表達式的值,否則為b+1的值為整個表達式的值,(應注意后面的加1)。

35.存儲結構

36.Y%2=1或Y%2!=0Y%2=1或Y%2!=0解析:判斷變量是否為奇數(shù)可以用變量與2取模,判斷結果是為1或下為0。本題具體做法如下:Y%2=1或Y%2!=0。

37.4040解析:本題中指針s1和s2都指向同一個內存中的地址。因此語句“*s2=20;”執(zhí)行后,*\u3000s1=*s2=20。所以m最后的值為40。

38.98768769876\r\n876解析:指針是一種數(shù)據(jù)類型,這種數(shù)據(jù)類型的變量用來存放內存中分配的存儲單元的首地址。指針的定義:

類型說明符*指針變量名;

39.在main函數(shù)中,調用reverse函數(shù)將b數(shù)組中的前8個成員進行互置,執(zhí)行完畢后,b數(shù)組中的成員為{8,7,6,5,4,3,2,1,9,10},然后再執(zhí)行for循環(huán)結構,將b[6],b[7]…b[9]的值相加,結果為盟。\r\n\r\n

40.passwarnpasswarn解析:n++是在執(zhí)行完其所在的語句后再加1,因此,在執(zhí)行case的時候,n的值依然為'c',執(zhí)行case'c'后面的語句,先打印出“pass”;在執(zhí)行完case'c'后,未遇到break跳出switch,便接著執(zhí)行下面的語句,又打印出warn。所以此題輸出結果是passwarn。

41.C解析:本題中,printf('%2d,%2d\\n',x,y)表示輸出形式是十進制整數(shù),域寬是2,而在C語言中規(guī)定:當域寬小于實際寬度時域寬不起作用,按實際寬度輸出因此最后的輸出值為102和10,所以,4個選項中選項C符合題意。

42.C解析:本題執(zhí)行過程如下:首先調用fun函數(shù),使得實參a的值3傳遞給形參p,得到局部變量d=8,打印出局部變量d的值8;返回主函數(shù)執(zhí)行“d+=a++”,此處d為全局變量,所以d=1+3+4(由于本題是值傳遞,所以在函數(shù)run中對p值的改變并不能引起a的改變),故本題材的輸出是8,4。

43.C在C語言中,文件指針實際上是指向一個結構體類型的指針,一般稱這個結構體類型名為FI

溫馨提示

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

評論

0/150

提交評論