2021-2022年浙江省舟山市全國(guó)計(jì)算機(jī)等級(jí)考試C語(yǔ)言程序設(shè)計(jì)知識(shí)點(diǎn)匯總卷(含答案)_第1頁(yè)
2021-2022年浙江省舟山市全國(guó)計(jì)算機(jī)等級(jí)考試C語(yǔ)言程序設(shè)計(jì)知識(shí)點(diǎn)匯總卷(含答案)_第2頁(yè)
2021-2022年浙江省舟山市全國(guó)計(jì)算機(jī)等級(jí)考試C語(yǔ)言程序設(shè)計(jì)知識(shí)點(diǎn)匯總卷(含答案)_第3頁(yè)
2021-2022年浙江省舟山市全國(guó)計(jì)算機(jī)等級(jí)考試C語(yǔ)言程序設(shè)計(jì)知識(shí)點(diǎn)匯總卷(含答案)_第4頁(yè)
2021-2022年浙江省舟山市全國(guó)計(jì)算機(jī)等級(jí)考試C語(yǔ)言程序設(shè)計(jì)知識(shí)點(diǎn)匯總卷(含答案)_第5頁(yè)
已閱讀5頁(yè),還剩31頁(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ì)知識(shí)點(diǎn)匯總卷(含答案)學(xué)校:________班級(jí):________姓名:________考號(hào):________

一、單選題(20題)1.數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)是指______。

A.數(shù)據(jù)所占的存儲(chǔ)空間量B.數(shù)據(jù)的邏輯結(jié)構(gòu)在計(jì)算機(jī)中的表示C.數(shù)據(jù)在計(jì)算機(jī)中的順序存儲(chǔ)方式D.存儲(chǔ)在外存中的數(shù)據(jù)

2.有以下程序:#include<stdio.h>main(){intx=1,y=2,z=3;if(x>y)if(y<z) printf(“%d”,++z);else printf(“%d”,++y);printf(“%d\n”,x++);}程序的運(yùn)行結(jié)果是()。

A.1B.41C.2D.331

3.設(shè)有定義:“inta=1,b=2,C=3;”,以下語(yǔ)句中執(zhí)行效果與其他三個(gè)不同的是()。

A.if(a>b)c=a,a=b,b=C;

B.if(a>b){c=a,a=b,b=C;}

C.if(a>b)c=a;a=b;b=C;

D.if(a>b){c=a;a=b.b=C;)

4.設(shè)散列表長(zhǎng)m=14,散列函數(shù)H(K)=K%11,已知表中已有4個(gè)結(jié)點(diǎn):r(15)=4;r(38)=5;r(61)=6;r(84)=7,其他地址為空,如用二次探測(cè)再散列處理沖突,關(guān)鍵字為49的結(jié)點(diǎn)地址是_____。

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

5.高度為h的滿二叉樹(shù)的結(jié)點(diǎn)數(shù)是________個(gè)。

A.log2h+1B.2h+1C.2h-1D.2h-1

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

A.將函數(shù)內(nèi)的局部變量說(shuō)明為static存儲(chǔ)類是為了限制其他編譯單位的引用

B.—個(gè)變量作用域的開(kāi)始位置完全取決于變量定義語(yǔ)句的位置

C.全局變量可以在函數(shù)以外的任何部位進(jìn)行定義

D.局部變量的“生存期”只限于本次函數(shù)調(diào)用,因此不能將局部變量的運(yùn)算結(jié)果保存至下一次調(diào)用

7.插入和刪除只能在一端進(jìn)行線性表,稱為()。

A.隊(duì)列B.循環(huán)隊(duì)列C.棧D.循環(huán)棧

8.假定a為一個(gè)整型數(shù)組名,則元素a[4]的字節(jié)地址為()。

A.a+4B.a+8C.a+16D.a+32

9.設(shè)有如下定義和語(yǔ)句:FILE*fp;intdata[10],i,n;fp=fopen(“abc.txt”,“r”);文本文件abc.txt中的數(shù)據(jù)為58192765190,其中第1個(gè)數(shù)據(jù)代表的是它后面數(shù)據(jù)的個(gè)數(shù)。若文件已正確打開(kāi),則以下程序段中能將文件的最后5個(gè)數(shù)據(jù)依次正確讀入數(shù)組data[0]~data[4]中的是()。

A.fscanf(fp,“%d”,&n);for(i=0;i<n;i++)fscanf(fp,“%d”,&data[i]);

B.i=0;while(!feof(fp)){fscanf(fp,“%d”,&data[i]);i++;}

C.for(i=0;!feof(fp);i++)fscanf(fp,“%d”,&data[i]);

D.i=0;fscanf(fp,“%d”,&n);i++;while(!feof(fp)){fscanf(fp,“%d”,&data[i]);i++;}

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

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

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

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

D.C程序必須由一個(gè)或一個(gè)以上的函數(shù)組成

11.

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

A.宏替換不占用程序的運(yùn)行時(shí)間

B.預(yù)處理命令行必須位于源文件的開(kāi)頭

C.在源文件的一行上可以有多條預(yù)處理命令

D.宏名必須用大寫字母表示

13.以下程序執(zhí)行后sum的值是()。

A.15

B.14

C.不確定

