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

下載本文檔

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

文檔簡介

2022年廣東省云浮市全國計算機等級考試C語言程序設計模擬考試(含答案)學校:________班級:________姓名:________考號:________

一、單選題(20題)1.有下列程序:程序執(zhí)行后的輸出結(jié)果是()。A.eeaabmmnhhirrstu

B.efgabcdmnopqhijkIrstuvwxyz

C.efgacdmopqhjkIrvwxyz

D.eefgaabcdmmnopqhhijkIrrstuvwxyz

2.

3.數(shù)據(jù)庫是______的集合,它具有統(tǒng)一的結(jié)構(gòu)形式并存放于統(tǒng)一的存儲介質(zhì)內(nèi),可被各個應用程序所共享。

A.視圖B.消息C.數(shù)據(jù)D.關(guān)系

4.以下對于C語言的描述中,正確的是:()

A.C語言調(diào)用函數(shù)時,值傳遞方式只能將實參的值傳給形參,形參的值不能傳遞給實參

B.C語言中函數(shù)既可以嵌套定義,也可以遞歸調(diào)用

C.函數(shù)必須有返回值

D.C程序中有調(diào)用關(guān)系的所有函數(shù)必須放在同一源程序文件中

5.在循環(huán)雙鏈表的p所指的結(jié)點之前插入s所指結(jié)點的操作是()。A.p->prior->prior

B.p->prior->prior

C.s->prior->next=s

D.s->prior->prior=s

6.以下程序的輸出結(jié)果是()。main{charch[3][4]={"123","456","78"),*p[3];inti;for(i=0;i<3;i++)p[i]=ch[i];for(i=0;i<3;i++)printf("%s",p[i]);}A.123456780B.123456780C.12345678D.147

7.

8.有以下程序:#include<stdio.h>main(){inta=10,b=11;if(++a==b++) printf(“T”);else printf(“F”);printf(“a=%d,b=%d\n”,a,b);}程序運行后的輸出結(jié)果是()。

A.Fa=11,b=11B.Fa=10,b=12C.Ta=10,b=11D.Ta=11,b=12

9.下列一維數(shù)組初始化語句中,正確且與語句floata[]={0,3,8,0,9};等價的是().

A.floata[6]={0,3,8,0,9};

B.floata[4]={0,3,8,0,9};

C.floata[7]={0,3,8,0,9};

D.floata[5]={0,3,8,0,9};

10.使用深度優(yōu)先算法遍歷下圖,遍歷的順序為()A.ABCDEFGB.ABDCFEGC.ABDECFGD.ABCDFEG

11.以下選項中可作為C語言合法常量的是_____。A.-80B.-080C.-8e1.0D.-80.Oe

12.為了使模塊盡可能獨立,要求()。

A.模塊的內(nèi)聚程度要盡量高,且各模塊間的耦合程度要盡量強

B.模塊的內(nèi)聚程度要盡量高,且各模塊間的耦合程度要盡量弱

C.模塊的內(nèi)聚程度要盡量低,且各模塊間的耦合程度要盡量弱

D.模塊的內(nèi)聚程度要盡量低,且各模塊間的耦合程度要盡量強

13.有下列程序:#include<stdio.h>voidfun(char*a,char*B){while(*a=='*')a++;while(*b=*A){b++;a++;}}main(){char*s="*****a*b****",t[80];fun(s,t);puts(t);程序的運行結(jié)果是()。A.*****a*bB.a*bC.a*b****D.ab

14.

15.下面哪種排序算法是穩(wěn)定的()

A.快速排序B.堆排序C.歸并排序D.選擇排序

16.

17.存儲以下數(shù)據(jù),占用存儲字節(jié)最多的是()。

A.0B.‘0’C.“0”D.0.0

18.有以下程序段intj;floaty;charname[50]:scanf("%2d%f%s",&i,&.y,name):當執(zhí)行上述程序段,從鍵盤上輸入555667777abc后,y的值為()。A.55566.0B.566.0C.7777.0D.566777.0

19.下列算法中,()算法用來求圖中某頂點到其他頂點所有頂點之間的最短路徑。

A.DijkstraB.FloyedC.PrimD.Kruskal

20.有以下程序:#include<stdio.h>voidfun(int*a,int*b){for(;(*a<*B)||(getchar()!=‘@’);){(*a)++;(*b)--;}}main(){inti=0,j=5;fun(&i,&j);printf(“%d,%d\n”,i,j);}程序運行時在第1列開始輸入ab@并按<Enter>鍵,則運行結(jié)果是()。

A.7,1B.3,2C.0,5D.5,0

二、2.填空題(20題)21.下列程序的運行結(jié)果是【】。

#include<stdio.h>

main

{intk=4,m=3,p;

p=func(k,m);

printf("%d",p);

p=func(k,m);

printf("%d\n",p);}

func(a,b)

inta,b;

{staticintm=0,i=2;

i+=m+1;

m=i+a+b;

return(m);}

22.下面程序的功能是:輸出100以內(nèi)能被4整除且個位數(shù)為8的所有整數(shù),請?zhí)羁?。main(){inti,j;for(i=0=();i++){j=i*10+8;if(j%4!=0)continue;printf("%d",j);}}

23.若有如下結(jié)構(gòu)體說明:

structSTRU

{inta,b;charc:doubled;

structSTRU*p1,*p2;

};

請?zhí)羁?,以完成對t數(shù)組的定義,t數(shù)組的每個元素為該結(jié)構(gòu)體類型。

【】t[20]

24.在面向?qū)ο蠓椒ㄖ?,允許作用于某個對象上的操作稱為【】。

25.在E-R圖中,矩形表示【】。

26.在關(guān)系模型中,把數(shù)據(jù)看成一個二維表,每一個二維表稱為一個______。

27.數(shù)據(jù)模型按不同的應用層次分為三種類型,它們是______數(shù)據(jù)模型、邏輯數(shù)據(jù)模型和物理數(shù)據(jù)模型。

28.設二進制數(shù)A是00101101,若想通過異或運算ab使A的高4位取反,低4位不變,則二進制數(shù)B應是【】。

29.最簡單的交換排序方法是______。

30.下面程序的輸出結(jié)果是【】。

main()

{intarr[10],i,k=0;

for(i=0;i<10;i++)arr[i]=i;

for(i=0;i<4;i++)k+=arr[i]=i;

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

}

31.已知字符A的ACSII碼值為65,以下語句的輸出結(jié)果是______。

charch='B';

printf("%c%d\n",ch,ch);

32.軟件定義時期主要包括______和需求分析兩個階段。

33.下面程序的運行結(jié)果是【】。

main()

{inti=0,j=10,k=2,s=0;

for(;;)

{i+=k;

if(i>j)

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

break;}

s+=i;}}

34.有以下程序:

intf(intn)

{if(n=1)return1;

elsereturnf(n-1)+1;}

main()

{inti,j=0;

for(i=1;i<3;i++)j+=f(i);

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

}

程序運行后的輸出結(jié)果是【】。

35.以下程序的運行結(jié)果是【】。

main()

{char*k="aeiou";

for(;*k;k++)printf("%c",*k);

}

36.類是一個支持集成的抽象數(shù)據(jù)類型,而對象是類的【】。

37.數(shù)據(jù)結(jié)構(gòu)分為邏輯結(jié)構(gòu)與存儲結(jié)構(gòu),線性鏈表屬于【】。

38.現(xiàn)有兩個C程序文件T18.c和myfun.c同在TC系統(tǒng)目錄(文件夾)下,其中T18.c文件如下:

#include<stdio.h>

#include"myfun.c"

main()

{fun();printf("\n");}

myfun.c文件如下:

voidfun()

{chars[80],c;intn=0;

while((c=getchar())!=′\n′)s[n++]=c;

n--;

while(n>=0)printf("%c",s[n--]);

}

當編譯連接通過后,運行程序T18時,輸入Thank!,則輸出結(jié)果是【】。

39.軟件測試方法中,黑盒測試法和白盒測試法是常用的方法,其中黑盒測試法主要是用于測試【】。

