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è),還剩119頁(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.若要求從鍵盤(pán)讀入含有空格字符的字符串,應(yīng)使用函數(shù)A.getc()B.gets()C.getchar()D.scanf()

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

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

3.對(duì)長(zhǎng)度為n的無(wú)序線性表進(jìn)行順序查找,則查找成功、不成功時(shí)的平均數(shù)據(jù)比較次數(shù)分別為()。

A.n/2,nB.n+1/2,n-1C.n+1/2,nD.n-1/2,n-1

4.下列關(guān)于C語(yǔ)言文件的敘述中正確的是()。

A.文件由一系列數(shù)據(jù)依次排列組成,只能構(gòu)成二進(jìn)制文件

B.文件由結(jié)構(gòu)序列組成,可以構(gòu)成二進(jìn)制文件或文本文件

C.文件由數(shù)據(jù)序列組成,可以構(gòu)成二進(jìn)制文件或文本文件

D.文件由字符序列組成,其類(lèi)型只能是文本文件

5.有以下程序:

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

A.0987654321

B.4321098765

C.5678901234

D.0987651234

6.設(shè)有定義:charc[]=“Cc”;FILE*fp;且fp指向以“w”的方式成功打開(kāi)的文件,若要將c中的兩個(gè)字符寫(xiě)入文件,且每個(gè)字符占一行,則下面的選項(xiàng)中正確的是()。

A.fprintf(fp,“%c\n%c\n”,c[0],c[1]);

B.fprintf(fp,“%c\r\n%c\r\n”,c[0],c[1]);

C.fprintf(fp,“%c%c”,c[0],c[1]);

D.fprintf(fp,“%s\n”,c);

7.人們提出了用______的原理來(lái)設(shè)計(jì)軟件,這就是軟件工程學(xué)誕生的基礎(chǔ)。

A.計(jì)算機(jī)科學(xué)B.數(shù)學(xué)C.工程學(xué)D.運(yùn)籌學(xué)

8.以下程序的輸出結(jié)果是______。charcchar(charch){if(ch>='A'&&ch<='z')ch=ch-'A'+'a';returnch;}main(){chars[]="ABC+abc=defDEF",*p=s;while(*p){*p=cchar(*p);p++;}printf("%s\n",s);}

A.abe+ABC=DEFdef

B.abc+abe=defdef

C.abcaABCDEFdef

D.abcabcdefdef

9.下面程序的輸出結(jié)果是

#include<stdio.h>

main()

{inta[]={1,2,3,4,5,6,7,8,9,0},*p;

p=a;

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

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

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

A.a是實(shí)型變量,C允許進(jìn)行賦值a=10,但不可以這樣說(shuō):實(shí)型變量中允許存放整型值

B.在賦值表達(dá)式中,賦值號(hào)左邊既可以是變量也可以是任意表達(dá)式

C.執(zhí)行表達(dá)式a=b后,在內(nèi)存中a和b存儲(chǔ)單元中的原有值都將被改變,a的值已由原值改變?yōu)閎的值,b的值由原值變?yōu)?

D.已有a=3,b=5,當(dāng)執(zhí)行了表達(dá)式a=b,b=a之后,使a中的值為5,b中的值為3

11.交換兩個(gè)變量的值,不允許用臨時(shí)變量,應(yīng)該使用下列()位運(yùn)算符。

A.&.B.^C.||D.~

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

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

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

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

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

13.有以下程序

#include<stdio.h>

main()

{ints;

scanf(“%d”,&s);

while(s>0)

{switch(s)

{case1;printf(“%d”,s+5);

case2:printf(“%d”,s+4);break;

case3:printf(“%d”。s+3);

default:printf(“%d”,s+1);break;

}

seanf(“%d”,&s);

}

}

運(yùn)行時(shí),若輸入12345O<回車(chē)>,則輸出結(jié)果是A.6566456B.66656C.66666D.6666656

14.設(shè)有定義“inta=1,b=2,c=3;”,以下語(yǔ)句中執(zhí)行效果與其他3個(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;}

15.設(shè)一組初始記錄關(guān)鍵字序列為(Q,H,C,Y,P,A,M,S,R,D,F,X),則按字母升序的第一趟冒泡排序結(jié)束后的結(jié)果是()

A.F,H,C,D,P,A,M,Q,R,S,Y,X

B.P,A,C,S,Q,D,F,X,R,H,M,Y

C.A,D,C,R,F,Q,M,S,Y,P,H,X

D.H,C,Q,P,A,M,S,R,D,F,X,Y

16.對(duì)包含N個(gè)元素的散列表進(jìn)行檢索,平均檢索長(zhǎng)度________

A.為o(log2N)B.為o(N)C.不直接依賴于ND.上述三者都不是

17.

18.有以下程序:#include<stdio.h>voidfun(intn){if(n/2)fun(n/2);printf(“%d”,n%2);}main(){fun(10);printf(“\n”);}程序運(yùn)行后的輸出結(jié)果是()。

A.0101B.1000C.1100D.1010

19.在含有n個(gè)項(xiàng)點(diǎn)有e條邊的無(wú)向圖的鄰接矩陣中,零元素的個(gè)數(shù)為_(kāi)_______。

A.eB.2e9C.n2-eD.n2-2e

20.樹(shù)最適合用來(lái)表示()。

A.有序數(shù)據(jù)元素B.無(wú)序數(shù)據(jù)元素C.元素之間具有分層次關(guān)系的數(shù)據(jù)D.元素間無(wú)聯(lián)系的數(shù)據(jù)

二、2.填空題(20題)21.耦合和內(nèi)聚是評(píng)價(jià)模塊獨(dú)立性的兩個(gè)主要標(biāo)準(zhǔn),其中______反映了模塊內(nèi)各成分之間的聯(lián)系。

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

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

2223445666677899101010

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

2345678910。

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

#include<stdio.h>

#defineN80

intfun(inta[],intn)

{inti,j=1;

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

if(a[j-1]【】a[i])

a[j++]=a[i];

【】;

}

main()

{inta[N]={2,2,2,3,4,4,5,6,6,6,6,7,7,8,9,9,10,10,10},i,n=19;

printf("Theoriginaldata:\n");

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

n=fun(a,n);

printf("\nThedataafterdeleted:\n");

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

}

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

#include<stdio.h>

intt(intx,inty,intcp,intdp)

{cp=x*x+y*y;

dp=x*x-y*y;

}

main()

{inta=1,b=8,c=7,d=9;

t(a,b,c,d);

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

}

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

#include<stdio.h>

main()

{chars[20];

scanf("%s",s);

printf("%s",s);

}

運(yùn)行程序,輸入HOWAREYOU。

25.在結(jié)構(gòu)化分析使用的數(shù)據(jù)流圖(DFD)中,利用【】對(duì)其中的圖形元素進(jìn)行確切解釋。

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

longfun5(intn)

(longs;

if((n==l)‖(n==2))

s=2;

else

s=n+fun5(n-1);

return(s);

}

main()

{longx;

x=fun5(4);

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

27.已有文本文件test.txt,其中的內(nèi)容為:Hello,everyone!。以下程序中,文件test.txt已正確為“讀”而打開(kāi),由文件指針fr指向該文件,則程序的輸出結(jié)果是【】。

#include<stdio.h>

main()

{

FILE*fr;charstr[40];

fgets(str,5,fr);

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

fclose(fr);

}

28.有以下程序#include<stdio.h>typedefstruct{intnum;doubles;}REC;voidfunl(REC*x){x->num=23;x->s=88.5;}voidmain(){RECa={16,90.0};fun1(&A);printf("%d\n",a.num);}程序運(yùn)行后的輸出結(jié)果是()。

29.數(shù)據(jù)庫(kù)技術(shù)的主要特點(diǎn)為數(shù)據(jù)的集成性、數(shù)據(jù)的高【】和低冗余性、數(shù)據(jù)獨(dú)立性和數(shù)據(jù)統(tǒng)一管理與控。

30.結(jié)構(gòu)化程序設(shè)計(jì)的3種基本結(jié)構(gòu)分別是順序、選擇和______。

31.若要使指針p指向一個(gè)double類(lèi)型的動(dòng)態(tài)存儲(chǔ)單元,請(qǐng)?zhí)羁铡?/p>

p=【】malloc(sizeof(double));

32.閱讀下面程序,則執(zhí)行后的輸出結(jié)果是【】。

#include"stdio.h"

main()

