2021-2022年四川省巴中市全國(guó)計(jì)算機(jī)等級(jí)考試C語(yǔ)言程序設(shè)計(jì)預(yù)測(cè)試題(含答案)_第1頁(yè)
2021-2022年四川省巴中市全國(guó)計(jì)算機(jī)等級(jí)考試C語(yǔ)言程序設(shè)計(jì)預(yù)測(cè)試題(含答案)_第2頁(yè)
2021-2022年四川省巴中市全國(guó)計(jì)算機(jī)等級(jí)考試C語(yǔ)言程序設(shè)計(jì)預(yù)測(cè)試題(含答案)_第3頁(yè)
2021-2022年四川省巴中市全國(guó)計(jì)算機(jī)等級(jí)考試C語(yǔ)言程序設(shè)計(jì)預(yù)測(cè)試題(含答案)_第4頁(yè)
2021-2022年四川省巴中市全國(guó)計(jì)算機(jī)等級(jí)考試C語(yǔ)言程序設(shè)計(jì)預(yù)測(cè)試題(含答案)_第5頁(yè)
已閱讀5頁(yè),還剩32頁(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ì)預(yù)測(cè)試題(含答案)學(xué)校:________班級(jí):________姓名:________考號(hào):________

一、單選題(20題)1.有以下程序,其中函數(shù)f的功能是將多個(gè)字符串按字典順序排序:#include<string.h>voidf(char*p[],intn){char*t;inti,j;for(i=0;i<n-1;i++)for(j=i+1;j<n;j++)ifstrcmp(p[i],p[j])>0{t=p[i]p[i]=p[j];p[j]=t;}}main(){char*p[5]=("abc","aabdfg","abbd","dcdbe","cd"};f(p,5);printf("%d\n",strlen(p[1]));}程序運(yùn)行后的輸出結(jié)果是______。A.2B.3C.6D.4

2.

3.有以下程序:

A.CDEFB.ABEFC.ABCDD.CDAB

4.有以下程序

#include<stdio.h>

main()

{inty=10

while(y--);

printf(“y=%d\n”,y);

}

程序執(zhí)行后的輸出結(jié)果是()。A.y=0B.y=-1C.y=1D.while構(gòu)成無(wú)限循環(huán)

5.若i、j已定義成mt型,則下列程序段中內(nèi)循環(huán)體的總執(zhí)行次數(shù)是()。for(i=6;i>0;i--)for(j=0;j<4;j++){…}A.20B.24C.25D.30

6.

7.若有定義語(yǔ)句:“intx=12,y=8,z;”,在其后執(zhí)行語(yǔ)句“z=0.9+x/y;”,則z的值為()。A.1.9B.1C.2D.2.4

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

A.break語(yǔ)句只能用于switch語(yǔ)句體中

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

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

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

9.下列關(guān)于AOE網(wǎng)的敘述中,不正確的是()。

A.關(guān)鍵活動(dòng)不按期完成就會(huì)影響整個(gè)工程的完成時(shí)間

B.任何一個(gè)關(guān)鍵活動(dòng)提前完成,那么整個(gè)工程將會(huì)提前完成

C.所有的關(guān)鍵活動(dòng)提前完成,那么整個(gè)工程將會(huì)提前完成

D.某些關(guān)鍵活動(dòng)提前完成,那么整個(gè)工程將會(huì)提前完成

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

A.文件指針是一種特殊的指針類型變量

B.文件指針的值等于文件當(dāng)前讀寫位置,以字節(jié)為單位

C.文件指針的值等于文件在計(jì)算機(jī)硬盤中的存儲(chǔ)位置

D.調(diào)用fscanf函數(shù)只能向文本文件中寫入任意字符

11.若有如下程序:main(){inta=0,t=0;while(!a!=0)t+=a++;printf("%d,%d\n",t,A);}則程序運(yùn)行后的輸出結(jié)果是()

A.0,1B.1,0C.0,0D.1,1

12.對(duì)線性表進(jìn)行折半查找最方便的存儲(chǔ)結(jié)構(gòu)是()。

A.順序表B.有序順序表C.鏈表D.有序鏈表

13.

14.設(shè)有以下語(yǔ)句:inta=1,b=2,c;c=a^(b<<2);執(zhí)行后,c的值為()。A.6B.7C.8D.9

15.以下各選項(xiàng)中的代碼段執(zhí)行后,變量y的值不為1的是()。A.intx=5,y=0;if(5)y=1;

B.intx=5,y=0;if(x)y=1;

C.intx=10,y=0;if(x=y)y=1;

D.intx=5,y=10;if(x=y)y=1;

16.若輸入“abcdef”“abdef”,下述程序的輸出結(jié)果為()。#include<stdio.h>#include<string.h>main{intn;chars1[20],s2[20],*p1,*p2;scanf("%s",s1);scanf("%S",s2);p1=s1;p2=s2;n=strcmp(p1,p2);printf("Vood\n",n);}A.-1B.0C."abcdef"D."abdef"