D.0main(){inti,sum;for(i=1;i<6;i++)sum+=i;printf("%d\n",sum);}

14.以下說(shuō)法正確的是()。

A.數(shù)據(jù)項(xiàng)是數(shù)據(jù)的基本單位

B.數(shù)據(jù)元素是數(shù)據(jù)的最小單位

C.數(shù)據(jù)結(jié)構(gòu)是帶結(jié)構(gòu)的數(shù)據(jù)項(xiàng)的集合

D.一些表面上很不相同的數(shù)據(jù)可以有相同的邏輯結(jié)構(gòu)

15.

16.以下敘述正確的是

A.continue語(yǔ)句的作用是結(jié)束整個(gè)循環(huán)的執(zhí)行

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

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

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

17.將一棵有100個(gè)結(jié)點(diǎn)的完全二叉樹(shù)從上到下,從左到右依次對(duì)結(jié)點(diǎn)進(jìn)行編號(hào),根結(jié)點(diǎn)的編號(hào)為1,則編號(hào)為49的結(jié)點(diǎn)的左孩子的編號(hào)為_(kāi)_____。

A.98B.99C.50D.48

18.已知大寫字母A的ASCII碼是65,小寫字母a的ACSII碼是97。下列能將變量C中的大寫字母轉(zhuǎn)換為對(duì)應(yīng)小寫字母的語(yǔ)句是()。

A.c=(c-'A')%26+'A'B.c=c+32C.c=c-'A'+'A'D.c=('A'+C)%26-'a'

19.有如下定義#defineD2intx=5;floaty=3.83;charC='D';則下面選項(xiàng)中錯(cuò)誤的是

A.x++;B.y++;C.c++;D.D++;

20.以下選項(xiàng)中,能用作數(shù)據(jù)常量的是______。A.o115B.0118C.1.5e1.5D.115L

二、2.填空題(20題)21.以下程序中函數(shù)huiwen的功能是檢查一個(gè)字符串是否是回文,當(dāng)字符串是回文時(shí),函數(shù)返回字符串:yes!,否則函數(shù)返回字符串:no!,并在主函數(shù)中輸出。所謂回文即正向與反向的拼寫都一樣,例如:adgda,請(qǐng)?zhí)羁铡?/p>

#include<string.h>

char*huiwen(char*str)

{char*p1,*p2;inti,t=0;

p1=str;p2=();

for(i=0;i<=strlen(str)/2;i++)

if(*p1++!=*p2--){t=1;break;}

if(t==0)return("yes!");

elsereturn("no!");

}

main()

{charstr[50];

printf("Input:");scanf("%s",str);

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

}

22.在鏈表的運(yùn)算過(guò)程中,能夠使空表與非空表的運(yùn)算統(tǒng)一的結(jié)構(gòu)是______。

23.在軟件生命周期中,【】階段是花費(fèi)最多、持續(xù)時(shí)間最長(zhǎng)的階段。

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

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

main()

{floata,b,c;

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

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

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

}

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

#include<stdio.h>

main()

{inti;

for(i=′a′;i<′f′;i++,i++)printf("%c",i-′a′+′A′);

printf("\n");

}

26.若有以下程序

main()

{inta=4,b=3,c=5,t=0;

if(a<b)t=a;a=b;b=t;

if(a<c)t=a;a=c;c=t;

printf("%d%d%dln",a,b,c);

}

執(zhí)行后輸出結(jié)果為_(kāi)_____。

27.有以下程序

main()

{intn=0,m=1,x=2;

if(!n)x-=1;

if(m)x-=2;

if(x)x-=3;

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

}

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

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

intm=13;

intfun(intx,inty)

{intm=3;

return(x*y-m);

}

main()

{inta=7,b=5;

printf("%d\n",fun(a,b)/m);

}

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

main()

{

intarr[]={30,25,20,15,10,5},*p=arr;

p++;

printf("%d\n",*(p+3));

}

30.與十進(jìn)制數(shù)101等值的二進(jìn)制數(shù)為【】。

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

#defineMAX(a,b)(a>b?a:b)+1

main()

{inti=6,j=8,k;

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

}

32.若有以下定義,則不移動(dòng)指針p,且通過(guò)指針p引用值為98的數(shù)組元素的表達(dá)式是______。

intw[10]={23,54,10,33,47,98,72,80,61},*p=w;

33.一個(gè)類可以從直接或間接的祖先中繼承所有屬性和方法。采用這個(gè)方法提高了軟件的【】。

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

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

main()

{intj,a[]={1,2,3,4,5,6,7},i=5;

for(j=3;j>1;j--)

{switch(j)

{case1:

case2:P(a[i++]);break;

case3:P(a[--i]);

}

}

}

35.測(cè)試用例包括輸入值集和【】值集。

36.數(shù)據(jù)庫(kù)三級(jí)模式體系結(jié)構(gòu)的劃分,有利于保持?jǐn)?shù)據(jù)庫(kù)的【】。

37.若有以下程序

intf(intx,inty)

{return(y-x)*x;}

main()

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

d=f(f(3,4),f(3,5));

ptintf("%d\n",D);

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

38.軟件結(jié)構(gòu)是以【】為基礎(chǔ)而組成的一種控制層次結(jié)構(gòu)。