{intx,y,z;

x=1;y=2;z=3;

if(x>y)if(x>z)printf("%d",x);

elseprintf("%d",y);

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

33.下列程序的運(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);

}

34.以下程序中,函數(shù)fun的功能是計(jì)算x2-2x+6,主函數(shù)中將調(diào)用fun函數(shù)計(jì)算:

y1=(x+8)2-2(x+8)+6

y2=sin2(x)-2sin(x)+6

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

#include"math.h"

doublefun(doublex){return(x*x-2*x+6);}

main()

{doublex,y1,y2;

printf("Enterx:");scanf("%lf",&x);

y1=fun(【】);

y2=fun(【】);

printf("y1=%lf,y2=%lf\n",y1,y2);

}

35.當(dāng)數(shù)據(jù)的物理結(jié)構(gòu)(存儲(chǔ)結(jié)構(gòu))改變時(shí),不影響數(shù)據(jù)庫(kù)的邏輯結(jié)構(gòu),從而不致引起應(yīng)用程序的變化,這是指數(shù)據(jù)的【】。

36.對(duì)于長(zhǎng)度為n的順序存儲(chǔ)的線性表,當(dāng)隨機(jī)插入和刪除—個(gè)元素時(shí),需平均移動(dòng)元素的個(gè)數(shù)為【】。

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

#definePOW(r)(r)*(r)

main()

{intx=3,y=2,t;

t=POW(x+y);

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

}

38.數(shù)據(jù)庫(kù)系統(tǒng)其內(nèi)部分為三級(jí)模式,即概念模式、內(nèi)模式和外模式。其中,______是用戶的數(shù)據(jù)視圖,也就是用戶所見(jiàn)到的數(shù)據(jù)模式。

39.以下函數(shù)把b字符串連接到a字符串的后面,并返回a中新字符串的長(zhǎng)度。請(qǐng)?zhí)羁铡?/p>

strcen(chara[],charb[])

{intnum=0,n=0;

while(*(a+num)!=【】)num++;

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

return(num);

}

40.已知字符A的ASCII代碼值為65,以下程序運(yùn)行時(shí)若從鍵盤(pán)輸入:B33<回車(chē)>,則輸出結(jié)果是

【】。

#include<stdio.h>

main()

{chara,b;

a=getchar();scanf("%d",&b);

a=a-'A'+'0';b=b*2;

printf("%c%c\n",a,b);

}

三、1.選擇題(20題)41.十進(jìn)制數(shù)124轉(zhuǎn)換成二進(jìn)制數(shù)是()

A.111l010B.1111100C.1011111D.1111011

42.以下定義語(yǔ)句中正確的是

A.chara='A'b='B';

B.floata=b=10.0;

C.inta=10,*b=&a;

D.float*a,b=&a;

43.設(shè)有數(shù)組定義:chararray[]="China";則數(shù)組array所占的空間為()

A.4個(gè)字節(jié)B.5個(gè)字節(jié)C.6個(gè)字節(jié)D.7個(gè)字節(jié)

44.若定義了以下函數(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

45.若執(zhí)行下面的程序時(shí),從鍵盤(pán)上輸入5和2,則輸出結(jié)果是main(){inta,b,k;scanf("%d,%d",&a,&b);k=a;if(a<b)k=a%b;elsek=b%a;printf("%d\n",k);}

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

46.以下各組選項(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][];

47.下面函數(shù)的功能是char*fun(char*strl,char*str2){while((*strl)&&(*str2++=*strl++));returnstr2;}

A.求字符串的長(zhǎng)度

B.比較兩個(gè)字符串的大小

C.將字符串str1復(fù)制到字符串str2中

D.將字符串str1接續(xù)到字符串str2中

48.設(shè)有以下語(yǔ)句

typedefstructS

{intg;charh;}T;

則下面敘述中正確的是()A.可用S定義結(jié)構(gòu)體變量B.可以用T定義結(jié)構(gòu)體變量C.S是struct類(lèi)型的變量D.T是structS類(lèi)型的變量

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

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

50.下列程序輸出的結(jié)果是()。main(){inta;a=-4+4*5-6;printf(“%d”,a);a=4+4%5-6;printf(“%d”,a);a=-3+4%6/5;printf(“%d”,a);a=(7+6)%5/2;printf(“%d”,a);}

A.102-31B.10-221C.11-221D.10221

51.下列程序的輸出結(jié)果是()。#include<stdio.h>main(){inta=2,b=3,p;p=f(a,b);printf("%d",p);}intf(a,b){intc;if(a>b)c=1;elseif(a==b)c=0;elsec=-1;return(c);}

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

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

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

53.設(shè)有程序段:intk=12:while(k=1)k=k-1:則下列描述中正確的是()。

A.while循環(huán)執(zhí)行10次B.循環(huán)是無(wú)限循環(huán)C.循環(huán)體語(yǔ)句一次也不執(zhí)行D.循環(huán)體語(yǔ)句執(zhí)行一次

54.下列敘述中,不屬于測(cè)試的特征的是

A.測(cè)試的挑剔性B.完全測(cè)試的不可能性C.測(cè)試的可靠性D.測(cè)試的經(jīng)濟(jì)性

55.有以下程序段:intk=0;while(k=1)k++;while循環(huán)執(zhí)行的次數(shù)是______。

A.無(wú)限次B.有語(yǔ)法錯(cuò),不能執(zhí)行C.一次也不執(zhí)行D.執(zhí)行1次

56.已知一棵二叉樹(shù)前序遍歷和中序遍歷分別為ABDEGCFH和DBGEACHF,則該二叉樹(shù)的后序遍歷為()。

A.GEDHFBCAB.DGEBHFCAC.ABCDEFGHD.ACBFEDHG

57.下列不正確的轉(zhuǎn)義字符是()。

A.'\\'B.'t'C.'\n'D.'088'

58.有以下程序main(){chara,b,c,d;scanf("%c,%c,%d,%d",&a,&b,&c,&d);printf("%c,%c,%c,%c\n",a,b,c,d);}若運(yùn)行時(shí)從鍵盤(pán)上輸入:6,5,65,66<回車(chē)>。則輸出結(jié)果是

A.6,5,A,BB.6,5,65,66C.6,5,6,5D.6,5,6,6

59.有如下說(shuō)明inta[10]={1,2,3,4,5,6,7,8,9,10},*p=a;則數(shù)值為9的表達(dá)式是()

A.*p+9B.*(p+8)C.*p+=9D.p+8

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

A.5876273-2278

B.5876273.000000-2278

C.5876273-2278

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

四、選擇題(20題)61.(63)線性表的順序存儲(chǔ)結(jié)構(gòu)和線性表的鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)分別是______。

A.順序存取的存儲(chǔ)結(jié)構(gòu)、順序存取的存儲(chǔ)結(jié)

B.隨機(jī)存取的存儲(chǔ)結(jié)構(gòu)、順序存取的存儲(chǔ)結(jié)構(gòu)

C.隨機(jī)存取的存儲(chǔ)結(jié)構(gòu)、隨機(jī)存取的存儲(chǔ)結(jié)

D.任意存取的存儲(chǔ)結(jié)構(gòu)、任意存取的存儲(chǔ)結(jié)構(gòu)

62.有如下程序段

#include"stdio.h"

typedefstructaa

{inta;

structaa*next;

}M;

voidset(M*k,inti,int*b)

{intj,d=0;

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

{k[j-1].next=&k[j];

k[j-1].a=b[d++];

}

k[j].a=b[d];

}

main()

{Mk[5],*p;

intd[5]={23,34,45,56,67};

set(k,5,d);

p=k+1;

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

}

要輸出45,則在下畫(huà)線處應(yīng)填入的選項(xiàng)是

A.p->next->aB.++p->a

C.(*p).a(chǎn)++D.p++->a

63.

64.

65.有以下程序當(dāng)執(zhí)行程序時(shí),按下列方式輸入數(shù)據(jù)(從第l列開(kāi)始,<CR>代表回車(chē),注意;回車(chē)也是--+qz符)12<CR>34<CR>則輸出結(jié)果是()。

A.123B.12C.1234D.1234

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

A.a是實(shí)型變量,C允許進(jìn)行賦值a=10,但不可以這樣說(shuō):實(shí)型變量中允許存放整型值

B.在賦值表達(dá)式中,賦值號(hào)左邊既可以是變量也可以是任意表達(dá)式

C.執(zhí)行表達(dá)式a=b后,在內(nèi)存中a和b存儲(chǔ)單元中的原有值都將被改變,a的值已由原值改變?yōu)閎的值,b的值由原值變?yōu)?