40.下列程序運行后的輸出結(jié)果是______。

#include<stdio.h>

main()

{chars[20];

scanf("%s",s);

printf("%s",s);

}

運行程序,輸入HOWAREYOU。

三、1.選擇題(20題)41.在說明語句:int*f();中,標識符f代表的是

A.一個用于指向整型數(shù)據(jù)的指針變量

B.一個用于指向一維數(shù)組的行指針

C.一個用于指向函數(shù)的指針變量

D.一個返回值為指針型的函數(shù)名

42.下面程序段的輸出結(jié)果是()。chara[]="lanuage",*p;p=a;while(*P!='u'){printf("%c",*p-32);P++;}

A.LANGUAGEB.languageC.LAND.langUAGE

43.以下程序的輸出結(jié)果是_______。main(){inti,a[10];for(i=9;i>=0;i-)a[i]=10-i;print("%d%d%d,a[2],a[5],a[8]);}

A.258B.741C.852D.369

44.以下各選項企圖說明一種新的類型名,其中正確的是______。

A.typedefv1int;

B.typedefv2=int;

C.typedefintv3;

D.typedefv4:int

45.有以下程序main(){inti=0,s=0;for(;;){if(i==3||i==5)continue;if(i==6)break;i++;s+=i;};printf("%d\n",s);}程序運行后的輸出結(jié)果是______。

A.10B.13C.21D.程序進入死循環(huán)

46.以下函數(shù)的功能是:通過鍵盤輸入數(shù)據(jù),為數(shù)組中的所有元素賦值。#defineN10voidartin(intx[N]){inti=0;while(i<N)scanf("%d",);}在下劃線處應填入的是()。

A.x+iB.&x[i+1]C.x+(i++)D.&x[++i]

47.算法的空間復雜度是指()。

A.算法程序的長度B.算法程序中的指令條數(shù)C.算法程序所占的存儲空間D.算法執(zhí)行過程中所需要的存儲空間

48.在ASCII代碼表中每一個大寫字母比它相應的小寫字母的ASCII碼()。

A.小32B.小64C.大32D.大1

49.下列程序的輸出結(jié)果是()。#include<stdio.h>main(){charch[2][5]={"1234","5678"},*p[2];inti,j,s=0;for(i=0;i<2;i++)p[i]=ch[i];for(i=0;i<2;i++)for(j=0;p[i][j]>'\0',j+=2){s=p[i][j]-'0';printf("%d",s);)}

A.6357B.6135C.1357D.691357

50.若有下列說明和語句,則對結(jié)構(gòu)體變量st中成員i的引用方式不正確的是()。Structstu{inti;intname;}st,*p;p=&st;

A.st.iB.*p.iC.(*p).iD.p->i

51.在數(shù)據(jù)流圖(DFD)中,帶有名字的箭頭表示______。

A.控制程序的執(zhí)行順序B.模塊之間的調(diào)用關(guān)系C.數(shù)據(jù)的流向D.程序的組成成分

52.設計數(shù)據(jù)庫的存儲結(jié)構(gòu)屬于()。

A.需求分析B.概念設計C.邏輯設計D.物理設計

53.有以下程序#include<stdlib.h>main(){char*p,*q;p=(char*)malloc(sizeof(char)*20);q=p;scanf("%s%s",p,q);printf("%s%s\n",p,q);}若從鍵盤輸入:abcdef<回車>,則輸出結(jié)果是

A.defdefB.abcdelC.abcdD.dd

54.設有定義:intn1=0.n2,*p=&n2,*q=&n1;,以下賦值語句中與n2=n1;語句等價的是

A.*p;*q;B.p=q;C.*p=&n1;D.p=*q;

55.下列關(guān)于C語言數(shù)據(jù)文件的敘述中正確的是A.文件由ASCII碼字符序列組成,C語言只能讀寫文本文件

B.文件由二進制數(shù)據(jù)序列組成,C語言只能讀寫二進制文件

C.文件由記錄序列組成,可按數(shù)據(jù)的存放形式分為二進制文件和文本文件

D.文件由數(shù)據(jù)流形式組成,可按數(shù)據(jù)的存放形式分為二進制文件和文本文件

56.有以下程序main(){intk=5,n=0;while(k>0){switch(k){default:break;case1:n+=k;case2:case3:n+=k;}k--;}printf("%d\n",n);程序運行后的輸出結(jié)果是

A.0B.4C.6D.7

57.若變量已正確說明為float類型,要通過語句scanf("%f%f%f",&a,&b,&c),給a賦予10.0,b賦予22.0,b賦予33.0,不正確的輸入形式是()

A.10<回車>22<回車>33<回車>

B.10.0,22.0,33.0<回車>

C.10.0<回車>22.O33.00<回車>

D.10.22<回車>33<回車>

58.若有以下定義語句:char*sl="12345",*s2="1234";printf("%d"n",strlen(strcpy(s1,s2)));則輸出結(jié)果是()

A.4B.5C.9D.10

59.若有說明inta[][3]={1,2,3,4,5,6,7,8,9},則a數(shù)組第一維的大小是()。

A.2B.3C.4D.無確定值

60.若有定義:inta[4][10];,則以下選項中對數(shù)組元素a[i][i]引用錯誤的是______。(0<=i<4,0=i<10)

A.*(&a[0][0]十10*i+j)B.*(a+i)+jC.*(a+i)+j)D.*(a[i]+j)

四、選擇題(20題)61.

定義結(jié)構(gòu)體數(shù)組:

structstu

{intnum;

charnameE20];

}X[5]={1,"LI",2,"ZHAO",3,"WANG",4,"ZHANG",5,"LIU");

for(i=1;i<5;i++)

printf("%d%c",x[i].num,x[i].name[2]);

以上程序段的輸出結(jié)果為()。

A.2A3N4A5UB.112A3H4IC.1A2N3A4UD.2H3A4H5I

62.

現(xiàn)有以下結(jié)構(gòu)體說明和變量定義,如圖所示,指針p、q、r分別指定一個鏈表中連續(xù)的3個結(jié)點。

structnode

{bardata;

structnode*next;}*p,*q,*r;

現(xiàn)要將q和r所指結(jié)點交換前后位置,同時要保持鏈表的結(jié)構(gòu),下列不能完成此操作的語句是()。

A.q->next=r->next;P>next=r;r->next=q;

B.q->next=r;q->next=r->next;r->next=q;

C.q->next=r->next;r->next=q;P->next=r:

D.q->next=q;P->next=r;q->next=r->next;

63.有以下程序:

程序運行后的輸出結(jié)果是()。

A.3B.4C.lD.9

64.以下程序運行后的輸出結(jié)果是()。

main()

{inta=2,b=3,c;

c=a;

if(a>b)c=1;

elseif(a==b)c=0;

elsec=-1;

printf("%d\n",c);}

A.1B.3C.-1D.0

65.

66.(36)下列工具中屬于需求分析常用工具的是()

A.PAD

B.PFD

C.N-S

D.DFD

67.(42)希爾排序法屬于哪一種類型的排序法()

A.交換類排序法

B.插入類排序法

C.選擇類排序法

D.建堆排序法

68.

69.

70.

71.

72.以下程序的輸出結(jié)果是()。main{inta=3:printf("%d\n",(a+a-=a*a));}A.-6B.12C.0D.-12

73.

74.

75.(48)軟件調(diào)試的目的是()

A.發(fā)現(xiàn)錯誤

B.改正錯誤

C.改善軟件的性能

D.挖掘軟件的潛能

76.

77.若要用函數(shù)fopen打開一個新的二進制文件,該文件要既能讀也能寫,則應以()方式打開文件。

A."wb"B."wb+"C."rb+"D."rb"

78.

79.(17)軟件需求分析階段的工作,可以分為四個方面:需求獲取、需求分析、編寫需求規(guī)格說明書以及()

A.階段性報告

B.需求評審

C.總結(jié)

D.都不正確

80.視圖設計一般有3種設計次序,下列不屬于視圖設計次序的是()。

A.自頂而下B.由內(nèi)向外C.由外向內(nèi)D.自底向上

五、程序改錯題(1題)81.下列給定程序中,函數(shù)proc()的功能是:從m個學生的成績中統(tǒng)計出低于平均分的學生人數(shù),人數(shù)由函數(shù)值返回,平均分存放在形參aver所指的存儲單元中。例如,輸入8名學生的成績:6070809065758595則低于平均分的學生人數(shù)為4(平均分為77.5)。實際輸入時學生數(shù)以“Enter”鍵作為結(jié)束,成績與成績之間也與Enter鍵作為分隔。請修改程序中的錯誤,使它能得到正確結(jié)果。注意:不要改動main()函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。試題程序:

六、程序設計題(1題)82.某學生的記錄由學號、8門課成績和平均分組成,學號和8門課的成績已在主函數(shù)中給出。請編寫proc()函數(shù),它的功能是:求出該學生的平均分并放在記錄的ave成員中。請自己定義正確的形參。例如,若學生的成績是65.5,75,88,90,90.5,66,64.5,89.5,則他的平均分應當是78.625。注意:部分源程序給出如下。請勿改動main()函數(shù)和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)proc()的花括號中填入所編寫的若干語句。試題程序:

參考答案

1.C程序定義一個二維字符數(shù)組a,使用5個字符串對其初始化。另外定義字符指針數(shù)組P。for循環(huán)中,每次將數(shù)組a當前下標為i的字符串首地址賦給P[i],再求得P[i]的長度賦給len,第1個printf輸出p[i]字符串的首字母,第2個printf輸出p[i]字符串下標從len/2開始的子字符串。當下標i=0時輸出efg;當下標i=l時輸出acd;當下標i=2時輸出mopq;當下標i=3時輸出hjkl;當下標i=4時輸出rvwxyz。所以程序輸出:efgacdmopqhjklrvwxyz。本題答案為C選項。

2.D

3.C解析:數(shù)據(jù)庫是數(shù)據(jù)的集合,其中的數(shù)據(jù)是按數(shù)據(jù)所提供的數(shù)據(jù)模式存放的,它能構(gòu)造復雜的數(shù)據(jù)結(jié)構(gòu),以建立數(shù)據(jù)之間的內(nèi)在聯(lián)系與復雜的關(guān)系-故答案為C。

4.A

5.D

6.B第一個for循環(huán)的作用是讓p指向每行的首地址,第二個for循環(huán)的作用是把它指向的字符串輸出,故選擇B選項。

7.A

8.D自增運算符是將運算對象的值增1,它有前綴形式“++a”和后綴形式“b++”。其中“++a”表示首先將a的值自增1,然后表達式“++a”的值就是自增后a的值;而“b++”表示首先將b的值作為表達式的值,然后再將b的值自增1。本題中,a的初值為10,b的初值為11,則表達式“++a==b++”,等價于“11==11”,條件為真,所以輸出“T”。if語句執(zhí)行完后,a的值為11,b的值為12,輸出“a=11,b=12”。故本題答案為D選項。

9.D

10.C

11.A解析:C語言的常量分為整型常量、實型常量和字符型常量。選項A屬于實型常量中的十進制小數(shù)形式的表示法,是合法的。

12.B解析:模塊獨立性是指每個模塊只完成系統(tǒng)要求的獨立的子功能,并且與其他模塊的聯(lián)系最少且接口簡單。耦合性與內(nèi)聚性是模塊獨立性的兩個定性標準,耦合與內(nèi)聚是相互關(guān)聯(lián)的。在程序結(jié)構(gòu)中,各模塊的內(nèi)聚性越強,則耦合性越弱。一般較優(yōu)秀的軟件設計,應盡量做到高內(nèi)聚,低耦合,即減弱模塊之間的耦合性和提高模塊內(nèi)的內(nèi)聚性,有利于提高模塊的獨立性。本題答案為B。

13.C解析:主函數(shù)main()定義了指向字符串的指針和一個字符數(shù)組,接著調(diào)用fun(s,t)函數(shù),進行實參向形參傳遞,函數(shù)fun()第一個while語句判斷*a中的值為“*”時繼續(xù)掃描,當遇到不是“*”時結(jié)束,接著第二個while循環(huán)語句,將*a中從“a”開始的后續(xù)所有字符都賦予*b,也就是t[80]中的內(nèi)容為“a*b****”,所以此題的運行結(jié)果為選項C)。

