2022-2023年河南省商丘市全國(guó)計(jì)算機(jī)等級(jí)考試C語(yǔ)言程序設(shè)計(jì)_第1頁(yè)
2022-2023年河南省商丘市全國(guó)計(jì)算機(jī)等級(jí)考試C語(yǔ)言程序設(shè)計(jì)_第2頁(yè)
2022-2023年河南省商丘市全國(guó)計(jì)算機(jī)等級(jí)考試C語(yǔ)言程序設(shè)計(jì)_第3頁(yè)
2022-2023年河南省商丘市全國(guó)計(jì)算機(jī)等級(jí)考試C語(yǔ)言程序設(shè)計(jì)_第4頁(yè)
2022-2023年河南省商丘市全國(guó)計(jì)算機(jī)等級(jí)考試C語(yǔ)言程序設(shè)計(jì)_第5頁(yè)
已閱讀5頁(yè),還剩115頁(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)介

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

一、單選題(20題)1.在Windows環(huán)境下,單擊當(dāng)前應(yīng)用程序窗口中的“關(guān)閉”按鈕,其功能是A.將當(dāng)前應(yīng)用程序轉(zhuǎn)為后臺(tái)運(yùn)行

B.退出Windows后再關(guān)機(jī)

C.退出Windows后重新啟動(dòng)計(jì)算機(jī)

D.終止當(dāng)前應(yīng)用程序的運(yùn)行

2.下述關(guān)于數(shù)據(jù)庫(kù)系統(tǒng)的敘中正確的是______。

A.數(shù)據(jù)庫(kù)系統(tǒng)減少了數(shù)據(jù)冗余

B.數(shù)據(jù)庫(kù)系統(tǒng)避免了一切冗余

C.數(shù)據(jù)庫(kù)系統(tǒng)中數(shù)據(jù)的一致性是指數(shù)據(jù)類型的一致

D.數(shù)據(jù)庫(kù)系統(tǒng)比文件系統(tǒng)能管理更多的數(shù)據(jù)

3.有以下程序:#include<string.h>inta=4;intf(intn){intt=0;staticinta=5;if(n%2){inta=6;t++=a++;}else{inta=7;t+=a++;}returnt+a++;}main(){ints=a,i=0;for(;i<2;i++)s+=f(i);printf("%d\n",s);}程序運(yùn)行后的輸出結(jié)果是()。

A.24B.28C.32D.36

4.有以下程序:#include#definePT3.5;#defineS(x)PT*x*x;Main(){inta=1,b=2;printf("%4.1f\n",S(a+b));程序運(yùn)行后的輸出結(jié)果是()。A.7.5B.31.5C.程序有錯(cuò)無(wú)輸出結(jié)果D.14.0

5.C語(yǔ)言規(guī)定,程序中各函數(shù)之間()

A.既允許直接遞歸調(diào)用也允許間接遞歸調(diào)用

B.不允許直接遞歸調(diào)用也不允許間接遞歸調(diào)用

C.允許直接遞歸調(diào)用不允許間接遞歸調(diào)用

D.不允許直接遞歸調(diào)用允許間接遞歸調(diào)用

6.以下不能將s所指字符串正確復(fù)制到所指存儲(chǔ)空間的是()A.do{*t++=*s++;}while(*s);.

B.for(i=0;t[i]=s[i];i++);

C.while(*t=*s){t++;s++}

D.for(i=0,j=0;t[i++]=s[j++];);

7.有以下程序:#include<stdio.h>structS{inta,b;)data[2]=10,100,20,200);main(){structSp=data[l];printf("%d\n",++(p.a(chǎn)));}程序運(yùn)行后的輸出結(jié)果是()。A.10B.11C.20D.21

8.程序流程圖中帶有箭頭的線段表示的是()。

A.圖元關(guān)系B.數(shù)據(jù)流C.控制流D.調(diào)用關(guān)系

9.已知a,b均被定義為double型,則表達(dá)式:a=5/2的值為()。

A.1B.3C.3.0D.2.5

10.棧和隊(duì)列的共同點(diǎn)是()。

A.都是先進(jìn)先出B.都是先進(jìn)后出C.只允許在端點(diǎn)處插入和刪除元素D.沒(méi)有共同特點(diǎn)

11.

12.有以下程序:voidfunl(char*p)程序執(zhí)行后的輸出結(jié)果是()A.ProhsbnB.PrphsbnC.ProgsbnD.Program

13.以下選項(xiàng)中,非法的字符常量是______。

A.'t\'B.'\17'C.\nD.'\xaa'

14.下面不正確的字符賦值或賦初值的方式為()。

A.chars[10]=”hello!”

B.chars[10]={‘h’,‘e’,‘l’,‘l’,‘o’,‘!’}

C.chars[10];s=”hello”

D.char[]=”hello!”

15.有以下程序:#include<stdio.h>#definePT3.5;#defineS(x)PT*x*x;main(){inta=1,b=2;printf(“%4.1f\n”,S(a+b));}程序的運(yùn)行結(jié)果是()。

A.7.5B.31.5C.程序有錯(cuò),無(wú)輸出結(jié)果D.14.0

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

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

17.由兩個(gè)棧共享一個(gè)存儲(chǔ)空間的好處是______。

A.減少存取時(shí)間,降低下溢發(fā)生的幾率

B.節(jié)省存儲(chǔ)空間,降低上溢發(fā)生的幾率

C.減少存取時(shí)間,降低上溢發(fā)生的幾率

D.節(jié)省存儲(chǔ)空間,降低下溢發(fā)生的幾率

18.以下與數(shù)學(xué)表達(dá)式“0<x<5且x≠2”不等價(jià)的C語(yǔ)言邏輯表達(dá)式是()。

A.(0<x<5)&&(x!=2)

B.0<x&&x<5&&x!=2

C.x>0&&x<5&&x!=2

D.(x>0&&x<2)||(x>2&&x<5)

19.若運(yùn)行以下程序時(shí),從鍵盤(pán)輸入ADescriptor<CR>(<CR>表示回車(chē)),則下面程序的運(yùn)行結(jié)果是

#include<stdio.h>

main()

{charc;

intv0=1,v1=0,v2=0;

do{switch(c=getchar())

{case′a′:case′A′:

case′e′:case′E′:

case′i′:case′I′:

case′o′:case′O′:

case′u′:case′U′:v1+=1;

default:v0+=1;v2+=1;}}while(c!='\n');

printf("v0=%d,v1=%d,v2=%d\n",v0,v1,v2);}

A.v0=7,v1=4,v2=7

B.v0=8,v1=4,v2=8

C.v0=11,v1=4,v2=11

D.v0=13,v1=4,v2=12

20.如下程序段

#include<stdio.h>

#include<ctype.h>

#include<conio.h>

intfun(char*str)

{inti,j=0;

for(i=0;str[i]!=’\0’;i++)

if(str[i]!=’’)str[j++]=str[i];

str[j]=’\0’;

}

main()

{

charstr[81];

intn;

clrscr();

printf("Inputastring:");

gets(str);

fun(str);

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

}

當(dāng)運(yùn)行程序時(shí),輸入asdafaaz67<回車(chē)>,則輸出是A.A.asdafaaz67

B.asdafaaz67

C.asd

D.z67

二、2.填空題(20題)21.排序是計(jì)算機(jī)程序設(shè)計(jì)中的一種重要操作,常見(jiàn)的排序方法有插入排序、______和選擇排序。

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

#include<stdio.h>

main()