D.已有a=3,b=5,當(dāng)執(zhí)行了表達(dá)式a=b,b=a之后,使a中的值為5,b中的值為3

67.

則下面對(duì)m數(shù)組元素的引用中錯(cuò)誤的是()。

A.

B.

C.

D.

68.

有以下程序:

#include<stdio.h>

main

{intx=4,y;

do

{y=x;

if(!y)printf("x");

else

printf("y"):

x--;

}while(x);

}

程序的輸出結(jié)果是()。

A.xyyxB.yyyyC.yyxxD.yxyx

69.

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

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

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

72.第

15

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

main()

{inta=21,b=11;

printf("%d\n",--a+b,--b+a);

}

A.30B.31C.32D.33

73.

74.當(dāng)把以下四個(gè)表達(dá)式用做if語(yǔ)句的控制表達(dá)式時(shí),有一個(gè)選項(xiàng)與其他三個(gè)選項(xiàng)含義不同,這個(gè)選項(xiàng)是()。

A.k%2B.k%2==1C.(K%2)!=0D.!k%2==1

75.

76.

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

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

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

78.設(shè)變量n為float類(lèi)型,m為int類(lèi)型,則以下能實(shí)現(xiàn)將n中的數(shù)值保留小數(shù)點(diǎn)后兩位,第三位進(jìn)行四舍五入運(yùn)算的表達(dá)式是()。

A.n=(n*100+0.5)/100.0

B.m=n*100+0.5,n=m/100.0

C.n=n*100+0.5/100.0

D.n=(n/100+0.5)*100.0

79.下列程序的運(yùn)行結(jié)果是()。main(){intx=1,y=3,a=0;while(x++!=(y-=1)){a+=1;if(y<x)break;}printf("%d,%d,%d\n",x,y,a);}

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

80.若有定義:inta,h;通過(guò)語(yǔ)句:scanf(”%d;%d”,&a,&B.;,能把整數(shù)3賦給變量a,5賦給變量b的輸入數(shù)據(jù)是()。

A.35B.3,5C.3;5D.35

五、程序改錯(cuò)題(1題)81.已知一個(gè)數(shù)列從0項(xiàng)開(kāi)始的前3項(xiàng)為0,0,1,以后的各項(xiàng)都是其相鄰的前3項(xiàng)之和。下列給定的程序中,函數(shù)proc的功能是:計(jì)算并輸出該數(shù)列前n項(xiàng)的和sum。n的值通過(guò)形參傳人。例如,當(dāng)n=20時(shí),程序的輸出結(jié)果應(yīng)為42762.000000。

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

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

試題程序:

#include<stdlib.h>

#include<conio.h>

#include<stdio.h>

doubleproc(intn)

{

doublesum,s0,s1,s2,s;

intk;

sum=1.0;

if(n<=2)

sum=0.0;

s0=0.0;

s1=0.0;

s2=1.0;

//****found****

for(k=4;k<n;k++)

}

{

s=s0+s1+s2;

sum+=S:

s0=s1;

s1=s2;

//****found****

s2=s;

returnsum;

}

voidmain

{

intn;

system("CLS");

printf("InputN=");

scanf("%d",&nJ;

printf("%f\n",proc(n));

}

六、程序設(shè)計(jì)題(1題)82.使用VC++2010打開(kāi)考生文件夾下prog1中的解決方案。此解決方案的項(xiàng)目中包含一個(gè)源程序文件prog1.c。在此程序中,編寫(xiě)函數(shù)fun(),其功能是根據(jù)以下公式求P的值,結(jié)果由函數(shù)值返回。m與n為兩個(gè)正整數(shù)且要求m>n。例如:m=12,n=8時(shí),運(yùn)行結(jié)果為495.000000。注意:部分源程序在文件prog1.c中。請(qǐng)勿改動(dòng)主函數(shù)main()和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun()的花括號(hào)中填入你編寫(xiě)的若干語(yǔ)句。試題程序:

參考答案

1.Bscanf(\u3000)語(yǔ)句中用“空格”間隔不同的字符串,空格將被全部忽略掉,所以用scanf(\u3000)函數(shù)不能輸入空格;getehar(\u3000)函數(shù)用于輸入字符,其調(diào)用形式為:ch=getelaar(\u3000),getehar(\u3000)函數(shù)從終端讀入一個(gè)字符作為函數(shù)值,把讀入的字符賦給變量ch。在輸入時(shí),空格、回車(chē)符都將作為字符讀入,而且只有在用戶敲入Enter鍵時(shí),讀入才開(kāi)始執(zhí)行。gets(\u3000)函數(shù)的凋用形式為:gets(str_adr),其中stradr是存放輸入字符串的起始地址,可以是字符數(shù)組名、字符數(shù)組元素的地址或字符指針變量。9ets函數(shù)用來(lái)從終端鍵盤(pán)讀入字符串(包括空格符),直到讀入一個(gè)換行符為止。getc(\u3000)函數(shù)的調(diào)用形式為:ch=getc(pf)其中pf是文件指針。函數(shù)的功能是從pf指定的文件中讀入一個(gè)字符,并把它作為函數(shù)值返回。

2.C

3.C

4.C文件由數(shù)據(jù)序列組成,可以構(gòu)成二進(jìn)制文件或文本文件。故本題答案為C選項(xiàng)。

5.C函數(shù)fun(int*s,intn1,intn2)的功能是對(duì)數(shù)組s中的元素進(jìn)行首尾互相調(diào)換。所以在主函數(shù)中,當(dāng)fun(a,0,3)執(zhí)行完后,數(shù)組a[12]={4,3,2,1,5,6,7,8,9,0};再執(zhí)行fun(a,4,9),數(shù)組a[12]={4,3,2,1,0,9,8,7,6,5};再執(zhí)行fun(a,0,9)后,數(shù)組a[12]={5,6,7,8,9,0,1,2,3,4}。所以正確答案為c)。

6.A要寫(xiě)入字符數(shù)據(jù),需要使用格式字符%c,選項(xiàng)D錯(cuò)誤;換行符需要使用‘\\n’,而不是‘\\r\\n’,選項(xiàng)B錯(cuò)誤;選項(xiàng)C中未使用換行符,不滿足題意。故本題答案為A選項(xiàng)。

7.C

8.B解析:字符數(shù)組元素作函數(shù)參數(shù)是單向的值傳遞。函數(shù)cchar的功能是將大寫(xiě)字母轉(zhuǎn)換為小寫(xiě)字母。主函數(shù)中while循環(huán)語(yǔ)句的條件是判斷指針p當(dāng)前指向的字符是否為空,若不為空,則調(diào)用函數(shù)cchar,即主函數(shù)中通過(guò)循環(huán)語(yǔ)句將字符串'ABC+abc=defDEF'中的大寫(xiě)字母全部轉(zhuǎn)換為小寫(xiě)字母,因此printf的輸出結(jié)果為選項(xiàng)B。

9.C解析:此題考查了指針引用一維數(shù)組元素的方法。*p+9因?yàn)檫\(yùn)算符'*'的優(yōu)先級(jí)高于'+',所以輸出結(jié)果為p指向的元素1,然后加9,值為10。

10.AC語(yǔ)言中語(yǔ)法上規(guī)定實(shí)型變量是不能存放整型類(lèi)型的數(shù)據(jù)的,整型數(shù)據(jù)也不能存放實(shí)型數(shù)據(jù)。是為了避免類(lèi)型轉(zhuǎn)換之間可能會(huì)發(fā)生的錯(cuò)誤。

11.B按邏輯位運(yùn)算特點(diǎn):①用按位與運(yùn)算將特定位清為0或保留特定位;②用按位或運(yùn)算將特定的位置為1;③用按位異或運(yùn)算將某個(gè)變量的特定位翻轉(zhuǎn)或交換兩個(gè)變量的值。

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

13.A

14.C因?yàn)樽兞俊癮=1,b=2”,所以表達(dá)式“a>b”不成立。選項(xiàng)A、B和D相當(dāng)于一條語(yǔ)句,選項(xiàng)A是逗號(hào)表達(dá)式,選項(xiàng)B和選項(xiàng)D是復(fù)合語(yǔ)句,所以都沒(méi)有執(zhí)行。選項(xiàng)C中,語(yǔ)句“c=a;”不執(zhí)行,語(yǔ)句“a=b;b=c;”執(zhí)行。故本題答案為C選項(xiàng)。