17.下列敘述中正確的是______。

A.線性表是線性結(jié)構(gòu)B.棧與隊(duì)列是非線性結(jié)構(gòu)C.線性列表是非線性性結(jié)構(gòu)D.二叉樹(shù)是線性結(jié)構(gòu)

18.

19.

20.已知一個(gè)有序表為(15,19,30,33,49,50,65,88,93,126,164),當(dāng)二分查找值為126的元素時(shí),檢索成功需進(jìn)行的比較次數(shù)為()。

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

二、2.填空題(20題)21.設(shè)inta=5,b=6,表達(dá)式(++a==b--)?++a:--b的值是【】。

22.有以下程序段,且變量已正確定義和賦值

for(s=1.0,k=1;k<=n;k++)s=s+1.0/(k*(k+1));

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

請(qǐng)?zhí)羁?使下面程序段的功能與之完全相同

s=1.0;k=1;

while(【】){s=s+1.0/(k*(k+1));【】;}

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

23.性結(jié)構(gòu)中,隊(duì)列的操作順序是先進(jìn)先出,而棧的操作順序是______。

24.以下程序用來(lái)輸出結(jié)構(gòu)體變量ex所占存儲(chǔ)單元的字節(jié)數(shù),請(qǐng)?zhí)羁铡?/p>

structst

{charname[20];doublescore;};

main()

{structstex;

pfintf("exsize:%d\n",sizeof(______));}

25.數(shù)據(jù)的邏輯結(jié)構(gòu)有線性結(jié)構(gòu)和______兩大類。

26.有定義chara,b;若想通過(guò)&運(yùn)算符保留a對(duì)應(yīng)的二進(jìn)制數(shù)的第3位和第6位的值,其余位置0,則b的二進(jìn)制數(shù)應(yīng)是【】。

27.下面程序的功能是:將字符數(shù)組a中下標(biāo)值為偶數(shù)的元素從小到大排列,其他元素不變。請(qǐng)?zhí)羁铡?/p>

#include<stdio.h>

#include<string.h>

main()

{chara[]="clanguage",t;

inti,j,k;

k=strlen(a);

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

for(j=i+2;j<=k;j+=2;)

if(【】)

{t=a[i];a[i]=a[j];a[j]=t;}

puts(a);printf("\n");

}

28.一個(gè)關(guān)系表的行稱為()。

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

floatfun(intx,inty)

{return(x+y);}

main()

{inta=2,b=5,c=8;

printf("%3.0f\n",fun((int)fun(a+c,b),a-c));}

30.若有以下程序:

main()

{

inta[4][4]={{l,2,-3,-4},{0,-12,-13,14},{-21,23,0,-24},

{-31,32,-33,0}};

inti,j,s=0;

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

{

for(j=0;j<4;j++)

{

if(a[i][j]<0)continue;

if(a[i][j]==0)break;

s+=a[i][j];

}

}

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

}

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

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

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

structs

{intx,y;}data[2]={10,100,20,200};

main()

{

structs*p=data;

printf("%d\n",++(p->x));

}

33.下面函數(shù)的功能是將一個(gè)字符串的內(nèi)容顛倒過(guò)來(lái),請(qǐng)?zhí)羁铡?/p>

voidfun(charstr[])

{inti,j,k;

for(i=0,j=【】;i<j;i++,j--)

{k=str[i];

str[i]=str[j];

str[j]=k;}}

34.常用的黑箱測(cè)試有等價(jià)類劃分法、【】和錯(cuò)誤推測(cè)法3種。

35.執(zhí)行以下for語(yǔ)句后,變量i的值是【】。

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

36.下面程序的功能是兩個(gè)整數(shù)進(jìn)行交換,請(qǐng)?zhí)羁铡?/p>

sub(int*x,int*y)

{【】

z=*x;*x=*y;*y=z;

return;}

main()

{intm,n,*t1,*t2;

scanf("%d,%d",&m,&n);

t1=&m;t2=&n;

【】

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

37.以下程序的運(yùn)行結(jié)果是()。#defineS(x)x*xmain(){intk=1;while(k<=4){printf("%d,",S(k));k++;}

38.有以下程序

main()

{intt=1,i=5;

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

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

}

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

39.下列程序段中循環(huán)體的執(zhí)行次數(shù)是______。

a=15;

b=0;

do{b+=2;a-=2+b;}while(a>=0);

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

longfun5(intn)

{longs;

if((n==1)‖(n==2))

s=2;

else

s=n+fun5(n-1);

return(s);

}

main()

{longx;

x=fun5(4);

printff"%1d\n",x);}

