2021-2022年江西省贛州市全國計(jì)算機(jī)等級考試C語言程序設(shè)計(jì)真題(含答案)_第1頁
2021-2022年江西省贛州市全國計(jì)算機(jī)等級考試C語言程序設(shè)計(jì)真題(含答案)_第2頁
2021-2022年江西省贛州市全國計(jì)算機(jī)等級考試C語言程序設(shè)計(jì)真題(含答案)_第3頁
2021-2022年江西省贛州市全國計(jì)算機(jī)等級考試C語言程序設(shè)計(jì)真題(含答案)_第4頁
2021-2022年江西省贛州市全國計(jì)算機(jī)等級考試C語言程序設(shè)計(jì)真題(含答案)_第5頁
已閱讀5頁,還剩21頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

2021-2022年江西省贛州市全國計(jì)算機(jī)等級考試C語言程序設(shè)計(jì)真題(含答案)學(xué)校:________班級:________姓名:________考號:________

一、單選題(20題)1.有以下程序

main()

{inti;

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

{if(i++%5==0)

if(++i%8==0)printf("%d",i);

}

printf("\n");

}

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

A.5B.24C.32D.40

2.函數(shù)原形中,下列()是不必要的。

A.函數(shù)的類型B.形式參數(shù)名C.函數(shù)名D.形式參數(shù)類型

3.C語言常量的類型從字面形式上可區(qū)分,以下判斷中正確的是()。

A.2E3——整型B.2.0E3——實(shí)型C.‘\025’——字符串D.“a”——字符型

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

A.continue語句的作用是使程序的執(zhí)行流程跳出包含它的所有循環(huán)

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

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

D.break語句只能用于switch語句體中

5.將數(shù)據(jù)和操作置于對象統(tǒng)一體中的實(shí)現(xiàn)方式是()。

A.隱藏B.抽象C.封裝D.結(jié)合

6.有以下程序:#include<stdio.h>doublef(doublex);main(){doublea=0;inti;for(i=0;i<30;i+=10)a+=f((double)i);printf(“%3.0f\n”,a);}doublef(doublex)}returnx*x+1;}程序的運(yùn)行結(jié)果是()。

A.500B.401C.503D.1404

7.

8.該程序試圖通過指針p為變量n讀入數(shù)據(jù)并輸出,但程序有多處錯(cuò)誤,以下語句正確的是()A.intn,*p=NULL;

B.*p=&n;.

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

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

9.下列選項(xiàng)中非法的字符常量是()。

A.'\t'B.'\039'C.','D.'\n'

10.微型計(jì)算機(jī)的運(yùn)算器、控制器及內(nèi)存儲器組合在一起,稱之為()

A.ALUB.CPUC.MPUD.主機(jī)

11.以下敘述中錯(cuò)誤的是A.算法正確的程序最終一定會結(jié)束

B.算法正確的程序可以有零個(gè)輸出

C.算法正確的程序可以有零個(gè)輸入

D.算法正確的程序?qū)τ谙嗤妮斎胍欢ㄓ邢嗤慕Y(jié)果

12.有三個(gè)關(guān)系R,S和T如下:

其中關(guān)系T由關(guān)系R和s通過某種操作得到,該操作為()。

A.選擇B.交C.投影D.并

13.設(shè)有下列二叉樹:

對此二叉樹先序遍歷的結(jié)果是

A.ABCDEFB.DBEAFCC.ABDECFD.DEBFCA

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

A.xYB.x<=YC.x‖y+zy-zD.!((x

15.一個(gè)模塊直接調(diào)用的下層模塊的數(shù)目稱為模塊的()。

A.扇入數(shù)B.扇出數(shù)C.寬度D.作用域

16.讀取二進(jìn)制文件的函數(shù)調(diào)用形式為:fread(buffersize,count,fp);,其中buffer代表的是()。

A.一個(gè)文件指針,指向待讀取的文件

B.一個(gè)整型變量,代表待讀取的數(shù)據(jù)的字節(jié)數(shù)

C.一個(gè)內(nèi)存塊的首地址,代表讀人數(shù)據(jù)存放的地址

D.一個(gè)內(nèi)存塊的字節(jié)數(shù)

17.若有定義“charch;inta;doubled;”,當(dāng)輸入為12345678910.36時(shí),以下選項(xiàng)中能給各個(gè)變量正確賦值的是()。

A.scanf(“%d%c%lf”,&a,&ch,&d);

B.scanf(“%5d%2c%7.2lf”,&a,&ch,&d);

C.scanf(“%d%c%lf”,a,ch,d);

D.scanf(“5d%2c%7.2lf%”,&a,&ch,&d);

18.若f(n)=3n2+2n+1,則f(n)=()。

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

19.按照C語言規(guī)定的用戶標(biāo)識符命名規(guī)則,不能出現(xiàn)在標(biāo)識符中的是()。A.大寫字母B.下劃線C.數(shù)字字符D.連接符

20.有以下程序:

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

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

二、2.填空題(20題)21.以下程序的輸出結(jié)果是()。main(){char*p[]={"ABC","DEF","GHI","JKL"};inti;for(i=3;i>=0;i--,i--)printf("%c",*p[i]);}

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

structSIRU

{inta,b;charc:doubled;

structSTRU*p1,*p2;

};

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

【】t[20]

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

#include<stdio.h>

main()

{inta,b,c,n;

a=2;b=0;c=1;n=1;

while(n<=3)

{c=c*a;b=b+c;++n;}

printf("b=%d",B);

}

24.以下程序的輸出結(jié)果是12.00,請將空白處填寫完整。

main()

{inta=9,b=2;

floatx=【】,y=1.1,z;

z=a/2+b*x/y+1*2;

printf("%52f\n",z);

}

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

fun(intx)

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

printf("%d",x);

}

main()

{fun(6);}

26.以下函數(shù)的功能是求x的y次方,請?zhí)羁铡?/p>