14.B

15.C

16.D

17.D

18.B變量J只接收輸入數(shù)據(jù)的前兩位,從第三位開始直到空格之間的輸入整數(shù)都會被保存到浮點型變量Y中。

19.A

20.Dfun函數(shù)接收兩個整型指針變量a、b。for循環(huán)判斷a、b指向的值大小和getchar讀入的字符是否為“@”來決定循環(huán)是否執(zhí)行。循環(huán)體內(nèi)對a、b指向的值各自自增1、自減1。main函數(shù)定義并初始化實參i的值為0,實參j的值為5,調(diào)用函數(shù)fun,傳入i、j的地址。所以形參a指向i,形參b指向j,*a的值為0,*b的值為5,*a<*b為真,執(zhí)行循環(huán)體;*a的值為1,*b的值為4,*a<*b為真,執(zhí)行循環(huán)體;*a的值為2,*b的值為3,*a<*b為真,執(zhí)行循環(huán)體;*a的值為3,*b的值為2,*a<*b為假,getchar讀入字符“a”,執(zhí)行循環(huán)體;*a的值為4,*b的值為1,*a<*b為假,getchar讀入字符“b”,執(zhí)行循環(huán)體;*a的值為5,*b的值為0,*a<*b為假,getchar讀入字符“@”,fun函數(shù)執(zhí)行完畢,main函數(shù)輸出5,0。故本題答案為D選項。

21.10211021解析:此題主要考查了變量和函數(shù)的存儲類別。函數(shù)的存儲范圍是從定義它的位置到文件結(jié)束為止,如果想在函數(shù)定義之前使用函數(shù),需要先對函數(shù)進行聲明。靜態(tài)局部變量的生存期為整個程序的運行期間,作用域卻為定義它的函數(shù)或局部范圍內(nèi)。

22.i<10i<10解析:分析程序:當(i=0,1,2,…)時,“j=i*10+8”語句的運行結(jié)果是(8,18,28,…)個位數(shù)字為8的所有整數(shù);題中要求是100以內(nèi)的整數(shù),所以i<10;“if(j%4!=0)continue;”語句的功能是當條件不能被4整除時,繼續(xù)循環(huán)不執(zhí)行操作,直到能被4整除時輸出該數(shù),所以輸出的數(shù)滿足條件100以內(nèi)能被4整除且個位數(shù)為8。

23.strudctSTRUstrudctSTRU解析:結(jié)構(gòu)件類型是構(gòu)造數(shù)據(jù)類型,是用戶自己定義的一種類型。

結(jié)構(gòu)體類型的定義:

struct結(jié)構(gòu)體類型名

{

成員項表;

};

定義結(jié)構(gòu)體變量的的形式為:

struct結(jié)構(gòu)體類型名變量1,變量2,...?

其中變量包括;一般變量、指針變量、數(shù)組變量等。

24.方法方法解析:在面向?qū)ο蠓椒ㄖ?,方法是指允許作用于某個對象上的各種操作。

25.實體實體解析:E-R模型中,有3個基本的抽象概念:實體、聯(lián)系和屬性。在E-R圖中,用矩形框表示實體,菱形框表示聯(lián)系,橢圓形框表示屬性。

26.關(guān)系關(guān)系解析:關(guān)系模型用;維表表示,則每個;維表代表一種關(guān)系。

27.概念概念

28.1111000011110000解析:按位異或運算的一個重要應用是讓某個整型變量的二進制位取反,0變成1,而1變成0。這只要設計這樣一個位串信息,讓要變反的位為1,不要改變的位為0,用這個位串信息與整型變量按位加就能得到希望的結(jié)果。要使字節(jié)的高4位取反,低4位不變,則需要位串信息是11110000。