{inta[4][4]={{1,2,3,4},{5'6'7'8},{11'12'13'14},{15'16'17'18}};

inti=0,j=0,s=0;

while(i++<4)

if(i==2[[i==4)continue;

j=0;

do{s+=a[i][j];j++;}while(j<4);

}

pdnff("%d'\n",s);

}

23.二叉樹(shù)按某順序線索化后,其結(jié)點(diǎn)均有指向其前趨和后繼的線索,該說(shuō)法是【】的。

24.請(qǐng)選出以下程序的輸出結(jié)果#include<stdio.h>main(){inta[]={1,2,3,4},i;intx=0;for(i=0;i<4;i++){sub(a,x);Printf("%d",x);}printf("\n");}sub(S,y)int*s,y;{staticintt=3;y=s[t];t--;}

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

#include<stdio.h>

voidfun()

{staticinta=0;

a+=2;printf("%d",a);

}

main()

{intcc;

for(cc=1;cc<4;cc++)fun();

printf("\n");

}

26.在結(jié)構(gòu)化設(shè)計(jì)方法中,數(shù)據(jù)流圖表達(dá)了問(wèn)題中的數(shù)據(jù)流與加工間的關(guān)系,并且每一個(gè)______實(shí)際上對(duì)應(yīng)一個(gè)處理模塊。

27.若下面程序的輸出結(jié)果是4,請(qǐng)?zhí)羁铡?/p>

main()

{inti,j,k;

k=0;i=j=【】;

k+=-(i+j);printf("%d\n",k);

}

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

29.下列程序的功能是計(jì)算數(shù)的階乘。

main()

{ihti,n;

nlongnp;

scanf("%d",&n);

np=【】;

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

【】;

printf("n=%dn!=%ld\n",n,np);

}

30.下面程序的輸出是【】

main()

{enumem{eml=3,em2=1,em3};

char*aa[]={"AA',"BB","CC","DD"}

printf("%s%s%\n",aa[em1],aa[em2],aa[em3]);

}

31.若想通過(guò)以下輸入語(yǔ)句使a=5.0,b=4,c=3,則輸入數(shù)據(jù)的形式應(yīng)該是【】。

intb,c;floata;

scanf("%f,%d,c=%d",&a,&b,&c)

32.函數(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;

}

33.在關(guān)系數(shù)據(jù)庫(kù)中把數(shù)據(jù)表示成二維表,每一個(gè)二維表稱為【】。

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

main()

{

inta=1,b=2;

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

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

}

35.最簡(jiǎn)單的交換排序方法是______。

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

#include<stdio.h>

fun()

{staticinta=0;

a+=2;printf("%d",a);}

main()

{intcc;

for(cc=1;CC<4;CC++)fun();

printf("\n");}

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

intt(intx,inty,intcp,intdp)

{cp=x*x+y*y;

dp=x*x-y*y;

}

main()

{inta=4,b=3,c=5,d=6;

t(a,b,c,d);

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

}

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

intx=0,y=0;

while(x<15)y++,x+=++y;

printf("%d,%d",y,x);

39.有以下程序

main()

{intt=1,i=5;

for(;i>=0;i--)t*=i;

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

}

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

40.以下程序的功能是輸出如下形式的方陣:

13141516

9101112

5678

1234

請(qǐng)?zhí)羁铡?/p>

#include<stdio.h>

main()

{inti,j,x;

for(j=4;j【】;j--)

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

[x=(j-1)*4+【】;

printf("%4d",x);

}

printf("\n");

}

三、1.選擇題(20題)41.模塊本身的內(nèi)聚是模塊獨(dú)立性的重要性度量因素之一。在7類內(nèi)聚中,具有最強(qiáng)內(nèi)聚的一類是__________。

A.順序性內(nèi)聚B.過(guò)程性內(nèi)聚C.邏輯性內(nèi)聚D.功能性內(nèi)聚

42.有如下程序:main(){intn=9;while(n>6){n--;printf("%d",n);}}該程序的輸出結(jié)果是

A.987B.876C.8765D.9876

43.以下選項(xiàng)中,當(dāng)x為大于1的奇數(shù)時(shí),值為0的表達(dá)式是

A.x%2==1B.x/2C.x%21=0D.x%2==0

44.下列程序的輸出結(jié)果是()。#include<stdio.h>intfun(intx){inta;if(x==0‖x==1)return3;elsea=x-fun(x-2);returna;}voidmain(){printf("%d",fun(7));}

A.2B.8C.9D.5

45.下列關(guān)于字符串的說(shuō)法中錯(cuò)誤的是

A.在C語(yǔ)言中,字符串是借助于字符型一維數(shù)組來(lái)存放的,并規(guī)定以字符′\0′作為字符串結(jié)束標(biāo)志

B.′\0′作為標(biāo)志占用存儲(chǔ)空間,計(jì)入串的實(shí)際長(zhǎng)度

C.在表示字符串常量的時(shí)候不需要人為在其末尾加入′\0′

D.在C語(yǔ)言中,字符串常量隱含處理成以′\0′結(jié)尾

46.數(shù)據(jù)流圖用于抽象描述一個(gè)軟件的邏輯模型,數(shù)據(jù)流圖由一些特定的圖符構(gòu)成。下列圖符名標(biāo)識(shí)的圖符不屬于數(shù)據(jù)流圖合法圖符的是()

A.控制流B.加工C.數(shù)據(jù)存儲(chǔ)D.源和潭

47.線性表常采用的兩種存儲(chǔ)結(jié)構(gòu)是()。

A.順序存儲(chǔ)結(jié)構(gòu)和鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)B.散列方法和索引方式C.鏈表存儲(chǔ)結(jié)構(gòu)和數(shù)組D.線性存儲(chǔ)結(jié)構(gòu)和非線性存儲(chǔ)結(jié)構(gòu)

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

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

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

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

49.兩次運(yùn)行下列的程序,如果從鍵盤(pán)上分別輸入3和1,則輸出結(jié)果是()。main(){intx;scanf("%d",&x);if(x++>2)printf("%d",x);elseprintf("%d\n",x--);}

A.4和2B.4和1C.4和0D.3和1

50.若已定義的函數(shù)有返回值,則以下關(guān)于該函數(shù)調(diào)用的敘述中錯(cuò)誤的是A.函數(shù)調(diào)用可以作為獨(dú)立的語(yǔ)句存在

B.函數(shù)調(diào)用可以作為一個(gè)函數(shù)的實(shí)參

C.函數(shù)調(diào)用可以出現(xiàn)在表達(dá)式中

D.函數(shù)調(diào)用可以作為一個(gè)函數(shù)的形參

51.以下選項(xiàng)中非法的表達(dá)式是()。

A.0<=x<100B.i=j==0C.(char)(65+3)D.x+1=x+1

52.若有說(shuō)明語(yǔ)句:intx=3,y=4,z=5;,則下面的表達(dá)式中,值為0的是______。

A.x&&y

B.x<=y(tǒng)

C.x||++y&&y-z

D.!(x<y&&!z||1)

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

A.測(cè)試工作必須由程序編制者自己完成

B.測(cè)試用例和調(diào)試用例必須一致

C.一個(gè)程序經(jīng)調(diào)試改正錯(cuò)誤后,一般不必再進(jìn)行測(cè)試

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

54.有以下程序main(){inti=0,s=0;do{if(i%2){i++;continue;}i++;s+=i;}while(i<7);printf("%d\n",s);}執(zhí)行后輸出結(jié)果是

A.16B.12C.28D.21

55.有以下程序:main(){intm=12,n=34;printf("%d%d",m++,++n);printf("%d%d\n",n++,++m);}程序運(yùn)行后的輸出結(jié)果是______。

A.12353514B.12353513C.12343514D.12343513

56.下列程序的運(yùn)行結(jié)果為()。#include<stdio.h>voidabc(char*str){inta,b,i,j;for(i=j=0;str[i]!='\0';i++)if(str[i]!='a'str[j++]=str[i];str[j]='\0';}voidmain(){charstr[]="abcdef";abc(str);printf("str[]=%s",str);}

A.str[]=bcdefB.str[]=abcdefC.str[]=aD.str[]=ab

57.設(shè)x和y都是int類型,且x=1,y=2,則printf("%d%d",x,y,(x,y))的輸出結(jié)果是()。

A.12B.122C.1,2D.輸出值不確定

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

A.在C語(yǔ)言程序中預(yù)處理是指完成宏替換和文件包含指定的文件的調(diào)用

B.預(yù)處理指令只能位于C源程序文件的首部

C.預(yù)處理命令可以放在程序中的任何位置

D.預(yù)處理命令結(jié)尾需要加分號(hào)

59.有以下程序:intf1(intx,inty){returnx>y?x:y;}intf2(intx,inty){returnx>y?y:x;}main(){inta=4,b=3,c=5,d,e,f;d=fl(a,b);d=f1(d,c);e=f2(a,b);e=f2(e,c);f=a+b+c-d-e;printf("%d,%d,%d\n",d,f,e);}執(zhí)行后輸出結(jié)果是()。

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

60.以下程序的輸出結(jié)果是()structHAR{intx,y;structHAR*p;}h[2];main(){h[0].x=1;h[0].y=2;h[1].x=3;h[1].y=4;h[0].p=&h[1];h[1].p=h;printf("%d%d\n"h[0].p)->x,(h[1].p)->y);}

A.12B.23C.14D.32

四、選擇題(20題)61.下列關(guān)于定點(diǎn)數(shù)與浮點(diǎn)數(shù)的敘述中錯(cuò)誤自是()。

A.在實(shí)數(shù)的浮點(diǎn)表示中,階碼是一個(gè)整數(shù)

B.整數(shù)是實(shí)數(shù)的特例,也可以用浮點(diǎn)數(shù)表示

C.實(shí)數(shù)的補(bǔ)碼是其對(duì)應(yīng)的反碼在最后一位加1

D.相同長(zhǎng)度的浮點(diǎn)數(shù)和定點(diǎn)數(shù),前者可表示數(shù)的范圍要大于后者

62.(56)下列不屬于軟件調(diào)試技術(shù)的是()

A.強(qiáng)行排錯(cuò)法

B.集成測(cè)試法

C.回溯法

D.原因排除法

