2021-2022年河南省鶴壁市全國(guó)計(jì)算機(jī)等級(jí)考試C語(yǔ)言程序設(shè)計(jì)_第1頁(yè)
2021-2022年河南省鶴壁市全國(guó)計(jì)算機(jī)等級(jí)考試C語(yǔ)言程序設(shè)計(jì)_第2頁(yè)
2021-2022年河南省鶴壁市全國(guó)計(jì)算機(jī)等級(jí)考試C語(yǔ)言程序設(shè)計(jì)_第3頁(yè)
2021-2022年河南省鶴壁市全國(guó)計(jì)算機(jī)等級(jí)考試C語(yǔ)言程序設(shè)計(jì)_第4頁(yè)
2021-2022年河南省鶴壁市全國(guó)計(jì)算機(jī)等級(jí)考試C語(yǔ)言程序設(shè)計(jì)_第5頁(yè)
已閱讀5頁(yè),還剩83頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

2021-2022年河南省鶴壁市全國(guó)計(jì)算機(jī)等級(jí)考試C語(yǔ)言程序設(shè)計(jì)學(xué)校:________班級(jí):________姓名:________考號(hào):________

一、單選題(20題)1.有以下程序:#include<stdio.h>inta=1,b=2:voidfunl(inta,intb){printf("%d%d",a,b);}voidfun2(){a=3;b=4;}main(){funl(5,6);fun2();printf("%d%d\n",a,b);}程序運(yùn)行后的輸出結(jié)果是()。A.1256B.5634C.5612D.3456

2.面向?qū)ο蟮脑O(shè)計(jì)方法與傳統(tǒng)的面向過(guò)程的方法有本質(zhì)不同,它的基本原理是()。

A.模擬現(xiàn)實(shí)世界中不同事物之間的聯(lián)系

B.強(qiáng)調(diào)模擬現(xiàn)實(shí)世界中的算法而不強(qiáng)調(diào)概念

C.使用現(xiàn)實(shí)世界的概念抽象地思考問(wèn)題從而自然地解決問(wèn)題

D.不強(qiáng)調(diào)模擬現(xiàn)實(shí)世界中的算法而強(qiáng)調(diào)概念

3.有下列程序段:intn,t=1,S=0;scanf("%d",&n);do{s=s+t;t=t-2;while(t!=n);為使此程序段不陷入循環(huán),從鍵盤輸入的數(shù)據(jù)應(yīng)該是()。A.任意正奇數(shù)B.任意負(fù)偶數(shù)C.任意正偶數(shù)D.任意負(fù)奇數(shù)

4.設(shè)一個(gè)廣義表中結(jié)點(diǎn)的個(gè)數(shù)為n,則求廣義表深度算法的時(shí)間復(fù)雜度為____。

A.O(1)B.O(n)C.O(n2)D.O(log2n)

5.以下敘述中錯(cuò)誤的是______。A.C程序必須由—個(gè)或—個(gè)以上的函數(shù)組成

B.函數(shù)調(diào)用可以作為—個(gè)獨(dú)立的語(yǔ)句存在

C.若函數(shù)有返回值,必須通過(guò)return語(yǔ)句返回

D.函數(shù)形參的值也可以傳回給對(duì)應(yīng)的實(shí)參

6.最大容量為n的循環(huán)隊(duì)列,隊(duì)尾指針是rear,隊(duì)頭是front,則隊(duì)空的條件是()。

A.(rear+1)MODn=front

B.rear=front

C.rear+1=front

D.(rear-l)MODn=front

7.有以下程序:Main(){{intx,y,z;x=y=1;z=x++,y++,++y;print(“%d,%d,%d”,x,y,z);}程序運(yùn)行后的輸出結(jié)果是()。A.2,3,3B.2.3.2C.2,3.1D.2.2.1

8.以下敘述中錯(cuò)誤的是()。

A.c語(yǔ)言是一種結(jié)構(gòu)化程序設(shè)計(jì)語(yǔ)言

B.使用三種基本結(jié)構(gòu)構(gòu)成的程序只能解決簡(jiǎn)單問(wèn)題

C.結(jié)構(gòu)化程序設(shè)計(jì)提倡模塊化的設(shè)計(jì)方法

D.結(jié)構(gòu)化程序由順序、分支、循環(huán)三種基本結(jié)構(gòu)組成

9.

10.有下列程序:fun(intx,inty){staticintm=0,i=2;i+=m+1;m=i+x+y;returnm;}main(){intj=1,m=1,k;k=fun(j,m);printS(”%d,”,k);k=fun(j,m);printf(”%d\n”,k);)執(zhí)行后的輸出結(jié)果是()。A.5,5B.5,11C.11,11D.11,5

11.下列敘述中正確的是()。

A.軟件測(cè)試應(yīng)該由程序開發(fā)者來(lái)完成

B.程序經(jīng)調(diào)試后一般不需要測(cè)試

C.軟件維護(hù)只包括對(duì)程序代碼的維護(hù)

D.以上三種說(shuō)法都不對(duì)

12.有以下程序:#include<stdio.h>voidfun(int*s){staticinti=0;do{s[J]=s[J]+s[j+I];}while(++j<2);}main(){intk.a(chǎn)[l0]={1,2,3,4,5};for(k=1;k<3;k++)fun(a);for(k=0;k<5;k++)pfintf("%d",a[k]);printf("\n");}程序運(yùn)行后的輸出結(jié)果是()。A.12345B.23445C.34756D.35745

13.在一個(gè)C源程序文件中所定義的全局變量,其作用域?yàn)?)。A.由具體定義位置和extern說(shuō)明來(lái)訣定范圍B.所在程序的全部范圍C.所在函數(shù)的全部范圍D.所在文件的全部范圍

14.

15.

16.

17.執(zhí)行下列程序后,輸出的結(jié)果是()。

#include<stdio.h>

#defineS(X)X*X

voidmain()

{ihta=9,k=3,m=2;

a/=S(k+m)/S(k+m);

printf("%d",A);

}

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

18.表達(dá)式a*(b+c)-d的后綴表達(dá)式是()。

A.abcdd+-B.abc+*d-C.abc*+d-D.-+*abcd

19.給定數(shù)列(541,132,984,746,518,181,946,314,205,827)按照從小到大的順序排列,采用冒泡排序時(shí),第一趟掃描結(jié)果是()

A.(541,132,827,746,518,181,946,314,205,984)

B.(205,132,314,181,518,746,946,984,541,827)

C.(132,541,746,984,181,518,314,946,205,827)

D.(132,541,746,518,181,946,314,205,827,984)

20.函數(shù)fseek(pf,OL,SEEKEND)中的SEEKENE代表的起始點(diǎn)是()。

A.文件開始B.文件末尾C.文件當(dāng)前位置D.以上都不對(duì)

二、2.填空題(20題)21.以下程序的輸出結(jié)果是【】。

main()

{inta=0;

a+=(a=8);

printf(“%d\n”,A);

}

22.以下程序運(yùn)行后的輸出結(jié)果是【】。

main()

{

inti,n[]={0,0,0,0,0};

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

{

n[i]=n[i-1]*2+1;

printfi["%d",n[i]);

}

}

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

#include<string.h>

main()

{printf("%d\n",strlen("IBM\n012\1\\"));}

24.關(guān)系代數(shù)是關(guān)系操作語(yǔ)言的一種傳統(tǒng)表示方式,它以集合代數(shù)為基礎(chǔ),它的運(yùn)算對(duì)象和運(yùn)算結(jié)果均為()。

25.函數(shù)fun的返回值是【】

fun(char*a,char*b)

{intnum=0,n=0;

while(*(a+num)!='\0')mm++;

while(b[n]){*(a+num)=b[n];num++;n++;}

returnnum;

}

26.對(duì)于軟件測(cè)試,從是否需要執(zhí)行被測(cè)軟件的角度,可以分為靜態(tài)測(cè)試和動(dòng)態(tài)測(cè)試。代碼檢查屬于______測(cè)試。

27.有以下程序:

#include<stdio.h>

main()

{

charc;

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

}

程序運(yùn)行時(shí),如查從鍵盤輸入:Y?N?<回車>,則輸出的結(jié)果為______。

28.下列程序的運(yùn)行結(jié)果是______。

#include<stdio.h>

func(a,b)

{staticintm=0,i=2;

i+=m+1;

m=i+a+b;

return(m);

}

main()

{intk=5,m=3,p;

p=func(k,m);

printf("%d",p);

p=func(k,m);

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

}

29.以下程序的功能是:從鍵盤上輸入若干學(xué)生的成績(jī),統(tǒng)計(jì)計(jì)算出平均成績(jī),并輸出低于平均分的學(xué)生成績(jī),用輸入負(fù)數(shù)結(jié)束輸入。填空。

main()