doublefun(doublex,inty)

{inti;

doublez;

for(i=1,z=x;i<y;i++)z=z*【】;

returnz;

}

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

main()

{intp[7]={11,13,14,15,16,17,18};

inti=0,j=0;

while(i<7&&p[i]%2==1)j+=p[i++];

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

}

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

main()

{

intx=0210;

printf("%X\n",x);

}

29.軟件維護(hù)活動包括以下幾類:改正性維護(hù)、適應(yīng)性維護(hù)、【】維護(hù)和預(yù)防性維護(hù)。

30.以下程序的輸出是【】。

main()

{

charstr1[]=Howdoyoudo",*p=strl;

strcpy(str1+strlen(str1)\2"esshe");

pfinff("%s\n",p1);

}

31.設(shè)有以下程序,為使之正確運(yùn)行,請?jiān)跈M線中填入應(yīng)包含的命令行。(注:try_me()函數(shù)在a:\myfile.txt中有定義。)

______

main()

{printf("\n");

try_me();

printf("\n");}

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

#include<stdio.h>

main()

{inta[5]={2,4,6,8,10},*p;

p=a;p++;

printf("%d",*p);

}

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

main()

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

d=(a>b>c);

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

}

34.函數(shù)my_cmp()的功能是比較字符串s和t的大小,當(dāng)s等于t時(shí)返回0,否則返回s和t的第一個(gè)不同字符的ASCII碼差值,即s>t時(shí)返回正值,當(dāng)s<t時(shí)返回負(fù)值。請?zhí)羁铡?/p>

my_cmp(char*s,char*t)

{while(*s==*t)

{if(*s=='\0')return0;

++s;++t;

}return【】;

}

35.以下程序用來統(tǒng)計(jì)文件中字符的個(gè)數(shù)。請?zhí)羁铡?/p>

#include“stadio.h”

main()

{FILE*fp;longnum=0L;

if((fp=fopen(“fname.dat”,“r”))==NULL);

{printf(“0penerror\n”);exit(0);}

while(【】)

{fsetc(fp);num++;}

printf(“num=%1d\n”,num-1);

fclose(fp);

}

36.若有如下定義:

int[]={11,24,56,19,29,39),*t=s;

則不移動指針t,且通過指針t引用數(shù)組中值為29的元素的表達(dá)式是【】。

37.以下程序的功能是:刪去一維數(shù)組中所有相同的數(shù),使之只剩一個(gè)。數(shù)組中的數(shù)已按由小到大的順序排列,函數(shù)返回刪除后數(shù)組中數(shù)據(jù)的個(gè)數(shù)。

例如,若一維數(shù)組中的數(shù)據(jù)是:

2223445666677899101010

刪除后,數(shù)組中的內(nèi)容應(yīng)該是:

2345678910。

請?zhí)羁铡?/p>

#include<stdio.h>

#defineN80

intfun(inta[],intn)