29.冒泡排序冒泡排序解析:交換排序是指借助數(shù)據(jù)元素之間的互相交換進行排序的一種方法。冒泡排序是一種最簡單的交換排序方法,它是通過相鄰元素之間的相互交換逐步將線性表變成有序。

30.66解析:本題第1個for循環(huán)是為數(shù)組arr元素賦初值。第2個for循環(huán)是分別用i=0,1,2,3給數(shù)組元素arr[0]、arr[1]、arr[2]、arr[3]賦值,再累加到變量k中,k=0+1+2+3=6。

31.B66B66解析:printf函數(shù)的功能是按照指定的格式,在標準輸出設備上輸出數(shù)據(jù),它有兩種參數(shù):格式控制參數(shù)和輸出項參數(shù)。本題中,printf('%c%d\\n',ch,ch)表示以字符格式和十進制整數(shù)格式輸出ch,B的ACSII碼值為66,即在計算機中B的十進制整數(shù)格式是66。所以,輸出為B66。

32.可行性研究可行性研究解析:軟件生命周期一般包括可行性研究與需求分析、設計、實現(xiàn)、測試、交付使用及維護等,還可以將軟件生命周期分為三個階段:①軟件定義階段:可行性研究和需求分析;②軟件開發(fā)階段:設計、實現(xiàn)和測試;③軟件運行維護階段:交付使用和維護。

33.3030解析:考查for循環(huán)的使用。題目中for(;;)表示:for循環(huán)的初始化表達式,條件表達式和修正表達式都省略了,表示進行for循環(huán)和for循環(huán)的終止都沒有限制。

34.33解析:i=1時,f(1)=1,j=j+f(1)=0+1=1;i=2時,f(2)=f(1)+1=1+1=2,j=j+f(2)=1+3=3;此時循環(huán)結(jié)束,程序運行后的輸出結(jié)果是3。

35.aeiou

36.實例將屬性、操作相似的對象歸為類,也就是說,類是具有共同屬性、共同方法的對象的集合。所以,類是對象的抽象,對象則是其對應類的一個實例。

37.存儲結(jié)構(gòu)

38.!knahT!knahT解析:此程序是一道次序顛倒題,即輸入'Thank!',則輸出'!knahT'。

39.軟件外部功能軟件外部功能

40.HOWHOW解析:在scanf()函數(shù)中,使用空格作為分隔符,如果輸入含有空格的字符中,則不能使用scanf()數(shù),所以本題中輸入空格就返回了'\\0\\,s數(shù)組也就確定了,后面的輸入就不再讀入數(shù)組s中。

41.D解析:帶回指針值的函數(shù),其一般定義形式為:

類型標識符*函數(shù)名(參數(shù)表);

例如;int*f(x,y);

其中,f是函數(shù)名,調(diào)用它以后能得到一個指向整型數(shù)據(jù)的指針(地址),x,y是函數(shù)f的形參。在f的兩側(cè)分別為*運算符和()運算符,而()優(yōu)先級高于*,因此f先與()結(jié)合,顯然是函數(shù)形式。這個函數(shù)前面有一個*,表示此函數(shù)是指針型函數(shù)(函數(shù)值是指針)。前面的int表示返回的指針指向整型變量。

42.C解析:本段程序的作用是輸出字符串'lanuage'中字母u之前的字符,并將其轉(zhuǎn)化為大寫字母。

43.C解析:在本題運行時主要注意的是當i=9時,a[i]=10-9=1:i=8時,a[i]=10-8=2;i=7時,a[i]=10-7=3;……依此類推,直到i=0時,a[i]=10-0=10:此時,i的值已變?yōu)?1,判斷for的循環(huán)條件,不成立,然后輸出a[2],a[5],a[8]分別為8,5,2。

44.C解析:C語言中可以使用typedef來重新定義已有的數(shù)據(jù)類型,相當于為數(shù)據(jù)類型取個別名。

45.D解析:本題程序中的for循環(huán)省略了for語句的3個表達式,如果循環(huán)體中沒有break語句的話則為死循環(huán)。循環(huán)中每次i被增1,當i到6時才能執(zhí)行到break語句跳出循環(huán),但是當i自增到3的時候會執(zhí)行continue語句重新循環(huán),此時后面的“i++;”語句執(zhí)行不到,i的值為3一直沒有改變,所以continue語句始終要執(zhí)行,因此for循環(huán)將一直循環(huán)下去,所以,4個選項中選項D符合題意。

46.C解析:根據(jù)scanf()的定義,應該在空白處填入一地址值,又因為要為數(shù)組中所有元素賦值,故空白處填入的表達式應使i每次增1,選項A和B不會使i增1,所以不正確。選項D在第一次執(zhí)行時i先自增為1,所以輸入的第一個數(shù)據(jù)被存到x[l]中,而第N次執(zhí)行時會將數(shù)據(jù)輸入到x[N],這個地址已經(jīng)超過數(shù)組x的范圍,屬于越界行為,所以也不正確。故正確答案為C。

47.D【解析】算法的空間復雜度是指執(zhí)行這個算法所需要的內(nèi)存空間。一個算法所占用的存儲空間包括算法程序所占的空間、輸入的初始數(shù)據(jù)所占的存儲空間以及算法執(zhí)行中所需要的額外空間。其中額外空間包括算法程序執(zhí)行過程中的工作單元以及某種數(shù)據(jù)結(jié)構(gòu)所需要的附加存儲空間。如果額外空間量相對于問題規(guī)模來說是常數(shù),則稱該算法是原地工作的。在許多實際問題中,為了減少算法所占的存儲空間,通常采用壓縮存儲技術(shù),以便盡量減少不必要的額外空間。

48.A解析:本題考查大小寫字母的ASCII碼值的關(guān)系。大寫字母比它相應的小寫字母的ASCII碼小32。

49.C解析:本題先將指針p指向二維數(shù)組ch[2][5],相當于p[0]='1234',p[1]='5678',通過雙重for循環(huán),是要將p中的字符隔一個輸出一個,通過s=p[i][j]-\'0\'這條語句是將所要輸出的字符轉(zhuǎn)換成相應的十進制數(shù)。

50.B解析:本題主要考查結(jié)構(gòu)指針:p=&st,訪問結(jié)構(gòu)體的成員,可以通過結(jié)構(gòu)變量訪問,即st.i,也可以用等價的指針形式,即(*p).i和p->i。

51.C解析:數(shù)據(jù)流相當于一條管道,并有一級數(shù)據(jù)(信息)流經(jīng)它。在數(shù)據(jù)流圖中,用標有名字的箭頭表示數(shù)據(jù)流。數(shù)據(jù)流可以從加工流向加工,也可以從加工流向文件或從文件流向加工,并且可以從外部實體流向系統(tǒng)或從系統(tǒng)流向外部實體。

52.DD?!窘馕觥课锢碓O計階段主要解決選擇文件存儲結(jié)構(gòu)和確定文件存取方法的問題。物理設計階段包括:選擇存儲結(jié)構(gòu)、確定存取方法、選擇存取路徑、確定數(shù)據(jù)的存放位置。

53.A解析:本題考查的知識點是字符型指針變量、malloc()函數(shù)的使用。本題首先定義兩個字符型指針變量p和q,通過malloc()函數(shù)申請20個字符的存儲空間,并把它的首地址賦給p,在把p的值賦給q,p和q指向同一個存儲區(qū)。在scanf()語句中讀取字符串到p和q指向的字符串,先把“abc”讀取到p指向的存儲區(qū)中,第一個空格是結(jié)束標記,第二個空格是分隔符,再把“def”存放到q指向的存儲區(qū),把原先的內(nèi)容覆蓋。所以p和q指向的存儲區(qū)中內(nèi)容是“def”,所以最后輸出的def,clef.所以4個選項中A正確。

54.A解析:本題考查的是指針的運算。題目中定義了兩個變量n1和n2,又定義了兩個指針p和q分別指向變量n2和n1。要通過指針實現(xiàn)n2=n1,就是要將q所指內(nèi)容賦給p所指內(nèi)容,即*p*q。所以應該選擇A。