63.下列關(guān)于棧的敘述正確的是()。

A.棧按“先進(jìn)先出”組織數(shù)據(jù),B.棧按“先進(jìn)后出”組織數(shù)據(jù)C.只能在棧底插入數(shù)據(jù)D.不能刪除數(shù)據(jù)

64.C語(yǔ)言用_______表示邏輯“真”值。

A.trueB.t或yC.非零整型值D.整型值0

65.

有以下程序

#include<stdio.h>

#include<string.h>

typedefstrlIct{charname[9];charsex;floatscore[2];}STU;

STUf(STUa)

{STUb={"Zhao",m,85.0,90.0);inti;

strcpy(aname,b.name);

sex:b.sex;

for(i=0;i<2;i++)a.score[i]=b.score[i];

returna;

}

main

{STUc="Qian",f,95.0,92.0},d;

d=f(c).printf("%s,%c,%2.0f,%2.0f",d.Name,d.sex,d.score[0],d.score[1]);

}

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

A.Qian,f,95,92

B.Qian,m,85,90

C.Zhao,m,85,90

D.Zhao,f,95,92

66.在軟件設(shè)計(jì)中,不屬于過(guò)程設(shè)計(jì)工具的是()。

A.PDL(過(guò)程設(shè)計(jì)語(yǔ)言)B.PAD圖C.N-S圖D.DFD圖

67.有以下程序:

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

A.Zhao,m,85,90B.Qian,m,85,90C.Zhao,f,95,92D.Qian,f,95,92

68.軟件按功能可以分為:應(yīng)用軟件、系統(tǒng)軟件和支撐軟件(或工具軟件)。下面屬于應(yīng)用軟件的是()。

A.編譯程序B.操作系統(tǒng)C.教務(wù)管理系統(tǒng)D.匯編程序

69.以下不能正確定義二維數(shù)組的選項(xiàng)是()。

A.

B.

C.

D.

70.若變量已正確定義為int型,要通過(guò)語(yǔ)句給a賦值l、+給b賦值2、給c賦值

3,以下輸入形式中錯(cuò)誤的是()(注:口代表一個(gè)空格符)。

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

A.C程序在運(yùn)行過(guò)程中所有計(jì)算都以二進(jìn)制方式進(jìn)行

B.C程序在運(yùn)行過(guò)程中所有計(jì)算都以十進(jìn)制方式進(jìn)行

C.所有C程序都需要編譯鏈接無(wú)誤后才能運(yùn)行

D.C程序中字符變量存放的是字符的ASCIl碼值

72.

73.設(shè)x=011050,則x=x&01252的值是()。A.0000001000101000

B.1111110100011001

C.0000001011100010

D.1100000000101000

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

main()

{charst[20]="hell0\O\t\\\”;

printf("%d%d\n",strlen(st),sizeof(st));

}

A.99

B.520

C.1320

D.2020

75.以下正確的字符串常量是()。

76.

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.以下程序的輸出結(jié)果是()。

main()

{inta=1;

charc=’a’;

floatf=2.0;

Printf("%d\n",(!(a==0),f1=0&&c==’A’));

}

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

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

例如,輸入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);j4-+)

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

{

c=str[j]:

//****found****

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

str[i]=C;

}

}

voidmain

{

charst/[81];

system("CLS");

printf("\nPleaseenteracharacter

string:");

gets(str);

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

proc(str);

printf("\nAftersortingdecendingly:\n

%S",str);

}

六、程序設(shè)計(jì)題(1題)82.請(qǐng)編寫(xiě)函數(shù)proc(),其功能是:將str所指字符串中除下標(biāo)為偶數(shù)、同時(shí)ASCⅡ碼值為奇數(shù)的字符外,其余的字符都刪除,串中剩余字符所形成的一個(gè)新串放在t所指的數(shù)組中。例如,若str所指字符串中的內(nèi)容為ABCDEFG12345,其中字符8的ASCⅡ碼值為偶數(shù),所在元素的下標(biāo)為奇數(shù),因此必須刪除;而字符A的ASCⅡ碼值為奇數(shù),所在數(shù)組中的下標(biāo)為偶數(shù),因此不應(yīng)當(dāng)刪除。依次類推,最后t所指的數(shù)組中的內(nèi)容應(yīng)是ACEG。注意:部分源程序給出如下。請(qǐng)勿改動(dòng)main()函數(shù)和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)proc()的花括號(hào)中填入所寫(xiě)的若干語(yǔ)句。試題程序:

參考答案

1.D

2.A解析:由于數(shù)據(jù)的集成性使得數(shù)據(jù)可為多個(gè)應(yīng)用所共享,特別是在網(wǎng)絡(luò)發(fā)達(dá)的今天,數(shù)據(jù)庫(kù)與網(wǎng)絡(luò)的結(jié)合擴(kuò)大了數(shù)據(jù)關(guān)系的應(yīng)用范圍。數(shù)據(jù)的共享自身又可極大地減少數(shù)據(jù)冗余性,不僅減少了不必要的存儲(chǔ)空間,更為重要的是可以避免數(shù)據(jù)的不一致性。所謂數(shù)據(jù)的一致性是指在系統(tǒng)中同一數(shù)據(jù)的不同出現(xiàn)應(yīng)保持相同的值,而數(shù)據(jù)的不一致性指的是同一個(gè)數(shù)據(jù)在系統(tǒng)的不同拷貝處有不同的值。

3.B解析:本題考查的是外部變量的應(yīng)用。因?yàn)槌绦虻某跏糹nta=4;語(yǔ)句定義了外部變量a,在以后的執(zhí)行過(guò)程中,當(dāng)i=0時(shí),調(diào)用f(0)函數(shù),執(zhí)行的語(yǔ)句是else{inta=7;t+=a++;},此處程序中又定義了變量a,所以原來(lái)定義的外部變量在此不起作用,得到t=7,返回值語(yǔ)句returnt+a++;處,外部變量a起作用,返回值為7+5=12:當(dāng)i=1時(shí),調(diào)用f(1)函數(shù),執(zhí)行的是語(yǔ)句else{inta=6:t+=a++;},此處程序中又定義了變量a,所以原來(lái)定義的外部變量在此不起作用,得到t=6,返回值語(yǔ)句

4.C宏定義不是C語(yǔ)句,末尾不需要有分號(hào)。所以語(yǔ)句Printf("%4.1f\\n",,S(a+b));展開(kāi)后為printf("%4.1f\\n",3.5;*a+b*a+b;);所以程序會(huì)出現(xiàn)語(yǔ)法錯(cuò)誤。

5.A解析:C語(yǔ)言規(guī)定,程序中各函數(shù)之間既允許直接遞歸調(diào)用也允許間接遞歸調(diào)用。

6.Ado{*t++=*s++;}while(*s);不能因?yàn)楫?dāng)*s=‘\\0'時(shí),while(*s)跳出循環(huán),這樣字符串結(jié)束標(biāo)志’0\\沒(méi)有復(fù)制給*t,造成*t不完整。注意,*t++=*s++是先執(zhí)行t=*s,然后才進(jìn)行t=t+1,s=s+1。B),C),D)三項(xiàng)都能將“\\0’復(fù)制過(guò)去。

7.D考查結(jié)構(gòu)體的應(yīng)用,答案為21。

8.C解析:程序流程圖是人們對(duì)解決問(wèn)題的方法、思路或算法的一種描述。其中,圖框表示各種操作的類型,圖框中的文字和符號(hào)表示操作的內(nèi)容,流程線表示操作的先后次序。帶箭頭的線段在數(shù)據(jù)流程圖中表示數(shù)據(jù)流。帶箭頭的線段在程序流程圖中表示控制流。題中給出的選項(xiàng)中,在圖元之間用帶有箭頭的線段表示圖元關(guān)系。在模塊之間用帶有箭頭的線段表示調(diào)用關(guān)系。構(gòu)成程序流程圖的基本圖符及含義:→或↓表示控制流;□表示加工步驟;

表示邏輯條件。

9.D

10.C解析:棧和隊(duì)列都是操作受限制的線性表,只允許在端點(diǎn)插入和刪除。不同點(diǎn)是:棧只允許在表的一端進(jìn)行插入和刪除操作,而隊(duì)列允許在表的一端進(jìn)行插入操作,而在另一端進(jìn)行刪除操作。

11.D

12.A本題中使用了函數(shù)的調(diào)用,由funl函數(shù)中的while循環(huán)可知,循環(huán)的作用是為了把q所指向的內(nèi)容增加1,而從主函數(shù)傳到函數(shù)時(shí)是從下標(biāo)為3開(kāi)始傳,因此當(dāng)調(diào)用函數(shù)執(zhí)行完后,傳過(guò)去的字符串為hsbn,前面不變。