三、1.選擇題(20題)41.若定義了以下函數(shù):voidf(…){…*p=(double*)malloc(10*sizeof(double));…}p是該函數(shù)的形參,要求通過(guò)p把動(dòng)態(tài)分配存儲(chǔ)單位的地址傳回主調(diào)函數(shù),則形參p的正確定義應(yīng)當(dāng)是()

A.double*pB.float**pC.double**pD.float*p

42.數(shù)據(jù)庫(kù)技術(shù)的根本目標(biāo)是要解決數(shù)據(jù)的()。

A.存儲(chǔ)問(wèn)題B.共享問(wèn)題C.安全問(wèn)題D.保護(hù)問(wèn)題

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

A.defdefB.abcdefC.abcdD.dd

44.以下不屬于面向?qū)ο蟮幕咎攸c(diǎn)的是()。

A.分類性B.多態(tài)性C.繼承性D.封裝性

45.以下關(guān)于return語(yǔ)句的敘述中不正確的是()。

A.一個(gè)自定義函數(shù)中必須有一條return語(yǔ)句

B.一個(gè)自定義函數(shù)中可以根據(jù)不同情況設(shè)置多條return語(yǔ)句

C.如果一個(gè)函數(shù)有多個(gè)return語(yǔ)句,那么不論運(yùn)行到哪一個(gè)return語(yǔ)句,該函數(shù)將結(jié)束

D.沒(méi)有return語(yǔ)句的自定義函數(shù)在執(zhí)行完最后一條語(yǔ)句時(shí)返回到調(diào)用處

46.以下程序段給數(shù)組所有的元素輸入數(shù)據(jù),請(qǐng)選擇正確答案填入。#include<stdio.h>main(){inta[10]=0;while(i<10)scan("%d"______);::}

A.a+(i++)B.&a[i+1]C.a+iD.&a[++i]

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

voidfunc1(inti);

voidfunc2(inti);

charst[]="hello,friend!";

voidfunc1(inti)

{printf("%c",st[i]);

if(i<3){i+=2;func2(i);}}

voidfunc2(inti)

{printf("%c",st[i]);

if(i<3){i+=2;func1(i);}}

main()

{inti=0;func1(i);printf("\n");}

A.helloB.helC.hloD.m

48.在下列敘述中,正確的一條是______。A.if(表達(dá)式)語(yǔ)句中,表達(dá)式的類型只限于邏輯表達(dá)式

B.語(yǔ)句“goto12;”是合法的

C.for(;;)語(yǔ)句相當(dāng)于while(1)語(yǔ)句

D.break語(yǔ)句可用于程序的任何地方,以終止程序的執(zhí)行

49.在深度為7的滿二叉樹(shù)中,葉子節(jié)點(diǎn)的個(gè)數(shù)為()。

A.32B.31C.64D.63

50.以下程序輸出的結(jié)果是#include<stdio.h>main(){inti=010,j=10;printf("%d,%d\n",++i,j--);}

A.11,10B.9,10C.010,9D.10,9

51.有定義語(yǔ)句doublda,b;intw;longc;若各變量已正確賦值,則下列選項(xiàng)中正確的表達(dá)式是()。

A.a=a+b=b++B.w%((int)a+b)C.(c+w)%(int)aD.w=a==b;

52.已有定義inta=3;和輸出語(yǔ)句printf("%8x",A);以下正確的敘述是()。

A.整型變量的輸出格式符只有%d一種

B.%x是格式符的一種,它可以適用于任何一種類犁的數(shù)據(jù)

C.%x是格式符的一種,其變量的值按十六進(jìn)制數(shù)輸出,但%08x是錯(cuò)誤的

D.%8x是正確的格式符,其中數(shù)字8規(guī)定了輸出字段的寬度

53.下面程序輸出的結(jié)果是______。main(){inti=5,j=9,x;x=(i==j?i:(j=7));printf("\n%d,%d",i,j);}

A.5,7B.5,5C.語(yǔ)法錯(cuò)誤D.7,5

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

#include<stdio.h>

voidmain()

{intb[6]-<2,4,6,8,10,12};

int*p=b,**q=&p;

printf("%d",*(p++));

printf("%d,",**q);

}

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

55.有以下定義#include<stdio.h>chara[10],*b=a;不能給數(shù)組a輸入字符串的語(yǔ)句是()A.gets(a)B.gets(a[0])C.gets(&a[0]);D.gets(b);

56.下述程序向文件輸出的結(jié)果是_______。#include<stdio.h>voidmain(){FILE*fp=fopen("TEST","wb");fprintf(fp,"%d%5.of%c%d",58,76273.0,'-'2278);fclose(fp);}

A.5876273-2278

B.5876273.000000-2278

C.5876273-2278

D.因文件為二進(jìn)制文件而不可讀

57.已知下面的程序段,正確的判斷是______。#defineA3#defineB(A)((A+1)*a)inta=3;......X=3*(A+B(7));