{floatx[1000],sum,=0.0,avea;

intn=0,i;

printf("Entermark:"\n");scanf("%f",&a);

while(a>=0.0&&n<1000)

{sum+=【】;x[n]=【】;

n++;scanf("%f",&a);

}

ave=【】;

printf("Output:"\n");

printf("ave=%f"\n",ave);

for(i=0,i<n;i++)

if(【】)frintf("%f\n",x[i]);

}

30.有以下定義和語(yǔ)句,則sizeof(a.share)的值是()。

structdate

{unsignedintday;

unsignedintmouth;

unsignedintyear;

union{intshare1;

floatshare2;

}share;

}a;

31.以下程序的功能是建立一個(gè)帶有頭結(jié)點(diǎn)的單向鏈表,鏈表結(jié)點(diǎn)中的數(shù)據(jù)通過(guò)鍵盤輸入,當(dāng)輸入數(shù)據(jù)為-1時(shí),表示輸入結(jié)束(鏈表頭結(jié)點(diǎn)的data域不放數(shù)據(jù),表空的條件是ph->next==NULL),請(qǐng)?zhí)羁铡?/p>

#include<stdio.h>

structlist{intdata;structlist*next;};

structlist*creatlist()

{structlist*p,*q,*ph;inta;ph=(structlist*)malloc(sizeof(structlist));

p=q=ph;printf("Inputanintegernumber;entre-1toend:\n");

scanf("%d",&a);

while(a!=-1)

{p=(structlist*)malloc(sizeof(structlist));

【】=a;q->next=p;【】=p;scanf("%d",&a);}

p->next=′\0;return(ph);}

main()

{structlist*head;head=creatlist();}

32.在軟件測(cè)試中,動(dòng)態(tài)測(cè)試和靜態(tài)測(cè)試手段只能發(fā)現(xiàn)程序中的錯(cuò)誤,而不能證明程序中不存在錯(cuò)誤,只有【】證明才有可能證明程序的正確性。

33.下列程序的輸出結(jié)果是______。

#defineP(A)printf("%d,",(int)(A))

#definePRINT(A)P(A);printf("theend")

main()

{inti,a=0;

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

PRINT(a+i);

printf("\n");

}

34.注釋說(shuō)明了程序的功能,它分為【】注釋和功能性注釋。

35.以下程序運(yùn)行后的輸出結(jié)果是______。

fun(intx)

{if(x/2>0)fun(x/2);

printf("%d",x);

}

main()

{fun(6);}

36.數(shù)據(jù)字典是各類數(shù)據(jù)描述的集合,它通常包括5個(gè)部分,即數(shù)據(jù)項(xiàng)、數(shù)據(jù)結(jié)構(gòu)、數(shù)據(jù)流、______和處理過(guò)程。

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

structSTRU

{inta,b;charc:doubled;

structSTRU*p1,*p2;

};

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

【】t[20]

38.四條語(yǔ)句:x++;、++x;、x=x+1;、x=1+x;,執(zhí)行后都使變量x中的值增1,請(qǐng)寫出一條同一功能的賦值語(yǔ)句(不得與列舉的相同)【】。

39.下列程序?qū)⒍S數(shù)組a的行和列元素互換后存放到另一個(gè)二維數(shù)組b中。請(qǐng)?zhí)羁铡?/p>

main()

{inta[2][3]={{1,2,3},{4,5}},b[3][2],i,j;

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

{for(j=0;j<3;j++)

}

}

40.下列程序的運(yùn)行結(jié)果是______。

main()

{ints=0,i=1;

while(s<=10)

{s=s+i*i;

i++;

}

printf("%d",--i);

}

三、1.選擇題(20題)41.以下程序#include<stdio.h>#include<string.h>main(){char*pl="abc",*p2="ABC",str[50]="xyz";strcpy(str+2,strcat(p1,p2));printf("%s\n",str);}的輸出是________。

A.xyzabcABCB.zabcABCC.yzabcABCD.xyabcABC

42.若x是整型變量,pb是基類型為整型的指針變量,則正確的賦值表達(dá)式是______。

A.pb=&x;B.pb=x;C.*pb=&x;D.*pb=*x

43.如果需要打開一個(gè)已經(jīng)存在的非空文件“Demo”進(jìn)行修改,下面選項(xiàng)中正確的是

A.fp=fopen("Demo","r");

B.fp=fopen("Demo","ab+");

C.fp=fopen("Demo","w+");

D.fp=fopen("Demo","r+");

44.算法的時(shí)間復(fù)雜度是指______。

A.執(zhí)行算法程序所需要的時(shí)間B.算法程序的長(zhǎng)度C.算法執(zhí)行過(guò)程中所需要的基本運(yùn)算次數(shù)D.算法程序中的指令條數(shù)

45.下列不屬于軟件工程的3個(gè)要素的是______。

A.工具B.過(guò)程C.方法D.環(huán)境

46.判斷字符串s1是否大于字符串s2,應(yīng)該使用()。

A.if(strcmp(s1,s2)<0)

B.if(s1>s2)

C.if(strcmp(s2,s1)<0)

D.if(strcmp(s1,s2))