39.與結(jié)構(gòu)化需求分析方法相對(duì)應(yīng)的是【】方法。

40.下面程序的運(yùn)行結(jié)果是【】。

main()

{unsigneda=0112,x;

x=a>>3;

printf("x=%o",x);

}

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

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

42.以下各組選項(xiàng)中,均能正確定義二維實(shí)型數(shù)組a的選項(xiàng)是()

A.floata[3][4];floata[][4];floata[3][]={{1},{0}};

B.floata(3,4);floata[3][4];floata[][]={{0},{0}};

C.floata[3][4]staticfloata[][4]={{0},{0}};

D.floata[3][4];floata[3][];

43.fwrite函數(shù)的一般調(diào)用形式是()

A.fwrite(buffer,count,fp,size);

B.fwrite(fp,size,count,buffer);

C.fwrite(fp,count,size,buffer);

D.fwrite(buffer,size,count,fp);

44.下列程序的輸出結(jié)果是()。point(char*pt);main(){charb[4]={'a','c','s','f},*pt=b;pt=point(pt);printf("%c\n",*pt);}point(char*p){p+=3;returnp;}

A.sB.cC.fD.a

45.下列判斷正確的是()。

A.chara="ABCD";等價(jià)于char*a;*a="ABCD";

B.charstr[10]=ABCD"};等價(jià)于charstr[10];str[]={"ABCD"};

C.char*s="ABCD";等價(jià)于chars;*s="ABCD";

D.charc[5]="ABCD",d[5]="ABCD";等價(jià)于charc[5]=d[5]="ABCD";

46.設(shè)有定義:intnl=0,n2,*p=&n2,*q=&n1;,下列賦值語(yǔ)句中與n2=n1;語(yǔ)句等價(jià)的是()。

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

47.以下不能定義為用戶標(biāo)識(shí)符的是()。

A.scanfB.VoidC.3comD.int

48.有以下程序:voidfun(char*c,intd){*c=*c+1;d=d+1;printf("%c,%c,",*c,d);}main(){chara='A',b='a';fun(&b,a);printf("%c,%c\n",a,b);}程序運(yùn)行后的輸出結(jié)果是()。

A.B,a,B,aB.a,B,a,BC.A,b,A,bD.b,B,A,b

49.以下合法的字符型常量是

A.'\x13'B.'\081'C.'65'D.\n

50.已知函數(shù)的調(diào)用形式:fread(buf,size,count,fp),參數(shù)buf的含義是

A.一個(gè)整型變量,代表要讀入的數(shù)據(jù)項(xiàng)總數(shù)

B.一個(gè)文件指針,指向要讀的文件

C.一個(gè)指針,指向要讀入數(shù)據(jù)的存放地址

D.一個(gè)存儲(chǔ)區(qū),存放要讀的數(shù)據(jù)項(xiàng)

51.判斷char型變量c1是否為小寫字母的正確表達(dá)式為()。

A.'a'<=c1<='z'

B.(c1>=A)&&(c1<=z)

C.('a'>=c1||('z'<=c1)

D.(c1>='a')&&(c1<='z')

52.在下列敘述中,正確的一條是______。

A.對(duì)while循環(huán)、do-while循環(huán)和for循環(huán),可以用continue語(yǔ)句跳出循環(huán)

B.表達(dá)式1+2<<3和sizeof(3.8)的結(jié)果分別為24和8

C.函數(shù)fputc(c,stdout)與putchar(c)的結(jié)果相同

D.在有參函數(shù)中,定義函數(shù)中指定的形參變量在程序一開(kāi)始執(zhí)行時(shí)便分配內(nèi)存單元

53.有以下程序#include<stdio.h>main(){inty=9;for(;y>0;y--)if(y%3==0)printf("%d",--y);}程序的運(yùn)行結(jié)糶是()。

A.741B.963C.852D.875421

54.下列說(shuō)法正確的是()。

A.auto和register將聲明的對(duì)象說(shuō)明為自動(dòng)存儲(chǔ)類對(duì)象,這些對(duì)象可用在函數(shù)中或函數(shù)外

B.將變量其定義為static類型,則其初值默認(rèn)為隨機(jī)值

C.typedef說(shuō)明符并不會(huì)為對(duì)象預(yù)留存留空間

D.如果一個(gè)對(duì)象被聲明為register,則塒它應(yīng)用一元運(yùn)算符&,意征取得其存儲(chǔ)的地址

55.若有下列定義,則對(duì)a數(shù)組元素地址的正確引用是()。

inta[5],*p=a;

A.p+5B.*a+1C.&a+1D.&a[0]

56.軟盤處于寫保護(hù)狀態(tài)時(shí),其中記錄的信息______。

A.不可能丟失

B.不能被擦除,但能追加新的信息

C.不能通過(guò)寫磁盤操作被更新

D.不能以常規(guī)方式擦除,但可以通過(guò)操作系統(tǒng)的格式化功能擦除

57.若各選項(xiàng)中所用變量已正確定義,fun()函數(shù)中通過(guò)return語(yǔ)句返回一個(gè)函數(shù)值,下列選項(xiàng)中錯(cuò)誤的程序是()。

A.main()……x=fun(2,10);……}floatfun(inta,intb){……}

B.floatfun(inta,intb){……}main(){……x=fun(i,j);……}

C.floatfun(int,int);main(){……x=fun(2,10);……}floatfun(inta,intb){……}

D.main(){floatfun(intI,intj);……x=fun(i,j);……}floatfun(inta,intB){……}

58.有以下程序

voidf(int*q)

{inti=0;

for(;i<5;i++)(*q)++;

}

main()

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

f(a);

for(i=0;i<5;i++)printf("%d,",a[i]);

}

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

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

59.數(shù)據(jù)庫(kù)設(shè)計(jì)的根本目標(biāo)是要解決()。

A.數(shù)據(jù)共享問(wèn)題B.數(shù)據(jù)安全問(wèn)題C.大量數(shù)據(jù)存儲(chǔ)問(wèn)題D.簡(jiǎn)化數(shù)據(jù)維護(hù)

60.若有以下定義和語(yǔ)句;doubler=99,*p=7;*p=r;則以下正確的敘述是()

A.兩處的*p含義相同,都說(shuō)明給指針變量P賦值3

B.在“doubler=99,*p=7;*p=r;”中,把r的地址賦給了p所指的存儲(chǔ)單元

C.語(yǔ)句“*p=r;”把變量r的值賦給指針變量p

D.語(yǔ)句“*p=r;”把變量r的值放回P中

四、選擇題(20題)61.有以下定義語(yǔ)句,編譯時(shí)會(huì)出現(xiàn)編譯錯(cuò)誤的是()。

A.chara=’\x2d’;B.chara=。\n。;C.chara=…a;D.chara=”aa”:

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

則由關(guān)系R和s得到關(guān)系T的操作是()。

A.自然連接B.差C.交D.并

63.有以下程序:

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

A.16B.1C.32D.0

64.以下關(guān)于typedef的敘述錯(cuò)誤的是()。

A.用typedef可以增加新類型

B.typedef只是將已存在的類型用一個(gè)新的名字來(lái)代替

C.用typedef可以為各種類型說(shuō)明一個(gè)新名,但不能用來(lái)為變量說(shuō)明一個(gè)新名

D.用typedef為類型說(shuō)明一個(gè)新名,通常可以增加程序的可讀性

65.有以下程序段#include<stdio.h>main(){...while(getchar()!=\n);...}以下敘述中正確的是()。A.此while語(yǔ)句將無(wú)限循環(huán)

B.getchar()不可以出現(xiàn)在while語(yǔ)句的條件表達(dá)式中

C.當(dāng)執(zhí)行此while語(yǔ)句時(shí),只有按回車鍵程序才能繼續(xù)執(zhí)行

D.當(dāng)執(zhí)行此while語(yǔ)句時(shí),按任意鍵程序就能繼續(xù)執(zhí)行

66.若有定義語(yǔ)句:

67.

68.

69.結(jié)構(gòu)化程序設(shè)計(jì)的主要特征是()。

A)封裝和數(shù)據(jù)隱藏B)集成和重用