A.程序錯(cuò)誤,不允許嵌套定義B.X=93C.X=81D.程序錯(cuò)誤,宏定義不允許有參數(shù)

58.有以下程序段

intj;floaty;charname[50];

scanf("%2d%f%s",&j,&y,name);

當(dāng)執(zhí)行上述程序段,從鍵盤上輸入555667777abe后,y的值為

A.55566.0B.566.0C.7777.0D.566777.0

59.下面程序的輸出結(jié)果是()。func(intX){staticinta=2;return(a+=X);}main(){intb=2,c=4,d;d=func(b);d=func(c);printf("%d\n",d);}

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

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

A.在棧中只能插入元素而不能刪除元素

B.在棧中只能刪除元素而不能插入元素

C.棧是特殊的線性表,只能在一端插入或刪除元素

D.棧是特殊的線性表,只能在一端插入元素,而在另一端刪除元素

四、選擇題(20題)61.

62.

63.現(xiàn)有如下程序段:

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

A.7,8

B.8,8

C.7,10

D.8,10

64.在以下選項(xiàng)中,能IE確聲明數(shù)組并進(jìn)行初始化的語(yǔ)句是()。

A.str=newDimension(1,2,3);

B.str=newdimension(1,2,3);

C.str:newArray(1,2,3);

D.str=newarray(1,2,3);

65.設(shè)有以下定義inta=0;doubleb=1.25;charc=’A’;#defined2則下面語(yǔ)句中錯(cuò)誤的是()

A.a++;B.b++C.c++;D.d++;

66.有以下程序:#include<stdio.h>main(){chars[]={"012xy"};inti,n=o;for(i=0;s[i]!='0';i++)if(s[i]>=as[i]<=z)n++;printf("%d\n",n);}程序運(yùn)行后的輸出結(jié)果是()。A.0B.2C.3D.5

67.軟件設(shè)計(jì)中劃分模塊的一個(gè)準(zhǔn)則是()。A.低內(nèi)聚低耦合B.高內(nèi)聚低耦合C.低內(nèi)聚高耦合D.高內(nèi)聚高耦合

68.

69.下列關(guān)于C語(yǔ)言的敘述錯(cuò)誤的是()。

A)大寫字母和小寫字母的意義相同

B)不同類型的變量可以在一個(gè)表達(dá)式中

C)在賦值表達(dá)式中等號(hào)(=)左邊的變量和右邊的值可以是不同類型

D)同一個(gè)運(yùn)算符號(hào)在不同的場(chǎng)合可以有不同的含義

70.以下選項(xiàng)中正確的語(yǔ)句組是()。

A.char*s;8={1.BOOK!”}i

B.char*s;8=”BOOK!”;

C.charS[10];S=”BOOK!”;

D.charS[];S=”BOOK!”;

71.有以下程序:

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

A.b,B"b,AB.b,B,B,AC.a,B,B,aD.a,B,a,B

72.有以下程序:

intfun()

{staticints=0;

s+=1;

returns;

}

main(intargc,char*argv[])

{intn,i=0;

while(argv[1][i]!=’\0’)

{n=fun();i++;}

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

}

假設(shè)程序經(jīng)編譯、鏈接后生成可執(zhí)行文件exam.exe,若鍵入以下命令:exam123<回車>,則運(yùn)行結(jié)果為()。

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

73.下列敘述中錯(cuò)誤的是()。

A.一個(gè)C語(yǔ)言程序只能實(shí)現(xiàn)一種算法

B.c程序可以由多個(gè)程序文件組成

C.C程序可以由一個(gè)或多個(gè)函數(shù)組成

D.一個(gè)c函數(shù)可以單獨(dú)作為一個(gè)C程序文件存在

74.結(jié)構(gòu)化程序設(shè)計(jì)的基本原則不包括A.多態(tài)性B.自頂向下C.模塊化D.逐步求精

75.有以下程序:main{inti,n=0:for(i=2;i<5;i++){do{if(i%3)continue:n++:}while(!i);n++:}printf("n=%d\n",n);}程序執(zhí)行后輸出結(jié)果是()。A.n=5B.n=2C.n=3D.n=4

76.“商品”與“顧客”兩個(gè)實(shí)體集之間的聯(lián)系一般是

A.一對(duì)一B.一對(duì)多C.多對(duì)一D.多對(duì)多

77.

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

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

79.

80.下列字符數(shù)組初始化語(yǔ)句中,不正確的是()。A.A.charc[]='goodmorning';

B.charc[20]="goodmorning";

C.charc[]={'a','b','c','d');

D.charc[]={"ffgoodmorning"};

五、程序改錯(cuò)題(1題)81.下列給定程序中,函數(shù)fIm和funx的功能是:用二分法求方程的一個(gè)根,并要求絕對(duì)誤差不超過(guò)0.001。