13.C解析:C語(yǔ)言中字符常量是以單引號(hào)括起來(lái)的單個(gè)字符,或以“\\”與三位八進(jìn)制數(shù)值或兩位十六進(jìn)制數(shù)值代替單個(gè)字符。

14.C

15.C宏定義不是C語(yǔ)句,末尾不需要有分號(hào)。語(yǔ)句“printf(“%4.1f\\n”,S(a+b));”展開(kāi)后為“printf(“%4.1f\\n”,3.5;*a+b*a+b;);”,所以程序會(huì)出現(xiàn)語(yǔ)法錯(cuò)誤。故本題答案為C選項(xiàng)。

16.C

17.B解析:常常一個(gè)程序中要用到多個(gè)棧,為了不發(fā)生上溢錯(cuò)誤,就必須給每個(gè)棧分配一個(gè)足夠大的存儲(chǔ)空間。但實(shí)際中,很難準(zhǔn)確地估計(jì),若每個(gè)棧都分配過(guò)大的存儲(chǔ)空間,勢(shì)必造成系統(tǒng)空間緊張;若讓多個(gè)棧共用一個(gè)足夠大的連續(xù)存儲(chǔ)空間,則可利用棧的動(dòng)態(tài)特性使他們的存儲(chǔ)空間互補(bǔ)。

18.A在C語(yǔ)言里不能直接表達(dá)“0<x<5”,需要分步驟來(lái)實(shí)現(xiàn),即使用“x>0&&x<5”來(lái)描述。在C語(yǔ)言里,“0<x<5”屬于一個(gè)邏輯運(yùn)算表達(dá)式,可以理解為“(0<x)<5”,因此選項(xiàng)A錯(cuò)誤。故本題答案為A選項(xiàng)。

19.D解析:本題考查switch語(yǔ)句的掌握。必須撐握以下內(nèi)容:首先應(yīng)該明白switch語(yǔ)句的語(yǔ)法格式:

switch語(yǔ)句的語(yǔ)法格式為:

switch(表達(dá)式)

{

case常量表達(dá)式1:語(yǔ)句組1;

case常量表達(dá)式2:語(yǔ)句組2;

case常量表達(dá)式n:語(yǔ)句組n;

default:語(yǔ)句組n+1;

}

另外,以下幾點(diǎn)關(guān)于switch語(yǔ)句的重點(diǎn):

①系統(tǒng)在執(zhí)行時(shí)計(jì)算開(kāi)關(guān)表達(dá)式的值;②根據(jù)所得的值在各個(gè)case標(biāo)號(hào)表達(dá)式中尋找匹配,直到發(fā)現(xiàn)與表達(dá)式匹配的標(biāo)號(hào)(本例中匹配的是case\'B\':);\ue008③找\ue009到匹配后執(zhí)行后面相應(yīng)的語(yǔ)句表,順序往下執(zhí)行;④如果無(wú)相匹配的標(biāo)號(hào),若存在default標(biāo)號(hào),則執(zhí)行該語(yǔ)句標(biāo)號(hào)后面的語(yǔ)句表n+1;當(dāng)不存在default標(biāo)號(hào)時(shí),不執(zhí)行switch中的任何一個(gè)語(yǔ)句表。

一般而言,在多分支結(jié)構(gòu)中總會(huì)出現(xiàn)'意外'的情況,這時(shí)均可歸入default程序段,作統(tǒng)一的處理。default標(biāo)號(hào)是可選性的,不必每次都有,視需要而定。switch語(yǔ)句中還可以包含switch語(yǔ)句,形成switch的嵌套。

20.A在本題中,程序首先定義一個(gè)返回類型為整型的函數(shù)fun,該函數(shù)帶有一個(gè)指針型的形參變量str,從主函數(shù)中對(duì)其調(diào)用時(shí)傳遞的參數(shù)我們可以知道,該指針指向的是一個(gè)數(shù)組,在該函數(shù)體中,首先定義兩個(gè)整型變量,然后執(zhí)行循環(huán),循環(huán)變量i的初始值為0,循環(huán)結(jié)束的條件是str[i]!=’\\0’,表示取到的數(shù)組元素是字符串結(jié)束標(biāo)識(shí),即字符串中的字符被處理完,在循環(huán)體中,首先執(zhí)行條件判斷語(yǔ)句if(str[i]!=’’),如果結(jié)果為真,說(shuō)明取到的當(dāng)前字符不是空字符,這時(shí)執(zhí)行str[j++]=str[i],即將非空格字符保存到數(shù)組中;如果為假,說(shuō)明取到了空格字符,此時(shí)不保存,而接著執(zhí)行下次循環(huán)跳過(guò)空格字符。循環(huán)結(jié)束后執(zhí)行str[j]=’\\0’;,即保存字符結(jié)束標(biāo)識(shí)符,用來(lái)標(biāo)識(shí)字符串結(jié)束。通過(guò)上面的這些分析,我們可以知道函數(shù)fun的作用是去掉字符數(shù)組中的空格字符。

在主函數(shù)中,首先定義了一個(gè)大小為81的字符數(shù)組,然后調(diào)用函數(shù)clrscr()清除輸入文本窗口,接著輸出一條提示語(yǔ)句,執(zhí)行g(shù)ets(str);語(yǔ)句,該語(yǔ)句的作用是從鍵盤(pán)輸入一個(gè)字符串到str數(shù)組,碰到換行符結(jié)束。然后調(diào)用函數(shù)fun,其實(shí)參為str。通過(guò)上面對(duì)函數(shù)fun作用的分析我們可以知道,調(diào)用函數(shù)后輸入字符串中的空格符都被刪除了,最后得到的字符串為asdafaaz67。

程序最后執(zhí)行輸出語(yǔ)句,輸出字符數(shù)組str中的字符串,因此,程序最終的輸出結(jié)果是asdafaaz67,本題答案選A。

21.交換排序交換排序解析:所謂排序是指將一個(gè)無(wú)序序列整理成按值非遞減順序排列成的有序序列,常用的排序方法有:交換排序、插入排序和選擇排序。其中交換排序包括冒泡排序和快速排序,插入排序包括簡(jiǎn)單插入排序和希爾排序,選擇排序包括直接選擇排序和堆排序。

22.9292解析:本題考查循環(huán)的嵌套。

①當(dāng)i=0時(shí)執(zhí)行while語(yǔ)句,i++<4成立,這時(shí)i=1,不執(zhí)行continue語(yǔ)句,繼續(xù)執(zhí)行j=0;然后執(zhí)行do-while語(yǔ)句,共循環(huán)4次:

a)j=0時(shí),s=0+a[1][0]=5,j=j+1=1。

b)j=1時(shí),s=5+a[1][1]=5+6=11,j=j+1=2。

c)j=2時(shí),s=11+a[1][2]=11+7=18,j=j+1=3。

d)j=3時(shí),s=18+a[1][3]=18+8=26,j=j+1=4。終止循環(huán)。

②當(dāng)i=1時(shí)執(zhí)行while語(yǔ)句,i++<4成立,這時(shí)i=2,執(zhí)行continue語(yǔ)句,結(jié)束本次循環(huán)。

③當(dāng)i=2時(shí)執(zhí)行while語(yǔ)句,i++<4成立,這時(shí)i=3,不執(zhí)行continue語(yǔ)句,繼續(xù)執(zhí)行j=0;然后執(zhí)行do-while語(yǔ)句,共循環(huán)4次:

a)s=26+a[3][0]=26+15=41,j+1=1。

b)s=41+a[3][1]=41+16=57,j+1=2。

c)s=57+a[3][2]=57+17=74,j+1=3。

d)s=74+a[3][3]=74+18=92,j+1=4。終止循環(huán)。

④i=3時(shí),執(zhí)行while語(yǔ)句,i++<4成立,這時(shí)i=4,執(zhí)行continue語(yǔ)句,結(jié)束本次循環(huán)。

⑤當(dāng)i=4時(shí),執(zhí)行while語(yǔ)句,i++<4不成立,結(jié)束while循環(huán)。輸出s的結(jié)果92。

23.錯(cuò)誤錯(cuò)誤解析:線索二叉樹(shù)是利用二叉鏈表存儲(chǔ)結(jié)構(gòu)中的空鏈域來(lái)存放其前趨或后繼。由于二叉樹(shù)度為2的非終端結(jié)點(diǎn)無(wú)空鏈域,因此它沒(méi)有空鏈域用來(lái)存放前趨和后繼。

24.C

25.246246解析:本題考查靜態(tài)(static)局部變量的使用。fun函數(shù)中的靜態(tài)局部變量a所占用的存儲(chǔ)單元在程序運(yùn)行過(guò)程中始終不釋放,即當(dāng)下一次調(diào)用該函數(shù)時(shí),該變量仍然保留上一次函數(shù)調(diào)用結(jié)束時(shí)已有的值,3次調(diào)用fun函數(shù)分別得到2,4,6。