47.設(shè)x,y,z,(均為整型變量,現(xiàn)有如下語(yǔ)句x=y=z=1;t=++x‖++y&&++z;,則執(zhí)行這個(gè)語(yǔ)句后t的值為

A.2B.1C.0D.不定值

48.關(guān)于printf()函數(shù)的返回值敘述正確的是

A.通常是本次調(diào)用中輸出字符的個(gè)數(shù)B.通常是輸出的第一個(gè)數(shù)值C.通常返回布爾值真D.通常返回非零值

49.下列與表達(dá)式“b=(a<0?-1:a>0?1:0)”的功能等價(jià)選項(xiàng)是()

A.b=0;if(a>=0)if(a>0)b=1;elseb=-1;

B.if(a>0)b=1;elseif(a<0)b=-1;elseb=0;

C.if(A)if(a<0)b=-1;elseif(a>0)b=1;elseb=0;

D.b=-1;if(A)if(a>0)b=1;elseif(a==0)b=0;elseb=-1;

50.下列合法的標(biāo)識(shí)符是()。

A.123B.#256C.a.55D.abhj1_2_3

51.若x,i,j和k都是int型變量,則計(jì)算表達(dá)式x=(i=4,j=16,k=32)后,x的值為()。

A.4B.16C.32D.52

52.下列工具中為需求分析常用工具的是()。

A.PADB.PFDC.N-SD.DFD

53.下列對(duì)于線性鏈表的描述中正確的是______。

A.存儲(chǔ)空間不一定是連續(xù),且各元素的存儲(chǔ)順序是任意的

B.存儲(chǔ)空間不一定是連續(xù),且前件元素一定存儲(chǔ)在后件元素的前面

C.存儲(chǔ)空間必須連續(xù),且各前件元素一定存儲(chǔ)在后件元素的前面

D.存儲(chǔ)空間必須連續(xù),且各元素的存儲(chǔ)順序是任意的

54.為了避免在嵌套的條件語(yǔ)句if-else中產(chǎn)生二義性,C語(yǔ)言中規(guī)定的if-else配對(duì)原則是______。

A.else子句與縮排位置相同的if配對(duì)

B.else子句與其之前最近的未被配對(duì)的if配對(duì)

C.else子句與其之后最近的if配對(duì)

D.else子句與同一行上的if配對(duì)

55.有以下程序:Voidf(inta[],ihti,intj){intt;if(i<j){t=a[i];a[i]=a[j];a[j]=t;f(a,i+1,i-1);}}main(){inti,aa[5]={1,2,3,4,5};f(aa,0,4);for(i=0;i<5;i++)printf("%d",aa[i]);printf("\n");}執(zhí)行后輸出結(jié)果是

A.5,4,3,2,1,B.5,2,3,4,1,C.1,2,3,4,5,D.1,5,4,3,2,

56.設(shè)已執(zhí)行預(yù)編譯命令#include<string.h>,以下程序段的輸出結(jié)果是()。chars[]="anapple";printf("%d\n",strlen(s));

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

57.有如下程序:longfib(intn){if(n>2)return(fib(n-1)+fib(n-2));elsereturn(2);}main(){printf("%ld\n",fib(3));}該程序的輸出結(jié)果是______。

A.2B.4C.6D.8

58.關(guān)系數(shù)據(jù)庫(kù)的數(shù)據(jù)及更新操作必須遵循______等完整性規(guī)則。

A.實(shí)體完整性和參照完整性

B.參照完整性和用戶定義的完整性

C.實(shí)體完整性和用戶定義的完整性

D.實(shí)體完整性、參照完整性和用戶定義的完整性

59.下列描述中正確的是()。

A.程序就是軟件

B.軟件開發(fā)不受計(jì)算機(jī)系統(tǒng)的限制

C.軟件既是邏輯實(shí)體,又是物理實(shí)體

D.軟件是程序、數(shù)據(jù)與相關(guān)文檔的集合

60.閱讀程序:main(){intx;scanf("%d',&x);if(x--<5)printf("%d\n",x);elseprintf("%d\、n",x++);}程序運(yùn)行后,如果從鍵盤上輸入5,則輸出結(jié)果是()

A.3B.4C.5D.6

四、選擇題(20題)61.在軟件開發(fā)中,需求分析階段產(chǎn)生的主要文檔是()。

A.可行性分析報(bào)告B.軟件需求規(guī)格說(shuō)明書C.概要設(shè)計(jì)說(shuō)明書D.集成測(cè)試計(jì)劃

62.對(duì)如下二叉樹進(jìn)行后序遍歷的結(jié)果為()。

A.A.ABCDEFB.DBEAFCC.ABDECFD.DEBFCA

63.下面不屬于需求分析階段任務(wù)的是()。

A.確定軟件系統(tǒng)的功能需求B.確定軟件系統(tǒng)的性能需求C.制定軟件集成測(cè)試計(jì)劃D.需求規(guī)格說(shuō)明書評(píng)審

64.下列程序的運(yùn)行結(jié)果是()。

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

65.軟件設(shè)計(jì)中衡量模塊獨(dú)立性的度量標(biāo)準(zhǔn)是()。

A.抽象和信息隱蔽B.局部化和封裝化C.內(nèi)聚性和耦合性D.激活機(jī)制和控制方法

66.下列敘述中正確的是()。

A.每個(gè)C語(yǔ)言程序文件中都必須要有一個(gè)main(.函數(shù)

B.在c語(yǔ)言程序中main(.函數(shù)的位置是固定的

C.c語(yǔ)言程序中所有函數(shù)之間都可以相互調(diào)用,與函數(shù)所在位置無(wú)關(guān)

D.在c語(yǔ)言程序的函數(shù)中不能定義另一個(gè)函數(shù)

67.有以下定義和語(yǔ)句:

structworkers

{intnum;charname[20];charC;

struct

{intday;intmonth;intyear;)S;

};

structworkersw,*pw;

pw=&w;

能給w中year成員賦1980的語(yǔ)句是()。

A.*pw.year=1980;

B.w.year=1980;

C.pw->year=1980

D.w.S.year=1980;

68.下列選項(xiàng)中,不是一個(gè)算法的基本特征的是()。

A.完整性B.可行性C.有窮性D.擁有足夠的情報(bào)

69.若要求定義具有10個(gè)int型元素的一維數(shù)組a,則以下定義語(yǔ)句中錯(cuò)誤的是()。

70.設(shè)x、y和z是int型變量,且x=4,y=6,z=8,則下列表達(dá)式中值為0的是()。

A.x&&yB.x<=yC.x||++y&&y-zD.!(x<y&&!z||1

71.若程序中有以下說(shuō)明和定義。

structabc

{

intx;chary;

}

structabcs1,s2;

則會(huì)發(fā)生的情況是

A.編譯時(shí)出錯(cuò)B.程序?qū)㈨樞蚓幾g、連接、執(zhí)行

C.能順序通過(guò)編譯、連接,但不能執(zhí)行D.能順序通過(guò)編譯,但連接出錯(cuò)

72.Internet使用的網(wǎng)絡(luò)協(xié)議是()。

A.3CP協(xié)議B.TCP/IP協(xié)議C.UDP協(xié)議D.IP協(xié)議

73.

74.沒(méi)有以下語(yǔ)句

則Z的二進(jìn)制值是()。

A.00010100B.00011011C.00011100D.00011000

75.

有以下程序

#include<stdio.h>

#include<string.h>

voidfun(chars[][10],intn)

{

chart;inti,j;

for(i=0;i<n-1;j++)

for(j=i+1,j<n;j++)

/*比較字符串的首字符大小,并交換字符串的首字符*/

if(s[0])>s[i][c]{t=s[i][o];s[i][o]=s[j][o];s[j][0]=t;}

}

main

{charss[5][10]="bcc","bbcc","xy","aaaacc","aabcc"}

fun(ss,5);printf("%s,%s",ss[0],ss[4]);

}

程序運(yùn)行結(jié)果是()。

A.xy,aaaaccB.aaaacc,xyC.xcc,aabccD.acc,xabcc

76.以下只有在使用時(shí)才為該類型變量分配內(nèi)存的存儲(chǔ)類型說(shuō)明是()。

A.auto和static

B.auto和register

C.register和static

D.extern和register

77.

78.

79.對(duì)于長(zhǎng)度為n的線性表,在最壞的情況下,下列各排序法所對(duì)應(yīng)的比較次數(shù)中正確的是

A.插入排序?yàn)閚/2B.插入排序?yàn)閚C.快速排序?yàn)閚D.快速排序?yàn)閚(n-1)/2

80.

五、程序改錯(cuò)題(1題)81.下列給定程序中,函數(shù)proc的功能是:讀入一個(gè)字符串(長(zhǎng)度<20),將該字符串中的所有字符按ASCII碼升序排序后輸出。

例如,輸入opdye,則應(yīng)輸出deopy。

請(qǐng)修改程序中的錯(cuò)誤,使它能得到正確結(jié)果。

注意:不要改動(dòng)main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。

試題程序:

#include<string.h>

#include<stdlib.h>

#include<conio.h>

#include<stdio.h>

//****found****

intproc(charstr[])

{

charc;

unsignedi,j;

for(i=0;i<strlen(str)-1;i++)

for(j=i+1;j<strlen(str);j++)

if(str[i]>str[j])

{

c=str[j]:

//****found****

str[j]=str[i++];

str[i]=c;

}

}

voidmain

{

charstr[81];

system("CLS");

printf("\nPleaseenteracharacter

string:");

gets(str);

printf("\n\nBeforesorting:\n%s",str);

proc(str);

printf("\nAftersortingdecendingly:\n

%s",str);

}六、程序設(shè)計(jì)題(1題)82.編寫函數(shù)fun(),其功能是計(jì)算:

s作為函數(shù)值返回。

在C語(yǔ)言中可調(diào)用log(n)函數(shù)求1n(n)。log函數(shù)的引

用說(shuō)明為:doublelog(doublex)。

例如,若m的值為20,則fun()函數(shù)值為6.506583。

注意:部分源程序給出如下。

請(qǐng)勿改動(dòng)main()函數(shù)和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun()的花括號(hào)中填入你編寫的若干語(yǔ)句。

試題程序:

參考答案

1.BFunl是輸出局部變量的值,fun2是把全局變量的值改成3和4,所以輸出的結(jié)果是5634。

2.C\n面向?qū)ο蟮脑O(shè)計(jì)方法的基本原理是:使用現(xiàn)實(shí)世界的概念抽象地思考問(wèn)題從而自然地解決問(wèn)題。它雖強(qiáng)調(diào)模擬現(xiàn)實(shí)世界中的概念而不強(qiáng)調(diào)算法,但是它鼓勵(lì)開發(fā)者在軟件開發(fā)的過(guò)程中從應(yīng)用領(lǐng)域的概念角度去思考。

\n

3.D本題主要考查do—while循環(huán),因?yàn)樽兞縯的初始值等于1,經(jīng)過(guò)第一次do-while循環(huán)后,執(zhí)行t=t-1這條語(yǔ)句一次,所以變量t的值為-1,判斷關(guān)系表達(dá)式t!=n是否成立,如果關(guān)系表達(dá)式成立,則執(zhí)行第二次循環(huán),如果關(guān)系表達(dá)式不成立,退出循環(huán)。由此可見,只要輸入變量n的值為負(fù)奇數(shù),則一定會(huì)使t==n成立,故退出do-while循環(huán)。

4.D

5.D解析:在調(diào)用函數(shù)時(shí),給形參分配存儲(chǔ)單元,并將實(shí)參對(duì)應(yīng)的值傳遞紿形參,調(diào)用結(jié)束后,形參單元彼釋放,實(shí)參單元仍保留并維持原值。因此,在執(zhí)行—個(gè)被調(diào)用函數(shù)時(shí),形參的值如果發(fā)生改變,并不會(huì)改變主調(diào)函數(shù)的實(shí)參的值,也就是說(shuō)形參的值是不傳回紿對(duì)應(yīng)的實(shí)參的。

6.B

7.C整型變量x、y的初值都為1,“x++,y++,++y”是一個(gè)逗號(hào)表達(dá)式,程序執(zhí)行“z=x++,y++,++y”之后,x的值為2,y的值為3,z取逗號(hào)表達(dá)式中的第二個(gè)表達(dá)式的值,為1。因此本題的答案為選項(xiàng)C。

8.BC語(yǔ)言是一種結(jié)構(gòu)化程序設(shè)計(jì)語(yǔ)言。結(jié)構(gòu)化程序設(shè)計(jì)是以模塊化設(shè)計(jì)為中心的,有三種基本結(jié)構(gòu):順序、選擇和循環(huán)結(jié)構(gòu)。各模塊相互獨(dú)立,因而可將原來(lái)較為復(fù)雜的問(wèn)題化簡(jiǎn)為一系列簡(jiǎn)單模塊并充分利用現(xiàn)有模塊搭建新系統(tǒng),提高程序的重用性和可維護(hù)性。

9.B