15.D

16.C

17.A

18.D函數(shù)fun的作用是求一個(gè)十進(jìn)制數(shù)的二進(jìn)制數(shù)。通過(guò)輾轉(zhuǎn)相除法獲取這個(gè)整數(shù)的二進(jìn)制數(shù)。因此(10)10=(1010)2。故本題答案為D選項(xiàng)。

19.D

20.C

21.內(nèi)聚內(nèi)聚

22.!=returnj!=,returnj解析:本題程序的流程是:讓i,j都從1開(kāi)始,其中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)了不同的值,所以a[i]要留到新數(shù)組中。注本題中i、j的初值都要從1開(kāi)始,該算法只能用于數(shù)組已排序的題目中。

23.7979解析:因?yàn)樵谡{(diào)用子函數(shù)時(shí)進(jìn)行的是數(shù)值傳遞,調(diào)用子函數(shù)并不能改變實(shí)參的值,所以經(jīng)過(guò)調(diào)用子函數(shù),c、d的值并沒(méi)有發(fā)生變化還是原來(lái)的值。

24.HOWHOW解析:在scanf()函數(shù)中,使用空格作為分隔符,如果輸入含有空格的字符中,則不能使用scanf()數(shù),所以本題中輸入空格就返回了'\\0\\,s數(shù)組也就確定了,后面的輸入就不再讀入數(shù)組s中。

25.數(shù)據(jù)字典或DD數(shù)據(jù)字典或DD解析:數(shù)據(jù)流圖用來(lái)對(duì)系統(tǒng)的功能需求進(jìn)行建模,它可以用少數(shù)幾種符號(hào)綜合地反映出信息在系統(tǒng)中的流動(dòng)、處理和存儲(chǔ)情況。數(shù)據(jù)詞典(DataDictionary,DD)用于對(duì)數(shù)據(jù)流圖中出現(xiàn)的所有成分給出定義,它使數(shù)據(jù)流圖上的數(shù)據(jù)流名字、加工名字和數(shù)據(jù)存儲(chǔ)名字具有確切的解釋。

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

27.HellHell解析:該函數(shù)有3個(gè)參數(shù),第三個(gè)參數(shù)是文件指針指向要讀取數(shù)據(jù)的文件,第二個(gè)參數(shù)是一個(gè)整數(shù)(假設(shè)為n),表示從文件中讀取n-1個(gè)字符并在其后加一個(gè)'\\0',第一個(gè)參數(shù)為存放讀取的字符串的內(nèi)存區(qū)的起始地址,讀取的數(shù)據(jù)保存在其中??梢?jiàn)本題的輸出結(jié)果為Hell。

28.23

29.共享性共享性解析:數(shù)據(jù)庫(kù)技術(shù)的主要特點(diǎn)有以下幾個(gè)方面:數(shù)據(jù)的集成性,數(shù)據(jù)的高共享性與低冗余性,數(shù)據(jù)的獨(dú)立性,數(shù)據(jù)統(tǒng)一管理與控制。

30.重復(fù)(循環(huán))重復(fù)(循環(huán))解析:結(jié)構(gòu)化程序設(shè)計(jì)包括3種基本的結(jié)構(gòu):順序結(jié)構(gòu)、選擇結(jié)構(gòu)和重復(fù)結(jié)構(gòu)(循環(huán)結(jié)構(gòu)),利用這3種結(jié)構(gòu)就足以表達(dá)出各種其他形式結(jié)構(gòu)的程序設(shè)計(jì)方法。其中利用循環(huán)結(jié)構(gòu),可以簡(jiǎn)化大量的程序執(zhí)行。

31.(double*)(double*)解析:一般用malloc函數(shù)為變量分配存儲(chǔ)單元時(shí),要在前面用強(qiáng)制類(lèi)型轉(zhuǎn)換符說(shuō)明該存儲(chǔ)單元中數(shù)據(jù)的類(lèi)型。本題要為指向雙精度浮點(diǎn)型數(shù)據(jù)的指針變量p分配存儲(chǔ)單元,因此用(double*)說(shuō)明。

32.33解析:C語(yǔ)言的語(yǔ)法規(guī)定:else子句總是與前面最近的不帶else的if相結(jié)合。因?yàn)閤不大于y,所以執(zhí)行printf('%d\\n',z);語(yǔ)句。

33.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)。

34.x+8sin(x)x+8,sin(x)解析:考查考生對(duì)函數(shù)調(diào)用相關(guān)知識(shí)的了解。用x+8代替函數(shù)fun(doublex)中形式參數(shù)x;用sin(x)代替函數(shù)fun(doublex)中形式參數(shù)x。

35.物理獨(dú)立性數(shù)據(jù)獨(dú)立性是數(shù)據(jù)與程序間的互不依賴性,即數(shù)據(jù)庫(kù)中數(shù)據(jù)獨(dú)立于應(yīng)用程序而不依賴于應(yīng)用程序。也就是說(shuō),數(shù)據(jù)的邏輯結(jié)構(gòu)、存儲(chǔ)結(jié)構(gòu)與存取方式的改變不會(huì)影響應(yīng)用程序。數(shù)據(jù)獨(dú)立性一般分為物理獨(dú)立性與邏輯獨(dú)立性兩級(jí)。

36.n/2n/2解析:刪除—個(gè)元素,平均移動(dòng)的元素個(gè)數(shù)為(n-1+n-2+…+0)/n=(n-1)/2;插入一個(gè)元素,平均移動(dòng)元素個(gè)數(shù)為(n+n-1+n-2+…+1)/n=(n+1)/2:所以總體平均移動(dòng)元素個(gè)數(shù)為n/2。

37.2525解析:本題考查帶參數(shù)的宏的定義及相關(guān)運(yùn)算。運(yùn)算過(guò)程為:t=POW(x+y)=(2+3)*(2+3)=25。

38.外模式外模式解析:數(shù)據(jù)庫(kù)系統(tǒng)的三級(jí)模式分別是內(nèi)模式、概念模式和外模式。其中,物理模式給出了數(shù)據(jù)庫(kù)的物理存儲(chǔ)結(jié)構(gòu)和存取方法;概念模式是數(shù)據(jù)庫(kù)系統(tǒng)中全局?jǐn)?shù)據(jù)邏輯結(jié)構(gòu)的描述;外模式是用戶的數(shù)據(jù)視圖,也就是用戶所見(jiàn)到的數(shù)據(jù)模式。

39.0'或0或NULLn++或++n或n=n+1或n+=10'或0或NULL\r\nn++或++n或n=n+1或n+=1

40.1B1B解析:從鍵盤(pán)輸入后,a='B',b=33,之后進(jìn)行運(yùn)算,a='B'-'A'+'0'='1';b=33*2=66。C語(yǔ)言規(guī)定,整型和字符型可以相互轉(zhuǎn)換,已知字符A的ASCII碼值為65,所以字符B的ASCII碼值為66,所以b='B',最后以字符形式輸出a和b,所以輸出為1B。

41.B

42.C解析:選項(xiàng)A中定義兩個(gè)變量a和b,并賦初值,C語(yǔ)言中可以同時(shí)定義多個(gè)變量,但變量之間必須用“,”隔開(kāi),顯然,選項(xiàng)A中少了一個(gè)逗號(hào)“,”,故選項(xiàng)A不正確;選項(xiàng)B中定義變量時(shí)用了連續(xù)的賦值語(yǔ)句,這在定義變量是不正確的,故選項(xiàng)B不正確,選項(xiàng)D定義一個(gè)指針,然后定義了一個(gè)變量并讓這個(gè)變量的初值為該指針變量,顯然這這時(shí)的指針變量還沒(méi)初始化就被賦值給變量,是不對(duì)的,故選項(xiàng)D不正確,所以,4個(gè)選項(xiàng)中選項(xiàng)C符合題意。

43.C解析:在給數(shù)組賦值時(shí),可以用一個(gè)字符串作為初值,這種方法直觀、方便,而且符合人們的習(xí)慣。數(shù)組array的長(zhǎng)度不是5,而是6,這點(diǎn)必須要注意。因?yàn)樽址A康淖詈笥上到y(tǒng)加上一個(gè)'\\0',因此,上面的初始化與下面的等價(jià):

Chararray[]={'C','h','i','n','a','\\0'};

44.C

45.C解析:本題考查簡(jiǎn)單的if...else語(yǔ)句。先執(zhí)行條件if(a<b),顯然不成立,則執(zhí)行else語(yǔ)句。