26.加工加工解析:數(shù)據(jù)流圖是從數(shù)據(jù)傳遞和加工的角度,來(lái)刻畫(huà)數(shù)據(jù)流從輸入到輸出的移動(dòng)變換過(guò)程。其中的每一個(gè)加工對(duì)應(yīng)一個(gè)處理模塊。

27.-2-2解析:題目中定義并初始化了變量k為0,最后輸出k的值,要求為4,而在此期間只有k+=-(i+j);這條語(yǔ)句改變了k的值,即要求表達(dá)式-(i+j)的值為4。所以,答案應(yīng)該為-2,因?yàn)橹挥衖=j=-2時(shí),表達(dá)式-(i+j)的值才為4。

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

29.1np*=i或np=np*i1\r\nnp*=i或np=np*i

30.DDBBCCDDBBCC解析:C語(yǔ)言對(duì)枚舉的定義規(guī)定:在枚舉中聲明的各個(gè)枚舉元素,如果沒(méi)有明確指出某個(gè)枚舉元素的值,它的上—個(gè)元素存在并有明確值的情況下,這個(gè)牧舉元素的值為其上一個(gè)元素的值+1。在本題中,沒(méi)有明確說(shuō)明枚舉元素em3的值,則em3=cm2+1=1+1=2,進(jìn)而可知,在printf()打印函數(shù)中,要打印的數(shù)組元素是aa[3]、aa[1]、aa[2],因此最后的打印結(jié)果應(yīng)當(dāng)為'DDBBCC'。

31.5.04c=35.0,4,c=3解析:scanf(掐式控制,地址列表),如果在“格式控制”字符串中除了格式說(shuō)明以外還有其他字符,則在輸入數(shù)據(jù)時(shí)應(yīng)輸入與這些字符相同的字符。所以此題中輸入數(shù)據(jù)的形式是5.04,c=3。

32.字符串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)度。

33.關(guān)系或一個(gè)關(guān)系關(guān)系或一個(gè)關(guān)系解析:在關(guān)系數(shù)據(jù)庫(kù)中,把數(shù)據(jù)表示成二維表,而一個(gè)二維表就是一個(gè)關(guān)系。

34.212,1解析:本題中,執(zhí)行a=a+b時(shí),a=1,b=2,a=1+2=3,b=a-b時(shí),a=3,b=2,b=3-2=1;a=a-b時(shí),a=3,b=1,a=3-1=2;因此,本題的輸出是2,1

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

36.246246解析:本題考查了for循環(huán)語(yǔ)句的使用,同時(shí)靜態(tài)局部變量的存儲(chǔ)和生存其特性也要注意。第一次執(zhí)行fun()函數(shù)時(shí),a=0,所以a+=2=2;第二次執(zhí)行fun()函數(shù)時(shí),a保留著上次制形式的結(jié)果2,所以a+=2=4;同理第三次執(zhí)行fun()函數(shù)時(shí),a=6,所以輸出結(jié)果為246。

37.5656解析:本題中a,b,c,d足實(shí)參,x,y,cp,dp是形參。C語(yǔ)言規(guī)定,實(shí)參變量對(duì)形參變量的數(shù)據(jù)傳遞是“值傳遞”,即單向傳遞,只由實(shí)參傳給形參,而不能由形參傳回來(lái)給實(shí)參。在內(nèi)存中,實(shí)參單元與形參單元是不同的單元。在調(diào)用函數(shù)時(shí),給形參分配存儲(chǔ)單元,并將實(shí)參對(duì)應(yīng)的值傳遞給形參,調(diào)用結(jié)束后,形參單元被釋放,實(shí)參單元仍保留并維持原值。因此,程序的輸出結(jié)果是56。

38.8208,20解析:本題考查while循環(huán)和++運(yùn)算符的運(yùn)用。x=0符合條件x<15,則執(zhí)行y++,x+=++y后,y=1,x=0+2=2后y=2,符合條件繼續(xù)循環(huán),y=3,x=x+4=6后y=4,再循環(huán)y=5,x=x+6=6+6=12后,y=6,繼續(xù)循環(huán)y=7,x=x+8=12+8-20,此時(shí)y=8。

39.00解析:本題中的for循環(huán)共執(zhí)行了6次,每執(zhí)行一次將相應(yīng)i的值相乘,最后當(dāng)i=-1時(shí)停止循環(huán).該for循環(huán)執(zhí)行完后t的值為5*4*3*2*1*0=0,故最后輸出I的值為0。

40.>=1或>0i>=1或>0\r\ni解析:程序的外層for循環(huán)控制輸出數(shù)據(jù)的行數(shù),故第一處填“>=1”或“>0”;內(nèi)層循環(huán)控制每行輸出的個(gè)數(shù)。在內(nèi)層for循環(huán)中,語(yǔ)句x=(j-1)*4+______;用于控制輸出方陣中的具體數(shù)據(jù),由于這些數(shù)據(jù)與其所在的行、列(j,i)具有x=(j-1)*4+i的關(guān)系,故第二處填i。

41.D解析:內(nèi)聚性是一個(gè)模塊內(nèi)部各元素間彼此結(jié)合的緊密程度的度量。內(nèi)聚是從功能角度來(lái)度量模塊內(nèi)的聯(lián)系。內(nèi)聚共有7類,它們之㈨的內(nèi)聚性由弱到強(qiáng)排列順序?yàn)椋号既粌?nèi)聚、邏輯內(nèi)聚、時(shí)間內(nèi)聚、過(guò)程內(nèi)聚、通信內(nèi)聚、順序內(nèi)聚和功能內(nèi)聚。

42.B解析:該題目應(yīng)該根據(jù)循環(huán)體第一次和最后一次執(zhí)行時(shí)的輸出結(jié)果來(lái)決定哪一項(xiàng)是正確的。第一次進(jìn)入循環(huán)時(shí),n的值是9,循環(huán)體內(nèi),先經(jīng)過(guò)n--運(yùn)算,n的值變?yōu)?,所以第一次的輸出值是8,由此可以排除選項(xiàng)A)和D)。由循環(huán)條件n>6可以知道,最后一次循環(huán)開(kāi)始時(shí),n的值應(yīng)該為7,所以最后一次執(zhí)行循環(huán)時(shí),輸出為6,由此可以排除選項(xiàng)C)。

43.D解析:因?yàn)閤的值為大于1的奇數(shù),所以x除以2的余數(shù)等于1,因此,選項(xiàng)A)、C)中表達(dá)式的結(jié)果為真,不為0;對(duì)于選項(xiàng)B)來(lái)說(shuō),x除以2的商不會(huì)等于0;選項(xiàng)D)中表達(dá)式的結(jié)果為假,即等于0。

44.A解析:本題考查函數(shù)的遞歸調(diào)用。

在函數(shù)遞歸調(diào)用時(shí),fun(7):a=7-fun(5)→fun(5):a=5-fun(3)→fun3:a=3-fun(1)→fun(1):a=3,反推回去fun(3):a=3-3=0→fun(5):a=5-0=5→fun(7):a=7-5=2,最后的計(jì)算結(jié)果為2。

45.B解析:'\\0'作為標(biāo)志占用存儲(chǔ)空間,但是不計(jì)入串的實(shí)際長(zhǎng)度。當(dāng)給一個(gè)字符型指針賦值時(shí),賦給這個(gè)指針的是這個(gè)字符串的地址。

46.A解析:數(shù)據(jù)流圖包括4個(gè)方面,即加工(轉(zhuǎn)換)(輸入數(shù)據(jù)經(jīng)加工變換產(chǎn)生輸出)、數(shù)據(jù)流(沿箭頭方向傳送數(shù)據(jù)的通道,一般在旁邊標(biāo)注數(shù)據(jù)流名)、存儲(chǔ)文件(數(shù)據(jù)源)(表示處理過(guò)程中存放各種數(shù)據(jù)的文件)、源和潭(表示系統(tǒng)和環(huán)境的接口,屬系統(tǒng)之外的實(shí)體)。不包括選項(xiàng)中的控制流。

47.AA.【解析】線性表的存儲(chǔ)通常要用兩種存儲(chǔ)結(jié)構(gòu):順序存儲(chǔ)結(jié)構(gòu)和鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)。

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

49.A解析:本題考查ifelse語(yǔ)句。首先scanf函數(shù)通過(guò)鍵盤(pán)讀入x的值。當(dāng)x=3時(shí),第一個(gè)if語(yǔ)句,先判斷條件,取x的值3和2比較,然后將x的值加1,發(fā)現(xiàn)條件成立,執(zhí)行下列的printf語(yǔ)句,輸出x的值4。當(dāng)x=1時(shí),第一個(gè)if語(yǔ)句,先判斷條件,取x的值1和2比較,然后將x的值加1(x的值變?yōu)?),發(fā)現(xiàn)條件不成立,執(zhí)行下列的else語(yǔ)句,先輸出x的值2,再將x的值減1。