{inti,j=1;

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

if(a[j-1][

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

main()

{inti,a[10];

a[0]=a[1]=1;

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

a[i]=a[i-2]+a[i-1];

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

{if(i%2==0)printf("\n");

printf("%d",a[i]);

}

}

39.以下程序用于判斷a、b、c能否構(gòu)成三角形,若能,輸出YES,否則輸出NO。當(dāng)給a、b、c輸入三角形三條邊長時(shí),確定a、b、c能構(gòu)成三角形的條件是需同時(shí)滿足三個(gè)條件:a+b>c,a+c>b,b+c>a。請?zhí)羁铡?/p>

main()

{floata,b,c;

scanf("%f%f%f",&a,&b,&c);

if(【】)printf("YES\n");/*abc能構(gòu)成三角形*/

elseprintf("NO\n");/*abc不能構(gòu)成三角形*/

}

40.算法的復(fù)雜度主要包括【】復(fù)雜度和空間復(fù)雜度。三、1.選擇題(20題)41.若有函數(shù)內(nèi)部說明:inta[3][4];則數(shù)組a中各元素

A.可在程序的運(yùn)行階段得到初值0

B.可在程序的編譯階段得到初值0

C.不能得到確定的初值

D.可在程序的編譯或運(yùn)行階段得到初值0

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

main()

{

char*d[]={"ab","cde"};

printf("%x",d[1]);

}

A.cdeB.字符c的ASCⅡ的值C.字符c的地址D.出錯(cuò)

43.對下述程序,正確的判斷是()main(){inta,b,seanf("%d,%d",&a,&b);if(a>b)a=b;b=a;elsea++;b++printf("%d,%d",a,b);}

A.有語法錯(cuò)誤不能通過編譯B.若輸入4,5則輸出5,6C.若輸入5,4則輸出4,5D.若輸入5,4則輸出5,5

44.有以下程序inta=3;main(){ints=0;{inta=5;s+=a++;}8+=a++;printf(“%d\n”,s);}程序運(yùn)行后的輸出結(jié)果是

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

45.設(shè)有以下程序段intx=0,s=0;while(!x!=0)s+=++x;printf("%d",s);則

A.運(yùn)行程序段后輸出0B.運(yùn)行程序段后輸出1C.程序段中的控制表達(dá)式是非法的D.程序段執(zhí)行無限次

46.有定義語句:"inta=1,b=2,c=3,x;",則以下選項(xiàng)中各程序段執(zhí)行后,x的值不為3

A.if(c<a)x=1;elseif(b<a)x=2:elsex=3;

B.if(a<3)x=3:elseif(a<2)x=2;elsex=1;

C.if(a<3)x=3;if(a<2)x=2;if(a<l)x=1;

D.if(a<b)x=b;if(b<c)x=cif(c<a)x=a;

47.

有以下程序:

main

{intk=5;

while(--k)printf("%d",k-=3);

printf("\n");

}

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

A.1B.2C.4D.死循環(huán)

48.閱讀下列程序,當(dāng)運(yùn)行函數(shù)時(shí),輸入asdafaaz67,則輸出為#include<stdio.h>#include<ctype.h>#include<string.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);puts(str);fun(str);printf("%s\n",str);}

A.asdafaaz67B.asdafaaz67C.asdD.z67

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

A.軟件交付使用后還需要進(jìn)行維護(hù)

B.軟件一旦交付使用就不需要再進(jìn)行維護(hù)

C.軟件交付使用后其生命周期就結(jié)束

D.軟件維護(hù)是指修復(fù)程序中被破壞的指令

50.下列程序段的輸出結(jié)果是______。staticinta[3]={1,2,3};int**ptr,*p;p=a;ptr=&p;(ptr[0]++)[1]+=3;printf("%d,%d,%d\n",**ptr,*p,a[0]);

A.5,5,10B.1,5,5C.5,5,1D.輸出結(jié)果不確定

51.有以下程序:#include<stdio.h>main(){inti=1,j=1,k=2;if((j++||k++)&&i++)printf("%d,%d,%d\n",i,j,k);}執(zhí)行后輸出結(jié)果是()。

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

52.讀取二進(jìn)制文件的函數(shù)調(diào)用形式為:fread(buffer,size,count,pf);,其中buffer代表的是()。

A.一個(gè)文件指針,指向待讀取的文件

B.一個(gè)整型變量,代表待讀取的數(shù)據(jù)的字節(jié)數(shù)

C.一個(gè)內(nèi)存塊的首地址,代表讀入數(shù)據(jù)存放的地址

D.一個(gè)內(nèi)存塊的字節(jié)數(shù)

53.已定義ch為字符型變量,以下賦值語句中錯(cuò)誤的是

A.ch='\';B.ch=62+3;C.ch=NULL;D.ch='\xaa';

54.有定義語句:intb;charc[10];,則正確的輸入語句是

A.scanf("%d%s",&b,&c);

B.scanf("%d%s",&b,c);

C.scanf("%d%s",b,c);

D.scanf("%d%s",b,&c);

55.下面函數(shù)intfunl(char*x){char*y=x;while(*y++);return(y-x-1);}的功能是_______。

A.求字符串的長度B.比較兩個(gè)字符串的大小C.將字符串x復(fù)制到字符串yD.將字符串x連接到字符串y后面

56.一個(gè)C程序中______。

A.main函數(shù)必須出現(xiàn)在所有函數(shù)之前

B.main函數(shù)可以在任何地方出現(xiàn)

C.main函數(shù)必須出現(xiàn)在所有函數(shù)之后

D.main函數(shù)必須出現(xiàn)在固定位置

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

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

58.數(shù)據(jù)庫系統(tǒng)的核心是()

A.數(shù)據(jù)庫B.數(shù)據(jù)庫管理系統(tǒng)C.模擬模型D.軟件工程

59.下列數(shù)據(jù)結(jié)構(gòu)中,能用二分法進(jìn)行查找的是()。

A.順序存儲的有序線性表B.結(jié)性鏈表C.二叉鏈表D.有序線性鏈表

60.標(biāo)有/$$$/的語句的執(zhí)行次數(shù)是______。inty,i;for(i=0;i<20;i++){if(i%2==0)continue;y+=i;/$$$/;}

A.20B.19C.10D.9

四、選擇題(20題)61.作為信息處理熱點(diǎn)技術(shù)之一的“多媒體技術(shù)”中的媒體,強(qiáng)調(diào)的是()。

A.存儲媒體B.表現(xiàn)媒體C.傳輸媒體D.感覺媒體

62.軟件生命周期是指()。A.軟件產(chǎn)品從提出、實(shí)現(xiàn)、使用維護(hù)到停止使用退役的過程

B.軟件從需求分析、設(shè)計(jì)、實(shí)現(xiàn)到測試完成的過程

C.軟件的開發(fā)過程

D.軟件的運(yùn)行維護(hù)過程

63.能正確表示“當(dāng)x的取值在[1,10]和[100,110]范圍內(nèi)為真,否則為假”的表達(dá)式是()。A.A.(x>=1)&&(x<=10)&&(x>=100)&&(X<=110)B.(x>=1)

C.((x>=1)&&(x<=10))||((x>=100)&&(x<=110))

D.(x>=1)||(x<=10)&&(x>=100)||(x<=110)

64.有以下程序段:intx=3;do{printf("%d",x-=2);)while(!(--x));其輸出結(jié)果是()。A.1B.30C.1-2D.死循環(huán)

65.

66.有以下程序:

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

A.3,3,3B.2,2,3C.1,2,3D.1,l,3

67.在JavaScript語言中,要定義局部變量則可以()。

A.由關(guān)鍵字private在函數(shù)內(nèi)定義

B.由關(guān)鍵字private在函數(shù)外定義

C.由var在函數(shù)內(nèi)定義

D.由關(guān)鍵字var在函數(shù)外定義

68.

69.

70.

71.下列敘述中正確的是()。A.A.只能在循環(huán)體內(nèi)和switch語句體內(nèi)使用break語句B.cotinue語句的作用是結(jié)束整個(gè)循環(huán)的執(zhí)行

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

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

72.

73.已定義以下函數(shù):

fun(int*p)

{return&p;}

該函數(shù)的返回值是()。

A.不確定的值

B.形參p中存放的值

C.形參p所指存儲單元中的值

D.形參p的地址值

74.設(shè)x為int型變量,則執(zhí)行以下語句后,x的值為()。x=10;x=x-=x-x;

A.10B.20C.40D.30

75.設(shè)在C語言中,float類型數(shù)據(jù)占4個(gè)字節(jié),則double類型數(shù)據(jù)占()個(gè)字節(jié)。

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

76.

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

A.3B.0C.7D.8

78.

79.

80.軟件詳細(xì)設(shè)計(jì)的主要任務(wù)是確定每個(gè)模塊的()。

A.算法和使用的數(shù)據(jù)結(jié)構(gòu)B.外部接口C.功能D.編程

五、程序改錯(cuò)題(1題)81.下列給定程序中,函數(shù)proc()的功能是:輸出M行M列整數(shù)方陣,然后求兩條對角線上的各元素之和并將其返回。請修改程序中的錯(cuò)誤,使它能得出正確的結(jié)果。注意:不要改動main()函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。試題程序:

六、程序設(shè)計(jì)題(1題)82.編寫函數(shù)fun,其功能是:將s所指字符串中除了下標(biāo)為奇數(shù),同時(shí)ASCH碼值也為奇數(shù)自q字符之外。其余所有字符全部刪除,串中剩余字符所形成的一個(gè)新串放在所指的數(shù)組中。例如,若s所指字符串的內(nèi)容為“ABCDEFGl2345”,其中字符A的ASCIl碼值為奇數(shù),但所在元素的下標(biāo)為偶數(shù),因此需要?jiǎng)h除;而字符l的ASCIl碼值為奇數(shù),所在數(shù)組中的下標(biāo)也為奇數(shù),因此不應(yīng)當(dāng)刪除,其他依此類推。最后t所指數(shù)組中的內(nèi)容應(yīng)為“135”。注意:部分源程序給出如下。請勿改動主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花括號中填入你編寫的若干語句。試題程序:

參考答案

1.C解析:當(dāng)for循環(huán)執(zhí)行到第30次時(shí),i的值為30能被5整除,然后繼續(xù)執(zhí)行兩次if語句,i經(jīng)過兩次自加1運(yùn)算,值變?yōu)?2,能被8整除,故此時(shí)第一次執(zhí)行'printf('%d',i);'語句,即輸出32。