C)數(shù)據(jù)和處理數(shù)據(jù)的過(guò)程分離D)把數(shù)據(jù)和處理數(shù)據(jù)的過(guò)程看成一個(gè)整體

70.

71.在深度為7的滿二叉樹(shù)中,葉子結(jié)點(diǎn)的個(gè)數(shù)為_(kāi)_____。A.32B.31C.64D.63

72.若變量已正確定義并賦值,以下符合C++語(yǔ)言語(yǔ)法的表達(dá)式是()。

A.a:=b+1B.a=b=c+2C.int18.5%3D.a=a+7=c+b

73.

74.

75.設(shè)有定義:“struct{charmarkp[l2];intnuml;doublenum2;}tl,t2;”,若變量均已正確賦初值,則以下語(yǔ)句中錯(cuò)誤的是()。

A.t1=t2;

B.t2.num1=tl.numl;

C.t2.mark=tl.mark;

D.t2.num2=tl.num2;

76.若有“doublea;”,則正確的輸入語(yǔ)句是()。A.A.scanf("%1f",a);

B.scanf("%f",&a);

C.scanf("%1f",&a);

D.scanf("1e",&a);

77.以下選項(xiàng)中表示一個(gè)合法的常量是(說(shuō)明:符號(hào)口表示空格)()。

A.9口9口9B.0XabC.123E0.2D.2.7e

78.

79.

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("\nPleaseenteracharacterstring:");gets(str);printf("\n\nBeforesorting:\n%s",str);proc(str);printf("\nAftersortingdecendingly:\n%s",str);}

六、程序設(shè)計(jì)題(1題)82.某學(xué)生的記錄由學(xué)號(hào)、8門課程成績(jī)和平均分組成,學(xué)號(hào)和8門課程的成績(jī)已在主函數(shù)中給出,請(qǐng)編寫函數(shù)fun,其功能是:求出該學(xué)生的平均分,并放入記錄的ave成員中。

例如,學(xué)生的成績(jī)是:85.5,76,69.5,85,91,72,64.5,87.5,則他的平均分應(yīng)為78.875。注意:部分源程序在文件PROGl.C中。

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

參考答案