50.D解析:本題考查函數(shù)的調(diào)用。在有參函數(shù)調(diào)用中,是將主調(diào)函數(shù)的實(shí)參值傳給被調(diào)函數(shù)的形參。按函數(shù)在程序中出現(xiàn)的位置來(lái)分,有以下三種函數(shù)調(diào)用形式:

①函數(shù)調(diào)用作為一條語(yǔ)句。例如:fun();這時(shí)不要求函數(shù)帶回值,只要求函數(shù)完成一定的操作。故選項(xiàng)A)正確。

②函數(shù)出現(xiàn)在表達(dá)式中,這種表達(dá)式稱為函數(shù)表達(dá)式。這時(shí)要求函數(shù)帶回一個(gè)確定的值以參加表達(dá)式的運(yùn)算。例如:c=5*max(a,b);函數(shù)max是表達(dá)式的一部分,將其值乘以5后賦給c。故選項(xiàng)C)正確。

③函數(shù)調(diào)用作為一個(gè)函數(shù)的實(shí)參,例如:m=max(a,max(b,c));其中max(b,c)是一次函數(shù)調(diào)用,它的值作為max另一次調(diào)用的實(shí)參。故選項(xiàng)B)正確。

函數(shù)調(diào)用不可作為一個(gè)函數(shù)的形參,因?yàn)楹瘮?shù)調(diào)用參數(shù)的數(shù)據(jù)傳遞是單向傳遞,即實(shí)參傳給形參,不能由形參傳給實(shí)參。故選項(xiàng)D)錯(cuò)誤。

51.D解析:選項(xiàng)A)在C語(yǔ)言中是一個(gè)合法的關(guān)系表達(dá)式,但它并不代表數(shù)學(xué)式o<=x<100。計(jì)算0<=x<100時(shí),從左到右結(jié)合,先計(jì)算0<=x,其結(jié)果只能是0或1,然后再比較0<100或1<100。根據(jù)運(yùn)算符的優(yōu)先級(jí),選項(xiàng)B)先判斷j==0是否成立,其結(jié)果只能是0或1,然后再將0或1賦給i。選項(xiàng)C)中,(char)(65+3)為類型強(qiáng)制轉(zhuǎn)換,將整數(shù)型數(shù)據(jù)轉(zhuǎn)換為字符型。選項(xiàng)D)是將一個(gè)數(shù)據(jù)賦給一個(gè)表達(dá)式,等號(hào)左邊不合要求,所以錯(cuò)誤。

52.D解析:x&&y值為1,x<=y(tǒng)值為1,x||++y&&y-z值為1,!(x<y&&!z||1=值為0。

53.D解析:測(cè)試不是為了證明程序是正確的,而是在設(shè)想程序有錯(cuò)誤的前提下進(jìn)行的,其目的是設(shè)法暴露程序中的錯(cuò)誤和缺陷,一般應(yīng)當(dāng)避免由開(kāi)發(fā)者測(cè)試自己的程序,因此,選項(xiàng)A錯(cuò)誤;測(cè)試是為了發(fā)現(xiàn)程序錯(cuò)誤,不能證明程序的正確性,調(diào)試主要是推斷錯(cuò)誤的原因,從而進(jìn)一步改正錯(cuò)誤,調(diào)試用例與測(cè)試用例可以一致,也可以不一致,選項(xiàng)B錯(cuò)誤;測(cè)試發(fā)現(xiàn)錯(cuò)誤后,可進(jìn)行調(diào)試并改正錯(cuò)誤:經(jīng)過(guò)調(diào)試后的程序還需進(jìn)行回歸測(cè)試,以檢查調(diào)試的效果,同時(shí)也可防止在調(diào)試過(guò)程中引進(jìn)新的錯(cuò)誤,選項(xiàng)C錯(cuò)誤。

54.A解析:do循環(huán)與continue語(yǔ)句,在循環(huán)體中有一條if語(yǔ)句,其后面表達(dá)式為“i%2”,當(dāng)i的值為奇數(shù)時(shí),其值為真,執(zhí)行其后面的語(yǔ)句,i的值加1,重新開(kāi)始循環(huán),當(dāng)i的值為偶數(shù)時(shí),“i%2”為假,執(zhí)行“i++;s+=i”。在循環(huán)中i為偶數(shù)時(shí)的值分別為0、2、4、6,加1過(guò)后的值分別為1、3、5、7,s中存放的是它們的和,值為16。

55.A解析:自增運(yùn)算符“++”,放在變量之前表示在使用變量之前,先使變量的值加1;放在變量之后表示在使用變量之后,再使變量的值加1。第一條輸出語(yǔ)句,先輸出m=12,m再自加1,變成13,n先自加1再輸出,輸出n=35;第二條輸出語(yǔ)句,先輸出n=35,n再自加1,變成36,m先自加1再輸出,輸出m=14。

56.A解析:本題考查函數(shù)調(diào)用時(shí)的參數(shù)傳遞。通過(guò)函數(shù)abc的執(zhí)行,將字符串中的字母a去掉,保留剩下的。由于是通過(guò)指針調(diào)用,所以改變字符串的結(jié)果。

57.A解析:本題考查printf函數(shù)的格式和逗號(hào)表達(dá)式。printf函數(shù)在輸出時(shí),是根據(jù)格式說(shuō)明符的個(gè)數(shù)輸出的,如果函數(shù)中有有多余的項(xiàng)將不予輸出;如果有輸出項(xiàng)少于格式說(shuō)明符,則出錯(cuò),不能輸出正確的結(jié)果。本題中逗號(hào)表達(dá)式(x,y)只返回y的值。此時(shí)格式說(shuō)明的個(gè)數(shù)是2,而輸出項(xiàng)的個(gè)數(shù)是3,因此printf函數(shù)只輸出前兩項(xiàng)。

58.C解析:本題考查預(yù)處理命令的特點(diǎn),編譯預(yù)處理命令的特點(diǎn):①為了區(qū)別一般的語(yǔ)句,預(yù)處理命令行都必須以“#”號(hào)開(kāi)始,結(jié)尾不加分號(hào);②預(yù)處理命令可以放在程序中的任何位置;③在程序中凡是以“#”號(hào)開(kāi)始的語(yǔ)句行都是預(yù)處理命令行。

59.C解析:函數(shù)f1()的作用是返回形參x和y的較大值,函數(shù)f2()的作用是返回形參x和y的較小值,在main()函數(shù)中通過(guò)調(diào)用兩次f1()函數(shù),求得a、b、c的最大值并存放在變量d中,通過(guò)調(diào)用兩次f2()函數(shù),求得a、b、c的最小值并存放到變量e中。由程序可知d值為5,f的值為4,e的值為3,因此最后輸出的d、f、e的值為5、4、3。所以C選項(xiàng)為所選。

60.D解析:本題中是一個(gè)含有兩個(gè)結(jié)點(diǎn)的循環(huán)鏈表。

C語(yǔ)言中結(jié)構(gòu)體的定義為:

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

{

成員項(xiàng)表;

};

61.C正整數(shù)的補(bǔ)碼與其原碼一致;負(fù)整數(shù)的補(bǔ)碼是其對(duì)應(yīng)的反碼在最后一位加l。

62.B

63.B棧是按“先進(jìn)后出”的原則組織數(shù)據(jù)的,數(shù)據(jù)的插入和刪除都在棧頂進(jìn)行操作。

64.C

65.Cf函數(shù)的功能是對(duì)形參a的各個(gè)成員用結(jié)構(gòu)體變量b的各個(gè)成員進(jìn)行賦值后,然后返回變量a。

66.D解析:PDL一種設(shè)計(jì)性語(yǔ)言,用于書(shū)寫(xiě)軟件設(shè)計(jì)規(guī)約。它是軟件設(shè)計(jì)中廣泛使用的語(yǔ)言之一。N-S圖是無(wú)線的流程圖,是算法描述工具;PAD圖是問(wèn)題分析圖,它用二維樹(shù)狀結(jié)構(gòu)的圖表示程序的控制流,將這種圖轉(zhuǎn)換為程序代碼比較容易。此3類均是過(guò)程設(shè)計(jì)工具,數(shù)據(jù)流圖(DataFunctionDiagram):又名數(shù)據(jù)功能圖表,簡(jiǎn)稱DFD,是采用圖形方式來(lái)表達(dá)系統(tǒng)的邏輯功能、數(shù)據(jù)在系統(tǒng)內(nèi)部的邏輯流向和邏輯變換過(guò)程,是結(jié)構(gòu)化系統(tǒng)分析方法的主要表達(dá)工具及用于表示軟件模型的一種圖示方法。

67.D本題考查結(jié)構(gòu)體的相關(guān)操作以及傳值、傳址的區(qū)別,該題中調(diào)用f函數(shù)后,會(huì)生成參數(shù)C的一個(gè)副本,而不會(huì)改變c的值,所以c值維持原值,選項(xiàng)D正確。

68.C解析:軟件按功能可以分為:應(yīng)用軟件,系統(tǒng)軟件、支撐軟件(或工具軟件)。應(yīng)用軟件是為解決特定領(lǐng)域的應(yīng)用而開(kāi)發(fā)的軟件。例如,事務(wù)處理軟件、工程與科學(xué)計(jì)算軟件,實(shí)時(shí)處理軟件,嵌入式軟件,人工智能軟件等應(yīng)用性質(zhì)不同的軟件。因此選項(xiàng)C教務(wù)管理系統(tǒng)屬于應(yīng)用軟件。系統(tǒng)軟件是計(jì)算機(jī)管理自身資源,提高計(jì)算機(jī)使用效率并為計(jì)算機(jī)用戶提供各種服務(wù)的軟件。如操作系統(tǒng),編譯程序,匯編程序,網(wǎng)絡(luò)軟件,數(shù)據(jù)庫(kù)管理系統(tǒng)等。因此選項(xiàng)A、B、D都屬于系統(tǒng)軟件。

69.D本題的考查點(diǎn)是二維數(shù)組的定義和初始化。

選項(xiàng)A)定義的數(shù)組中各元素實(shí)際上是這樣的:

1,0

2.O

選項(xiàng)B)定義的數(shù)組中各元素實(shí)際上是這樣的:

1,2

3.4

選項(xiàng)c)定義的數(shù)組中各元素實(shí)際上是這樣的:

1,0

2.3

選項(xiàng)D)錯(cuò)在省略了第2維的長(zhǎng)度。C中在對(duì)數(shù)組進(jìn)行初始化時(shí),如果對(duì)全部元素都賦初值(即提供全部初始數(shù)據(jù)),則定義數(shù)組時(shí)對(duì)第一維的長(zhǎng)度可以不指定,但第二維的長(zhǎng)度不能省。

70.A本題考查的是格式化輸入函數(shù)scanf()基本用法。使用該語(yǔ)句時(shí),要求除格式控制符以外的字符都要原樣輸入,

“,”為非格式符,要原樣輸入。選項(xiàng)A)中沒(méi)有輸入非格式符“,”,所.以是不正確的。

71.BC程序在運(yùn)行過(guò)程中的所有計(jì)算都以二進(jìn)制方式進(jìn)行,所以B選項(xiàng)錯(cuò)誤。

72.D

73.A本題考查按位與運(yùn)算,按位與就是相同為1,不同為0,把x=011050化成二進(jìn)制為0001001000101000,把01252化成二進(jìn)制為0000001010101010,兩者相與得0000001000101000。

74.B\n從題目中可知,\O、\t、\\分別為一個(gè)字符,而sizeof是求字節(jié)個(gè)數(shù)的函數(shù),其中包括\O占的字節(jié),strlen函數(shù)是求數(shù)組長(zhǎng)度的函數(shù);其以\0結(jié)束,因此strlen的值為5,sizeof的值為20。

\n

75.A字符串常量需要用雙引號(hào)括起來(lái),D)選項(xiàng)中第三個(gè)、和“和在一起是一個(gè)字符所以錯(cuò)誤。答案選擇A)。

76.D

77.D

78.A

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.A輸入函數(shù)的輸出項(xiàng)從整體看是一個(gè)逗號(hào)表達(dá)式,對(duì)于逗號(hào)表達(dá)式,我們只需求出最后一個(gè)表達(dá)式的值即可,首先f(wàn)賦值為0,c==’A’,不成立,因?yàn)閏=’a’,所以結(jié)果為假,即0,因此結(jié)果輸出的就是0.

81.(1)錯(cuò)誤:intproc(charstr[])

\n正確:voidproc(charstr[])

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

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

\n【解析】由主函數(shù)中的函數(shù)調(diào)用可知,函數(shù)proc沒(méi)有返回值。因此,“intproc(charstr[])”應(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.

【解析】題目中要求將字符串str中下標(biāo)為偶數(shù)、同時(shí)ASCⅡ碼值為奇數(shù)的字符放在數(shù)組t中。首先,需要檢查字符串str中下標(biāo)為偶數(shù)的字符的ASCⅡ碼值是否為奇數(shù),將符合要求的字符放在數(shù)組t中。最后,為新的字符串?dāng)?shù)組添加結(jié)束符。

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

一、單選題(20題)1.在Windows環(huán)境下,單擊當(dāng)前應(yīng)用程序窗口中的“關(guān)閉”按鈕,其功能是A.將當(dāng)前應(yīng)用程序轉(zhuǎn)為后臺(tái)運(yùn)行

B.退出Windows后再關(guān)機(jī)

C.退出Windows后重新啟動(dòng)計(jì)算機(jī)

D.終止當(dāng)前應(yīng)用程序的運(yùn)行

2.下述關(guān)于數(shù)據(jù)庫(kù)系統(tǒng)的敘中正確的是______。

A.數(shù)據(jù)庫(kù)系統(tǒng)減少了數(shù)據(jù)冗余

B.數(shù)據(jù)庫(kù)系統(tǒng)避免了一切冗余

C.數(shù)據(jù)庫(kù)系統(tǒng)中數(shù)據(jù)的一致性是指數(shù)據(jù)類型的一致

D.數(shù)據(jù)庫(kù)系統(tǒng)比文件系統(tǒng)能管理更多的數(shù)據(jù)

3.有以下程序:#include<string.h>inta=4;intf(intn){intt=0;staticinta=5;if(n%2){inta=6;t++=a++;}else{inta=7;t+=a++;}returnt+a++;}main(){ints=a,i=0;for(;i<2;i++)s+=f(i);printf("%d\n",s);}程序運(yùn)行后的輸出結(jié)果是()。

A.24B.28C.32D.36

4.有以下程序:#include#definePT3.5;#defineS(x)PT*x*x;Main(){inta=1,b=2;printf("%4.1f\n",S(a+b));程序運(yùn)行后的輸出結(jié)果是()。A.7.5B.31.5C.程序有錯(cuò)無(wú)輸出結(jié)果D.14.0

5.C語(yǔ)言規(guī)定,程序中各函數(shù)之間()

A.既允許直接遞歸調(diào)用也允許間接遞歸調(diào)用

B.不允許直接遞歸調(diào)用也不允許間接遞歸調(diào)用

C.允許直接遞歸調(diào)用不允許間接遞歸調(diào)用

D.不允許直接遞歸調(diào)用允許間接遞歸調(diào)用

6.以下不能將s所指字符串正確復(fù)制到所指存儲(chǔ)空間的是()A.do{*t++=*s++;}while(*s);.

B.for(i=0;t[i]=s[i];i++);

C.while(*t=*s){t++;s++}

D.for(i=0,j=0;t[i++]=s[j++];);

7.有以下程序:#include<stdio.h>structS{inta,b;)data[2]=10,100,20,200);main(){structSp=data[l];printf("%d\n",++(p.a(chǎn)));}程序運(yùn)行后的輸出結(jié)果是()。A.10B.11C.20D.21

8.程序流程圖中帶有箭頭的線段表示的是()。

A.圖元關(guān)系B.數(shù)據(jù)流C.控制流D.調(diào)用關(guān)系

9.已知a,b均被定義為double型,則表達(dá)式:a=5/2的值為()。

A.1B.3C.3.0D.2.5

10.棧和隊(duì)列的共同點(diǎn)是()。

A.都是先進(jìn)先出B.都是先進(jìn)后出C.只允許在端點(diǎn)處插入和刪除元素D.沒(méi)有共同特點(diǎn)

11.

12.有以下程序:voidfunl(char*p)程序執(zhí)行后的輸出結(jié)果是()A.ProhsbnB.PrphsbnC.ProgsbnD.Program

13.以下選項(xiàng)中,非法的字符常量是______。

A.'t\'B.'\17'C.\nD.'\xaa'

14.下面不正確的字符賦值或賦初值的方式為()。

A.chars[10]=”hello!”

B.chars[10]={‘h’,‘e’,‘l’,‘l’,‘o’,‘!’}

C.chars[10];s=”hello”

D.char[]=”hello!”

15.有以下程序:#include<stdio.h>#definePT3.5;#defineS(x)PT*x*x;main(){inta=1,b=2;printf(“%4.1f\n”,S(a+b));}程序的運(yùn)行結(jié)果是()。

A.7.5B.31.5C.程序有錯(cuò),無(wú)輸出結(jié)果D.14.0

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

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

17.由兩個(gè)棧共享一個(gè)存儲(chǔ)空間的好處是______。

A.減少存取時(shí)間,降低下溢發(fā)生的幾率

B.節(jié)省存儲(chǔ)空間,降低上溢發(fā)生的幾率

C.減少存取時(shí)間,降低上溢發(fā)生的幾率