.例如,若給m輸入一100,n輸入90,則函數(shù)求得的二個(gè)根為2.000。請(qǐng)改正程序中的錯(cuò)誤,使它能得出正確的結(jié)果。注意:不要改動(dòng)main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)!試題程序:

六、程序設(shè)計(jì)題(1題)82.M名學(xué)生的成績(jī)已在主函數(shù)中放人一個(gè)帶頭結(jié)點(diǎn)的鏈表結(jié)構(gòu)中,h指向鏈表的頭結(jié)點(diǎn)。請(qǐng)編寫函數(shù)proc(),它的功能是:找出學(xué)生的最高分,由函數(shù)值返回。注意:部分源程序給出如下。請(qǐng)勿改動(dòng)main()函數(shù)和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)proc()的花括號(hào)中填入所編寫的若干語(yǔ)句。試題程序:

參考答案

1.D解析:字符串比較函數(shù)“strcmp(char*s1,char*s2)”的比較規(guī)則是對(duì)兩個(gè)字符串自左至右逐個(gè)字符相比(按ASCII碼值大小比較),直到出現(xiàn)不同的字符或遇到到"\\0"為止。如果全部相同,則認(rèn)為相等:若出現(xiàn)不相同的字符,則以第一個(gè)不相同的字符的比較結(jié)果為準(zhǔn)。當(dāng)s1<s2,返回值<0;當(dāng)s1=s2時(shí),返回值二0:當(dāng)s1>s2時(shí),返回值>0。故本題經(jīng)過(guò)排序后,得到第二個(gè)字符串是“abbd”,所以輸出結(jié)果是4。

2.B

3.A在函數(shù)funl()之前定義了全局字符變量a和b。這兩個(gè)變量的作用域是從其定義處開(kāi)始到整個(gè)程序末結(jié)束。在函數(shù)funl()之內(nèi)定義了兩個(gè)變量a和b,并且分別初始化為字符ˊCˊ和ˊDˊ。

4.B解析:y-的作用是先取其值作為表達(dá)式的值,然后y的值減1存入y。當(dāng)y>0時(shí)循環(huán)繼續(xù),直到y(tǒng)=0時(shí)循環(huán)結(jié)束,然后y值減1存入y中,所以選B。

5.B本題考查for循環(huán)的使用。對(duì)于第1個(gè)for循環(huán),任何一個(gè)i,內(nèi)層j的循環(huán)都要使j~0到3,j=4時(shí)不符合,所以退出j循環(huán);然后i減1,J仍然要從0~3,j=4時(shí)退出J循環(huán)直到i變成0,退出i循環(huán)。第一條for語(yǔ)句執(zhí)行6次,第二條for語(yǔ)句執(zhí)行4次,所以內(nèi)循環(huán)體執(zhí)行6*4=24次。

6.C

7.B此題考查除法運(yùn)算,根據(jù)先乘除后加減,有括號(hào)先算括號(hào)的原則,先計(jì)算x/y,即l2/8=1,所以z=0.9+1=1.9。但是Z是整型的,轉(zhuǎn)化一下取整除部分,結(jié)果Z=1

8.C解析:只能在循環(huán)體內(nèi)和switch語(yǔ)句體內(nèi)使用break語(yǔ)句。當(dāng)break出現(xiàn)在循環(huán)體的switch語(yǔ)句體內(nèi)時(shí),其作用只是跳出該switch語(yǔ)句體,并不能中止循環(huán)體的執(zhí)行。若想強(qiáng)行中止循環(huán)體的執(zhí)行,可以在循環(huán)體中,但并不在switch語(yǔ)句中設(shè)置break語(yǔ)句,滿足某種條件,則跳出本層循環(huán)體。

9.B

10.A文件指針實(shí)際上是指向一個(gè)結(jié)構(gòu)體類型的指針。這個(gè)結(jié)構(gòu)體中包含緩沖區(qū)的地址、在緩沖區(qū)中當(dāng)前存取字符的位置、對(duì)文件是“讀”還是“寫”、是否出錯(cuò)、是否已經(jīng)遇到文件結(jié)束標(biāo)識(shí)等信息。選項(xiàng)A正確,選項(xiàng)B、C錯(cuò)誤;fscanf函數(shù)只能從文本文件中輸入數(shù)據(jù)到內(nèi)存,選項(xiàng)D錯(cuò)誤。故本題答案為A選項(xiàng)。

11.A

12.B

13.C

14.D本題考查兩個(gè)知識(shí)點(diǎn),按位異或左移把b左移2位化成二進(jìn)制c=a(b<<2)=a^(000010<<2)=a^001000=0000001^O01000=9,故選擇D。