55.D解析:C語言把文件看成是一個字符(字節(jié))的序列,即由一個一個字符(字節(jié))的數(shù)據(jù)順序組成。根據(jù)數(shù)據(jù)的組織形式,可分為ASCII文件和二進制文件。ASCII文件又稱文本文件,它的每一個字節(jié)放一個ASCII代碼,代表一個字符。二進制文件是把內(nèi)存中的數(shù)據(jù)按其在內(nèi)存中的存儲形式原樣輸出到磁盤上存放。

56.D解析:本題考查的是switch語句。switch語句中的case或default只是一種入口標號,它并不形成一種子句的概念。當滿足其中某個標號的條件而進入switch語句中時,如果沒碰到break語句,將一直執(zhí)行到switch語句的結(jié)尾。題目中使用了一個while循環(huán)使k從5遞減到1,當k=5或4的時候從default標號進入switch,碰到break;語句立即跳出,沒有改變n:當k=3時,執(zhí)行了一次n+=k;;k=2時,也執(zhí)行了一次n+=k;k=1時,執(zhí)行了兩次n+=k;所以最終n的值為3+2+1+1=7。故應該選擇D。

57.B

58.A

59.B解析:本題考查二維數(shù)組第一維的大小如何確定。二維數(shù)組第一維的大小由下列規(guī)則確定:①當初值的個數(shù)能被第二維的常量表達式的值除盡時,所得商數(shù)就是第一維的大?。孩诋敵踔档膫€數(shù)不能被第二維的常量表達式的值除盡時,第一維的大小等于所得商數(shù)加1。

60.B解析:本題中選項B是錯誤的引用,*(a+i)+j只代表了a[i][j]的地址。

61.A

\n本題主要考查結(jié)構(gòu)體數(shù)組的使用。x[i].num為結(jié)構(gòu)體x[i]中的hum成員,x[i].num[2]是結(jié)構(gòu)體x[i]中name成員的第3個元素。程序執(zhí)行循環(huán)過程時:第1次循環(huán),i=1,輸出x[i].num,x[1].name[2]的值;第2次循環(huán),i=2,輸出x[2].num,x[2].name[2]的值,即3N;第3次循環(huán),i=3,輸出X[3].hum,x[3].name[2]的值,即4A;第4次循環(huán),i=4,輸出x[4].num,x[4].name[2]的值,即5U。

\n

62.D由題目ee線性鏈表的定義可知,要將q和r所指的結(jié)點交換前后位置,只要使q指向r的后一個結(jié)點,p指向r結(jié)點,r指向q結(jié)點即可。而在選項D由,r->next=q,這時r指向的節(jié)點為q;p->nextr,這時p指向的節(jié)點為r;q->next=r->next,因為r節(jié)點已經(jīng)指向q,所以執(zhí)行這個語句后q又指向q,所以選項D不正確。

63.B每次內(nèi)循環(huán)只循環(huán)一次就結(jié)束,第一次外循環(huán)時t=t+b[0][b[0][0]]=1+b][0]=1+0=第二次外循環(huán)時t=t+b[1][b[1][1]]=1+b[1][1]=1+1=2;第三次外循環(huán)時t=t+b[2][b[2][2]]=2+b[2][2]=2+2=4。

64.Cif-else語句的嵌套,a=2,b=3,a<b,不滿足條件a>b,a==b,所以執(zhí)行語句c=-1;

65.A

66.D

67.B

68.D

69.D

70.A

71.D\r\n

72.D本題可以寫成:a+a+(a-(a*a)),所以*的優(yōu)先級最高,其次是-=的,+的優(yōu)先級最低,因此先求a-=a*a=9,表達式變?yōu)閍+a+-=9,a即a=a-9=-6,再次變?yōu)閍+(-6)=-12,故選擇D選項。

73.B

74.B

75.B注:與軟件測試要對比著復習

76.D

77.B本題考查文件使用方式標識符。方式“wb”為輸出打開一個二進制文件;方式“wb+”為讀寫建立一個新的二進制文件;方式“rb+”為讀寫打開一個二進制文件;方式“rb”為輸入打開一個二進制文件。

78.D

79.B

80.C視圖設計的設計次序分3種:自頂向下、自底向上和由內(nèi)向外。它們?yōu)橐晥D設計提供了具體的操作方法,設計者可根據(jù)實際情況靈活掌握。

81.(1)錯誤:intave,t=0;

正確:floatave,t=0.0;

(2)錯誤:if(s[i]>ave)

正確:if(s[i]<ave)

(3)錯誤:aver=ave;

正確:*aver=ave;

【解析】由程序可知變量ave和t中分別存放的是學生的平均分數(shù)和分數(shù)的總和,都是float型數(shù)據(jù),因此“intave,t=0;”應改為“floatave,t=0.0;”。題目要求統(tǒng)計出低于平均分數(shù)的學生人數(shù),因此“if(s[i]>ave)”應改為“if(s[i]<ave)”。平均分數(shù)是通過指針變量傳遞給主函數(shù)的,因此“aver=ave;”改為“*aver=ave;”。

82.

【解析】要求該學生的平均成績,首先要求出其各科成績之和,然后求出其平均成績并放在成員變量ave中。

2022年廣東省云浮市全國計算機等級考試C語言程序設計模擬考試(含答案)學校:________班級:________姓名:________考號:________

一、單選題(20題)1.有下列程序:程序執(zhí)行后的輸出結(jié)果是()。A.eeaabmmnhhirrstu

B.efgabcdmnopqhijkIrstuvwxyz

C.efgacdmopqhjkIrvwxyz

D.eefgaabcdmmnopqhhijkIrrstuvwxyz

2.

3.數(shù)據(jù)庫是______的集合,它具有統(tǒng)一的結(jié)構(gòu)形式并存放于統(tǒng)一的存儲介質(zhì)內(nèi),可被各個應用程序所共享。

A.視圖B.消息C.數(shù)據(jù)D.關(guān)系

4.以下對于C語言的描述中,正確的是:()

A.C語言調(diào)用函數(shù)時,值傳遞方式只能將實參的值傳給形參,形參的值不能傳遞給實參

B.C語言中函數(shù)既可以嵌套定義,也可以遞歸調(diào)用

C.函數(shù)必須有返回值

D.C程序中有調(diào)用關(guān)系的所有函數(shù)必須放在同一源程序文件中

5.在循環(huán)雙鏈表的p所指的結(jié)點之前插入s所指結(jié)點的操作是()。A.p->prior->prior

B.p->prior->prior

C.s->prior->next=s

D.s->prior->prior=s

6.以下程序的輸出結(jié)果是()。main{charch[3][4]={"123","456","78"),*p[3];inti;for(i=0;i<3;i++)p[i]=ch[i];for(i=0;i<3;i++)printf("%s",p[i]);}A.123456780B.123456780C.12345678D.147

7.

8.有以下程序:#include<stdio.h>main(){inta=10,b=11;if(++a==b++) printf(“T”);else printf(“F”);printf(“a=%d,b=%d\n”,a,b);}程序運行后的輸出結(jié)果是()。

A.Fa=11,b=11B.Fa=10,b=12C.Ta=10,b=11D.Ta=11,b=12

9.下列一維數(shù)組初始化語句中,正確且與語句floata[]={0,3,8,0,9};等價的是().

A.floata[6]={0,3,8,0,9};

B.floata[4]={0,3,8,0,9};

C.floata[7]={0,3,8,0,9};

D.floata[5]={0,3,8,0,9};

10.使用深度優(yōu)先算法遍歷下圖,遍歷的順序為()A.ABCDEFGB.ABDCFEGC.ABDECFGD.ABCDFEG

11.以下選項中可作為C語言合法常量的是_____。A.-80B.-080C.-8e1.0D.-80.Oe

12.為了使模塊盡可能獨立,要求()。

A.模塊的內(nèi)聚程度要盡量高,且各模塊間的耦合程度要盡量強

B.模塊的內(nèi)聚程度要盡量高,且各模塊間的耦合程度要盡量弱

C.模塊的內(nèi)聚程度要盡量低,且各模塊間的耦合程度要盡量弱

D.模塊的內(nèi)聚程度要盡量低,且各模塊間的耦合程度要盡量強