2.A

3.B2E3是實(shí)型常量的指數(shù)形式,選項(xiàng)A錯(cuò)誤;2.0E3是實(shí)型常量的指數(shù)形式,選項(xiàng)B正確;‘\\025’是八進(jìn)制表示的轉(zhuǎn)義字符,選項(xiàng)C錯(cuò)誤;“a”是雙引號標(biāo)注的字符串常量,選項(xiàng)D錯(cuò)誤。故本題答案為B選項(xiàng)。

4.Bcontinue語句的作用是跳過循環(huán)體中剩余的語句而進(jìn)行下一次循環(huán),所以A選項(xiàng)錯(cuò)誤。break語句的作用是終止正在執(zhí)行的switch語句體,跳出switch語句體或者強(qiáng)制終止當(dāng)前循環(huán),從當(dāng)前執(zhí)行的循環(huán)中跳出,所以C、D選項(xiàng)錯(cuò)誤。故本題答案為B選項(xiàng)。

5.C對象具有封裝性,從外面看只能看到對象的外部特性,對象的內(nèi)部對外是封閉的。即封裝實(shí)現(xiàn)了將數(shù)據(jù)和操作置于對象統(tǒng)一體中。本題答案為C選項(xiàng)。

6.Cfor循環(huán)中,函數(shù)f的返回值累加到變量a中。第1次循環(huán),a=0,i=0,返回值a=0*0+1=1;第2次循環(huán),a=1,i=10,返回值a=10*10+1+1=102;第3次循環(huán),a=102,i=20,返回值a=20*20+1+102=503;第4次循環(huán)a=503,i=30,不符合1<30,跳出循環(huán),最后結(jié)果輸出a=503。故本題答案為C選項(xiàng)。

7.B

8.A[解析]選項(xiàng)B)的正確寫法應(yīng)為p=&n;選項(xiàng)C)的正確寫法應(yīng)為scanf("%d",p);選項(xiàng)D)的正確寫法應(yīng)為printf("%d\\n",*p)。