15.C選項(xiàng)A的if條件表達(dá)式的值是5,結(jié)果為真,執(zhí)行“y=1”,y的值為1;選項(xiàng)B的if條件表達(dá)式x的值為5,結(jié)果也是真,執(zhí)行“y=1”,y的值為1;選項(xiàng)C的if條件表達(dá)式“x=y”是賦值語(yǔ)句,將y的值0賦給x,表達(dá)式的值為0,if語(yǔ)句不執(zhí)行,y的值為0;選項(xiàng)D的if條件表達(dá)式“x=y”是賦值語(yǔ)句,將y的值10賦給x,表達(dá)式的值為10,執(zhí)行“y=1”,y的值為1。故本題答案為C選項(xiàng)。

16.D本題考查字符串比較函數(shù)strcmp(s1,s2),若s1>s2,則返回1;若s1=s2,則返回0;若s1<s2,則返回-1。字符串依次比較的是它們字符的ASCIl碼值。

17.A解析:一般將數(shù)據(jù)結(jié)構(gòu)分為兩大類型:線性結(jié)構(gòu)與非線性結(jié)構(gòu)。線性表、棧與隊(duì)列、線性鏈表都是線性結(jié)構(gòu),而二叉樹(shù)是非線性結(jié)構(gòu)。

18.B

19.B

20.C

21.77解析:此表達(dá)式為三目運(yùn)算符,++a的值為6,b--的值為6,則整個(gè)表達(dá)式的值為++a的值,++a的值為7。請(qǐng)注意前綴++,--和后綴++,--的區(qū)別。

22.k<=nk++k<=n,k++解析:本題要求將一個(gè)for循環(huán)改成while循環(huán)。首先要保證循環(huán)條件相同,在for循環(huán)中,每次執(zhí)行循環(huán)之后,循環(huán)控制變量k都會(huì)加1,而while循環(huán)則沒(méi)有,故需在循環(huán)體中增加改變k數(shù)值的語(yǔ)句'k++;'\ue009。

23.先進(jìn)后出先進(jìn)后出解析:隊(duì)列和棧都是線性結(jié)構(gòu),但是不同之處在于隊(duì)列的操作順序是先進(jìn)先出,而棧的操作順序是先進(jìn)后出。

24.

25.非線性結(jié)構(gòu)非線性結(jié)構(gòu)

26.100100100100解析:“&”運(yùn)算符的運(yùn)算規(guī)則是:兩個(gè)二進(jìn)制數(shù)的對(duì)應(yīng)二進(jìn)制位只要有一個(gè)為0,則結(jié)果為0;二者都為1時(shí),結(jié)果為1。因此,要想保留某位可用1,屏蔽某位用0。

27.a[I]>a[j]a[I]>a[j]解析:本題中的嵌套的循環(huán)結(jié)構(gòu)用在了數(shù)組元素的排序上。本題需要注意的一點(diǎn)是:由于題目只要求出下標(biāo)值為偶數(shù)的元素從小到大排序,所以內(nèi)外層for循環(huán)的條件變量變更條件都是+=2,最后通過(guò)條件a[i]>a[j]對(duì)元素大小進(jìn)行判斷并交換。

28.元組元組解析:一個(gè)關(guān)系表中的行稱為元組,列稱為屬性。

29.99解析:本題考查函數(shù)的綜合知識(shí)。首先,我們可以利用強(qiáng)制轉(zhuǎn)換類型轉(zhuǎn)換運(yùn)算符,將一個(gè)表達(dá)式轉(zhuǎn)換成所需類型。如:(double)a是將a轉(zhuǎn)換成double類型;(int)(x+y)是將x+y的值轉(zhuǎn)換成整型。

本題可按部就班地逐步運(yùn)算:

fun((int)fun(a+c,b),a-c)

fun((int)fun(10,5),2-8)

fun((int)15.000000,-6)

fun(15,-6)

9