13.有下列程序:#include<stdio.h>voidfun(char*a,char*B){while(*a=='*')a++;while(*b=*A){b++;a++;}}main(){char*s="*****a*b****",t[80];fun(s,t);puts(t);程序的運行結(jié)果是()。A.*****a*bB.a*bC.a*b****D.ab

14.

15.下面哪種排序算法是穩(wěn)定的()

A.快速排序B.堆排序C.歸并排序D.選擇排序

16.

17.存儲以下數(shù)據(jù),占用存儲字節(jié)最多的是()。

A.0B.‘0’C.“0”D.0.0

18.有以下程序段intj;floaty;charname[50]:scanf("%2d%f%s",&i,&.y,name):當執(zhí)行上述程序段,從鍵盤上輸入555667777abc后,y的值為()。A.55566.0B.566.0C.7777.0D.566777.0

19.下列算法中,()算法用來求圖中某頂點到其他頂點所有頂點之間的最短路徑。

A.DijkstraB.FloyedC.PrimD.Kruskal

20.有以下程序:#include<stdio.h>voidfun(int*a,int*b){for(;(*a<*B)||(getchar()!=‘@’);){(*a)++;(*b)--;}}main(){inti=0,j=5;fun(&i,&j);printf(“%d,%d\n”,i,j);}程序運行時在第1列開始輸入ab@并按<Enter>鍵,則運行結(jié)果是()。

A.7,1B.3,2C.0,5D.5,0

二、2.填空題(20題)21.下列程序的運行結(jié)果是【】。

#include<stdio.h>

main

{intk=4,m=3,p;

p=func(k,m);

printf("%d",p);

p=func(k,m);

printf("%d\n",p);}

func(a,b)

inta,b;

{staticintm=0,i=2;

i+=m+1;

m=i+a+b;

return(m);}

22.下面程序的功能是:輸出100以內(nèi)能被4整除且個位數(shù)為8的所有整數(shù),請?zhí)羁?。main(){inti,j;for(i=0=();i++){j=i*10+8;if(j%4!=0)continue;printf("%d",j);}}

23.若有如下結(jié)構(gòu)體說明:

structSTRU

{inta,b;charc:doubled;

structSTRU*p1,*p2;

};

請?zhí)羁?,以完成對t數(shù)組的定義,t數(shù)組的每個元素為該結(jié)構(gòu)體類型。

【】t[20]

24.在面向?qū)ο蠓椒ㄖ?,允許作用于某個對象上的操作稱為【】。

25.在E-R圖中,矩形表示【】。

26.在關(guān)系模型中,把數(shù)據(jù)看成一個二維表,每一個二維表稱為一個______。

27.數(shù)據(jù)模型按不同的應用層次分為三種類型,它們是______數(shù)據(jù)模型、邏輯數(shù)據(jù)模型和物理數(shù)據(jù)模型。

28.設二進制數(shù)A是00101101,若想通過異或運算ab使A的高4位取反,低4位不變,則二進制數(shù)B應是【】。

29.最簡單的交換排序方法是______。

30.下面程序的輸出結(jié)果是【】。

main()

{intarr[10],i,k=0;

for(i=0;i<10;i++)arr[i]=i;

for(i=0;i<4;i++)k+=arr[i]=i;

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

}

31.已知字符A的ACSII碼值為65,以下語句的輸出結(jié)果是______。

charch='B';

printf("%c%d\n",ch,ch);

32.軟件定義時期主要包括______和需求分析兩個階段。

33.下面程序的運行結(jié)果是【】。

main()

{inti=0,j=10,k=2,s=0;

for(;;)

{i+=k;

if(i>j)

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

break;}

s+=i;}}

34.有以下程序:

intf(intn)

{if(n=1)return1;

elsereturnf(n-1)+1;}

main()

{inti,j=0;

for(i=1;i<3;i++)j+=f(i);

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

}

程序運行后的輸出結(jié)果是【】。

35.以下程序的運行結(jié)果是【】。

main()

{char*k="aeiou";

for(;*k;k++)printf("%c",*k);

}

36.類是一個支持集成的抽象數(shù)據(jù)類型,而對象是類的【】。

37.數(shù)據(jù)結(jié)構(gòu)分為邏輯結(jié)構(gòu)與存儲結(jié)構(gòu),線性鏈表屬于【】。

38.現(xiàn)有兩個C程序文件T18.c和myfun.c同在TC系統(tǒng)目錄(文件夾)下,其中T18.c文件如下:

#include<stdio.h>

#include"myfun.c"

main()

{fun();printf("\n");}

myfun.c文件如下:

voidfun()

{chars[80],c;intn=0;

while((c=getchar())!=′\n′)s[n++]=c;

n--;

while(n>=0)printf("%c",s[n--]);

}

當編譯連接通過后,運行程序T18時,輸入Thank!,則輸出結(jié)果是【】。

39.軟件測試方法中,黑盒測試法和白盒測試法是常用的方法,其中黑盒測試法主要是用于測試【】。

40.下列程序運行后的輸出結(jié)果是______。

#include<stdio.h>

main()

{chars[20];

scanf("%s",s);

printf("%s",s);

}

運行程序,輸入HOWAREYOU。

三、1.選擇題(20題)41.在說明語句:int*f();中,標識符f代表的是

A.一個用于指向整型數(shù)據(jù)的指針變量

B.一個用于指向一維數(shù)組的行指針

C.一個用于指向函數(shù)的指針變量

D.一個返回值為指針型的函數(shù)名

42.下面程序段的輸出結(jié)果是()。chara[]="lanuage",*p;p=a;while(*P!='u'){printf("%c",*p-32);P++;}

A.LANGUAGEB.languageC.LAND.langUAGE