1.B解析:數(shù)據(jù)元素在計(jì)算機(jī)存儲(chǔ)空間中的位置關(guān)系與它們的邏輯關(guān)系不一定是相同的,而且一般不可能相同。數(shù)據(jù)的邏輯結(jié)構(gòu)在計(jì)算機(jī)存儲(chǔ)空間中的存放形式稱為數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu),也稱數(shù)據(jù)的物理結(jié)構(gòu)。

2.Aelse總是與離它最近的if配對(duì),所以當(dāng)?shù)?個(gè)if語(yǔ)句的判斷條件不成立時(shí),不再執(zhí)行第2個(gè)if語(yǔ)句以及與第2個(gè)if語(yǔ)句配對(duì)的else語(yǔ)句,而是直接執(zhí)行“x++”,輸出1。故本題答案為A選項(xiàng)。

3.C本題判斷結(jié)果。選項(xiàng)A中,如果(a>b),則執(zhí)行“c=a,a=b,b=c”這個(gè)語(yǔ)句(注意分號(hào)的位置,如果條件成立,將會(huì)執(zhí)行第一個(gè)分號(hào)前的語(yǔ)句),顯然if不成立,則a,b,C原樣輸出。選項(xiàng)B和選項(xiàng)D是同理,而選項(xiàng)C因?yàn)闂l件不成立,則不執(zhí)行第一條語(yǔ)句“c=a”,接著執(zhí)行“a=b”,將b的值賦給a,a的值為2;“b=C”,b的值為3,C的值原樣輸出,結(jié)果為2,3,3。

4.D

5.C

6.A將函數(shù)內(nèi)的局部變量說(shuō)明為static存儲(chǔ)類,第1次調(diào)用該函數(shù)時(shí)才對(duì)其初始化,后續(xù)調(diào)用時(shí)使用上一次調(diào)用結(jié)束后的值;函數(shù)體內(nèi)的局部變量無(wú)論是否聲明為stat\x1fic,外部編譯單位都不能引用,選項(xiàng)A錯(cuò)誤,其他選項(xiàng)正確。本題答案為A選項(xiàng)。

7.C

8.C

9.A由題意可知,文件abc.txt中存放了6個(gè)整數(shù)。其中第1個(gè)表示后續(xù)數(shù)據(jù)的個(gè)數(shù)。要將最后5個(gè)數(shù)據(jù)讀入數(shù)組data中,需要讀取數(shù)據(jù)的個(gè)數(shù)為5,所以首先調(diào)用fscanf函數(shù),將5讀入整型變量n中;接著通過(guò)for循環(huán),i分別取值0~n-1,調(diào)用fscanf函數(shù)將n個(gè)整數(shù)讀入data[0]~data[n-1]中。故本題答案為A選項(xiàng)。

10.A函數(shù)參數(shù)傳遞是個(gè)不可逆的過(guò)程,形參不會(huì)把值傳回實(shí)參,所以A)選項(xiàng)(24)[答案]A)[解析]c的值為a乘以b的值,為3。所以答案選擇A)。

11.D

12.A宏替換是在編譯階段前的預(yù)處理階段,對(duì)程序中的宏完成文本替換,因此宏替換不占用運(yùn)行時(shí)間,選項(xiàng)A正確;預(yù)處理命令行無(wú)須在源文件的開(kāi)頭,它可以出現(xiàn)在程序的任何一行的開(kāi)始部位,其作用一直持續(xù)到源文件的末尾,選項(xiàng)B錯(cuò)誤;在源文件的一行上至多只能有一條預(yù)處理命令,選項(xiàng)C錯(cuò)誤;宏名通常使用大寫字母表示,這并不是語(yǔ)法規(guī)定,只是一種習(xí)慣,選項(xiàng)D錯(cuò)誤。本題答案為A選項(xiàng)。

13.C解析:C語(yǔ)言中,如果對(duì)定義的變量沒(méi)有賦初值,那么在后面使用時(shí),變量的值是不確定的。所以,本程序中,沒(méi)有對(duì)sum賦初值,它的值不確定。在執(zhí)行了for循環(huán)語(yǔ)句后,sum的值也不確定的,所以,4個(gè)選項(xiàng)中選項(xiàng)C符合題意。

14.D

15.D

16.B解析:continue是結(jié)束本次循環(huán),直接進(jìn)入到下次循環(huán)中,break用于循環(huán)語(yǔ)句中的作用是直接跳出本層循環(huán),能從多層循環(huán)中退出的語(yǔ)句除了goto語(yǔ)句,exit,return等語(yǔ)句也能直接跳出多層循環(huán)。注意:continue和break語(yǔ)句在while語(yǔ)句中的作用。

17.A

18.B根據(jù)ASCII碼可知大寫字符A與小寫字符a的ASCIl碼相差32,而D中應(yīng)該是加上'a',選項(xiàng)A和C左側(cè)的表達(dá)式都是大寫字符C與大寫字符A的差與'a'的ASCIl代碼的和就是小寫字符c的ASCII代碼。

19.D解析:C語(yǔ)言中++運(yùn)算符的對(duì)象可以是整型、實(shí)型和字符型,但不可是常量,本題中D為常量。