10.B子函數(shù)fun(intx,inty),將變量m和i聲明為局部靜態(tài)變量,因此第l次調(diào)用主函數(shù)后,局部靜態(tài)變量m和i的值為5和3,第l次函數(shù)調(diào)用結(jié)束時(shí),它們的值不釋放保持不變,所以第2次調(diào)用時(shí),局部靜態(tài)變量m和i的初始值分別為5和3,即在執(zhí)行“i+=m+1”時(shí),i的值為9,因此最終m的值為11。

11.D程序調(diào)試是由程序開發(fā)者完成診斷和改正程序中的錯(cuò)誤的過(guò)程;軟件測(cè)試是由專門的測(cè)試人員完成,是發(fā)現(xiàn)錯(cuò)誤而執(zhí)行程序的過(guò)程;軟件維護(hù)是指軟件系統(tǒng)交付使用以后,為了改正錯(cuò)誤或滿足新的需要而修改軟件的過(guò)程,是軟件生存周期中非常重要的一個(gè)階段。

12.D本題考查靜態(tài)變量,靜態(tài)變量有儲(chǔ)存已經(jīng)操作過(guò)的值,所以fun(a)s[O]=3,s[1]=5,s[2]=7,所以答案選擇D。

13.A[解析]全局變量的作用域是從聲明處到文件的結(jié)束。所以選擇A)

14.D

15.C

16.D

17.D解析:本題主要是考查帶參數(shù)的宏定義及其相關(guān)運(yùn)算。本題中宏運(yùn)算過(guò)程如下:a=a/(S(k+m)/S(k+m))=a/(k+m*k+m/k+m*k+m)=9/(3+2*3+2/3+2*3+2)=0。

18.B

19.D

20.BSEEK_SET代表文件的開始,SEEK_END代表文件末尾,SEEK_CUR代表文件當(dāng)前位置。

21.1616解析:在程序中首先將8賦值給變量a,然后再進(jìn)行復(fù)合賦值運(yùn)算。即a=a+a=8+8=16,所以該空格處應(yīng)該填16。

22.1371513715解析:本題中,定義了個(gè)整型數(shù)組n并初始化,在for循環(huán)語(yǔ)句中,再對(duì)數(shù)組中各元素重新賦值。循環(huán)執(zhí)行第一次時(shí),n[1]=n[0]*2+1=0+1=1,printf函數(shù)輸出1,然后i的值加1,比較i<=4成立,繼續(xù)執(zhí)行循環(huán)體語(yǔ)句,相應(yīng)輸出3、7、15,直至i<=4不成立,退出循環(huán)。所以最后輸出為1、3、7、15。

23.99解析:本題要輸出的結(jié)果是字符串'IBM\\n012\\1\\\\'的長(zhǎng)度,'IBM'是3個(gè)字符,\'\\n\'是1個(gè)字符,'012'又是3個(gè)字符,最后的\'\\1\'和\'\\\\\'都是1個(gè)字符。所以最終字符串的長(zhǎng)度應(yīng)該是3+1+3+1+1=9。故本題應(yīng)該填9。

24.關(guān)系關(guān)系

25.字符串a(chǎn)和b的長(zhǎng)度之和字符串a(chǎn)和b的長(zhǎng)度之和解析:本題首先通過(guò)第一個(gè)while循環(huán)計(jì)算字符串a(chǎn)的長(zhǎng)度,再通過(guò)第二個(gè)循環(huán),將字符串a(chǎn)和b相連,最后返回連接后的總長(zhǎng)度。

26.靜態(tài)靜態(tài)解析:靜態(tài)測(cè)試包括代碼檢查、靜態(tài)結(jié)構(gòu)分析,代碼質(zhì)量度量等。靜態(tài)測(cè)試不實(shí)際運(yùn)行軟件。

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

28.11231123解析:在主函數(shù)中第一次調(diào)用func子函數(shù)時(shí),m=0,i=2,i=i+m+1=3,m=i+a+b=3+5+3=11。因?yàn)樵谧雍瘮?shù)中將m和i定義成了static類型,所以在子函數(shù)中對(duì)m和i進(jìn)行的改變?cè)谙乱淮握{(diào)用子函數(shù)時(shí)能進(jìn)行保存,所以第二次調(diào)用子函數(shù)時(shí),m=11,i=3,則i=i+m+1=15,m=i+a+b=15+5+3=23。

29.aasum/n或sum/(float)n或sum/(double)nx[i]<sve或!(x[i]>=sve)或sve>x[i]a\r\na\r\nsum/n或sum/(float)n或sum/(double)n\r\nx[i]<sve或!(x[i]>=sve)或sve>x[i]

30.4

31.p->dataqp->data,q解析:本題考查的是鏈表這一數(shù)據(jù)結(jié)構(gòu)對(duì)結(jié)構(gòu)體變量中數(shù)據(jù)的引用。鏈表的特點(diǎn)是結(jié)構(gòu)體變量中有兩個(gè)域,一個(gè)是數(shù)據(jù),另一個(gè)是指向該結(jié)構(gòu)體變量類型的指針,用以指明鏈表的下一個(gè)結(jié)點(diǎn)。

32.程序正確性程序正確性

33.1234theend1,2,3,4,theend解析:本題考查帶參數(shù)的宏的定義。第1次循環(huán),i=1時(shí),調(diào)用PRINT(1),P(1)輸出1;第2次循環(huán),i=2時(shí),調(diào)用PRINT(2),P(2)輸出2:第3次循環(huán),i=3時(shí),調(diào)用PRINT(3),P(3)輸出3:第4次循環(huán),i=4時(shí),調(diào)用PRINT(4),P(4)輸出4,theend。

34.序言性序言性解析:注釋一般分為序言性注釋和功能性注釋。

35.136136解析:本題考核的知識(shí)點(diǎn)是函數(shù)遞歸。主函數(shù)調(diào)用函數(shù)fun(6),由于6/2>0為真遞歸調(diào)用fun(3),接著遞歸調(diào)用fun(1),輸出1,返回上一層輸出3,在返回上一層輸出6。故空格處應(yīng)該填136。

36.數(shù)據(jù)存儲(chǔ)數(shù)據(jù)存儲(chǔ)

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

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

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

{

成員項(xiàng)表;

};

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

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

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

38.x+=1;x+=1;解析:題面中的四條語(yǔ)句的作用是使x的值加1,在C中有多種方法可以對(duì)變量進(jìn)行加1操作,這里可以利用C的復(fù)合賦值運(yùn)算符+=實(shí)現(xiàn),本題答案為x+=1;。

39.b[j][i]=a[i][j]b[j][i]=a[i][j]解析:本題考查二維數(shù)組的基本知識(shí)。它是要將一個(gè)二維數(shù)組,的行和列元素互換后存放到另一個(gè)二維數(shù)組b中,只要將數(shù)組a的行標(biāo)和列標(biāo)互換,然后賦給數(shù)組b即可。

40.33解析:分析程序運(yùn)行過(guò)程,第1次循環(huán):s=s+i*i=0+1*1=1,i=2;第2次循環(huán):s=s+i*i=1+2*2=5,i=3;第3次循環(huán):s=s+i*i=5+3*3=14,i=4;循環(huán)條件不成立輸出i,--i使i的值減1,輸出結(jié)果為3。

41.D解析:strcat(p1,P2)將字符串a(chǎn)bcABC放到了*pl所指向的存儲(chǔ)單元中;strcpy在本題將abcABC復(fù)制到str+2所指向的存儲(chǔ)單元中,即覆蓋原str數(shù)組中的字符z及其后的所有字符,故str的值為“xyabcABC”。

42.A解析:選項(xiàng)A將變量x的地址賦紿指針變量pb,使pb指向x‘選項(xiàng)B是烙x的值當(dāng)作地址賦給指針pb,pb指向一個(gè)地址等于x值的內(nèi)存單元;選項(xiàng)c將x的地址賦給指針pb指向的地址等于x的內(nèi)存單元。

43.D

44.C解析:算法的時(shí)間復(fù)雜度實(shí)際上就是執(zhí)行算法程序所需要的計(jì)算工作量。為了客觀地反映算法性能,在度量算法的時(shí)間復(fù)雜度時(shí),應(yīng)該與編寫算法程序所使用的程序設(shè)計(jì)語(yǔ)言、執(zhí)行算法程序時(shí)所使用的計(jì)算的工具以及程序員的水平無(wú)關(guān)。選項(xiàng)A錯(cuò)誤,因?yàn)橥凰惴ǔ绦蛟谶\(yùn)行速度不同的計(jì)算機(jī)上運(yùn)行時(shí),其計(jì)算時(shí)間是不同的。選項(xiàng)B錯(cuò)誤,因?yàn)樗惴ㄋ帉懙某绦蜷L(zhǎng)度往往與程序設(shè)計(jì)語(yǔ)言以及程序員的水平有關(guān),同一個(gè)算法,用不同的程序設(shè)計(jì)語(yǔ)言或者不同的程序員所編寫出的程序其長(zhǎng)度可能會(huì)大不相同。選項(xiàng)D錯(cuò)誤,因?yàn)楦鶕?jù)一個(gè)算法所編制出的程序之中,其指令條數(shù)往往與程序設(shè)計(jì)語(yǔ)言以及程序員的水平有關(guān),不能用算法程序中的指令條數(shù)來(lái)度量算法的時(shí)間復(fù)雜度。所以,本題正確答案為C。