9.B水平制表符中,'\t'表示的是橫向跳若干格;選項(xiàng)B中,'\039'錯(cuò)誤,'\039'是八進(jìn)制形式表的字符,最大數(shù)為7,但其中出現(xiàn)'9',','是字符逗號;選項(xiàng)D中,'\n'表示的是換行。

10.D

11.B(45)B)解析:算法應(yīng)該具有下列五個(gè)特性:

①有窮性:一個(gè)算法必須在執(zhí)行有窮步之后結(jié)束。

②確定性:算法中的每一步,必須有確切的含義,在他人理解時(shí)不會產(chǎn)生二義性。

③動態(tài)性:算法中描述的每一步操作都可以通過已有的基本操作執(zhí)行有限次實(shí)現(xiàn)。

④輸入:一個(gè)算法應(yīng)該有零個(gè)或多個(gè)輸入。

⑤輸出:一個(gè)算法應(yīng)該有一個(gè)或多個(gè)輸出。這里所說的輸出是指與輸入有某種特定關(guān)系的量。

12.D\n兩個(gè)相同結(jié)構(gòu)關(guān)系的并是由屬于這兩個(gè)關(guān)系的元組組成的集合。

\n

13.C解析:二叉樹的遍歷分為先序、中序、后序三種不同方式。本題要求先序遍歷遍歷順序應(yīng)該為:訪問根結(jié)點(diǎn)->先序遍歷左子樹->先序遍歷右子樹。按照定義,先序遍歷序列是ABDECF。

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

15.B扇入數(shù)是指調(diào)用一個(gè)給定模塊的模塊個(gè)數(shù)。扇出數(shù)是指由一個(gè)模塊直接調(diào)用的其他模塊數(shù),即一個(gè)模塊直接調(diào)用的下層模塊的數(shù)目。本題答案為B選項(xiàng)。

16.Cfread函數(shù)中的參數(shù)buffer是內(nèi)存塊的首地址,輸入的數(shù)據(jù)存入此內(nèi)存塊中。

17.Ascanf是格式輸入函數(shù),其中雙引號之間的內(nèi)容是格式控制字符串,后面是輸入?yún)?shù)列表。輸入?yún)?shù)列表中各項(xiàng)都必須是變量地址,所以選項(xiàng)C錯(cuò)誤;在scanf函數(shù)的格式字符前,可以加入一個(gè)正整數(shù)指定輸入數(shù)據(jù)所占的寬度,但不可以對實(shí)數(shù)指定小數(shù)位的寬度,所以選項(xiàng)B、D錯(cuò)誤。選項(xiàng)A是正確的,按照A的輸入格式,12345賦值給變量a,空格賦值給變量ch,678910.36賦值給變量d。故本題答案為A選項(xiàng)。

18.A

19.D[解析]C語言中標(biāo)識符由字母、下劃線、數(shù)字組成,且開頭必須是字母或下劃線。所以D)選項(xiàng)中的連接符不合法。

20.D在程序中指針變量P初始指向a[3],執(zhí)行P減1后,P指向a[2],語句y=*P的作用是把a(bǔ)[2]的值賦給變量y,所以輸出為y=3。

21.JD

22.structSTRUstructSTRU解析:結(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ù)組變量等。

23.b=14b=14解析:分析程序可知,n的初始值為1,因此,while(n<=3)循環(huán)3次。第1次:c=c*a=2:b=b+c=2;n=2。第2次:c=c*a=4;b=-b+c=6;n=3。第3次;c=c*a=8:b=b+c=14。當(dāng)n=4時(shí),判斷條件不滿足,退出循環(huán)。

解析:a/2=9/2=4,1/2=0,于是根據(jù)輸出結(jié)果就有下列等式:z=4+2*x/1.1=12.0,化簡后,為x/1.1=4,x=4.4。

25.136136解析:本題考核的知識點(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。

26.xx解析:函數(shù)的定義形式為;

函數(shù)類型函數(shù)名(形參表)

{

類型說明語句;

執(zhí)行語句;

}

本題中函數(shù)的功能是:累積變量以求得變量的Y次方。

27.24

28.8888解析:C語言規(guī)定,以0開頭的整型常量為八進(jìn)制。另外,在primf()函數(shù)中,%X表示以十六進(jìn)制無符號形式輸出一個(gè)整數(shù),且十六進(jìn)制中的ABCDEF為大寫字母。本題的輸出應(yīng)該是八進(jìn)制210的十六進(jìn)制形式。將八進(jìn)制轉(zhuǎn)換為十六進(jìn)制,可以先將其轉(zhuǎn)換為二進(jìn)制。因?yàn)?位八進(jìn)制表示3位二進(jìn)制,4位二進(jìn)制表示1位十六進(jìn)制。(210)8=(10001000)2=(88)16,故本題輸出為880

29.完善性軟件維護(hù)活動包括以下幾類:改正性維護(hù),適應(yīng)性維護(hù)、完善性維護(hù)和預(yù)防性維護(hù),完善性維護(hù)是指為了滿足用戶對軟件提出的新功能與性能要求,需要修改或再開發(fā)軟件,以擴(kuò)充軟件功能、增強(qiáng)軟件性能、改進(jìn)加工效率、提高軟件的可維護(hù)性。

30.HowdoessheHowdoesshe解析:strcpy(strl,sl):字符串拷貝函數(shù),作用是將字符串sl拷貝到字符數(shù)組strl中去。strlen(str):測試字符串str的長度,函數(shù)的值為字符串中實(shí)際長度,不包括‘\\0’在內(nèi)。本題中strlen(strl)的值為13,則strcpy(strl+strlen(strl)/2'esshe')相當(dāng)于strcpy(strl+6'esshe');,因此可得答案為Howdoesshe。