46.C

47.C解析:while語(yǔ)句的一般形式為:while(表達(dá)式)語(yǔ)句;其中表達(dá)式是循環(huán)條件,語(yǔ)句為循環(huán)體,while語(yǔ)句的語(yǔ)義是:計(jì)算表達(dá)式的值,當(dāng)值為真(非0)時(shí),執(zhí)行循環(huán)體語(yǔ)句。本題中邏輯與符號(hào)連接的表達(dá)式值為真,*str2++=*strl++語(yǔ)句是將strl的內(nèi)容逐個(gè)復(fù)制到str2字符串。

48.B解析:結(jié)構(gòu)體類(lèi)型的定義格式為:

strcut結(jié)構(gòu)體名

{成員說(shuō)明列表};

結(jié)構(gòu)體變量的定義有3種形式:第一種:定義結(jié)構(gòu)體型的同時(shí)定義結(jié)構(gòu)體變量如:strcut結(jié)構(gòu)體名{成員說(shuō)明列表}變量;第二種先定義一個(gè)結(jié)構(gòu)體類(lèi)型,然后使用該類(lèi)型來(lái)定義結(jié)構(gòu)體變量,如:strcutstudent{成員說(shuō)明列表):student變量;第三種:定義一個(gè)無(wú)名稱的結(jié)構(gòu)體類(lèi)型的同時(shí)定義結(jié)構(gòu)體變量,如:Strctstudent{成員說(shuō)明列表}變量。和上面三種情況比較我們不難得知只有選項(xiàng)B是正確的。所以,4個(gè)選項(xiàng)中選項(xiàng)B符合題意。

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

50.A解析:本題考查%和/運(yùn)算符的使用。如果兩個(gè)數(shù)不能整除,只取結(jié)果的整數(shù)部分,小數(shù)部分全部舍去。運(yùn)算符“%”要求兩個(gè)運(yùn)算對(duì)象都為整型,其結(jié)果是整數(shù)除法的余數(shù)。表達(dá)式:a=-4+4*5-6=4+20-6=10:表達(dá)式:a=4+4%5-6=4+4-6=2;表達(dá)式:a=-3+4%6/5=-3+0=-3:表達(dá)式:a=(7+6)%5/2=13%5/2=1。

51.A解析:本題考查ifelse語(yǔ)句。在intf(a,b)中:第一個(gè)if語(yǔ)句,先判斷條件,發(fā)現(xiàn)a>b條件不成立,則執(zhí)行與其配對(duì)的else語(yǔ)句;第二個(gè)if語(yǔ)句,先判斷條件,發(fā)現(xiàn)a==b條件不成立,則執(zhí)行與其配對(duì)的else語(yǔ)句,c=-1。

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

53.C本題考查while,while循環(huán)表達(dá)式k-1是個(gè)賦值表達(dá)式而不是邏輯表達(dá)式,k的初值為l2不符合循環(huán)條件,所以循環(huán)體語(yǔ)句一次也不執(zhí)行。

54.C解析:軟件測(cè)試的目標(biāo)是在精心控制的環(huán)境下執(zhí)行程序,以發(fā)現(xiàn)程序中的錯(cuò)誤,給出程序可靠性的鑒定。它有3個(gè)方面的重要特征,即測(cè)試的挑剔性、完全測(cè)試的不可能性及測(cè)試的經(jīng)濟(jì)性。其中沒(méi)有測(cè)試的可靠性這一說(shuō)法。注意:軟件測(cè)試與軟件調(diào)試的概念,以及相應(yīng)的方法。

55.A解析:注意本題有個(gè)陷阱,馬虎的考生將紛紛落馬。本來(lái)、while中的表達(dá)式應(yīng)為k==1,而本題卻為k=1,是賦值表達(dá)式而不是邏輯表達(dá)式。因此,編譯器將其值一直認(rèn)為是1,因此表達(dá)式一直為真,陷入無(wú)限次的循環(huán)。

56.B遍歷是按照一定規(guī)則對(duì)樹(shù)中全部結(jié)點(diǎn)逐一訪問(wèn)的方法。二叉樹(shù)可由根結(jié)點(diǎn)、左子樹(shù)和右子樹(shù)三個(gè)部分組成。根據(jù)對(duì)根結(jié)點(diǎn)訪問(wèn)的先后順序,可將遍歷方法分為先序遍歷、中序遍歷和后序遍歷三種。先序遍歷首先訪問(wèn)根結(jié)點(diǎn),再先序遍歷左子樹(shù),最后先序遍歷右子樹(shù),可見(jiàn)遍歷是一個(gè)遞歸的過(guò)程。求樹(shù)的遍歷這種問(wèn)題的關(guān)鍵在于認(rèn)清每棵子樹(shù)的根結(jié)點(diǎn)的訪問(wèn)順序。題目給出了一棵樹(shù)的先序遍歷和中序遍歷的結(jié)點(diǎn)順序,先序遍歷的第一個(gè)結(jié)點(diǎn)為整棵樹(shù)的根結(jié)點(diǎn),即根結(jié)點(diǎn)為A,而在中序遍歷的順序中,結(jié)點(diǎn)A的前面還有DBGE四個(gè)結(jié)點(diǎn),表示這四個(gè)結(jié)點(diǎn)構(gòu)成以A為結(jié)點(diǎn)的二叉樹(shù)的左子樹(shù),同理,中序遍歷中A結(jié)點(diǎn)后面的CHF三個(gè)結(jié)點(diǎn)構(gòu)成以A為結(jié)點(diǎn)的二叉樹(shù)的右子樹(shù)。于是原來(lái)的對(duì)一棵二叉樹(shù)的分析變?yōu)閷?duì)該二叉樹(shù)的左右子樹(shù)的分析。以左子樹(shù)為例,左子樹(shù)結(jié)點(diǎn)的先序遍歷為BDEG,中序遍歷為DBGE,該子樹(shù)的根結(jié)點(diǎn)為B,B結(jié)點(diǎn)的左子樹(shù)為一個(gè)結(jié)點(diǎn)D,右子樹(shù)為以E為根結(jié)點(diǎn),結(jié)點(diǎn)G是E的左孩子。同理,可對(duì)CHF三個(gè)結(jié)點(diǎn)進(jìn)行分析。

最后得到整棵樹(shù)的結(jié)構(gòu)后,按照后序遍歷寫(xiě)出所有結(jié)點(diǎn)的順序:DGEBHFCA。

57.D解析:'\\\\'是反斜線轉(zhuǎn)義字符:'\\t'是水平跳格轉(zhuǎn)義字符;'\\n'飯是換行轉(zhuǎn)義字符;C語(yǔ)言中沒(méi)有規(guī)定'088'為轉(zhuǎn)義字符。

58.A解析:主函數(shù)中首先定義了4個(gè)字符變量a、b、cd,然后通過(guò)scanf()函數(shù)輸入a、b、c、d輸入中a和b是按字符格式c輸入的,c和d是按整型符號(hào)d輸入的。在看下面的printf()函數(shù)中,要求a、b、c、d都按字符輸出,故a和b原樣輸出為6、5,c和d將把與其ASCII碼對(duì)應(yīng)的字符輸出,65和66的ASCII碼對(duì)應(yīng)字符A和B,故最后的輸出為6,5,A,B。所以,4個(gè)選項(xiàng)中選項(xiàng)A符合愿意。

59.B解析:在C語(yǔ)言的數(shù)組元素的引用方法,我們?cè)谇懊嬉呀?jīng)講過(guò)了,比如數(shù)組元素a[0],可以用表達(dá)式*(p+0),即*p來(lái)引用,對(duì)于數(shù)組元素a[1],可以用表達(dá)式*(p+1)來(lái)引用,在這里,p+1的值就是數(shù)組元素a[1]的地址,對(duì)此地址使用“間接訪問(wèn)運(yùn)算符”:*(p+1)就代表存儲(chǔ)單元a[1],注意:一對(duì)圓括號(hào)不可少。同樣,對(duì)于數(shù)組元素a[2],則可以用表達(dá)式。(p+2)來(lái)引用…,對(duì)于數(shù)組元素a[9],可以用表達(dá)式,(p+9)來(lái)引用。因此,當(dāng)指針變量p指向a數(shù)組的起始地址時(shí),若0≤i<10,則數(shù)組元素a[i]可以用*(p+i)來(lái)表示。

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

61.B