43.以下程序的輸出結(jié)果是_______。main(){inti,a[10];for(i=9;i>=0;i-)a[i]=10-i;print("%d%d%d,a[2],a[5],a[8]);}

A.258B.741C.852D.369

44.以下各選項企圖說明一種新的類型名,其中正確的是______。

A.typedefv1int;

B.typedefv2=int;

C.typedefintv3;

D.typedefv4:int

45.有以下程序main(){inti=0,s=0;for(;;){if(i==3||i==5)continue;if(i==6)break;i++;s+=i;};printf("%d\n",s);}程序運行后的輸出結(jié)果是______。

A.10B.13C.21D.程序進入死循環(huán)

46.以下函數(shù)的功能是:通過鍵盤輸入數(shù)據(jù),為數(shù)組中的所有元素賦值。#defineN10voidartin(intx[N]){inti=0;while(i<N)scanf("%d",);}在下劃線處應填入的是()。

A.x+iB.&x[i+1]C.x+(i++)D.&x[++i]

47.算法的空間復雜度是指()。

A.算法程序的長度B.算法程序中的指令條數(shù)C.算法程序所占的存儲空間D.算法執(zhí)行過程中所需要的存儲空間

48.在ASCII代碼表中每一個大寫字母比它相應的小寫字母的ASCII碼()。

A.小32B.小64C.大32D.大1

49.下列程序的輸出結(jié)果是()。#include<stdio.h>main(){charch[2][5]={"1234","5678"},*p[2];inti,j,s=0;for(i=0;i<2;i++)p[i]=ch[i];for(i=0;i<2;i++)for(j=0;p[i][j]>'\0',j+=2){s=p[i][j]-'0';printf("%d",s);)}

A.6357B.6135C.1357D.691357

50.若有下列說明和語句,則對結(jié)構(gòu)體變量st中成員i的引用方式不正確的是()。Structstu{inti;intname;}st,*p;p=&st;

A.st.iB.*p.iC.(*p).iD.p->i

51.在數(shù)據(jù)流圖(DFD)中,帶有名字的箭頭表示______。

A.控制程序的執(zhí)行順序B.模塊之間的調(diào)用關(guān)系C.數(shù)據(jù)的流向D.程序的組成成分

52.設計數(shù)據(jù)庫的存儲結(jié)構(gòu)屬于()。

A.需求分析B.概念設計C.邏輯設計D.物理設計

53.有以下程序#include<stdlib.h>main(){char*p,*q;p=(char*)malloc(sizeof(char)*20);q=p;scanf("%s%s",p,q);printf("%s%s\n",p,q);}若從鍵盤輸入:abcdef<回車>,則輸出結(jié)果是

A.defdefB.abcdelC.abcdD.dd

54.設有定義:intn1=0.n2,*p=&n2,*q=&n1;,以下賦值語句中與n2=n1;語句等價的是

A.*p;*q;B.p=q;C.*p=&n1;D.p=*q;

55.下列關(guān)于C語言數(shù)據(jù)文件的敘述中正確的是A.文件由ASCII碼字符序列組成,C語言只能讀寫文本文件

B.文件由二進制數(shù)據(jù)序列組成,C語言只能讀寫二進制文件

C.文件由記錄序列組成,可按數(shù)據(jù)的存放形式分為二進制文件和文本文件

D.文件由數(shù)據(jù)流形式組成,可按數(shù)據(jù)的存放形式分為二進制文件和文本文件

56.有以下程序main(){intk=5,n=0;while(k>0){switch(k){default:break;case1:n+=k;case2:case3:n+=k;}k--;}printf("%d\n",n);程序運行后的輸出結(jié)果是

A.0B.4C.6D.7

57.若變量已正確說明為float類型,要通過語句scanf("%f%f%f",&a,&b,&c),給a賦予10.0,b賦予22.0,b賦予33.0,不正確的輸入形式是()

A.10<回車>22<回車>33<回車>

B.10.0,22.0,33.0<回車>

C.10.0<回車>22.O33.00<回車>

D.10.22<回車>33<回車>

58.若有以下定義語句:char*sl="12345",*s2="1234";printf("%d"n",strlen(strcpy(s1,s2)));則輸出結(jié)果是()

A.4B.5C.9D.10

59.若有說明inta[][3]={1,2,3,4,5,6,7,8,9},則a數(shù)組第一維的大小是()。

A.2B.3C.4D.無確定值

60.若有定義:inta[4][10];,則以下選項中對數(shù)組元素a[i][i]引用錯誤的是______。(0<=i<4,0=i<10)

A.*(&a[0][0]十10*i+j)B.*(a+i)+jC.*(a+i)+j)D.*(a[i]+j)

四、選擇題(20題)61.

定義結(jié)構(gòu)體數(shù)組:

structstu

{intnum;

charnameE20];

}X[5]={1,"LI",2,"ZHAO",3,"WANG",4,"ZHANG",5,"LIU");

for(i=1;i<5;i++)

printf("%d%c",x[i].num,x[i].name[2]);

以上程序段的輸出結(jié)果為()。

A.2A3N4A5UB.112A3H4IC.1A2N3A4UD.2H3A4H5I

62.

現(xiàn)有以下結(jié)構(gòu)體說明和變量定義,如圖所示,指針p、q、r分別指定一個鏈表中連續(xù)的3個結(jié)點。

structnode

{bardata;

structnode*next;}*p,*q,*r;

現(xiàn)要將q和r所指結(jié)點交換前后位置,同時要保持鏈表的結(jié)構(gòu),下列不能完成此操作的語句是()。

A.q->next=r->next;P>next=r;r->next=q;

B.q->next=r;q->next=r->next;r->next=q;

C.q->next=r->next;r->next=q;P->next=r:

D.q->next=q;P->next=r;q->next=r->next;

63.有以下程序:

程序運行后的輸出結(jié)果是()。

A.3B.4C.lD.9

64.以下程序運行后的輸出結(jié)果是()。

main()

{inta=2,b=3,c;

c=a;

if(a>b)c=1;

elseif(a==b)c=0;

elsec=-1;

printf("%d\n",c);}

A.1B.3C.-1D.0

65.

66.(36)下列工具中屬于需求分析常用工具的是()

A.PAD

B.PFD

C.N-S

D.DFD

67.(42)希爾排序法屬于哪一種類型的排序法()

A.交換類排序法

B.插入類排序法

C.選擇類排序法

D.建堆排序法

68.

69.

70.

71.

72.以下程序的輸出結(jié)果是()。main{inta=3:printf("%d\n",(a+a-=a*a));}A.-6B.12C.0D.-12

73.

74.

75.(48)軟件調(diào)試的目的是()

A.發(fā)現(xiàn)錯誤

B.改正錯誤

C.改善軟件的性能

D.挖掘軟件的潛能

76.

77.若要用函數(shù)fopen打開一個新的二進制文件,該文件要既能讀也能寫,則應以()方式打開文件。

A."wb"B."wb+"C."rb+"D."rb"

78.

79.(17)軟件需求分析階段的工作,可以分為四個方面:需求獲取、需求分析、編寫需求規(guī)格說明書以及()

A.階段性報告

B.需求評審

C.總結(jié)

D.都不正確

80.視圖設計一般有3種設計次序,下列不屬于視圖設計次序的是()。

A.自頂而下B.由內(nèi)向外C.由外向內(nèi)D.自底向上

五、程序改錯題(1題)81.下列給定程序中,函數(shù)proc()的功能是:從m個學生的成績中統(tǒng)計出低于平均分的學生人數(shù),人數(shù)由函數(shù)值返回,平均分存放在形參aver所指的存儲單元中。例如,輸入8名學生的成績:6070809065758595則低于平均分的學生人數(shù)為4(平均分為77.5)。實際輸入時學生數(shù)以“Enter”鍵作為結(jié)束,成績與成績之間也與Enter鍵作為分隔。請修改程序中的錯誤,使它能得到正確結(jié)果。注意:不要改動main()函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。試題程序:

六、程序設計題(1題)82.某學生的記錄由學號、8門課成績和平均分組成,學號和8門課的成績已在主函數(shù)中給出。請編寫proc()函數(shù),它的功能是:求出該學生的平均分并放在記錄的ave成員中。請自己定義正確的形參。例如,若學生的成績是65.5,75,88,90,90.5,66,64.5,89.5,則他的平均分應當是78.625。注意:部分源程序給出如下。請勿改動main()函數(shù)和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)proc()的花括號中填入所編寫的若干語句。試題程序:

參考答案

1.C程序定義一個二維字符數(shù)組a,使用5個字符串對其初始化。另外定義字符指針數(shù)組P。for循環(huán)中,每次將數(shù)組a當前下標為i的字符串首地址賦給P[i],再求得P[i]的長度賦給len,第1個printf輸出p[i]字符串的首字母,第2個printf輸出p[i]字符串下標從len/2開始的子字符串。當下標i=0時輸出efg;當下標i=l時輸出acd;當下標i=2時輸出mopq;當下標i=3時輸出hjkl;當下標i=4時輸出rvwxyz。所以程序輸出:efgacdmopqhjklrvwxyz。本題答案為C選項。

2.D

3.C解析:數(shù)據(jù)庫是數(shù)據(jù)的集合,其中的數(shù)據(jù)是按數(shù)據(jù)所提供的數(shù)據(jù)模式存放的,它能構(gòu)造復雜的數(shù)據(jù)結(jié)構(gòu),以建立數(shù)據(jù)之間的內(nèi)在聯(lián)系與復雜的關(guān)系-故答案為C。

4.A

5.D

6.B第一個for循環(huán)的作用是讓p指向每行的首地址,第二個for循環(huán)的作用是把它指向的字符串輸出,故選擇B選項。

7.A

8.D自增運算符是將運算對象的值增1,它有前綴形式“++a”和后綴形式“b++”。其中“++a”表示首先將a的值自增1,然后表達式“++a”的值就是自增后a的值;而“b++”表示首先將b的值作為表達式的值,然后再將b的值自增1。本題中,a的初值為10,b的初值為11,則表達式“++a==b++”,等價于“11==11”,條件為真,所以輸出“T”。if語句執(zhí)行完后,a的值為11,b的值為12,輸出“a=11,b=12”。故本題答案為D選項。

9.D

10.C

11.A解析:C語言的常量分為整型常量、實型常量和字符型常量。選項A屬于實型常量中的十進制小數(shù)形式的表示法,是合法的。

12.B解析:模塊獨立性是指每個模塊只完成系統(tǒng)要求的獨立的子功能,并且與其他模塊的聯(lián)系最少且接口簡單。耦合性與內(nèi)聚性是模塊獨立性的兩個定性標準,耦合與內(nèi)聚是相互關(guān)聯(lián)的。在程序結(jié)構(gòu)中,各模塊的內(nèi)聚性越強,則耦合性越弱。一般較優(yōu)秀的軟件設計,應盡量做到高內(nèi)聚,低耦合,即減弱模塊之間的耦合性和提高模塊內(nèi)的內(nèi)聚性,有利于提高模塊的獨立性。本題答案為B。

13.C解析:主函數(shù)main()定義了指向字符串的指針和一個字符數(shù)組,接著調(diào)用fun(s,t)函數(shù),進行實參向形參傳遞,函數(shù)fun()第一個while語句判斷*a中的值為“*”時繼續(xù)掃描,當遇到不是“*”時結(jié)束,接著第二個while循環(huán)語句,將*a中從“a”開始的后續(xù)所有字符都賦予*b,也就是t[80]中的內(nèi)容為“a*b****”,所以此題的運行結(jié)果為選項C)。