45.D解析:本題考查了軟件工程的基本概念。軟件工程包括3個(gè)要素,即方法、工具和過(guò)程。方法是完成軟件工程項(xiàng)目的技術(shù)手段;工具支持軟件的開發(fā)、管理和文檔生成;過(guò)程支持軟件開發(fā)的各個(gè)環(huán)節(jié)的控制和管理。

46.C解析:本題考查字符串比較函數(shù)strcmp()。調(diào)用形式:strcmp(s1,s2),其中s1、s2分別是字符串存儲(chǔ)區(qū)的首地址。函數(shù)功能:比較字符串str1和str2,當(dāng)str1<str2時(shí),返回值為負(fù)數(shù);當(dāng)str1=str2時(shí),返回0;當(dāng)str1>str2,返回值為正數(shù)(注意:不能使用關(guān)系運(yùn)算符比較兩個(gè)字符串的大小)。

47.B解析:邏輯與(&&)優(yōu)先于邏輯或(‖)優(yōu)先于賦值運(yùn)算符。由于邏輯運(yùn)算符的結(jié)果為邏輯值,真為1,假為0,題目中的邏輯值為真。

48.A解析:printf函數(shù)的返回值通常是本次調(diào)用中輸出字符的個(gè)數(shù)。scanf函數(shù)在調(diào)用結(jié)束后將返回一個(gè)函數(shù)值,其值等于得到輸入項(xiàng)的個(gè)數(shù)。

49.B

50.DC語(yǔ)言規(guī)定,標(biāo)識(shí)符是由字母、數(shù)字或下劃線組成,并且它的第一個(gè)字符必須是字母或者下劃線?!?”、“.”不允許出現(xiàn)在標(biāo)識(shí)符中。

51.C本題主要考查逗號(hào)表達(dá)式。逗號(hào)是一個(gè)特殊的運(yùn)算符,它具有所有運(yùn)算符中最低的優(yōu)先級(jí)。在C語(yǔ)言中,用它可以將兩個(gè)表達(dá)式連接起來(lái),逗號(hào)表達(dá)式的一般表現(xiàn)形式為:

表達(dá)式1,表達(dá)式2,…,表達(dá)式n

逗號(hào)表達(dá)式的求解過(guò)程是:先求解表達(dá)式1,再求解表達(dá)式2,依次往后計(jì)算,整個(gè)逗號(hào)表達(dá)式的值是最后一個(gè)表達(dá)式的值,如“3+5,5+6”的值是11。

在本題中,逗號(hào)表達(dá)式為i=4,j=16,k=32,根據(jù)上面的分析,計(jì)算逗號(hào)表達(dá)式得到的結(jié)果為k=32,最后將逗號(hào)表達(dá)式的結(jié)果賦值給變量x,那么變量x的值為32。因此,本題的正確答案選C。

52.D解析:需求分析常用的工具有數(shù)據(jù)流圖(DFD)、數(shù)據(jù)字典(DD)、判定樹和判定表。PAD(問(wèn)題分析圖)、PFD(程序流程圖)、N-S(盒式圖)都是詳細(xì)設(shè)計(jì)的常用工具,不是需求分析的工具。

53.A解析:線性表的鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)稱為線性鏈表,是一種物理存儲(chǔ)單元上非連續(xù)、非順序的存儲(chǔ)結(jié)構(gòu),數(shù)據(jù)元素的邏輯順序是通過(guò)鏈表中的指針鏈接來(lái)實(shí)現(xiàn)的。

54.B

55.A解析:在C語(yǔ)言中所謂函數(shù)的遞歸是在指在調(diào)用一個(gè)函數(shù)的過(guò)程中,又出現(xiàn)了直接或間接地調(diào)用該函數(shù)本身,直接調(diào)用該函數(shù)本身的稱為函數(shù)遞歸,而間接調(diào)用該函數(shù)稱為函數(shù)的間接遞歸調(diào)用.由程序可以看出函數(shù)f(a,i,j)為一遞歸函數(shù),其功能是i

56.B解析:如果一個(gè)字符數(shù)組中存放一個(gè)字符串,則函數(shù)strlen的值為“\\0”之前的全部字符個(gè)數(shù),也包括空格在內(nèi)。注意:字符串處理函數(shù)的使用。

57.B解析:函數(shù)fib內(nèi)部有兩個(gè)遞歸調(diào)用,當(dāng)n=3時(shí),fib(n-1)返回2,fib(n-2)也返回2,所以fib(n-1)+fib(n-2)的值為4。

58.D解析:關(guān)系模型中包括關(guān)系的數(shù)據(jù)結(jié)構(gòu)、關(guān)系的操縱和關(guān)系中的數(shù)據(jù)約束。關(guān)系完整性約束即數(shù)據(jù)完整性,包括實(shí)體完整性、參照完整性和用戶自定義完整性。

59.D\r\n軟件是與計(jì)算機(jī)操作相關(guān)的計(jì)算機(jī)程序、規(guī)程、規(guī)則,以及可能有的文件、文檔及數(shù)據(jù);軟件開發(fā)要受到計(jì)算機(jī)系統(tǒng)的限制;軟件是一個(gè)邏輯實(shí)體,不是物理實(shí)體,軟件具有抽象性。因此選項(xiàng)D正確。

60.B

61.BA項(xiàng)錯(cuò)誤,可行性分析階段產(chǎn)生可行性分析報(bào)告。C項(xiàng)錯(cuò)誤,概要設(shè)計(jì)說(shuō)明書是總體設(shè)計(jì)階段產(chǎn)生的文檔。D項(xiàng)錯(cuò)誤,集成測(cè)試計(jì)劃是在概要設(shè)計(jì)階段編寫的文檔。B項(xiàng)正確,需求規(guī)格說(shuō)明書是后續(xù)工作如設(shè)計(jì)、編碼等需要的重要參考文檔。

62.D所謂的后序遍歷是指,首先遍歷左子樹,然后遍歷右子樹,最后訪問(wèn)根結(jié)點(diǎn),并且在遍歷左、右樹時(shí),仍然先遍歷左子樹,然后遍歷右子樹,最后訪問(wèn)根點(diǎn)。因此,后序遍歷二叉樹的過(guò)程也是一個(gè)遞歸過(guò)程。

63.C【答案】:C

【知識(shí)點(diǎn)】:需求分析階段的任務(wù)

【解析】:需求分析階段的任務(wù)是深入描述軟件的功能和性能,確定軟件設(shè)計(jì)的約束和軟件同其他系統(tǒng)元素的接口細(xì)節(jié),定義軟件的其他有效性需求,借助于當(dāng)前系統(tǒng)的邏輯模型導(dǎo)出目標(biāo)系統(tǒng)邏輯模型,解決目標(biāo)系統(tǒng)“做什么”的問(wèn)題??煞譃樾枨筇岢?、需求描述及需求評(píng)審三個(gè)階段。從此可以看出需求分析的任務(wù)不包括制定軟件集成測(cè)試計(jì)劃,故選C。

64.Cif…else語(yǔ)句的執(zhí)行過(guò)程如下,首先計(jì)算if后面一對(duì)圓括號(hào)內(nèi)表達(dá)式的值,若表達(dá)式的值為非0,執(zhí)行if子句,然后跳過(guò)else子句,去執(zhí)行if語(yǔ)句后的下一條語(yǔ)句;若表達(dá)式的值為0,跳過(guò)if子句,去執(zhí)行else子句,接著去執(zhí)行if語(yǔ)句后的下一條語(yǔ)句。C語(yǔ)言的語(yǔ)法規(guī)定,else子句總是與前面最近的不帶else的if匹配,與書寫格式無(wú)關(guān),本題目的后一個(gè)if-else相當(dāng)于嵌套在第一個(gè)if子句里,相當(dāng)于X<y&&y<0時(shí),z=0;當(dāng)X<y&&y>=0時(shí),z=z+1。

65.C耦合性與內(nèi)聚性是模塊獨(dú)立與否的兩個(gè)定性標(biāo)準(zhǔn),耦合與內(nèi)聚是相互關(guān)聯(lián)的。在程序結(jié)構(gòu)中,各模塊的內(nèi)聚性越強(qiáng),則耦合性越弱。一般較優(yōu)秀的軟件設(shè)計(jì),應(yīng)盡量做到高內(nèi)蒙、低耦合,即減弱模塊之間的耦合性而提高模塊內(nèi)的內(nèi)聚性,這樣有利于提高模塊的獨(dú)立性。