30.5858解析:本題中處理二維數(shù)組元素用了兩重循環(huán),外循環(huán)變量i表示數(shù)組的行,內(nèi)層循環(huán)變量j表示數(shù)組的列。在第二重循環(huán)中首先判斷數(shù)組元素的值是否小于0,若是則處理該行的下一個(gè)元素;若不是則判斷a[¨剛的值是否等于0,若等于0則退出內(nèi)層循環(huán)開(kāi)始處理下一行;其他情況下,把a(bǔ)[i][j]的值加到變量s中。所以本程序段的功能是把每行值為0的元素前面的所有大于0的元素值加到變量s中。

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

32.1111解析:程序中結(jié)構(gòu)體數(shù)組data首地址(即&data[0])賦值給結(jié)構(gòu)體指針變量p,++(P->x)表示先將p所指向的結(jié)構(gòu)體變量的成員x值加1,然后將此x(即data[0].x)輸出。

33.strlen(str)-1strlen(str)-1解析:程序中的for循環(huán)就是用來(lái)完成串反序的,所以應(yīng)該對(duì)循環(huán)的條件進(jìn)行初始化,所以在[18]應(yīng)該填入strlen(str)-1。注意,在串反序的時(shí)候,不應(yīng)該把串結(jié)束符‘\\0’也反序。

34.邊界值分析法邊界值分析法解析:黑箱測(cè)試方法完全不考慮程序的內(nèi)部結(jié)構(gòu)和內(nèi)部特征,而只是根據(jù)程序功能導(dǎo)出測(cè)試用例。常用的黑箱測(cè)試有等價(jià)類劃分、邊界值分析法和錯(cuò)誤推測(cè)法3種。

35.7

36.intz;sub(t1t2);

37.149161,4,9,16,解析:分析程序執(zhí)行過(guò)程,第1次循環(huán),k=1時(shí),此時(shí)s(1)=1*1=1,然后k的值加1;第2次循環(huán),k=2時(shí),s(2)=2*2=4,然后k的值加1;第3次循環(huán),k=3時(shí),s(3)=3*3=9,然后k的值加1;第4次循環(huán),k=4時(shí),s(4)=4*4=16,然后k的值加1;當(dāng)k=5時(shí),條件不滿足,退出循環(huán)。

38.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。

39.33解析:本題考查do…while語(yǔ)句形式:

do循環(huán)體

while表達(dá)式

首先執(zhí)行循環(huán)體語(yǔ)句,然后檢測(cè)循環(huán)控制條件表達(dá)式的值,若為真,則重復(fù)執(zhí)行循環(huán)體語(yǔ)句,否則退出循環(huán)。第1次循環(huán):b+=2,b=2,a-=2+b,a=11;第2次循環(huán):b=4,a=5;第3次循環(huán):b=6,a=-3,此時(shí)再判斷循環(huán)條件不滿足,退出循環(huán)。

40.99解析:考查ifelse語(yǔ)句,n==4不滿足條件,所以fun5(4)=4+fun5(3),n==3也不滿足條件,fun5(3)=3+funS(2),n==2滿足條件fun5(2)=2,故x=4+3+2=9。

41.C

42.B解析:數(shù)據(jù)庫(kù)產(chǎn)生的背景就是計(jì)算機(jī)的應(yīng)用范圍越來(lái)越廣泛,數(shù)據(jù)量急劇增加,對(duì)數(shù)據(jù)共享的要求越來(lái)越高。共享的含義是多個(gè)用戶、多種語(yǔ)言、多個(gè)應(yīng)用程序相互覆蓋的使用一些公用的數(shù)據(jù)集合。在這樣的背景下,為了滿足多用戶、多應(yīng)用共,享數(shù)據(jù)的要求,就出現(xiàn)了數(shù)據(jù)庫(kù)技術(shù),以便對(duì)數(shù)據(jù)庫(kù)進(jìn)行管理。因此,數(shù)據(jù)庫(kù)技術(shù)的根本目標(biāo)就是解決數(shù)據(jù)的共享問(wèn)題。故選項(xiàng)B正確。

43.A解析:本題首先定義兩個(gè)字符型指針變量p和q,通過(guò)malloc()函數(shù)申請(qǐng)20個(gè)字符的存儲(chǔ)空間,并把它的首地址賦給p,再把p的值賦給小p和q指向同一個(gè)存儲(chǔ)區(qū)。在scanf()語(yǔ)句中讀取字符串到p和q指向的字符串,先把a(bǔ)bc讀取到p指向的存儲(chǔ)區(qū)中,第一個(gè)空格是結(jié)束標(biāo)記,第二個(gè)空格是分隔符,再把def存放到q指向的存儲(chǔ)區(qū),把原先的內(nèi)容覆蓋。所以p和q指向的存儲(chǔ)區(qū)內(nèi)容是def,故最后輸出的def,def。4個(gè)選項(xiàng)中A正確。

44.A解析:封裝性、繼承性、多態(tài)性是面向?qū)ο蟮娜筇攸c(diǎn)。

45.A解析:return語(yǔ)句主要用于返回函數(shù)的值。在一個(gè)自定義函數(shù)中,可以根據(jù)不同的情況設(shè)置多條return語(yǔ)句返回函數(shù)的值,也可以不包含return語(yǔ)句。

46.A解析:a就是數(shù)組a的首地址,而a+x是數(shù)組中第x個(gè)元素的地址,所以在四個(gè)選項(xiàng)中,選項(xiàng)B和C只能輸入—個(gè)數(shù)據(jù),選項(xiàng)D不能給a[0]輸入數(shù)據(jù),只有A可以完成給數(shù)組所有的元素輸入數(shù)據(jù)的任務(wù)。

47.C解析:考查函數(shù)的調(diào)用。函數(shù)調(diào)用的一般形式為:

函數(shù)名(實(shí)參列表)