14.B

15.C

16.D

17.D

18.B變量J只接收輸入數(shù)據(jù)的前兩位,從第三位開始直到空格之間的輸入整數(shù)都會被保存到浮點型變量Y中。

19.A

20.Dfun函數(shù)接收兩個整型指針變量a、b。for循環(huán)判斷a、b指向的值大小和getchar讀入的字符是否為“@”來決定循環(huán)是否執(zhí)行。循環(huán)體內(nèi)對a、b指向的值各自自增1、自減1。main函數(shù)定義并初始化實參i的值為0,實參j的值為5,調(diào)用函數(shù)fun,傳入i、j的地址。所以形參a指向i,形參b指向j,*a的值為0,*b的值為5,*a<*b為真,執(zhí)行循環(huán)體;*a的值為1,*b的值為4,*a<*b為真,執(zhí)行循環(huán)體;*a的值為2,*b的值為3,*a<*b為真,執(zhí)行循環(huán)體;*a的值為3,*b的值為2,*a<*b為假,getchar讀入字符“a”,執(zhí)行循環(huán)體;*a的值為4,*b的值為1,*a<*b為假,getchar讀入字符“b”,執(zhí)行循環(huán)體;*a的值為5,*b的值為0,*a<*b為假,getchar讀入字符“@”,fun函數(shù)執(zhí)行完畢,main函數(shù)輸出5,0。故本題答案為D選項。

21.10211021解析:此題主要考查了變量和函數(shù)的存儲類別。函數(shù)的存儲范圍是從定義它的位置到文件結(jié)束為止,如果想在函數(shù)定義之前使用函數(shù),需要先對函數(shù)進行聲明。靜態(tài)局部變量的生存期為整個程序的運行期間,作用域卻為定義它的函數(shù)或局部范圍內(nèi)。

22.i<10i<10解析:分析程序:當(i=0,1,2,…)時,“j=i*10+8”語句的運行結(jié)果是(8,18,28,…)個位數(shù)字為8的所有整數(shù);題中要求是100以內(nèi)的整數(shù),所以i<10;“if(j%4!=0)continue;”語句的功能是當條件不能被4整除時,繼續(xù)循環(huán)不執(zhí)行操作,直到能被4整除時輸出該數(shù),所以輸出的數(shù)滿足條件100以內(nèi)能被4整除且個位數(shù)為8。

23.strudctSTRUstrudctSTRU解析:結(jié)構(gòu)件類型是構(gòu)造數(shù)據(jù)類型,是用戶自己定義的一種類型。

結(jié)構(gòu)體類型的定義:

struct結(jié)構(gòu)體類型名

{

成員項表;

};

定義結(jié)構(gòu)體變量的的形式為:

struct結(jié)構(gòu)體類型名變量1,變量2,...?

其中變量包括;一般變量、指針變量、數(shù)組變量等。

24.方法方法解析:在面向?qū)ο蠓椒ㄖ?,方法是指允許作用于某個對象上的各種操作。

25.實體實體解析:E-R模型中,有3個基本的抽象概念:實體、聯(lián)系和屬性。在E-R圖中,用矩形框表示實體,菱形框表示聯(lián)系,橢圓形框表示屬性。

26.關(guān)系關(guān)系解析:關(guān)系模型用;維表表示,則每個;維表代表一種關(guān)系。

27.概念概念

28.1111000011110000解析:按位異或運算的一個重要應用是讓某個整型變量的二進制位取反,0變成1,而1變成0。這只要設計這樣一個位串信息,讓要變反的位為1,不要改變的位為0,用這個位串信息與整型變量按位加就能得到希望的結(jié)果。要使字節(jié)的高4位取反,低4位不變,則需要位串信息是11110000。

29.冒泡排序冒泡排序解析:交換排序是指借助數(shù)據(jù)元素之間的互相交換進行排序的一種方法。冒泡排序是一種最簡單的交換排序方法,它是通過相鄰元素之間的相互交換逐步將線性表變成有序。

30.66解析:本題第1個for循環(huán)是為數(shù)組arr元素賦初值。第2個for循環(huán)是分別用i=0,1,2,3給數(shù)組元素arr[0]、arr[1]、arr[2]、arr[3]賦值,再累加到變量k中,k=0+1+2+3=6。

31.B66B66解析:printf函數(shù)的功能是按照指定的格式,在標準輸出設備上輸出數(shù)據(jù),它有兩種參數(shù):格式控制參數(shù)和輸出項參數(shù)。本題中,printf('%c%d\\n',ch,ch)表示以字符格式和十進制整數(shù)格式輸出ch,B的ACSII碼值為66,即在計算機中B的十進制整數(shù)格式是66。所以,輸出為B66。

32.可行性研究可行性研究解析:軟件生命周期一般包括可行性研究與需求分析、設計、實現(xiàn)、測試、交付使用及維護等,還可以將軟件生命周期分為三個階段:①軟件定義階段:可行性研究和需求分析;②軟件開發(fā)階段:設計、實現(xiàn)和測試;③軟件運行維護階段:交付使用和維護。

33.3030解析:考查for循環(huán)的使用。題目中for(;;)表示:for循環(huán)的初始化表達式,條件表達式和修正表達式都省略了,表示進行for循環(huán)和for循環(huán)的終止都沒有限制。

34.33解析:i=1時,f(1)=1,j=j+f(1)=0+1=1;i=2時,f(2)=f(1)+1=1+1=2,j=j+f(2)=1+3=3;此時循環(huán)結(jié)束,程序運行后的輸出結(jié)果是3。

35.aeiou

36.實例將屬性、操作相似的對象歸為類,也就是說,類是具有共同屬性、共同方法的對象的集合。所以,類是對象的抽象,對象則是其對應類的一個實例。

37.存儲結(jié)構(gòu)

38.!knahT!knahT解析:此程序是一道次序顛倒題,即輸入'Thank!',則輸出'!knahT'。

39.軟件外部功能軟件外部功能

40.HOWHOW解析:在scanf()函數(shù)中,使用空格作為分隔符,如果輸入含有空格的字符中,則不能使用scanf()數(shù),所以本題中輸入空格就返回了'\\0\\,s數(shù)組也就確定了,后面的輸入就不再讀入數(shù)組s中。

41.D解析:帶回指針值的函數(shù),其一般定義形式為:

類型標識符*函數(shù)名(參數(shù)表);

例如;int*f(x,y);

其中,f是函數(shù)名,調(diào)用它以后能得到一個指向整型數(shù)據(jù)的指針(地址),x,y是函數(shù)f的形參。在f的兩側(cè)分別為*運算符和()運算符,而()優(yōu)先級高于*,因此f先與()結(jié)合,顯然是函數(shù)形式。這個函數(shù)前面有一個*,表示此函數(shù)是指針型函數(shù)(函數(shù)值是指針)。前面

溫馨提示

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

評論

0/150

提交評論