66.Amain函數(shù)是c語(yǔ)言程序的主函數(shù),可以出現(xiàn)在程序中的任何位置。函數(shù)是c語(yǔ)言程序的基本模塊,函數(shù)內(nèi)部可以再定義其他函數(shù)。但函數(shù)間可相互調(diào)用,被調(diào)用的既可以是c語(yǔ)言提供的庫(kù)函數(shù),也可以是用戶自定義函數(shù)。

67.D\n結(jié)構(gòu)workers中的成員s是一個(gè)嵌套的結(jié)構(gòu)類型定義,因此在給year賦值時(shí),要用“.”運(yùn)算在深入一層訪問(wèn)到最基本的成員year,只有D項(xiàng)反映出了這一點(diǎn)。

\n

68.A解析:作為一個(gè)算法,一般應(yīng)該具有下列4個(gè)特征:(1)可行性,即考慮到實(shí)際的條件能夠達(dá)到一個(gè)滿意的結(jié)果;(2)確定性,算法中的每一個(gè)步驟都必須是有明確定義的,(3)有窮性,一個(gè)算法必須在有限的時(shí)間內(nèi)做完;(4)擁有足夠的情報(bào)。

69.B一雛數(shù)組的定義方式為:類型說(shuō)明符數(shù)組名[常量表達(dá)式];注意定義數(shù)組時(shí),元素個(gè)數(shù)不能是變量。因此應(yīng)該選B選項(xiàng)。

70.D本題考查邏輯運(yùn)算符的使用。當(dāng)“&&”的兩個(gè)運(yùn)算對(duì)象都是邏輯1時(shí),表達(dá)式返回值才是1;“||”的兩個(gè)運(yùn)算對(duì)象至少有一個(gè)是邏輯1時(shí),表達(dá)式返回值也是1,x<y為1,!z為0,1&&0為1,0||為1,因此,!1為0。

71.A本題考查結(jié)構(gòu)體變量的定義。按題目給出的定義編譯時(shí)會(huì)出現(xiàn)以下錯(cuò)誤:“Toomanytypeindeclarationinfunctonmain”,這是因?yàn)橛一ɡㄌ?hào)后面缺少了一個(gè)分號(hào)。

72.B

73.A

74.B本題考查兩個(gè)位運(yùn)算符。按位異或運(yùn)算

75.D

\n函數(shù)fun(chars[][10],intn)比較二維字符數(shù)組s[][10]的每個(gè)字符串的首字符大小,如果前一個(gè)字符串首字符大于后一個(gè)字符串的首字符,則交換這兩個(gè)字符串的首字符。

\n

76.B在用靜態(tài)static與外部extern定義變量時(shí),系統(tǒng)立刻給其分配內(nèi)存,而定義自動(dòng)類auto與強(qiáng)制放入寄存器register類型變量時(shí),只有當(dāng)使用時(shí)才分配內(nèi)存。

77.B

78.B

79.D插入排序是指將無(wú)序子序列中的一個(gè)或幾個(gè)記錄插入到有序序列中,從而增加記錄的有序子序列的長(zhǎng)度。在最壞的情況下,當(dāng)插入第一個(gè)元素時(shí),需要比較的次數(shù)為0,插入第二個(gè)元素時(shí),需要比較一次,插入第n個(gè)元素時(shí),需要比較n-1次。那么直到將n個(gè)元素都插入序列中,需要比較次數(shù)的總和為0+1+2+…+n-1。因此,在最壞情況下,插入排序需要比較的次數(shù)為n(n-1)/2。

快速排序的基本思想是通過(guò)一趟排序?qū)⒋庞涗浄指畛瑟?dú)立的兩部分,其中一部分記錄的關(guān)鍵字均比另一部分記錄的關(guān)鍵字小,則可以分別對(duì)這兩部分記錄繼續(xù)進(jìn)行排序,以達(dá)到整個(gè)序列有序。它在最壞情況下,需要比較的次數(shù)也為n(n-1)/2。因此,本題的正確答案選D。

80.C81.\n\t(1)錯(cuò)誤:intproc(charstr[])

\n正確:voidproc(char、tr[])

\n(2)錯(cuò)誤:str[j]=str[++];

\n正確:str[j]=str[i];

\n【解析】由主函數(shù)中的函數(shù)調(diào)用可知,函數(shù)proc沒(méi)有返回值。因此,“intproccharstr[])”應(yīng)改為“voidproc(charstr[])”;由函數(shù)proc可知,if語(yǔ)句塊完成將字符串str中的第i個(gè)元素與第j個(gè)元素相交換。因此,“str[j]=str[i++];”應(yīng)改為“str[j]=str[i];”。\n

82.

【解析】題目要求寫出程序?qū)崿F(xiàn)數(shù)學(xué)表達(dá)式的功能,需要用for循環(huán)計(jì)算累加的結(jié)果,調(diào)用sqrt函數(shù)實(shí)現(xiàn)求平方根。循環(huán)變量的范圍是1~m,每次循環(huán)都進(jìn)行一次累加求和。需要特別注意的是,log函數(shù)的形式參數(shù)為double型變量,用于循環(huán)的計(jì)數(shù)變量為整數(shù),所以必須強(qiáng)制轉(zhuǎn)換。最后返回所求出的平方根。

</y&&!z||1>2021-2022年河南省鶴壁市全國(guó)計(jì)算機(jī)等級(jí)考試C語(yǔ)言程序設(shè)計(jì)學(xué)校:________班級(jí):________姓名:________考號(hào):________

一、單選題(20題)1.有以下程序:#include<stdio.h>inta=1,b=2:voidfunl(inta,intb){printf("%d%d",a,b);}voidfun2(){a=3;b=4;}main(){funl(5,6);fun2();printf("%d%d\n",a,b);}程序運(yùn)行后的輸出結(jié)果是()。A.1256B.5634C.5612D.3456

2.面向?qū)ο蟮脑O(shè)計(jì)方法與傳統(tǒng)的面向過(guò)程的方法有本質(zhì)不同,它的基本原理是()。

A.模擬現(xiàn)實(shí)世界中不同事物之間的聯(lián)系

B.強(qiáng)調(diào)模擬現(xiàn)實(shí)世界中的算法而不強(qiáng)調(diào)概念

C.使用現(xiàn)實(shí)世界的概念抽象地思考問(wèn)題從而自然地解決問(wèn)題

D.不強(qiáng)調(diào)模擬現(xiàn)實(shí)世界中的算法而強(qiáng)調(diào)概念

3.有下列程序段:intn,t=1,S=0;scanf("%d",&n);do{s=s+t;t=t-2;while(t!=n);為使此程序段不陷入循環(huán),從鍵盤輸入的數(shù)據(jù)應(yīng)該是()。A.任意正奇數(shù)B.任意負(fù)偶數(shù)C.任意正偶數(shù)D.任意負(fù)奇數(shù)

4.設(shè)一個(gè)廣義表中結(jié)點(diǎn)的個(gè)數(shù)為n,則求廣義表深度算法的時(shí)間復(fù)雜度為____。

A.O(1)B.O(n)C.O(n2)D.O(log2n)

5.以下敘述中錯(cuò)誤的是______。A.C程序必須由—個(gè)或—個(gè)以上的函數(shù)組成

B.函數(shù)調(diào)用可以作為—個(gè)獨(dú)立的語(yǔ)句存在

C.若函數(shù)有返回值,必須通過(guò)return語(yǔ)句返回

D.函數(shù)形參的值也可以傳回給對(duì)應(yīng)的實(shí)參

6.最大容量為n的循環(huán)隊(duì)列,隊(duì)尾指針是rear,隊(duì)頭是front,則隊(duì)空的條件是()。

A.(rear+1)MODn=front

B.rear=front

C.rear+1=front

D.(rear-l)MODn=front

7.有以下程序:Main(){{intx,y,z;x=y=1;z=x++,y++,++y;print(“%d,%d,%d”,x,y,z);}程序運(yùn)行后的輸出結(jié)果是()。A.2,3,3B.2.3.2C.2,3.1D.2.2.1

8.以下敘述中錯(cuò)誤的是()。

A.c語(yǔ)言是一種結(jié)構(gòu)化程序設(shè)計(jì)語(yǔ)言

B.使用三種基本結(jié)構(gòu)構(gòu)成的程序只能解決簡(jiǎn)單問(wèn)題

C.結(jié)構(gòu)化程序設(shè)計(jì)提倡模塊化的設(shè)計(jì)方法

D.結(jié)構(gòu)化程序由順序、分支、循環(huán)三種基本結(jié)構(gòu)組成

9.

10.有下列程序:fun(intx,inty){staticintm=0,i=2;i+=m+1;m=i+x+y;returnm;}main(){intj=1,m=1,k;k=fun(j,m);printS(”%d,”,k);k=fun(j,m);printf(”%d\n”,k);)執(zhí)行后的輸出結(jié)果是()。A.5,5B.5,11C.11,11D.11,5

11.下列敘述中正確的是()。

A.軟件測(cè)試應(yīng)該由程序開發(fā)者來(lái)完成

B.程序經(jīng)調(diào)試后一般不需要測(cè)試

C.軟件維護(hù)只包括對(duì)程序代碼的維護(hù)

D.以上三種說(shuō)法都不對(duì)

12.有以下程序:#include<stdio.h>voidfun(int*s){staticinti=0;do{s[J]=s[J]+s[j+I];}while(++j<2);}main(){intk.a(chǎn)[l0]={1,2,3,4,5};for(k=1;k<3;k++)fun(a);for(k=0;k<5;k++)pfintf("%d",a[k]);printf("\n");}程序運(yùn)行后的輸出結(jié)果是()。A.12345B.23445C.34756D.35745

13.在一個(gè)C源程序文件中所定義的全局變量,其作用域?yàn)?)。A.由具體定義位置和extern說(shuō)明來(lái)訣定范圍B.所在程序的全部范圍C.所在函數(shù)的全部范圍D.所在文件的全部范圍