62.A在本題中,程序首先定義了一個(gè)結(jié)構(gòu)體,結(jié)構(gòu)體中有兩個(gè)成員變量,一個(gè)是整型,另一個(gè)是指向該結(jié)構(gòu)體的指針。然后程序定義了一無(wú)返回值的函數(shù)set,該函數(shù)帶有三個(gè)參數(shù),第一個(gè)是結(jié)構(gòu)體指針變量k,第二個(gè)是整型變量i,第三個(gè)是整型指針變量b。在函數(shù)體中,首先定義了兩個(gè)整型變量,然后執(zhí)行for循環(huán),從循環(huán)變量的初始值及循環(huán)結(jié)束條件我們可以知道,循環(huán)執(zhí)行的次數(shù)與形參變量i有關(guān),從循環(huán)體中我們可以看出,該循環(huán)是將結(jié)構(gòu)體數(shù)組中的前一個(gè)結(jié)構(gòu)體的指針成員指向后一個(gè)結(jié)構(gòu)體的首地址,并用數(shù)組b中的值給結(jié)構(gòu)體的成員變量a賦值。

在主函數(shù)中,定義了一個(gè)大小為5的結(jié)構(gòu)體數(shù)組k和一個(gè)結(jié)構(gòu)體指針p,然后定義了一個(gè)數(shù)組d,并給數(shù)組d進(jìn)行了初始化操作,然后調(diào)用函數(shù)set,實(shí)參分別為結(jié)構(gòu)體數(shù)組k、5和數(shù)組d,結(jié)合上面我們對(duì)set函數(shù)的分析可以知道,此時(shí)執(zhí)行set的for循環(huán),可以是結(jié)構(gòu)體數(shù)組中各結(jié)構(gòu)體變量的指針成員next指向下一個(gè)結(jié)構(gòu)體變量,并將該結(jié)構(gòu)體變量的成員a賦值為數(shù)組d的與之位置相對(duì)應(yīng)的值,如結(jié)構(gòu)體數(shù)組中第一個(gè)結(jié)構(gòu)體變量的a被賦值為數(shù)組d中的第一個(gè)元素值,即23。那么函數(shù)調(diào)用后,結(jié)構(gòu)體數(shù)組各元素的成員a的值分別為23、34、45、56、67。

函數(shù)調(diào)用后,運(yùn)行p=k+1;語(yǔ)句,該語(yǔ)句的作用是使結(jié)構(gòu)體指針變量p執(zhí)行結(jié)構(gòu)體數(shù)組k的第二個(gè)元素,然后執(zhí)行輸出語(yǔ)句,本題要填的空就在輸出語(yǔ)句中,根據(jù)題目要求,要輸出一個(gè)45的值,當(dāng)然,用數(shù)組d輸出這么一個(gè)結(jié)果很簡(jiǎn)單,為d[2],但選項(xiàng)中并沒(méi)有這項(xiàng),而是需要我們從結(jié)構(gòu)體數(shù)組中輸出這個(gè)值,從上面的分析我們知道,該值對(duì)應(yīng)結(jié)構(gòu)體數(shù)組第三個(gè)元素的成員,而當(dāng)前的p執(zhí)行第二個(gè)元素,從四個(gè)選項(xiàng)來(lái)分析,只有A選項(xiàng)能完成輸出45的任務(wù)。

B選項(xiàng)中的++p->a由于運(yùn)算符優(yōu)先級(jí)問(wèn)題,首先運(yùn)行p->a,輸出的是34,然后加1,即輸出35。

C選項(xiàng)中的(*p).a++等于((*p).a)++,這樣的結(jié)果是34++,最后的輸出結(jié)果是34。

D選項(xiàng)中的p++->a等價(jià)于(p++)->a,顯然是輸出第二個(gè)結(jié)構(gòu)體的a成員值,即34。

63.B

64.B

65.A按照從鍵盤(pán)輸入的數(shù)據(jù)可以判斷字符1賦給了變量a,字符2賦給了變量b,字符<cR>即回車(chē)賦給了變量e,字符3賦給了變量d。因此打印輸出的結(jié)果為選項(xiàng)A)。

66.AC語(yǔ)言中語(yǔ)法上規(guī)定實(shí)型變量是不能存放整型類(lèi)型的數(shù)據(jù)的,整型數(shù)據(jù)也不能存放實(shí)型數(shù)據(jù)。是為了避免類(lèi)型轉(zhuǎn)換之間可能會(huì)發(fā)生的錯(cuò)誤。

67.C數(shù)組m下標(biāo)從0到4計(jì)算,共5個(gè)元素,選項(xiàng)c)中m[0]=5,則m[m[0]]為m[5],超出了數(shù)組m的下標(biāo)范圍。因此正確答案為C)。

68.C

\n本題考查do-while語(yǔ)句和if…else語(yǔ)句。do-while語(yǔ)句的功能是先執(zhí)行循環(huán)體再判斷條件,所以,先判斷if語(yǔ)句的條件,y=-4,!y為邏輯0,條件不成立,執(zhí)行下面的else語(yǔ)句,輸出y,然后將x的值減1,x=3,條件不成立,執(zhí)行下面的else語(yǔ)句,輸出Y,然后將X的值減1,x=2,滿足while循環(huán)條件,繼續(xù)循環(huán)。第三次循環(huán):先判斷if語(yǔ)句的條件,y=2,!y為邏輯0,條件不成立,執(zhí)行下面的else語(yǔ)句,輸出y,然后將X的值減1,x=l,滿足while循環(huán)條件,繼續(xù)循環(huán)。第四次循環(huán):先判斷if語(yǔ)句的條件,y=-1,!y為邏輯0,條件不成立,執(zhí)行下面的else語(yǔ)句,輸出Y,然后將x的值減1,x=0,不滿足while循環(huán)條件,結(jié)束循環(huán)。所以B正確。

\n

69.B

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

71.Af函數(shù)交換局部變量a和b指針變量里的值,main調(diào)用并不改變參數(shù)的值,所以答案選擇A)。

72.A本題主要考查逗號(hào)運(yùn)算符。在本題的程序中,首先定義兩個(gè)整型變量a和b,并分別賦初值為21和11,然后用輸出語(yǔ)句對(duì)由a和b組成的表達(dá)式進(jìn)行輸出。輸出語(yǔ)句的輸出格式表明只輸出一個(gè)數(shù)據(jù),但在后面的輸出列表中則有兩個(gè)待輸出的表達(dá)式。

--a+b,--b+a的運(yùn)算順序是首先運(yùn)算--a+b,然后由于--和+運(yùn)算符的優(yōu)先級(jí)高于逗號(hào)運(yùn)算符,因此,運(yùn)算--b+a,最后執(zhí)行逗號(hào)運(yùn)算符。

運(yùn)算--a+b的結(jié)果為31,但此時(shí)變量a的值變?yōu)榱?0,然后運(yùn)算--b+a得到的結(jié)果為30,根據(jù)逗號(hào)運(yùn)算符的特點(diǎn),逗號(hào)運(yùn)算符的結(jié)果為最后一個(gè)表達(dá)式的結(jié)果,因此,最后輸出的30,本題正確的答案選A。

73.C

74.D本題主要考查if語(yǔ)句的條件表達(dá)式。在本題的四個(gè)選項(xiàng)中給出了四個(gè)不同的條件表達(dá)式,題目要求找出其中一個(gè)意思與其他三個(gè)不同的表達(dá)式。

選項(xiàng)A的表達(dá)式k%2的功能是對(duì)變量k進(jìn)行取余運(yùn)算,如果運(yùn)算結(jié)果為假,表示變量k能被2整除,如果運(yùn)算結(jié)果為真,表示k不能被2整除。

選項(xiàng)B的表達(dá)式k%2==1的功能是對(duì)變量k進(jìn)行取余運(yùn)算,并判斷結(jié)果等于1,如果運(yùn)算結(jié)果為假,表示k%2的運(yùn)算結(jié)果為0,即k能被2整除;如果運(yùn)算結(jié)果為真,表示k%2的運(yùn)算結(jié)果為1,即k不能被2整除。

選項(xiàng)C的表達(dá)式(k%2)!=0的功能是對(duì)變量k進(jìn)行取余運(yùn)算,并判斷結(jié)果不等于0,如果運(yùn)算結(jié)果為假,表示k%2的運(yùn)算結(jié)果0,即k能被2整除;如果運(yùn)算結(jié)果為真,表示k%2的運(yùn)算結(jié)果為1,即k不能被2整除。