20.D在C語(yǔ)言中,有整型常量、實(shí)型常量、字符常量和字符串常量等類型。整型常量和實(shí)型常量又稱數(shù)值型常量?;菊统A恐荒苡脭?shù)字表示,不帶小數(shù)點(diǎn),例如12、-1和0等,在VC6.0中可以在整型常量的后面加—個(gè)字母l(L的小寫)或L;實(shí)型常量必須用帶小數(shù)點(diǎn)的數(shù)表示,例如3.14159、-2.71828、0.0等;選項(xiàng)A中字母o不符合要求,選頂B中超出八進(jìn)制的范圍,選項(xiàng)C中e后面的不為整數(shù),因此選頂D是正確的。

21.str+strlen(str)-1str+strlen(str)-1解析:檢查一個(gè)字符串是否是回文,函數(shù)huiwen中定義了兩個(gè)字符指針,pl=str指向字符串頭,p2應(yīng)該指向字符串尾,因此該處應(yīng)該填入:str+strlen(str)-1或&str[strlen(str)-1]。

22.循環(huán)鏈表循環(huán)鏈表解析:在循環(huán)鏈表中,由于設(shè)置了一個(gè)頭結(jié)點(diǎn),因此在任何情況下,循環(huán)鏈表中至少有一個(gè)結(jié)點(diǎn)存在,從而使空表與非空表的運(yùn)算統(tǒng)一。

23.維護(hù)維護(hù)

24.a+b>c&&a+c>b&&b+c>aa+b>c&&a+c>b&&b+c>a解析:在邏輯表達(dá)式中,如果要同時(shí)滿足幾個(gè)條件可以使用邏輯與運(yùn)算符“&&”,故本題的答案應(yīng)該為:a+b>c&&a+c>b&&b+c>a或其他等價(jià)形式。

25.ACEACE解析:在本題中,for循環(huán)體每執(zhí)行完一次,變量i的值自加兩次。i的初值為\'a\',執(zhí)行一次循環(huán)后變?yōu)閈'c\',之后再變成\'e\',當(dāng)其變?yōu)閈'g\'時(shí),循環(huán)條件若不滿足,循環(huán)終止,故本題共輸出3個(gè)字符。表達(dá)式'i-\'a\'+\ue008\'A\'\ue009'即表示輸出i對(duì)應(yīng)的大寫字母,結(jié)果為ACE。

26.503503解析:此處需注意的是:如果if后面的條件為真,只執(zhí)行其后的一條語(yǔ)句或一條復(fù)合語(yǔ)句,如果if后面的條件為假,只執(zhí)行else后面的一條語(yǔ)句或一條復(fù)合語(yǔ)句。先判斷表達(dá)式“a<b”為假,不執(zhí)行“t=a”,但執(zhí)行“a=b;b=t;”,s的值為3,b的值為0。在判斷表達(dá)式“a<c”,值為真,所以執(zhí)行后面的3條語(yǔ)句“t=a;a=c;c=t”,結(jié)果a的值為5,c的值為3,所以最后輸出的結(jié)果為5、0和3。

27.-4-4解析:if…else構(gòu)造了一種二路分支選擇,是一種最基本的選擇結(jié)構(gòu),if(條件)S1(if分結(jié)構(gòu))elseS2(else分結(jié)構(gòu)),它的工作過(guò)程是:先對(duì)條件表達(dá)式進(jìn)行判斷,若為真(成立,值為非零),就執(zhí)行if分結(jié)構(gòu)(S1);否則(不成立,值為0),就執(zhí)行else分結(jié)構(gòu)(S2)。本題中,n=0,可以判斷(!n)為真,執(zhí)行x=x-1=2-1=1;m=1,可以判斷(m)為真,執(zhí)行x=x-2=1-2=-1進(jìn)而可以判斷(x)為真,執(zhí)行x=x-3=-1-3=-4。

28.22解析:本題變量m既是外部變量(值是13),又是fun函數(shù)的局部變量(值為3)。函數(shù)fun(x*y-m)的值為7*5-3=32,在main函數(shù)中,fun(a,b)/m中的m應(yīng)取外部變量的值13,因此輸出2。

29.1010解析:整型指針最初被賦的值是數(shù)組arr的頭指針,即指向數(shù)組的第一個(gè)元素30,p++后,指針指向數(shù)組的下一個(gè)元素,即*p=arr[1]=25,在執(zhí)行*(p+3)時(shí),則相當(dāng)于a[1+3],即10。因此,輸出應(yīng)為100。

30.1100101

31.99解析:本題考查宏定義與三目運(yùn)算符的綜合用法,宏定義是原樣替換,本題中,如果a>b成立,則a+1的值為整個(gè)表達(dá)式的值,否則為b+1的值為整個(gè)表達(dá)式的值,(應(yīng)注意后面的加1)。

32.*(p+5)或p[5]*(p+5)或p[5]

33.可重用性繼承的優(yōu)點(diǎn):相似的對(duì)象可以共享程序代碼和數(shù)據(jù)結(jié)構(gòu),從而大大減少了程序中的冗余,提高軟件的可重用性。

34.5555解析:分析程序執(zhí)行過(guò)程,第一次循環(huán)時(shí),i=3,i=5,因?yàn)閟witch(3),所以執(zhí)行case3,調(diào)用P(a[--i])=P(a[4])=P(5),輸出5:第二次循環(huán)時(shí),j=2,i=4,因?yàn)閟witch(2),所以執(zhí)行case2,調(diào)用P(a[i++]):P(a[4])=P(5),輸出5,之后i自加等于5。