14.

15.

16.

17.執(zhí)行下列程序后,輸出的結(jié)果是()。

#include<stdio.h>

#defineS(X)X*X

voidmain()

{ihta=9,k=3,m=2;

a/=S(k+m)/S(k+m);

printf("%d",A);

}

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

18.表達(dá)式a*(b+c)-d的后綴表達(dá)式是()。

A.abcdd+-B.abc+*d-C.abc*+d-D.-+*abcd

19.給定數(shù)列(541,132,984,746,518,181,946,314,205,827)按照從小到大的順序排列,采用冒泡排序時(shí),第一趟掃描結(jié)果是()

A.(541,132,827,746,518,181,946,314,205,984)

B.(205,132,314,181,518,746,946,984,541,827)

C.(132,541,746,984,181,518,314,946,205,827)

D.(132,541,746,518,181,946,314,205,827,984)

20.函數(shù)fseek(pf,OL,SEEKEND)中的SEEKENE代表的起始點(diǎn)是()。

A.文件開始B.文件末尾C.文件當(dāng)前位置D.以上都不對(duì)

二、2.填空題(20題)21.以下程序的輸出結(jié)果是【】。

main()

{inta=0;

a+=(a=8);

printf(“%d\n”,A);

}

22.以下程序運(yùn)行后的輸出結(jié)果是【】。

main()

{

inti,n[]={0,0,0,0,0};

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

{

n[i]=n[i-1]*2+1;

printfi["%d",n[i]);

}

}

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

#include<string.h>

main()

{printf("%d\n",strlen("IBM\n012\1\\"));}

24.關(guān)系代數(shù)是關(guān)系操作語(yǔ)言的一種傳統(tǒng)表示方式,它以集合代數(shù)為基礎(chǔ),它的運(yùn)算對(duì)象和運(yùn)算結(jié)果均為()。

25.函數(shù)fun的返回值是【】

fun(char*a,char*b)

{intnum=0,n=0;

while(*(a+num)!='\0')mm++;

while(b[n]){*(a+num)=b[n];num++;n++;}

returnnum;

}

26.對(duì)于軟件測(cè)試,從是否需要執(zhí)行被測(cè)軟件的角度,可以分為靜態(tài)測(cè)試和動(dòng)態(tài)測(cè)試。代碼檢查屬于______測(cè)試。

27.有以下程序:

#include<stdio.h>

main()

{

charc;

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

}

程序運(yùn)行時(shí),如查從鍵盤輸入:Y?N?<回車>,則輸出的結(jié)果為______。

28.下列程序的運(yùn)行結(jié)果是______。

#include<stdio.h>

func(a,b)

{staticintm=0,i=2;

i+=m+1;

m=i+a+b;

return(m);

}

main()

{intk=5,m=3,p;

p=func(k,m);

printf("%d",p);

p=func(k,m);

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

}

29.以下程序的功能是:從鍵盤上輸入若干學(xué)生的成績(jī),統(tǒng)計(jì)計(jì)算出平均成績(jī),并輸出低于平均分的學(xué)生成績(jī),用輸入負(fù)數(shù)結(jié)束輸入。填空。

main()

{floatx[1000],sum,=0.0,avea;

intn=0,i;

printf("Entermark:"\n");scanf("%f",&a);

while(a>=0.0&&n<1000)

{sum+=【】;x[n]=【】;

n++;scanf("%f",&a);

}

ave=【】;

printf("Output:"\n");

printf("ave=%f"\n",ave);

for(i=0,i<n;i++)

if(【】)frintf("%f\n",x[i]);

}

30.有以下定義和語(yǔ)句,則sizeof(a.share)的值是()。

structdate

{unsignedintday;

unsignedintmouth;

unsignedintyear;

union{intshare1;

floatshare2;

}share;

}a;

31.以下程序的功能是建立一個(gè)帶有頭結(jié)點(diǎn)的單向鏈表,鏈表結(jié)點(diǎn)中的數(shù)據(jù)通過(guò)鍵盤輸入,當(dāng)輸入數(shù)據(jù)為-1時(shí),表示輸入結(jié)束(鏈表頭結(jié)點(diǎn)的data域不放數(shù)據(jù),表空的條件是ph->next==NULL),請(qǐng)?zhí)羁铡?/p>

#include<stdio.h>

structlist{intdata;structlist*next;};

structlist*creatlist()

{structlist*p,*q,*ph;inta;ph=(structlist*)malloc(sizeof(structlist));

p=q=ph;printf("Inputanintegernumber;entre-1toend:\n");

scanf("%d",&a);

while(a!=-1)

{p=(structlist*)malloc(sizeof(structlist));

【】=a;q->next=p;【】=p;scanf("%d",&a);}

p->next=′\0;return(ph);}

main()

{structlist*head;head=creatlist();}

32.在軟件測(cè)試中,動(dòng)態(tài)測(cè)試和靜態(tài)測(cè)試手段只能發(fā)現(xiàn)程序中的錯(cuò)誤,而不能證明程序中不存在錯(cuò)誤,只有【】證明才有可能證明程序的正確性。

33.下列程序的輸出結(jié)果是______。

#defineP(A)printf("%d,",(int)(A))

#definePRINT(A)P(A);printf("theend")

main()

{inti,a=0;

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

PRINT(a+i);

printf("\n");

}

34.注釋說(shuō)明了程序的功能,它分為【】注釋和功能性注釋。

35.以下程序運(yùn)行后的輸出結(jié)果是______。

fun(intx)

{if(x/2>0)fun(x/2);

printf("%d",x);

}

main()

{fun(6);}

36.數(shù)據(jù)字典是各類數(shù)據(jù)描述的集合,它通常包括5個(gè)部分,即數(shù)據(jù)項(xiàng)、數(shù)據(jù)結(jié)構(gòu)、數(shù)據(jù)流、______和處理過(guò)程。

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

structSTRU

{inta,b;charc:doubled;

structSTRU*p1,*p2;

};

請(qǐng)?zhí)羁眨酝瓿蓪?duì)t數(shù)組的定義,t數(shù)組的每個(gè)元素為該結(jié)構(gòu)體類型。

【】t[20]

38.四條語(yǔ)句:x++;、++x;、x=x+1;、x=1+x;,執(zhí)行后都使變量x中的值增1,請(qǐng)寫出一條同一功能的賦值語(yǔ)句(不得與列舉的相同)【】。

39.下列程序?qū)⒍S數(shù)組a的行和列元素互換后存放到另一個(gè)二維數(shù)組b中。請(qǐng)?zhí)羁铡?/p>

main()

{inta[2][3]={{1,2,3},{4,5}},b[3][2],i,j;

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

{for(j=0;j<3;j++)

}

}

40.下列程序的運(yùn)行結(jié)果是______。

main()

{ints=0,i=1;

while(s<=10)

{s=s+i*i;

i++;

}

printf("%d",--i);

}

三、1.選擇題(20題)41.以下程序#include<stdio.h>#include<string.h>main(){char*pl="abc",*p2="ABC",str[50]="xyz";strcpy(str+2,strcat(p1,p2));printf("%s\n",str);}的輸出是________。

A.xyzabcABCB.zabcABCC.yzabcABCD.xyabcABC

42.若x是整型變量,pb是基類型為整型的指針變量,則正確的賦值表達(dá)式是______。

A.pb=&x;B.pb=x;C.*pb=&x;D.*pb=*x

43.如果需要打開一個(gè)已經(jīng)存在的非空文件“Demo”進(jìn)行修改,下面選項(xiàng)中正確的是

A.fp=fopen("Demo","r");

B.fp=fopen("Demo","ab+");

C.fp=fopen("Demo","w+");

D.fp=fopen("Demo","r+");

44.算法的時(shí)間復(fù)雜度是指______。

A.執(zhí)行算法程序所需要的時(shí)間B.算法程序的長(zhǎng)度C.算法執(zhí)行過(guò)程中所需要的基本運(yùn)算次數(shù)D.算法程序中的指令條數(shù)

45.下列不屬于軟件工程的3個(gè)要素的是______。