31.#include<a:\myfile.txt>#include<a:\\myfile.txt>解析:本題考查了函數(shù)的存儲分類的概念。如果沒有特別說明,函數(shù)的存儲范圍是從定義函數(shù)的位置到文件的結(jié)尾,如果其他文件想使用這個(gè)函數(shù),需要用ginclude文件包含命令將定義函數(shù)的文件包含進(jìn)來。

32.指針P指向數(shù)組a的首地址,執(zhí)行語句p++;后p指向數(shù)組a的第2個(gè)元素的地址,即a[1]的地址,因此*p=a[1]=4。\r\n\r\n

33.00解析:本題的關(guān)鍵在于對變量c的賦值運(yùn)算:

d=(a>b>c)

d=(5>4>3)

先算5>4,為真,得1,即:d=(1>3),此時(shí)1>3,為假,得0。

34.*s-*t*s-*t解析:兩字符串大小比較必須從它們的首字符開始,在對應(yīng)字符相等情況下循環(huán),直至不相等結(jié)束。相等時(shí),若字符串已到了字符串的結(jié)束標(biāo)記符,則兩字符串相同,函數(shù)返回0值;如還有后繼字符,則準(zhǔn)備比較下一對字符。對應(yīng)字符不相同,循環(huán)結(jié)束。循環(huán)結(jié)束時(shí),就以兩個(gè)當(dāng)前字符的差返回。所以在空框處應(yīng)填入*s-*t,保證在e>t時(shí)返回正值,當(dāng)s<t時(shí)返回負(fù)值。

35.!feof(fP)!feof(fP)解析:統(tǒng)計(jì)文件中字符個(gè)數(shù)的算法可描述如下:首先判斷文件位置指針是否指向了文件尾,如果不是則讀出一個(gè)字符,同時(shí)字符的個(gè)數(shù)加1,再判斷文件位置指針是否位于文件尾,如此循環(huán),直到文件位置指針位于文件尾為止。本題首先以讀文件的方式打開了文件“fname.dar”,如果打開成功則把返回的文件型指針賦值給fp,然后通過循環(huán)求文件中的字符數(shù)。首先判斷文件位置指針是否位于文件尾,如果不是則循環(huán)讀取字符,每次字符數(shù)加1。所以下劃處應(yīng)填循環(huán)條件,文件位置指針不是指向文件尾,即“!feof(fp)”。

36.*(t+4)*(t+4)解析:本題定義了指針變量t,并用數(shù)組s的首地址給它賦初值。t+4代表數(shù)組第6個(gè)元素的地址,*(t+4)是取得該地址中的值即29,而此時(shí)并沒有移動指針t。

37.本題程序的流程是:讓i;j都從1開始,其中j用于控制刪除后剩下的數(shù)中的下標(biāo),i用于搜索原數(shù)組中的元素。j始終是新數(shù)組已有元素中最后一個(gè)元素的下一個(gè)元素的下標(biāo),所以if()中的條件是a[j-1]!=a[i],其中a[j-1]就是新數(shù)組中的最后一個(gè)元素,若條件成立則表示出現(xiàn)了不同的值,所以s[i]要留到新數(shù)組中。注本題中i、j的初值都要從1開始,該算法只能用于數(shù)組已排序的題目中。\r\n\r\n

38.11<CR>23<CR>5(<CR代表換行)11<CR>23<CR>5(<CR,代表換行)解析:本題通過語句“for(i=2;i<5;i++)a[i]=a[i-2]+a[i-];”將數(shù)組中前面兩項(xiàng)的和賦值給數(shù)組當(dāng)前元素,得到a的值應(yīng)為(1,1,2,3,5)。語句if(i%2==0)pfintf('\\n')是要將數(shù)組中的元素以每行2個(gè)的形式輸出。

39.(a+b>c)&&(a+c>b)&&(b+c>a)(a+b>c)&&(a+c>b)&&(b+c>a)解析:三角形形式的條件是兩邊之和大于第三邊。要用'&&'指令連接三個(gè)條件,表示三個(gè)條件都要滿足。

40.時(shí)間時(shí)間解析:算法的復(fù)雜度主要指時(shí)間復(fù)雜度和空間復(fù)雜度。所謂算法的時(shí)間復(fù)雜度,是指執(zhí)行算法所需要的計(jì)算工作量;算法的空間復(fù)雜度,一般是指執(zhí)行這個(gè)算法所需要的內(nèi)存空間。

41.C本題主要考查數(shù)組的定義及初始化。在對數(shù)組進(jìn)行定義和初始化時(shí),需要注意以下事項(xiàng)。

(1)數(shù)組的內(nèi)存空間在編譯時(shí)確定,定義數(shù)組時(shí)的n值只能使用常量,不能使用變量。

(2)定義數(shù)組時(shí)可以不標(biāo)明數(shù)組元素的個(gè)數(shù),而是通過賦初值的方式確定,編譯系統(tǒng)將自動計(jì)算花括號內(nèi)的數(shù)據(jù)數(shù)量作為數(shù)組的元素個(gè)數(shù)。