35.輸出輸出解析:測(cè)試用例曲測(cè)試輸入數(shù)據(jù)(輸入值集)和與之對(duì)應(yīng)的預(yù)期輸出結(jié)果(輸出值集)兩部分組成。

36.數(shù)據(jù)獨(dú)立性數(shù)據(jù)獨(dú)立性解析:數(shù)據(jù)庫(kù)的三級(jí)模式體系結(jié)構(gòu)把數(shù)據(jù)的組織管理工作進(jìn)行了劃分,把數(shù)據(jù)的具體組織留給DBMS管理,使用戶能邏輯地、抽象地處理數(shù)據(jù),而不必關(guān)心數(shù)據(jù)在計(jì)算機(jī)中的具體表示方式與存儲(chǔ)方式,保證了數(shù)據(jù)的獨(dú)立性。

37.99解析:在主函數(shù)中函數(shù)f(f(3,4),f(3,5))的返回值賦給d。函數(shù)的第一個(gè)參數(shù)為f(3,4)的返回值,函數(shù)f(9,4)返回值為(4-3)*3=3,f(3,5)返回值為(5-3)*3=6,那么函數(shù)f(f(3,4),f(3,5))等價(jià)于函數(shù)f(3,6)其返回值為(6-3)*3=9。因此d被賦值為9;所以輸出9。

38.模塊模塊

39.結(jié)構(gòu)化設(shè)計(jì)結(jié)構(gòu)化設(shè)計(jì)解析:與結(jié)構(gòu)化需求分析方法相對(duì)應(yīng)的是結(jié)構(gòu)化設(shè)計(jì)方法。結(jié)構(gòu)化設(shè)計(jì)就是采用最佳的可能方法設(shè)計(jì)系統(tǒng)的各個(gè)組成部分以及各個(gè)成分之間的內(nèi)部聯(lián)系的技術(shù)。

40.x=11x=11解析:在對(duì)無(wú)符號(hào)數(shù)的右移是高位補(bǔ)0。

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

42.C

43.D

44.C解析:本題考查函數(shù)調(diào)用時(shí)的參數(shù)傳遞。函數(shù)point的參數(shù)為字符指針,當(dāng)執(zhí)行函數(shù)point時(shí),剛開(kāi)始指針p指向“a”,經(jīng)過(guò)+3操作后,指針p指向“f”,所以最后的輸出結(jié)果是f。

45.D解析:a='ABCD'書寫錯(cuò)誤,因?yàn)椤埃健弊筮叢荒艹霈F(xiàn)常量;數(shù)組名s是代表s數(shù)組首地址的地址常量,而不是變量;字符串只有在定義時(shí)維數(shù)可以省略。

46.A解析:在定義指針變量p和q時(shí),分別把變量n2和n1的地址賦給了指針變量p和q,所以*p和*q中內(nèi)容就分別是變量n2和n1的值,所以語(yǔ)句*p=*q與語(yǔ)句n2=n1等價(jià)。因此選項(xiàng)A正確。

47.D解析:標(biāo)識(shí)符是C語(yǔ)言中用來(lái)表示變量名、數(shù)組名、函數(shù)名、指針名、結(jié)構(gòu)名、聯(lián)合名、枚舉常數(shù)名、用戶定義的數(shù)據(jù)類型名、語(yǔ)句標(biāo)號(hào)等用途的字符序列。標(biāo)識(shí)符由1~32個(gè)字符組成,第一個(gè)字符必須是字母或下劃線,后面的字符可以是字母、數(shù)字或下劃線。標(biāo)識(shí)符不能與C關(guān)鍵字相同,并區(qū)分大小寫。選項(xiàng)D)錯(cuò)誤,因?yàn)閕nt是C語(yǔ)言中的關(guān)鍵字。

48.D解析:程序中定義了兩個(gè)字符型變量'a'和'b',并分別賦初值為'A'和'a',然后調(diào)用函數(shù)fun(),將b的地址和a值作為實(shí)參。在函數(shù)fun()中第一個(gè)參數(shù)是傳遞地址,故在調(diào)用函數(shù)fun()中對(duì)參數(shù)做的修改(即將b值加一)將影響字符型變量的值(變?yōu)閎),函數(shù)fun()第二個(gè)參數(shù)是傳值的,故在調(diào)用函數(shù)fun()對(duì)第二個(gè)參數(shù)做的修改不影響字符型變量a(即'a'的值仍為'A'),所以在fun()函數(shù)中輸出的d為b,B,接著在主函數(shù)中,輸出a,b,然后退出fun()函數(shù),接著執(zhí)行后面的語(yǔ)句,輸出A,b。所以最后輸出為b,B,A,b。4個(gè)選項(xiàng)中D正確。

49.A解析:C語(yǔ)言的字符常量是用單引號(hào)(即撇號(hào))括起來(lái)的一個(gè)字符。除此之外,在C語(yǔ)言中還允許用一個(gè)“\\”開(kāi)頭的字符序列來(lái)表示字符常量。其中,形式“\\ddd'表示1到3位8進(jìn)制數(shù)所代表的字符;形式“\\xhh'表示1到2位16進(jìn)制數(shù)所代表的字符。在本題中,\'\\x13\'表示回車符,是一個(gè)字符常量;\'\\081\'用8進(jìn)制數(shù)所代表的字符,但形式不正確,因?yàn)?進(jìn)制數(shù)所代表的字符中不會(huì)出現(xiàn)數(shù)字“8”;\'5\'不是一個(gè)字符,而是一個(gè)十進(jìn)制數(shù)字;\'\\n\'是用雙引號(hào)括起來(lái)的一個(gè)字符,表示一個(gè)字符串,而不是字符常量。