A.工具B.過(guò)程C.方法D.環(huán)境

46.判斷字符串s1是否大于字符串s2,應(yīng)該使用()。

A.if(strcmp(s1,s2)<0)

B.if(s1>s2)

C.if(strcmp(s2,s1)<0)

D.if(strcmp(s1,s2))

47.設(shè)x,y,z,(均為整型變量,現(xiàn)有如下語(yǔ)句x=y=z=1;t=++x‖++y&&++z;,則執(zhí)行這個(gè)語(yǔ)句后t的值為

A.2B.1C.0D.不定值

48.關(guān)于printf()函數(shù)的返回值敘述正確的是

A.通常是本次調(diào)用中輸出字符的個(gè)數(shù)B.通常是輸出的第一個(gè)數(shù)值C.通常返回布爾值真D.通常返回非零值

49.下列與表達(dá)式“b=(a<0?-1:a>0?1:0)”的功能等價(jià)選項(xiàng)是()

A.b=0;if(a>=0)if(a>0)b=1;elseb=-1;

B.if(a>0)b=1;elseif(a<0)b=-1;elseb=0;

C.if(A)if(a<0)b=-1;elseif(a>0)b=1;elseb=0;

D.b=-1;if(A)if(a>0)b=1;elseif(a==0)b=0;elseb=-1;

50.下列合法的標(biāo)識(shí)符是()。

A.123B.#256C.a.55D.abhj1_2_3

51.若x,i,j和k都是int型變量,則計(jì)算表達(dá)式x=(i=4,j=16,k=32)后,x的值為()。

A.4B.16C.32D.52

52.下列工具中為需求分析常用工具的是()。

A.PADB.PFDC.N-SD.DFD

53.下列對(duì)于線性鏈表的描述中正確的是______。

A.存儲(chǔ)空間不一定是連續(xù),且各元素的存儲(chǔ)順序是任意的

B.存儲(chǔ)空間不一定是連續(xù),且前件元素一定存儲(chǔ)在后件元素的前面

C.存儲(chǔ)空間必須連續(xù),且各前件元素一定存儲(chǔ)在后件元素的前面

D.存儲(chǔ)空間必須連續(xù),且各元素的存儲(chǔ)順序是任意的

54.為了避免在嵌套的條件語(yǔ)句if-else中產(chǎn)生二義性,C語(yǔ)言中規(guī)定的if-else配對(duì)原則是______。

A.else子句與縮排位置相同的if配對(duì)

B.else子句與其之前最近的未被配對(duì)的if配對(duì)

C.else子句與其之后最近的if配對(duì)

D.else子句與同一行上的if配對(duì)

55.有以下程序:Voidf(inta[],ihti,intj){intt;if(i<j){t=a[i];a[i]=a[j];a[j]=t;f(a,i+1,i-1);}}main(){inti,aa[5]={1,2,3,4,5};f(aa,0,4);for(i=0;i<5;i++)printf("%d",aa[i]);printf("\n");}執(zhí)行后輸出結(jié)果是

A.5,4,3,2,1,B.5,2,3,4,1,C.1,2,3,4,5,D.1,5,4,3,2,

56.設(shè)已執(zhí)行預(yù)編譯命令#include<string.h>,以下程序段的輸出結(jié)果是()。chars[]="anapple";printf("%d\n",strlen(s));

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

57.有如下程序:longfib(intn){if(n>2)return(fib(n-1)+fib(n-2));elsereturn(2);}main(){printf("%ld\n",fib(3));}該程序的輸出結(jié)果是______。

A.2B.4C.6D.8

58.關(guān)系數(shù)據(jù)庫(kù)的數(shù)據(jù)及更新操作必須遵循______等完整性規(guī)則。

A.實(shí)體完整性和參照完整性

B.參照完整性和用戶定義的完整性

C.實(shí)體完整性和用戶定義的完整性

D.實(shí)體完整性、參照完整性和用戶定義的完整性

59.下列描述中正確的是()。

A.程序就是軟件

B.軟件開發(fā)不受計(jì)算機(jī)系統(tǒng)的限制

C.軟件既是邏輯實(shí)體,又是物理實(shí)體

D.軟件是程序、數(shù)據(jù)與相關(guān)文檔的集合

60.閱讀程序:main(){intx;scanf("%d',&x);if(x--<5)printf("%d\n",x);elseprintf("%d\、n",x++);}程序運(yùn)行后,如果從鍵盤上輸入5,則輸出結(jié)果是()

A.3B.4C.5D.6

四、選擇題(20題)61.在軟件開發(fā)中,需求分析階段產(chǎn)生的主要文檔是()。

A.可行性分析報(bào)告B.軟件需求規(guī)格說(shuō)明書C.概要設(shè)計(jì)說(shuō)明書D.集成測(cè)試計(jì)劃

62.對(duì)如下二叉樹進(jìn)行后序遍歷的結(jié)果為()。

A.A.ABCDEFB.DBEAFCC.ABDECFD.DEBFCA

63.下面不屬于需求分析階段任務(wù)的是()。

A.確定軟件系統(tǒng)的功能需求B.確定軟件系統(tǒng)的性能需求C.制定軟件集成測(cè)試計(jì)劃D.需求規(guī)格說(shuō)明書評(píng)審

64.下列程序的運(yùn)行結(jié)果是()。

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

65.軟件設(shè)計(jì)中衡量模塊獨(dú)立性的度量標(biāo)準(zhǔn)是()。

A.抽象和信息隱蔽B.局部化和封裝化C.內(nèi)聚性和耦合性D.激活機(jī)制和控制方法

66.下列敘述中正確的是()。

A.每個(gè)C語(yǔ)言程序文件中都必須要有一個(gè)main(.函數(shù)

B.在c語(yǔ)言程序中main(.函數(shù)的位置是固定的

C.c語(yǔ)言程序中所有函數(shù)之間都可以相互調(diào)用,與函數(shù)所在位置無(wú)關(guān)

D.在c語(yǔ)言程序的函數(shù)中不能定義另一個(gè)函數(shù)

67.有以下定義和語(yǔ)句:

structworkers

{intnum;charname[20];charC;

struct

{intday;intmonth;intyear;)S;

};

structworkersw,*pw;

pw=&w;

能給w中year成員賦1980的語(yǔ)句是()。

A.*pw.year=1980;

B.w.year=1980;

C.pw->year=1980

D.w.S.year=1980;

68.下列選項(xiàng)中,不是一個(gè)算法的基本特征的是()。

A.完整性B.可行性C.有窮性D.擁有足夠的情報(bào)

69.若要求定義具有10個(gè)int型元素的一維數(shù)組a,則以下定義語(yǔ)句中錯(cuò)誤的是()。

70.設(shè)x、y和z是int型變量,且x=4,y=6,z=8,則下列表達(dá)式中值為0的是()。

A.x&&yB.x<=yC.x||++y&&y-zD.!(x<y&&!z||1

71.若程序中有以下說(shuō)明和定義。

structabc

{

intx;chary;

}

structabcs1,s2;

則會(huì)發(fā)生的情況是

A.編譯時(shí)出錯(cuò)B.程序?qū)㈨樞蚓幾g、連接、執(zhí)行

C.能順序通過(guò)編譯、連接,但不能執(zhí)行D.能順序通過(guò)編譯,但連接出錯(cuò)

72.Internet使用的網(wǎng)絡(luò)協(xié)議是()。

A.3CP協(xié)議B.TCP/IP協(xié)議C.UDP協(xié)議D.IP協(xié)議

73.

74.沒(méi)有以下語(yǔ)句

則Z的二進(jìn)制值是()。

A.00010100B.00011011C.00011100D.00011000

75.

有以下程序

#include<stdio.h>

#include<string.h>

voidfun(chars[][10],intn)

{

chart;inti,j;

for(i=0;i<n-1;j++)

for(j=i+1,j<n;j++)

/*比較字符串的首字符大小,并交換字符串的首字符*/

if(s[0])>s[i][c]{t=s[i][o];s[i][o]=s[j][o];s[j][0]=t;}

}

main

{charss[5][10]="bcc","bbcc","xy","aaaacc","aabcc"}

fun(ss,5);printf("%s,%s",ss[0],ss[4]);

}

程序運(yùn)行結(jié)果是()。

A.xy,aaaaccB.aaaacc,xyC.xcc,aabccD.acc,xabcc

76.以下只有在使用時(shí)才為該類型變量分配內(nèi)存的存儲(chǔ)類型說(shuō)明是()。

A.auto和static

B.auto和register

C.register和static

D.extern和register

77.

78.

79.對(duì)于長(zhǎng)度為n的線性表,在最壞的情況下,下列各排序法所對(duì)應(yīng)的比較次數(shù)中正確的是

A.插入排序?yàn)閚/2B.插入排序?yàn)閚C.快速排序?yàn)閚D.快速排序?yàn)閚(n-1)/2

80.

溫馨提示

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

評(píng)論

0/150

提交評(píng)論