選項(xiàng)D的表達(dá)式!k%2==1等價(jià)于(!k)%2==1,其功能是先對(duì)變量k進(jìn)行邏輯非運(yùn)算,然后將運(yùn)算結(jié)果對(duì)2進(jìn)行取余運(yùn)算,再判斷其結(jié)果是否等于1。這與前面三個(gè)選項(xiàng)的意思完全不同,因此本題的正確答案選D。

75.D\r\n

76.C

77.C

78.B本題要求選項(xiàng)中的表達(dá)式能實(shí)現(xiàn)將n中的數(shù)值保留小數(shù)點(diǎn)后兩位,第三位進(jìn)行四舍五入運(yùn)算。

在選項(xiàng)A中,n=(n*100+0.5)/100.0表示先將n后的前兩位小數(shù)變成整數(shù),然后對(duì)其第三位小數(shù)進(jìn)行加0.5操作,這個(gè)操作其實(shí)是第三位小數(shù)在進(jìn)行四舍五入運(yùn)算時(shí)只有入,而沒(méi)有舍運(yùn)算。因此,本選項(xiàng)不能實(shí)現(xiàn)題目的要求。

在選項(xiàng)B中,m=n*100+0.5,n=m/100.0表示先將n后的前兩位小數(shù)變成整數(shù),然后對(duì)第三位小數(shù)進(jìn)行加0.5操作,并將最后的運(yùn)算結(jié)果賦值給一個(gè)整型變量m,這是數(shù)據(jù)的強(qiáng)制轉(zhuǎn)換,它對(duì)小數(shù)部分的處理是直接舍棄,而在對(duì)第三位小數(shù)進(jìn)行加0.5操作時(shí),其實(shí)就是對(duì)第三位進(jìn)行四舍五入運(yùn)算。因此選項(xiàng)能實(shí)現(xiàn)題目的要求,是正確的答案。

在選項(xiàng)C中,根據(jù)運(yùn)算符的優(yōu)先級(jí)我們知道,先運(yùn)算n*100,再運(yùn)算0.5/100.0,最后將結(jié)果相加,與題目要求相差比較遠(yuǎn)。

在選項(xiàng)D中,n=(n/100+0.5)*100.0表示先除100,這不是對(duì)小數(shù)部分進(jìn)行四舍五入運(yùn)算,而是對(duì)整數(shù)部分進(jìn)行四舍五入運(yùn)算,與題目要求不一致。

79.D解析:本題考查while循環(huán)。第一次循環(huán),先拿x的值和(y-1)比較,此時(shí)x=1,y-1=2,循環(huán)條件成立,比較完將x的值加1,此時(shí)x=2,進(jìn)入循環(huán),a=a+1=1,判斷if語(yǔ)句的控制條件是否成立,y<x不成立,接著執(zhí)行下一次循環(huán)。第二次循環(huán),先拿x的值和(y-1)比較,此時(shí)x=2,y-1=1,循環(huán)條件成立,比較完將x的值加1,此時(shí)x=3,進(jìn)入循環(huán),a=a+1=2,判斷if語(yǔ)句的控制條件是否成立,y<x成立,執(zhí)行break語(yǔ)句退出循環(huán)。

80.C輸入數(shù)據(jù)的格式必須與seanf()的格式控制串完全匹配,所以輸入時(shí)必須在3和5之間輸入“;”。

81.\n\t(1)錯(cuò)誤:for(k=4;k<n;k++)

\n正確:for(k=4;k<=11;k++)

\n(2)錯(cuò)誤:s2=S;

\n正確:s2=s;)

\n【解析】題目中要求計(jì)算數(shù)列前n項(xiàng)的和,包括第n項(xiàng),因此“for(k=4;k<n;k++)”中的“k<n”應(yīng)改為“k<=n”;根據(jù)C語(yǔ)言的語(yǔ)法規(guī)則,for循環(huán)體中的多條語(yǔ)句必須在大括號(hào)“{”和“}”之間,因此,要在語(yǔ)句s2=s;后加上)。\n

82.1floatfun(intm,fintn){Floatp1=1,p2=1,p3=1;inti;for(i=1;i<=m;i++)pi*=i;for(i=l;i<=n;i++)p2*=i;for(i=l;i<=(m-n);i++)p3*=i;returnpi/(p2*p3);本題考查循環(huán)的使用。通過(guò)3個(gè)for循環(huán)分別計(jì)算階乘。其中p1=m!,p2=n!,p3=(m-n)!。2022-2023年浙江省衢州市全國(guó)計(jì)算機(jī)等級(jí)考試C語(yǔ)言程序設(shè)計(jì)學(xué)校:________班級(jí):________姓名:________考號(hào):________

一、單選題(20題)1.若要求從鍵盤(pán)讀入含有空格字符的字符串,應(yīng)使用函數(shù)A.getc()B.gets()C.getchar()D.scanf()

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

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

3.對(duì)長(zhǎng)度為n的無(wú)序線性表進(jìn)行順序查找,則查找成功、不成功時(shí)的平均數(shù)據(jù)比較次數(shù)分別為()。

A.n/2,nB.n+1/2,n-1C.n+1/2,nD.n-1/2,n-1

4.下列關(guān)于C語(yǔ)言文件的敘述中正確的是()。

A.文件由一系列數(shù)據(jù)依次排列組成,只能構(gòu)成二進(jìn)制文件

B.文件由結(jié)構(gòu)序列組成,可以構(gòu)成二進(jìn)制文件或文本文件

C.文件由數(shù)據(jù)序列組成,可以構(gòu)成二進(jìn)制文件或文本文件

D.文件由字符序列組成,其類(lèi)型只能是文本文件

5.有以下程序:

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

A.0987654321

B.4321098765

C.5678901234

D.0987651234

6.設(shè)有定義:charc[]=“Cc”;FILE*fp;且fp指向以“w”的方式成功打開(kāi)的文件,若要將c中的兩個(gè)字符寫(xiě)入文件,且每個(gè)字符占一行,則下面的選項(xiàng)中正確的是()。

A.fprintf(fp,“%c\n%c\n”,c[0],c[1]);

B.fprintf(fp,“%c\r\n%c\r\n”,c[0],c[1]);

C.fprintf(fp,“%c%c”,c[0],c[1]);

D.fprintf(fp,“%s\n”,c);

7.人們提出了用______的原理來(lái)設(shè)計(jì)軟件,這就是軟件工程學(xué)誕生的基礎(chǔ)。

A.計(jì)算機(jī)科學(xué)B.數(shù)學(xué)C.工程學(xué)D.運(yùn)籌學(xué)

8.以下程序的輸出結(jié)果是______。charcchar(charch){if(ch>='A'&&ch<='z')ch=ch-'A'+'a';returnch;}main(){chars[]="ABC+abc=defDEF",*p=s;while(*p){*p=cchar(*p);p++;}printf("%s\n",s);}

A.abe+ABC=DEFdef

B.abc+abe=defdef

C.abcaABCDEFdef

D.abcabcdefdef

9.下面程序的輸出結(jié)果是

#include<stdio.h>

main()

{inta[]={1,2,3,4,5,6,7,8,9,0},*p;

p=a;

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

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

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

A.a是實(shí)型變量,C允許進(jìn)行賦值a=10,但不可以這樣說(shuō):實(shí)型變量中允許存放整型值

B.在賦值表達(dá)式中,賦值號(hào)左邊既可以是變量也可以是任意表達(dá)式

C.執(zhí)行表達(dá)式a=b后,在內(nèi)存中a和b存儲(chǔ)單元中的原有值都將被改變,a的值已由原值改變?yōu)閎的值,b的值由原值變?yōu)?

D.已有a=3,b=5,當(dāng)執(zhí)行了表達(dá)式a=b,b=a之后,使a中的值為5,b中的值為3

11.交換兩個(gè)變量的值,不允許用臨時(shí)變量,應(yīng)該使用下列()位運(yùn)算符。

A.&.B.^C.||D.~

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

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

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

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

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

13.有以下程序

#include<stdio.h>

main()

{ints;

scanf(“%d”,&s);

while(s>0)

{switch(s)

{case1;printf(“%d”,s+5);

case2:printf(“%d”,s+4);break;

case3:printf(“%d”。s+3);

default:printf(“%d”,s+1);break;

}

seanf(“%d”,&s);

}

}

運(yùn)行時(shí),若輸入12345O<回車(chē)>,則輸出結(jié)果是A.6566456B.66656C.66666D.6666656