D.節(jié)省存儲(chǔ)空間,降低下溢發(fā)生的幾率

18.以下與數(shù)學(xué)表達(dá)式“0<x<5且x≠2”不等價(jià)的C語(yǔ)言邏輯表達(dá)式是()。

A.(0<x<5)&&(x!=2)

B.0<x&&x<5&&x!=2

C.x>0&&x<5&&x!=2

D.(x>0&&x<2)||(x>2&&x<5)

19.若運(yùn)行以下程序時(shí),從鍵盤(pán)輸入ADescriptor<CR>(<CR>表示回車(chē)),則下面程序的運(yùn)行結(jié)果是

#include<stdio.h>

main()

{charc;

intv0=1,v1=0,v2=0;

do{switch(c=getchar())

{case′a′:case′A′:

case′e′:case′E′:

case′i′:case′I′:

case′o′:case′O′:

case′u′:case′U′:v1+=1;

default:v0+=1;v2+=1;}}while(c!='\n');

printf("v0=%d,v1=%d,v2=%d\n",v0,v1,v2);}

A.v0=7,v1=4,v2=7

B.v0=8,v1=4,v2=8

C.v0=11,v1=4,v2=11

D.v0=13,v1=4,v2=12

20.如下程序段

#include<stdio.h>

#include<ctype.h>

#include<conio.h>

intfun(char*str)

{inti,j=0;

for(i=0;str[i]!=’\0’;i++)

if(str[i]!=’’)str[j++]=str[i];

str[j]=’\0’;

}

main()

{

charstr[81];

intn;

clrscr();

printf("Inputastring:");

gets(str);

fun(str);

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

}

當(dāng)運(yùn)行程序時(shí),輸入asdafaaz67<回車(chē)>,則輸出是A.A.asdafaaz67

B.asdafaaz67

C.asd

D.z67

二、2.填空題(20題)21.排序是計(jì)算機(jī)程序設(shè)計(jì)中的一種重要操作,常見(jiàn)的排序方法有插入排序、______和選擇排序。

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

#include<stdio.h>

main()

{inta[4][4]={{1,2,3,4},{5'6'7'8},{11'12'13'14},{15'16'17'18}};

inti=0,j=0,s=0;

while(i++<4)

if(i==2[[i==4)continue;

j=0;

do{s+=a[i][j];j++;}while(j<4);

}

pdnff("%d'\n",s);

}

23.二叉樹(shù)按某順序線索化后,其結(jié)點(diǎn)均有指向其前趨和后繼的線索,該說(shuō)法是【】的。

24.請(qǐng)選出以下程序的輸出結(jié)果#include<stdio.h>main(){inta[]={1,2,3,4},i;intx=0;for(i=0;i<4;i++){sub(a,x);Printf("%d",x);}printf("\n");}sub(S,y)int*s,y;{staticintt=3;y=s[t];t--;}

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

#include<stdio.h>

voidfun()

{staticinta=0;

a+=2;printf("%d",a);

}

main()

{intcc;

for(cc=1;cc<4;cc++)fun();

printf("\n");

}

26.在結(jié)構(gòu)化設(shè)計(jì)方法中,數(shù)據(jù)流圖表達(dá)了問(wèn)題中的數(shù)據(jù)流與加工間的關(guān)系,并且每一個(gè)______實(shí)際上對(duì)應(yīng)一個(gè)處理模塊。

27.若下面程序的輸出結(jié)果是4,請(qǐng)?zhí)羁铡?/p>

main()

{inti,j,k;

k=0;i=j=【】;

k+=-(i+j);printf("%d\n",k);

}

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

29.下列程序的功能是計(jì)算數(shù)的階乘。

main()

{ihti,n;

nlongnp;

scanf("%d",&n);

np=【】;

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

【】;

printf("n=%dn!=%ld\n",n,np);

}

30.下面程序的輸出是【】

main()

{enumem{eml=3,em2=1,em3};

char*aa[]={"AA',"BB","CC","DD"}

printf("%s%s%\n",aa[em1],aa[em2],aa[em3]);

}

31.若想通過(guò)以下輸入語(yǔ)句使a=5.0,b=4,c=3,則輸入數(shù)據(jù)的形式應(yīng)該是【】。

intb,c;floata;

scanf("%f,%d,c=%d",&a,&b,&c)

32.函數(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;

}

33.在關(guān)系數(shù)據(jù)庫(kù)中把數(shù)據(jù)表示成二維表,每一個(gè)二維表稱為【】。

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

main()

{

inta=1,b=2;

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

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

}

35.最簡(jiǎn)單的交換排序方法是______。

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

#include<stdio.h>

fun()

{staticinta=0;

a+=2;printf("%d",a);}

main()

{intcc;

for(cc=1;CC<4;CC++)fun();

printf("\n");}

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

intt(intx,inty,intcp,intdp)

{cp=x*x+y*y;

dp=x*x-y*y;

}

main()

{inta=4,b=3,c=5,d=6;

t(a,b,c,d);

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

}

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

intx=0,y=0;

while(x<15)y++,x+=++y;

printf("%d,%d",y,x);

39.有以下程序

main()

{intt=1,i=5;

for(;i>=0;i--)t*=i;

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

}

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

40.以下程序的功能是輸出如下形式的方陣:

13141516

9101112

5678

1234

請(qǐng)?zhí)羁铡?/p>

#include<stdio.h>

main()

{inti,j,x;

for(j=4;j【】;j--)

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

[x=(j-1)*4+【】;

printf("%4d",x);

}

printf("\n");

}

三、1.選擇題(20題)41.模塊本身的內(nèi)聚是模塊獨(dú)立性的重要性度量因素之一。在7類內(nèi)聚中,具有最強(qiáng)內(nèi)聚的一類是__________。

A.順序性內(nèi)聚B.過(guò)程性內(nèi)聚C.邏輯性內(nèi)聚D.功能性內(nèi)聚

42.有如下程序:main(){intn=9;while(n>6){n--;printf("%d",n);}}該程序的輸出結(jié)果是

A.987B.876C.8765D.9876

43.以下選項(xiàng)中,當(dāng)x為大于1的奇數(shù)時(shí),值為0的表達(dá)式是

A.x%2==1B.x/2C.x%21=0D.x%2==0

44.下列程序的輸出結(jié)果是()。#include<stdio.h>intfun(intx){inta;if(x==0‖x==1)return3;elsea=x-fun(x-2);returna;}voidmain(){printf("%d",fun(7));}

A.2B.8C.9D.5

45.下列關(guān)于字符串的說(shuō)法中錯(cuò)誤的是

A.在C語(yǔ)言中,字符串是借助于字符型一維數(shù)組來(lái)存放的,并規(guī)定以字符′\0′作為字符串結(jié)束標(biāo)志

B.′\0′作為標(biāo)志占用存儲(chǔ)空間,計(jì)入串的實(shí)際長(zhǎng)度

C.在表示字符串常量的時(shí)候不需要人為在其末尾加入′\0′

D.在C語(yǔ)言中,字符串常量隱含處理成以′\0′結(jié)尾

46.數(shù)據(jù)流圖用于抽象描述一個(gè)軟件的邏輯模型,數(shù)據(jù)流圖由一些特定的圖符構(gòu)成。下列圖符名標(biāo)識(shí)的圖符不屬于數(shù)據(jù)流圖合法圖符的是()

A.控制流B.加工C.數(shù)據(jù)存儲(chǔ)D.源和潭

47.線性表常采用的兩種存儲(chǔ)結(jié)構(gòu)是()。

A.順序存儲(chǔ)結(jié)構(gòu)和鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)B.散列方法和索引方式C.鏈表存儲(chǔ)結(jié)構(gòu)和數(shù)組D.線性存儲(chǔ)結(jié)構(gòu)和非線性存儲(chǔ)結(jié)構(gòu)

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

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

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

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

49.兩次運(yùn)行下列的程序,如果從鍵盤(pán)上分別輸入3和1,則輸出結(jié)果是()。main(){intx;scanf("%d",&x);if(x++>2)printf("%d",x);elseprintf("%d\n",x--);}

A.4和2B.4和1C.4和0D.3和1

50.若已定義的函數(shù)有返回值,則以下關(guān)于該函數(shù)調(diào)用的敘述中錯(cuò)誤的是A.函數(shù)調(diào)用可以作為獨(dú)立的語(yǔ)句存在

B.函數(shù)調(diào)用可以作為一個(gè)函數(shù)的實(shí)參

C.函數(shù)調(diào)用可以出現(xiàn)在表達(dá)式中

D.函數(shù)調(diào)用可以作為一個(gè)函數(shù)的形參

51.以下選項(xiàng)中非法的表達(dá)式是()。

A.0<=x<100B.i=j==0C.(char)(65+3)D.x+1=x+1

52.若有說(shuō)明語(yǔ)句:intx=3

溫馨提示

  • 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)論