50.C本題主要考查成塊讀函數(shù)fread。在C語(yǔ)言中,提供了一種成塊的讀寫方式來(lái)操作文件,使其數(shù)組或結(jié)構(gòu)體等類型可以進(jìn)行一次性讀寫。成塊讀文件函數(shù)的調(diào)用形式為:

intfread(void*buf,intsize,intcount,FILE*stream)

fread()函數(shù)的意思是從stream指向的流文件讀取count(字段數(shù))個(gè)字段,每個(gè)字段為size(字段長(zhǎng)度)個(gè)字符長(zhǎng),并把它們放到buf(緩沖區(qū))指向的字符數(shù)組中,然后進(jìn)行讀取操作。fread()函數(shù)返回實(shí)際已讀取的字段數(shù)。

從上面的分析我們可以知道,參數(shù)buf是一個(gè)無(wú)返回類型的指針,指向要讀入數(shù)據(jù)的存放地址,它其實(shí)是一個(gè)緩沖區(qū)。因此本題正確的答案選C。

51.D

52.C解析:選項(xiàng)A錯(cuò)誤,continue語(yǔ)句只能結(jié)束本次循環(huán),不能結(jié)束整個(gè)循環(huán)。要跳出循環(huán)可用break語(yǔ)句。選項(xiàng)B錯(cuò)誤,表達(dá)式1+2<<3等價(jià)于(1+2)<<3,即0000000000000011向右移3位,移后變?yōu)?000000000000000,即0。選項(xiàng)C正確,函數(shù)fputc的操作對(duì)象是文件,而putchar是直接向標(biāo)準(zhǔn)輸出設(shè)備輸出字符。標(biāo)準(zhǔn)輸出設(shè)備是一個(gè)特殊文件,即設(shè)備文件,文件型指針指向標(biāo)準(zhǔn)輸出設(shè)備,因而功能相同。選項(xiàng)D錯(cuò)誤,在定義函數(shù)中指定的形參變量,在未出現(xiàn)函數(shù)調(diào)用時(shí),它們并不占內(nèi)存中的存儲(chǔ)單元。

53.C解析:y的初值為9,所以在for循環(huán)中,當(dāng)y的值為9、6或3時(shí),if語(yǔ)句的條件成立,執(zhí)行輸出語(yǔ)句,輸出表達(dá)式--y的值。因?yàn)樽詼p符號(hào)在y的前面,所以首先y自減1,然后再輸出y的值,故輸出結(jié)果為852。

54.C解析:①這種聲明也具有定義的作用,并將預(yù)留存儲(chǔ)空間。register說(shuō)明的聲明等價(jià)于auto說(shuō)明的聲明,所不同的是,register暗示了聲明的對(duì)象將被頻繁地訪問(wèn),將盡可能存儲(chǔ)在寄存器中。如果一個(gè)對(duì)象被聲明為register,則將不能對(duì)它應(yīng)用一元運(yùn)算符&,聲明為register但實(shí)際按照auto類型處理的對(duì)象的地址進(jìn)行計(jì)算是非法的。②static將聲明的對(duì)象說(shuō)明為靜態(tài)存儲(chǔ)類。這種對(duì)象可以用在函數(shù)內(nèi)部或者函數(shù)外部。在函數(shù)內(nèi)部,該說(shuō)明符將引起存儲(chǔ)空間的分配,具有定義的作用。在函數(shù)外部,該說(shuō)明符將引起聲明對(duì)象為

55.D解析:本題考查如何引用數(shù)組元素的地址。

選項(xiàng)A)中,p+5引用的是a[5]的地址,而數(shù)組a只有5個(gè)元素,即a[0]、a[1]、a[2];a[3]、a[4],所以引用錯(cuò)誤;選項(xiàng)B)中,*a+1指的是將數(shù)組a的第一個(gè)元素加1;選項(xiàng)C)中,這種引用方式錯(cuò)誤;選項(xiàng)D)中,&a[0]引用的是數(shù)組的首地址。

56.C

57.A解析:C語(yǔ)言規(guī)定,函數(shù)必須先定義,后調(diào)用(函數(shù)的返回值類型為int或char時(shí)除外)。在選項(xiàng)A)中,調(diào)用的子函數(shù)在調(diào)用后面定義,所以不正確。在選項(xiàng)B)、C)中,被調(diào)用函數(shù)在主調(diào)函數(shù)之前定義,再在主函數(shù)中調(diào)用,所以是正確的:在選項(xiàng)D)中,在主調(diào)函數(shù)中先對(duì)于函數(shù)floatfun(inti,intj)進(jìn)行了定義,然后進(jìn)行調(diào)用。

58.B解析:調(diào)用函數(shù)f()時(shí),將數(shù)組a的地址傳遞給了指針q,

溫馨提示

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