(3)數(shù)組初始化時(shí),當(dāng)初值的個(gè)數(shù)小于整型常量n時(shí),編譯系統(tǒng)會自動補(bǔ)0。一旦給定初值數(shù)超過n,編譯系統(tǒng)將報(bào)錯(cuò)。

(4)初始化數(shù)組的元素類型,必須與定義數(shù)組時(shí)的類型一致。

(5)數(shù)組名記錄了數(shù)組在內(nèi)存中的首地址,其值不能更改。

(6)除字符數(shù)組外,不能直接用數(shù)組名對數(shù)組進(jìn)行整體輸入或輸出。

本題中定義了一個(gè)3行4列的數(shù)組,但沒有對其進(jìn)行賦初值操作,可能我們會想在系統(tǒng)編譯時(shí)會自動補(bǔ)0,這只是在初值個(gè)數(shù)小于數(shù)組定義大小的情況下的操作,如果沒有進(jìn)行賦初值操作,數(shù)組中的元素值是不能被確定的。因此,本題答案選C。

42.C解析:指針數(shù)組中的每—個(gè)元素都相當(dāng)于—個(gè)指針變量。—維指針數(shù)組的定義形式為:類型名*數(shù)組名[數(shù)組長度],在本題main函數(shù)中定義指針數(shù)組d,它有兩個(gè)元素,其初值分別是“ab'’、“cdc'’的首地址。d[1]的值為“cde”的首地址。%x是指以十六進(jìn)制數(shù)形式輸出整數(shù)。

43.A

44.A解析:本題中定義一個(gè)全局變量a和一個(gè)局部變量a。局部變量和全局變量的不同在于,局部變量的存儲單元都是在進(jìn)入這些局部變量所在的函數(shù)體(或復(fù)合語句)時(shí)生成,退出其所在的函數(shù)體(或復(fù)合語句)時(shí)消失,而全局變量是在函數(shù)外部任意位置上定義的變量,它的作用域從變量定義的位置開始,到整個(gè)源文件結(jié)束為止。若全局變量和某一函數(shù)中的局部變量同名,則在該函數(shù)中,此全局變量被屏蔽,在該函數(shù)內(nèi),起作用的將是局部變量,與同名的全局變量不發(fā)生任何關(guān)系。在程序中首先定義了變量s并賦值為0,接著在嵌套的復(fù)合語句{}中定義了變量a并賦初值為5,接著執(zhí)行語句s+=a++;在這條語句中a加1,但表達(dá)式a++還是原來的值,故s=s+5,s為5,程序執(zhí)行到外層,此時(shí){}內(nèi)定義的變量a不再有效,此時(shí)的變量a為{}之前定義的且初值為3,接著執(zhí)行{}后面的語句s+=a++;相當(dāng)于執(zhí)行語句s=s+(a++);即s=5+3,最后值為8,所以最后輸出的s值為8。

45.B解析:本題考查while語句的使用。本題考查邏輯非運(yùn)算符和不等于運(yùn)算符的區(qū)別,邏輯非運(yùn)算符'!'的優(yōu)先級大于不等于運(yùn)算符'!='的優(yōu)先級。

46.C解析:本題考核的知識點(diǎn)是if-else語句的程序分析。

選項(xiàng)A首先判斷if語句條件中表達(dá)式的值“3<1”為假,然后執(zhí)行最近的else后面的語句,該else后面又為if-else語句,在這個(gè)if-else語句中首先判斷該if語句條件中表達(dá)式的值“2<1”為假,程序執(zhí)行其最近的else后面的語句,將3賦值給x。

選項(xiàng)B中首先判斷if語句條件中表達(dá)式的值“1<3”為真,然后執(zhí)行最近的else后面的語句“x=3”,后面的else不再執(zhí)行,最后x的值為3。

選項(xiàng)C中,首先選執(zhí)行第一條if,由于“1<3”為真,執(zhí)行此if后面的語句“x=3”,接著執(zhí)行第二條if語句,由于“1<2”為真,執(zhí)行此if后面的語句“x=2”,接著執(zhí)行第三條語句,由于“1<1”為假,后面的語句不執(zhí)行,所以最后的x值為2不為3。

選項(xiàng)D中,首先選執(zhí)行第一條if語句,由于“a<b”為真,執(zhí)行此if后面的語句“x=b”;接著執(zhí)行第二條if語句,由于“b<c”,為真,執(zhí)行此if后面的語句“x=c”,接著執(zhí)行第三條if語句,由于“c<a”為假,后面的語句不執(zhí)行,所以最后的x值為c即為3.所以,4個(gè)選項(xiàng)中選項(xiàng)c符合題意。

47.A解析:因?yàn)樵趙hile循環(huán)的循環(huán)條件中,一運(yùn)算符是前綴形式,所以表達(dá)式—k的值是k自減之后的值。程序開始時(shí),將k的值初始化為5,然后進(jìn)入while循環(huán),因?yàn)椤猭的值為4(非零),所以執(zhí)行循環(huán)體輸出k-=3的值1,此時(shí)k的值也變?yōu)?。第2次執(zhí)行循環(huán)條件,—k的值為0,所以循環(huán)結(jié)束。因此最后輸出的結(jié)果是1,故應(yīng)該選擇A。