14.設(shè)有定義“inta=1,b=2,c=3;”,以下語(yǔ)句中執(zhí)行效果與其他3個(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;}

15.設(shè)一組初始記錄關(guān)鍵字序列為(Q,H,C,Y,P,A,M,S,R,D,F,X),則按字母升序的第一趟冒泡排序結(jié)束后的結(jié)果是()

A.F,H,C,D,P,A,M,Q,R,S,Y,X

B.P,A,C,S,Q,D,F,X,R,H,M,Y

C.A,D,C,R,F,Q,M,S,Y,P,H,X

D.H,C,Q,P,A,M,S,R,D,F,X,Y

16.對(duì)包含N個(gè)元素的散列表進(jìn)行檢索,平均檢索長(zhǎng)度________

A.為o(log2N)B.為o(N)C.不直接依賴于ND.上述三者都不是

17.

18.有以下程序:#include<stdio.h>voidfun(intn){if(n/2)fun(n/2);printf(“%d”,n%2);}main(){fun(10);printf(“\n”);}程序運(yùn)行后的輸出結(jié)果是()。

A.0101B.1000C.1100D.1010

19.在含有n個(gè)項(xiàng)點(diǎn)有e條邊的無(wú)向圖的鄰接矩陣中,零元素的個(gè)數(shù)為_(kāi)_______。

A.eB.2e9C.n2-eD.n2-2e

20.樹(shù)最適合用來(lái)表示()。

A.有序數(shù)據(jù)元素B.無(wú)序數(shù)據(jù)元素C.元素之間具有分層次關(guān)系的數(shù)據(jù)D.元素間無(wú)聯(lián)系的數(shù)據(jù)

二、2.填空題(20題)21.耦合和內(nèi)聚是評(píng)價(jià)模塊獨(dú)立性的兩個(gè)主要標(biāo)準(zhǔn),其中______反映了模塊內(nèi)各成分之間的聯(lián)系。

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

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

2223445666677899101010

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

2345678910。

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

#include<stdio.h>

#defineN80

intfun(inta[],intn)

{inti,j=1;

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

if(a[j-1]【】a[i])

a[j++]=a[i];

【】;

}

main()

{inta[N]={2,2,2,3,4,4,5,6,6,6,6,7,7,8,9,9,10,10,10},i,n=19;

printf("Theoriginaldata:\n");

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

n=fun(a,n);

printf("\nThedataafterdeleted:\n");

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

}

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

#include<stdio.h>

intt(intx,inty,intcp,intdp)

{cp=x*x+y*y;

dp=x*x-y*y;

}

main()

{inta=1,b=8,c=7,d=9;

t(a,b,c,d);

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

}

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

#include<stdio.h>

main()

{chars[20];

scanf("%s",s);

printf("%s",s);

}

運(yùn)行程序,輸入HOWAREYOU。

25.在結(jié)構(gòu)化分析使用的數(shù)據(jù)流圖(DFD)中,利用【】對(duì)其中的圖形元素進(jìn)行確切解釋。

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

longfun5(intn)

(longs;

if((n==l)‖(n==2))

s=2;

else

s=n+fun5(n-1);

return(s);

}

main()

{longx;

x=fun5(4);

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

27.已有文本文件test.txt,其中的內(nèi)容為:Hello,everyone!。以下程序中,文件test.txt已正確為“讀”而打開(kāi),由文件指針fr指向該文件,則程序的輸出結(jié)果是【】。

#include<stdio.h>

main()

{

FILE*fr;charstr[40];

fgets(str,5,fr);

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

fclose(fr);

}

28.有以下程序#include<stdio.h>typedefstruct{intnum;doubles;}REC;voidfunl(REC*x){x->num=23;x->s=88.5;}voidmain(){RECa={16,90.0};fun1(&A);printf("%d\n",a.num);}程序運(yùn)行后的輸出結(jié)果是()。

29.數(shù)據(jù)庫(kù)技術(shù)的主要特點(diǎn)為數(shù)據(jù)的集成性、數(shù)據(jù)的高【】和低冗余性、數(shù)據(jù)獨(dú)立性和數(shù)據(jù)統(tǒng)一管理與控。

30.結(jié)構(gòu)化程序設(shè)計(jì)的3種基本結(jié)構(gòu)分別是順序、選擇和______。

31.若要使指針p指向一個(gè)double類(lèi)型的動(dòng)態(tài)存儲(chǔ)單元,請(qǐng)?zhí)羁铡?/p>

p=【】malloc(sizeof(double));

32.閱讀下面程序,則執(zhí)行后的輸出結(jié)果是【】。

#include"stdio.h"

main()

{intx,y,z;

x=1;y=2;z=3;

if(x>y)if(x>z)printf("%d",x);

elseprintf("%d",y);

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

33.下列程序的運(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);

}

34.以下程序中,函數(shù)fun的功能是計(jì)算x2-2x+6,主函數(shù)中將調(diào)用fun函數(shù)計(jì)算:

y1=(x+8)2-2(x+8)+6

y2=sin2(x)-2sin(x)+6

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

#include"math.h"

doublefun(doublex){return(x*x-2*x+6);}

main()

{doublex,y1,y2;

printf("Enterx:");scanf("%lf",&x);

y1=fun(【】);

y2=fun(【】);

printf("y1=%lf,y2=%lf\n",y1,y2);

}

35.當(dāng)數(shù)據(jù)的物理結(jié)構(gòu)(存儲(chǔ)結(jié)構(gòu))改變時(shí),不影響數(shù)據(jù)庫(kù)的邏輯結(jié)構(gòu),從而不致引起應(yīng)用程序的變化,這是指數(shù)據(jù)的【】。

36.對(duì)于長(zhǎng)度為n的順序存儲(chǔ)的線性表,當(dāng)隨機(jī)插入和刪除—個(gè)元素時(shí),需平均移動(dòng)元素的個(gè)數(shù)為【】。

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

#definePOW(r)(r)*(r)

main()

{intx=3,y=2,t;

t=POW(x+y);

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

}

38.數(shù)據(jù)庫(kù)系統(tǒng)其內(nèi)部分為三級(jí)模式,即概念模式、內(nèi)模式和外模式。其中,______是用戶的數(shù)據(jù)視圖,也就是用戶所見(jiàn)到的數(shù)據(jù)模式。

39.以下函數(shù)把b字符串連接到a字符串的后面,并返回a中新字符串的長(zhǎng)度。請(qǐng)?zhí)羁铡?/p>

strcen(chara[],charb[])

{intnum=0,n=0;

while(*(a+num)!=【】)num++;

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

return(num);

}

40.已知字符A的ASCII代碼值為65,以下程序運(yùn)行時(shí)若從鍵盤(pán)輸入:B33<回車(chē)>,則輸出結(jié)果是

【】。

#include<stdio.h>

main()

{chara,b;

a=getchar();scanf("%d",&b);

a=a-'A'+'0';b=b*2;

printf("%c%c\n",a,b);

}

三、1.選擇題(20題)41.十進(jìn)制數(shù)124轉(zhuǎn)換成二進(jìn)制數(shù)是()

A.111l010B.1111100C.1011111D.1111011

42.以下定義語(yǔ)句中正確的是

A.chara='A'b='B';

B.floata=b=10.0;

C.inta=10,*b=&a;

D.float*a,b=&a;

43.設(shè)有數(shù)組定義:chararray[]="China";則數(shù)組array所占的空間為()

A.4個(gè)字節(jié)B.5個(gè)字節(jié)C.6個(gè)字節(jié)D.7個(gè)字節(jié)

44.若定義了以下函數(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

45.若執(zhí)行下面的程序時(shí),從鍵盤(pán)上輸入5和2,則輸出結(jié)果是main(){inta,b,k;scanf("%d,%d",&a,&b);k=a;if(a<b)k=a%b;elsek=b%a;printf("%d\n",k);}

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

46.以下各組選項(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][];

47.下面函數(shù)的功能是char*fun(char*strl,char*str2){while((*strl)&&(*str2++=*strl++));returnstr2;}

A.求字符串的長(zhǎng)度

B.比較兩個(gè)字符串的大小

C.將字符串str1復(fù)制到字符串str2中

D.將字符串str1接續(xù)到字符串str2中

48.設(shè)有以下語(yǔ)句

typedefstructS

{intg;charh;}T;

則下面敘述中正確的是()A.可用S定義結(jié)構(gòu)體變量B.可以用

溫馨提示

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