首先調(diào)用函數(shù)func1(0),輸出st[0]=h。i值變?yōu)?,并調(diào)用函數(shù)func2(2),輸出st[2]=l。i值此時(shí)變?yōu)?,又調(diào)用函數(shù)func1(4),輸出st[4]=0。此時(shí)i值大于等于3,執(zhí)行完畢,因此,輸出結(jié)果為hlo。函數(shù)調(diào)用的一般格式以及函數(shù)的返回值。

48.C

49.C解析:深度為k且有2k-1個(gè)節(jié)點(diǎn)的二叉樹(shù),稱為滿二叉樹(shù)。

50.B解析:本題考核的知識(shí)點(diǎn)是自增運(yùn)算符和自減運(yùn)算符的使用.程序中i的值用八進(jìn)制表示(十進(jìn)制為8),++i是在變量使用前自身先加1,而j--是在變量使用后自身減1。所以,4個(gè)選項(xiàng)中B符合題意。

51.C解析:賦值運(yùn)算符的左邊只能是變量,不能是表達(dá)式,選項(xiàng)A)錯(cuò)誤;由于“%”兩邊表達(dá)式值的類型必須為整型,所以選項(xiàng)B)錯(cuò)誤;題目要求的是正確的表達(dá)式,而表達(dá)式后面不能有“;”,選項(xiàng)D)錯(cuò)誤。

52.D解析:本題考查printf函數(shù)的格式?!?8x”表示以十六進(jìn)制無(wú)符號(hào)形式輸出整掣數(shù)據(jù)?!?”表示指定輸出數(shù)據(jù)的寬度為8位。

53.A解析:條件表達(dá)式的一般形式為:表達(dá)式1?表達(dá)式2:表達(dá)式3;先求解表達(dá)式1,若為真則求解表達(dá)式2;若表達(dá)式1的值為假,則求解表達(dá)式3。本題中先判斷i==j,不等,執(zhí)行j=7;然后執(zhí)行x=7。故本題為A。

54.D解析:首先定義了一個(gè)指向一維數(shù)組b的指針p,一個(gè)指向指針p的指針變量q,輸出*(p++)是先輸出*p即b[0]的值,再將指針p指向數(shù)組的下一個(gè)元素b[1],輸出**q是輸出指針p所指單元的內(nèi)容,即b[1]的值。

55.B解析:本題考核的知識(shí)點(diǎn)是函數(shù)gets()的應(yīng)用。函數(shù)gets()的調(diào)用形式為gets(str_adr);str_adr是存放字符串的起始地址??梢允亲址麛?shù)組名、字符指針或字符數(shù)組元素的地址。gets函數(shù)用來(lái)從終端鍵盤讀入字符串(包括空格符),直到讀入一個(gè)換行符為止。換行符讀入后,不作為字符串的內(nèi)容。本題中定義一個(gè)長(zhǎng)度為10的字符數(shù)組,和一個(gè)指針變量b,并且通過(guò)賦值讓它指向數(shù)組a;選項(xiàng)A。選項(xiàng)B。選項(xiàng)C和選項(xiàng)D中只有選項(xiàng)B中g(shù)ets函數(shù)的參數(shù)a[0]不能表示數(shù)組a的首地址,故選項(xiàng)B不正確。所以,4個(gè)選項(xiàng)中選項(xiàng)B符合題意。

56.C解析:fprintf函數(shù)工作時(shí),多個(gè)數(shù)據(jù)間不會(huì)自動(dòng)加分隔符,選項(xiàng)A錯(cuò)誤;浮點(diǎn)數(shù)的輸出格式是“%5.of”表明其小數(shù)部分輸出0位,即沒(méi)有輸出,所以選項(xiàng)B也是錯(cuò)誤的。

57.C解析:本題的宏定義是合法的,宏定義展開(kāi)為3*(3+((A+1)*a))=3*(3+((7+1)*3))=81。

58.B解析:本題考查通過(guò)scanf函數(shù)輸入數(shù)據(jù)時(shí)的格式控制問(wèn)題。變量j的格式控制為“%2d”,即只接收輸入數(shù)據(jù)的前兩位,從第三位開(kāi)始直到空格之間的輸入都會(huì)被保存到變量y中,因?yàn)閥為浮點(diǎn)型數(shù)據(jù),所以輸出結(jié)果為選項(xiàng)B)。

59.C解析:func(b)調(diào)用函數(shù)func并將實(shí)參傳遞給形參x,x的值為2。a+=x=2+2=4,返回值為4。func(c)調(diào)用函數(shù)func并將實(shí)參傳遞給形參x,x的值為4。因?yàn)閍被定義為靜態(tài)的整型變量,當(dāng)?shù)谝淮握{(diào)用函數(shù)func返回后a存儲(chǔ)

溫馨提示

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