48.A解析:本題題意要求刪除所有空格,即除了空格以外的其他所有字符都要留下。由于C語言中沒有直接刪除字符的操作,所以我們對于刪除字符的操作都是采用“留下”字符的算法,以前的題目亦是如此。用str[i]從串頭到串尾逐一走動,每走到一個(gè)字符都判斷其是否為空格,若不是空格(注意在if()的單引號之間有一個(gè)空格),則將其保存str[j]中。注意j的下標(biāo)變化、初值及最后加串結(jié)束符'\\0'。

49.A解析:維護(hù)是軟件生命周期的最后一個(gè)階段,也是持續(xù)時(shí)間最長、付出代價(jià)最大的階段。軟件工程學(xué)的目的就在于提高軟件的可維護(hù)性,同時(shí)也要設(shè)法降低維護(hù)的代價(jià)。

軟件維護(hù)通常有以下四類;

①為糾正使用中出現(xiàn)的錯(cuò)誤而進(jìn)行的改正性維護(hù);

②為適應(yīng)環(huán)境變化而進(jìn)行的適應(yīng)性維護(hù);

③為改進(jìn)原有軟件而進(jìn)行的完善性維護(hù);

④為將來的可維護(hù)和可靠而進(jìn)行的預(yù)防性維護(hù)。

軟件維護(hù)不僅包括程序代碼的維護(hù),還包括文檔的維護(hù)。文檔可以分為用戶文檔和系統(tǒng)文檔兩類。但無論是哪類文檔,都必須與程序代碼同時(shí)維護(hù)。只有與程序代碼完全一致的文檔才有意義和價(jià)值。由此可知,本題中選項(xiàng)B、C、D中的說法都是錯(cuò)誤的。

50.C解析:ptr指向指針變量p,p指向數(shù)組a的首地址,(ptr[0]++)[1]+=3;的意思是將p指向數(shù)組元素a[1],并將它的值增3變?yōu)?,此時(shí),ptr指向p,p指向a[1]。

51.C解析:該題目的關(guān)鍵是要搞清楚“&&”和“||”兩個(gè)邏輯運(yùn)算符的運(yùn)算功能。運(yùn)算符“&&”和“||”是雙目運(yùn)算符,要求有兩個(gè)運(yùn)算量。在邏輯與運(yùn)算中,只有當(dāng)“&&”運(yùn)算符前面運(yùn)算量的值為真時(shí),才需要判斷后面的值;若為假,就不必判斷后面的值。而在邏輯或運(yùn)算中,只要“||”運(yùn)算符前面的值為真,就不再判斷后面的值;只有前面的值為假,才判斷后面的值。本題中j++的值為真,因此不進(jìn)行k++運(yùn)算,k值保持不變,(j++||k++)的值為真,繼續(xù)計(jì)算i++,計(jì)算后i值為2。

52.C解析:本題考查的重點(diǎn)是對fread函數(shù)的理解。fread函數(shù)中,buffer是接收讀入數(shù)據(jù)的內(nèi)存區(qū)域的指針,因此選項(xiàng)C是正確的。

53.A解析:字符型變量用來存放字符常量,且只能存放一個(gè)字符。賦值反斜杠線“\\”,必須用轉(zhuǎn)義字符實(shí)現(xiàn),即ch='\\\\',所以選項(xiàng)A)錯(cuò)誤;字符型變量可以賦0~255之間的ASCII碼值,整型數(shù)據(jù)和字符型數(shù)據(jù)有時(shí)可以通用,所以選項(xiàng)B)正確;可以將NULL賦給一個(gè)字符型變量,NULL代表一個(gè)空字符,相當(dāng)于0,選項(xiàng)C)正確;'\\xaa'表示的是1~2位16進(jìn)制數(shù)所代表的字符,所以選項(xiàng)D)正確。

54.B解析:scanf函數(shù)的第一個(gè)參數(shù)是格式控制字符串,該字符串中所出現(xiàn)的格式控制符必須與scanf函數(shù)的笫二個(gè)及其后面的參數(shù)一一對應(yīng).本題中四個(gè)選項(xiàng)的格式控制字符串都是'%d%s',其中包括兩個(gè)格式控制符%d和%s,它們分別表示輸入一個(gè)十進(jìn)制整數(shù)和輸入一個(gè)字符串,其對應(yīng)的參數(shù)應(yīng)該分別為一個(gè)整型變量的地址和一個(gè)字符型數(shù)組的首地址。變量的地址可以通過對變量做取地址(&)運(yùn)算來得到,而宇符型數(shù)組的首地址則可以直接通過數(shù)組名來得到。所以,4個(gè)選項(xiàng)中選項(xiàng)B符合題意。

55.A解析:本題的考查點(diǎn)是while()循環(huán)語句。本題首先要注意的是對*y++的運(yùn)算,由于++和*為同—優(yōu)先級別,且結(jié)合方向?yàn)樽杂蚁蜃?,因此它相?dāng)于*(y++)。由于++在y的右側(cè)是“后加”,因此先對y的原值進(jìn)行*運(yùn)算,然后使y的值改變。

56.B解析:本題主要考查main函數(shù)的基本知識。main函數(shù)可以出現(xiàn)在C程序的任何地方。

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

58.B解析:數(shù)據(jù)庫管理系統(tǒng)(DataBaseManagementSystem,簡稱DBMS)是數(shù)據(jù)庫的機(jī)構(gòu),它是一種系統(tǒng)軟件,負(fù)責(zé)數(shù)據(jù)庫中的數(shù)據(jù)組織、數(shù)

溫馨提示

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

評論

0/150

提交評論