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

下載本文檔

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

文檔簡介

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

一、單選題(20題)1.

2.已有定義:chara[]="xyz",b[]={'x','y','z'};,以下敘述中正確的是()。

A.數(shù)組a和b的長度相同B.a數(shù)組長度小于b數(shù)組長度C.a數(shù)組長度大于b數(shù)組長度D.以述說法都不對

3.已知char**s,下面正確的語句是()。A.A.s="ABCDEF";

B.*s="ABCDEF";

C.**s="ABCDEF";

D.*s='A';

4.若有以下定義:chara;intb;floatc;doubled;則表達(dá)式a*b+b-c值的類型為()。A.floatB.intC.charD.double

5.

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

A.非零的數(shù)值型常量有正值和負(fù)值的區(qū)分

B.常量是在程序運(yùn)行過程中值不能被改變的量

C.定義符號常量必須用類型名來設(shè)定常量的類型

D.用符號名表示的常量叫符號常量

7.

8.

9.

10.若以下變量均是整型,且num=sum=7;則執(zhí)行表達(dá)式sum=num++,sum++,++num后sum的值為()。

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

11.有以下程序:#include<stdio.h>#defineS(x)4*(x)*x+1main(){intk=5,j=2;printf(“%d\n,”,S(k+j));}程序的運(yùn)行結(jié)果是()。

A.33B.197C.143D.28

12.

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

A.形參可以是常量、變量或表達(dá)式

B.實(shí)參可以是常量、變量或表達(dá)式

C.實(shí)參的類型應(yīng)與形參的類型賦值兼容

D.實(shí)參的個(gè)數(shù)應(yīng)與形參的個(gè)數(shù)一致

14.在有向圖G的拓?fù)湫蛄兄校繇旤c(diǎn)Vi在頂點(diǎn)Vj之前,則下列情形不可能出現(xiàn)的是()。

A.G中有弧

B.G中有一條從Vi到Vj的路徑

C.G中沒有弧

D.G中有一條從Vj到Vi的路徑

15.

16.以下關(guān)于鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)說法錯(cuò)誤的是()

A.比順序存儲(chǔ)結(jié)構(gòu)的存儲(chǔ)密度小

B.每個(gè)節(jié)點(diǎn)是由數(shù)據(jù)域和指針域組成

C.查找結(jié)點(diǎn)時(shí)鏈?zhǔn)酱鎯?chǔ)比順序存儲(chǔ)快

D.邏輯上不相鄰的節(jié)點(diǎn)物理上可能相鄰

17.下列描述錯(cuò)誤的是()。

A.繼承分為多重繼承和單繼承

B.對象之間的通信靠傳遞消息來實(shí)現(xiàn)

C.在外面看不到對象的內(nèi)部特征是基于對象的“模塊獨(dú)立性好”這個(gè)特征

D.類是具有共同屬性、共同方法的對象的集合

18.如果一個(gè)函數(shù)位于C程序文件的上部,在該函數(shù)體內(nèi)說明語句后的復(fù)合語句中定義了一個(gè)變量,則該變量().

A.為全局變量,在本程序文件范圍內(nèi)有效

B.為局部變量,只在該函數(shù)內(nèi)有效

C.為局部變量,只在該復(fù)合語句中有效

D.定義無效,為非法變量

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

inta[5],*p=a;A.A.p5B.*a1C.&a1D.&a[0]20.有以下程序#include<stdio.h>main(){chara[3O],b[30];scanf("%S",a);gets(b);printf("%s\n%s\\n",a,b);}程序運(yùn)行時(shí)若輸入:howareyou?Iamfine<回車>則輸出結(jié)果是()。A.howareyou?Iamfine

B.howareyou?Iamfine

C.howareyou?Iamfine

D.howareyou?

二、2.填空題(20題)21.在面向?qū)ο蠓椒ㄖ?,對象之間進(jìn)行通信的構(gòu)造稱為()。

22.以下程序用于判斷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");/*a、b、c能構(gòu)成三角形*/

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

}

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

intt(intx,inty,intcp,intdp)

{cp=x*x+y*y;

dp=x*x-y*y;

}

main()

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

t(a,b,c,d);

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

}

24.執(zhí)行以下程序后,輸出#號的個(gè)數(shù)是【】。

#include<stdio.h>

main()

{inti,j;

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

for(j=2;j<=i;j++)putchar('#');

}

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

}

}

}

26.將以下程序段寫成三目運(yùn)算表達(dá)式:【】。

if(a>b)max=a;

elsemax=b;

27.以下程序通過函數(shù)SunFun求。這里f(x)=x2+l,由F函數(shù)實(shí)現(xiàn)。請?zhí)羁铡?/p>

main()

{

printf("Thesum=%d\n",SunFun(10));

}

SunFun(intn)

{

intx,s=0;

for(x=0;x<=n;x++)

S+=F(______);

returns;

}

F(intx)

{

return(______);

}

28.【】是數(shù)據(jù)庫設(shè)計(jì)的核心。

29.在數(shù)據(jù)庫中用數(shù)據(jù)模型這個(gè)工具來抽象、表示和處理現(xiàn)實(shí)世界中的數(shù)據(jù)和信息。常見的數(shù)據(jù)模型有3種,它們分別是層次模型、網(wǎng)狀模型和()。

30.數(shù)據(jù)字典是各類數(shù)據(jù)描述的集合,它通常包括5個(gè)部分,即數(shù)據(jù)項(xiàng)、數(shù)據(jù)結(jié)構(gòu)、數(shù)據(jù)流、______和處理過程。

31.以下程序的功能是:從低位開始取出長整型變量s中奇數(shù)位上的數(shù),依次構(gòu)成一個(gè)新數(shù)放在t中。高位仍在高位,低位仍在低位。請?zhí)羁铡?include<stdio.h>main(){longs,t,s1=10;pfintf("\n.Pleaseenters:");scanf("%1d",&s);t=s%10;while(s>0){s=s/100;t=();s1=s1*10;}printf("Theresultis:%1d\n",t);}

32.用高級語言編寫的程序稱為【】程序,它可以通過解釋程序翻譯一句執(zhí)行一句的方式執(zhí)行,也可以通過編譯程序一次翻譯產(chǎn)生目標(biāo)程序,然后執(zhí)行。

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

main()

{inti=0,a=0;

while(i<20)

{for(;;)

{if((i%10)==0)break;

elsei--;}

i+=11;

a+=i;

}

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

}

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

main()

{inta=0;

a+=(a=8);

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

}

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

36.某二義樹中度為2的結(jié)點(diǎn)有18個(gè),則該二叉樹中有______個(gè)葉子結(jié)點(diǎn)。

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

main()

{

intx=0210;

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

}

38.關(guān)系操作的特點(diǎn)是______操作。

39.函數(shù)YangHui的功能是把楊輝三角形的數(shù)據(jù)賦給二維數(shù)組的下半三角,形式如下

1

11

121

1331

14641

其構(gòu)成規(guī)律是:

(1)第0列元素和主對角線元素均為1

(2)其余元素為其左卜方和正上方元素之和

(3)數(shù)據(jù)的個(gè)數(shù)每行遞增1

請將程序補(bǔ)充完整。

#defineN6

voidyanghui(intx[N][N])

{inti,j;

x[0][0]=1;

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

{x[i][0]=______=1;

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

x[i][j]=______;

}

}

40.數(shù)據(jù)結(jié)構(gòu)分為線性結(jié)構(gòu)和非線性結(jié)構(gòu),帶鏈的隊(duì)列屬于[]。

三、1.選擇題(20題)41.下列判斷正確的是()。

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";

42.若x,i,j和k都是int型變量,則計(jì)算表達(dá)式x=(i=4,j=16,k=32)后,x的值為()。

A.4B.16C.32D.52

43.下列有關(guān)數(shù)據(jù)庫的描述,正確的是______。

A.數(shù)據(jù)庫是一個(gè)DBF文件B.數(shù)據(jù)庫是一個(gè)關(guān)系C.數(shù)據(jù)庫是一個(gè)結(jié)構(gòu)化的數(shù)據(jù)集合D.數(shù)據(jù)庫是一組文件

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

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

45.以下程序的輸出結(jié)果是#include<stdio.h>voidprt(int*x,int*y,int*z){printf("%d,%d,%d\n",++*x,++*y,*(z++));}main(){inta=10,b=40,c=20;prt(&a,&b,&c);prt(&a,&b,&c);}

A.11,42,3112,22,41

B.11,41,2012,42,20

C.11,21,4011,21,21

D.11,41,21.12,42,22

46.已知數(shù)據(jù)表A中每個(gè)元素距其最終位置不遠(yuǎn),為節(jié)省時(shí)間,應(yīng)采用的算法是A.A.堆排序B.直接插入排序C.快速排序D.B和C

47.有下列程序:main(){inti,j;for(i=1;i<4;i++){for(j=i;j<4;j++)printf("%d*%d=%d",i,j,i*j);printf("\n");}}程序運(yùn)行后的輸出結(jié)果是()。

A.1*1=11*2=21*3=32*1=22*2=43*1=3

B.1*1=11*2=21*3=32*2=42*3=63*3=9

C.1*1=11*2=22*2=41*3=32*3=63*3=9

D.1*1=12*1=22*2=43*1=33*2=63*3=9

48.有以下程序:#include<stdio.h>intfun(intx[],intn){staticintsum=0,i;for(i=0;i<n;i++)sum+=x[i];returnsum;{inta[]={1,2,3,4,5},b[]={6,7,8,9},s=0;s=fun(a,5)+fun(b,4);printf("%d\n",s);程序執(zhí)行后的輸出結(jié)果是()。

A.45B.50C.60D.55

49.按照“后進(jìn)先出”原則組織數(shù)據(jù)的數(shù)據(jù)結(jié)構(gòu)是()。

A.隊(duì)列B.棧C.雙向鏈表D.二叉樹

50.設(shè)有定義:floata=2,b=4,h=3;以下c語言表達(dá)式中與代數(shù)式(a+B)h計(jì)算結(jié)果不相符的是()。A.(a+B)*h/2B.(1/2)*(a+B)*hC.(a+B)*h*1/2D.h/2*(a+B)

51.為了避免在嵌套的條件語句ifelse中產(chǎn)生二義性,C語言規(guī)定,else子句總是與()配對。

A.縮排位置相同ifB.其前面最近的ifC.其后面最近的ifD.同一行上的if

52.若fp是指向某文件的指針,且已讀到文件末尾,則函數(shù)feof(fp)的返回值是

A.EOFB.-1C.1D.NULL

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

A.線性表是由n個(gè)元素組成的一個(gè)有限序列

B.線性表是一種線性結(jié)構(gòu)

C.線性表的所有結(jié)點(diǎn)有且僅有一個(gè)前件和后件

D.線性表可以是空表

54.以下能正確定義二維數(shù)組的是______。

A.inta[][3];

B.inta[][3]={2*3};

C.inta[][3]={};

D.inta[2][3]={{1),{2},{3,4}};

55.若變量a、i已正確定義,且i已正確賦值,合法的語句是()。A.A.a==1B.++iC.a=a++=5D.a=int(i)

56.若有定義int*p,n;則通過語句scanf能夠正確讀入數(shù)據(jù)的程序段是()。

A.p=&n;scanf("%d",&p);

B.p=&n;scanf("%d",*p);

C.scanf("%d",n);

D.p=&n;scanf("%d",p);

57.有以下程序inta=2;intf(int*a){return(*a)++;}main()ints=0;{inta=5;s+=f(&a);}s+=f(&a);printf("%d\n",s);執(zhí)行后輸出結(jié)果是

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

58.下列描述中,不是線性表順序存儲(chǔ)結(jié)構(gòu)特征的是

A.不便于插入和刪除B.需要連續(xù)的存儲(chǔ)空間C.可隨機(jī)訪問D.需另外開辟空間來保存元素之間的關(guān)系

59.以下選項(xiàng)中不合法的標(biāo)識符是

A.ptintB.FORC.&aD._00

60.設(shè)有以下語句:charstr[4][12]={"aaa","bbbb","ccccc","dddddd"},*strp[4];inti;for(i=0;i<4;i++)strp[i]=str[i];下列選項(xiàng)不是對字符正確引用的是(其中0≤k<4)()。

A.strpB.str[k][k]C.*strp[k]D.**strp

四、選擇題(20題)61.

有下列程序:

main

{charp[]={a,h,c},q[]="a";

printf("%d%d\n".sizeof(P),sizeof(q));

}

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

A.44B.33C.34D.43

62.有以下程序:int*f(int*x,int*y){if(*x<*y)returnx;elsereturny;}main(){inta=7,b=8,*p,*q,*r;p=&a;q=&b;r=f(p,q);printf("%d,%d,%d\n",*p,*q,*r);}程序運(yùn)行后輸出結(jié)果是______。

A.7,8,8B.7,8,7C.8,7,7D.8,7,8

63.

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

main

{inta,b,d=25;

a=d/10%9;

b=a&&(一1);

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

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

64.

65.

設(shè)有下列程序段:

charstr[]="HelloWorld":

char*plr;

ptr=str:

執(zhí)行上面的程序段后,*(ptr+10)的值為()。

A.\0B.0C.不確定的值D.0的地址

66.一間宿舍可住多名學(xué)生,則實(shí)體宿舍和學(xué)生之間的聯(lián)系是()。A.一對一B.一對多C.多對一D.多對多

67.

68.

69.

有以下程序

#include<stdio.h>

intfun(chars[])

{intn=0;

while(*s<=9&&*s>=0){n=10*n+*s-o;s++;)

return(n);

}

main

{chars[10]={6,1,*,4,*,9,*,0,*);

printf("%d",fun(s));

}

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

A.9B.61490C.61D.5

70.有以下程序:

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

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

71.有以下程序:

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

A.a=2,b=2B.a=2,b=1C.a=1,b=1D.a=1,b=0

72.

73.有以下程序

#include"stdio.h"

main()

{charstr[]="tomeetme",str1[]="toseeyou";

char*p=str,*p1=str1;

inti;

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

if(*(p+i)==*(p1+i))

putchar(*(p+i));

printf("\n");

}

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

A.to

B.tomeet

C.toee

D.程序段不能通過編譯

74.設(shè)有圖書(圖書編號,書名,第一作者,出版社.、讀者(借書證號,姓名,單位,職稱.和借閱(借書證號,圖書編號,借書日期,還書日期.三張表,則表借閱的關(guān)鍵字(鍵或碼.為()。

A.借書證號,圖書編號

B.圖書編號,借書日期

C.借書日期,還書日期

D.借書證號,借書日期

75.有以下程序:

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

A.B,C,D,E,B.A,B,C,D,C.C,D,E,F(xiàn),D.B,D,F(xiàn),H,

76.合法的main函數(shù)命令參數(shù)形式是()。

A.main(inta,char*c[])

B.main(intarc,char**arv)

C.main(intargc,char*argv)

D.main(intargv,char*argc[])

77.

若輸入“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"

78.以下選項(xiàng)中,不能作為合法常量的是()。

A.1.234e05B.1.234e+5C.1.234e0.5D.1.234e0

79.在數(shù)據(jù)管理技術(shù)發(fā)展的三個(gè)階段中,數(shù)據(jù)共享最好的是()。

A.人工管理階段B.文件系統(tǒng)階段C.數(shù)據(jù)庫系統(tǒng)階段D.三個(gè)階段相同

80.

五、程序改錯(cuò)題(1題)81.下列給定程序中函數(shù)fun的功能是:用遞歸算法計(jì)算斐波拉契數(shù)列中第n項(xiàng)的值。從第l項(xiàng)起,斐波拉契數(shù)列為:1,1,2,3,5,8,13,21,…例如,若給n輸入7,則該項(xiàng)的斐波拉契數(shù)值為l3。請改正程序中的錯(cuò)誤,使它能得出正確結(jié)果。注意:不要改動(dòng)main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)!試題程序:#include<stdio.h>longfun(intg){//****found****switch(g);{case0:return0;//****found****casel:case2:return1;}return(fun(g-1)+fun(g-2));}voidmain{longfib;intn;printf("Inputn:");scanf("%d",&n);printf("n=%d\n",n);fib=fun(n);printf("fib=%d\n\n",fib);}六、程序設(shè)計(jì)題(1題)82.編寫fun()函數(shù),它的功能是:利用以下所示的簡單迭代方法求方程cos(y)-y=0的一個(gè)實(shí)根。

yn+1=cos(yn)

迭代步驟如下:

(1)取y1初值為0.0;

(2)y0=y1,把y1的值賦給y0;

(3)y1=cos(y0),求出一個(gè)新的y1;

(4)若y0=y1的絕對值小于0.000001,則執(zhí)行步驟

(5),否則執(zhí)行步驟(2);

(5)所求y1就是方程COS(y)-y=0的一個(gè)實(shí)根,作為函數(shù)值返回。

程序?qū)⑤敵鼋Y(jié)果Result=0.739085。

請勿改動(dòng)main()函數(shù)與其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun()的花括號中填入所編寫的若干語句。

部分源程序給出如下。

試題程序:

參考答案

1.C

2.C解析:對字符型一維數(shù)組在定義時(shí)初始化,既可以使用初始化列表,也可以使用字符串常量。不過由于字符串常量會(huì)自動(dòng)在結(jié)尾添加\'\\0\',字符做結(jié)束標(biāo)志,所以用字符串常量的初始化列表項(xiàng)個(gè)數(shù)是字符串的長度加1。因此題目中的chara[]='xyz';等價(jià)于chara[]={\'x\',\'y\',\'z\',\'\\0\');,所以a數(shù)組長度大于b數(shù)組長度,應(yīng)該選C。

3.C

4.D在表達(dá)式a*b+d-c中,double的類型最高,C語言中,由低類型自動(dòng)向高類型轉(zhuǎn)換,所以最后的結(jié)果一定是double型。

5.A

6.C在C語言中,可以用一個(gè)標(biāo)識符來表示一個(gè)常量,稱之為符號常量。符號常量在使用之前必須先定義,其一般形式為:#define標(biāo)識符常量。

7.C

8.A

9.C

10.A

11.CS為帶參數(shù)的宏定義,運(yùn)行“S(k+j)”為4*(k+j)*k+j+1=143。故本題答案為C選項(xiàng)。

12.D

13.A函數(shù)中,形參必須是變量,實(shí)參可以是常量、變量或表達(dá)式,選項(xiàng)A錯(cuò)誤,選項(xiàng)B正確;實(shí)參的個(gè)數(shù)和類型要與形參一致,選項(xiàng)C、D正確。本題答案為A選項(xiàng)。

14.D若G中有一條從Vj到Vi的路徑,則圖的拓?fù)湫蛄兄许旤c(diǎn)Vj在頂點(diǎn)Vi之前。設(shè)G(V,E)是一個(gè)具有n個(gè)頂點(diǎn)的有向圖,V中頂點(diǎn)的序列v1,v2,…,vn稱為一個(gè)拓?fù)湫蛄?,?dāng)且僅當(dāng)該頂點(diǎn)滿足下列條件:若在有向圖G中,從頂點(diǎn)vi在vj有一條路徑,則在拓?fù)湫蛄兄许旤c(diǎn)vi必須排在頂點(diǎn)vj之前。

15.A

\r\n

16.C

17.C解析:對象的封裝性是指從外面看只能看到對象的外部特性;而對象的內(nèi)部,其處理能力的實(shí)行和內(nèi)部狀態(tài)對外是不可見的,是隱蔽的。

18.C

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

20.B此題主要考查scanf函數(shù)和gets函數(shù)的區(qū)別。答案為B。

21.消息消息解析:對象之間進(jìn)行通信的構(gòu)造叫做消息,它請求對象執(zhí)行某一處理或回答某一要求的信息,它統(tǒng)一了數(shù)據(jù)流和控制流。

22.(a+b>C)&&(a+c>B)&&(b+c>A)(a+b>C)&&(a+c>B)&&(b+c>A)解析:本題主要考查運(yùn)算符邏輯與“&&”的用法。

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

24.66解析:本題中i循環(huán)執(zhí)行4次,當(dāng)i=1時(shí),j循環(huán)執(zhí)行0次;當(dāng)i=2時(shí),j循環(huán)執(zhí)行1次;當(dāng)i=3時(shí),j循環(huán)執(zhí)行2次;當(dāng)i=4時(shí),j循環(huán)執(zhí)行3次,所以輸出#號的個(gè)數(shù)是0+1+2+3=6。

25.5555解析:分析程序執(zhí)行過程,第一次循環(huán)時(shí),j=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。

26.max=(a>b)?a:bmax=(a>b)?a:b解析:本題考查三目運(yùn)算符的用法,條件表達(dá)式的一般形式為:

表達(dá)式1?表達(dá)式2:表達(dá)式3

所以,本題可以寫成(a>b)?a:b,它是一個(gè)條件表達(dá)式,執(zhí)行順序是:如果條件(a>b)為真,則條件表達(dá)式取值a,否則取值b。

27.xX*X+1或1+x*xx\r\nX*X+1或1+x*x解析:題目中要求從x=0開始將f(x)的值累加起來,直到x=10。在SunFun()函數(shù)中用了一個(gè)for循環(huán),每循環(huán)一次將f(x)累加到s中,所以在本題的第一個(gè)空格處我們應(yīng)該填x,,然后x+1,共循環(huán)10次。F()函數(shù)的功能應(yīng)該是求數(shù)學(xué)表達(dá)式f(x)得值,所以其返回值應(yīng)該為x*x+1。

28.數(shù)據(jù)模型數(shù)據(jù)模型

29.關(guān)系模型關(guān)系模型解析:在數(shù)據(jù)庫中用數(shù)據(jù)模型這個(gè)工具來抽象、表示和處理現(xiàn)實(shí)世界中的數(shù)據(jù)和信息。通俗地講,數(shù)據(jù)模型就是現(xiàn)實(shí)世界的反映,它分為兩個(gè)階段:把現(xiàn)實(shí)世界中的客觀對象抽象為概念模型;把概念模型轉(zhuǎn)換為某一DBMS支持的數(shù)據(jù)模型。常見的數(shù)據(jù)模型有3種,它們分別是層次模型、網(wǎng)狀模型和關(guān)系模型。

30.數(shù)據(jù)存儲(chǔ)數(shù)據(jù)存儲(chǔ)

31.s%10*s1+t

32.源程序源程序解析:用高級語言編寫的程序稱為源程序。源程序不能在計(jì)算機(jī)上直接運(yùn)行,運(yùn)行源程序有兩種方式:一種是通過解釋程序,對源程序逐句解釋執(zhí)行;另一種是先讓編譯程序?qū)⒃闯绦蛞淮畏g產(chǎn)生目標(biāo)程序(目標(biāo)程序是計(jì)算機(jī)可直接執(zhí)行的機(jī)器語言程序,是一種二進(jìn)制代碼程序),然后執(zhí)行目標(biāo)程序。

33.3232解析:while(表達(dá)式)的功能是:首先計(jì)算表達(dá)式的值,若為真,則執(zhí)行循環(huán)體語句,執(zhí)行完畢,再計(jì)算表達(dá)式的值,若仍為真,則重復(fù)執(zhí)行循環(huán)體語句,直到表達(dá)式的值為假時(shí),結(jié)束while語句的執(zhí)行,繼續(xù)執(zhí)行while語句后面的語句:i=0時(shí)滿足循環(huán)條件,也滿足if的條件,執(zhí)行語句得i=11,a=11,第2次循環(huán)不滿足if的條件,執(zhí)行i--,i=10,執(zhí)行i+=11;a+=i后,得i=21,a=32,不滿足i<20,循環(huán)結(jié)束。

34.1616解析:在程序中首先將8賦值給變量a,然后在進(jìn)行復(fù)合賦值運(yùn)算。即a=a+a=8+8=16,所以該空格處應(yīng)該填16。

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

36.1919解析:二叉樹具有如下性質(zhì):在任意一棵二叉樹中,度為。的結(jié)點(diǎn)(即葉子結(jié)點(diǎn))總是比度為2的結(jié)點(diǎn)多一個(gè)。根據(jù)題意,度為2的節(jié)點(diǎn)為18個(gè),那么,葉子結(jié)點(diǎn)就應(yīng)當(dāng)是19個(gè)。

37.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

38.集合集合

39.x[i][i]x[i-1][j-1]+x[i-1]或x[i-1][j]+x[i-1][j-1]x[i][i]\r\nx[i-1][j-1]+x[i-1]或x[i-1][j]+x[i-1][j-1]解析:本題考核的知識點(diǎn)是函數(shù)與算法結(jié)合在一起的應(yīng)用。在程序中用兩重循環(huán)。在第一層循環(huán)中將每行的第0列賦值為1,對角線上的元素賦值為1顯然在第一個(gè)空中應(yīng)該填入對角線上的元素即x[i][i]在第2重循環(huán)中給每行其他元素賦值,而在每行中除了第0列和對角線的元素外其他元素為其對應(yīng)的上一行中同列和同列的前一列的元素相加,所以在第二個(gè)空中應(yīng)該填入x[i-1][j-1]+x[i-1][j]。

40.線性結(jié)構(gòu)線性結(jié)構(gòu)解析:與棧類似,隊(duì)列也是線性表,也町以采用鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)。

41.D解析:a='ABCD'書寫錯(cuò)誤,因?yàn)椤?;”左邊不能出現(xiàn)常量;數(shù)組名s是代表s數(shù)組首地址的地址常量,而不是變量;字符串只有在定義時(shí)維數(shù)可以省略。

42.C本題主要考查逗號表達(dá)式。逗號是一個(gè)特殊的運(yùn)算符,它具有所有運(yùn)算符中最低的優(yōu)先級。在C語言中,用它可以將兩個(gè)表達(dá)式連接起來,逗號表達(dá)式的一般表現(xiàn)形式為:

表達(dá)式1,表達(dá)式2,…,表達(dá)式n

逗號表達(dá)式的求解過程是:先求解表達(dá)式1,再求解表達(dá)式2,依次往后計(jì)算,整個(gè)逗號表達(dá)式的值是最后一個(gè)表達(dá)式的值,如“3+5,5+6”的值是11。

在本題中,逗號表達(dá)式為i=4,j=16,k=32,根據(jù)上面的分析,計(jì)算逗號表達(dá)式得到的結(jié)果為k=32,最后將逗號表達(dá)式的結(jié)果賦值給變量x,那么變量x的值為32。因此,本題的正確答案選C。

43.C解析:數(shù)據(jù)庫(Database,簡稱DB)是數(shù)據(jù)的集合,它具有統(tǒng)一的結(jié)構(gòu)形式并存放于統(tǒng)一的存儲(chǔ)介質(zhì)內(nèi),是多種應(yīng)用數(shù)據(jù)的集成,并可被各個(gè)應(yīng)用程序所共享。數(shù)據(jù)庫中的數(shù)據(jù)具有“集成”、“共事”之特點(diǎn)。

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

45.B解析:盡管C語言以傳值方式進(jìn)行函數(shù)調(diào)用,但也可以通過傳遞指針的值(變量的地址)來達(dá)到修改實(shí)參變量值的目的,這是此題主要說明的問題。其次,應(yīng)注意表達(dá)式。(z++)的值是*z,其后的z++在程序中無實(shí)際作用。函數(shù)調(diào)用時(shí),由于x,y和z分指向a,b和c,因此,*x,*y和*z就是a,b和c。第一次調(diào)用函數(shù)時(shí),*x=a=10,*y=b=40,*z=c=20輸出結(jié)果為11,41,20,至此,已經(jīng)可以肯定選項(xiàng)B)是正確的。在第一次輸出后,a=11,b=41,c=20,第二次輸出為:12,42,20。注意:指針作為參數(shù)的函數(shù)調(diào)用的執(zhí)行過程。

46.B解析:堆排序的比較次數(shù)為nlog2n;直接插入排序的比較次數(shù)為n(n-1)/2;快速排序的比較次數(shù)為nlog2n。當(dāng)數(shù)據(jù)表A中每個(gè)元素

47.B解析:外層for循環(huán)的自變量i從1開始,每次循環(huán)后增1,直到i等于3結(jié)束.對于外層循環(huán)自變量i的每一個(gè)值,內(nèi)層循環(huán)的自變量j每次從i開始,每次循環(huán)后增1,直到j(luò)等于3結(jié)束。所以在每次外循環(huán)開始后,內(nèi)層循環(huán)在一行先打印i*j=兩個(gè)乘數(shù)的積,然后回車換行,下次循環(huán)從下一行開始打印輸出結(jié)果。

48.C解析:靜態(tài)變量是在編譯時(shí)賦初值的,即只賦初值一次,在程序運(yùn)行時(shí)它已有初值,以后每次調(diào)用函數(shù)時(shí)不再重新賦初值而只是保留上次函數(shù)調(diào)用結(jié)束時(shí)的值。在main函數(shù)中調(diào)用fun(a,5),執(zhí)行for循環(huán)得到sum=0+a[0]+a[1]+a[2]+a[3]+a[4]=15;然后調(diào)用fun(b,4),因?yàn)閟um為靜態(tài)變量,再次調(diào)用時(shí)sum保留上次函數(shù)調(diào)用結(jié)束時(shí)的值,所以sum:15+b[0]+b[1]+b[2]+b[3]=45;返回sum的值,main函數(shù)中輸出的s=15+45=60。

49.B解析:“后進(jìn)先出”表示最后被插入的元素最先能被刪除。選項(xiàng)A中,隊(duì)列是指允許在—端進(jìn)行插入、而在另一端進(jìn)行刪除的線性表,在隊(duì)列這種數(shù)據(jù)結(jié)構(gòu)中,最先插入的元素將最先能夠被刪除,反之,最后插入的元素將最后才能被刪除,隊(duì)列又稱為“先進(jìn)先出”的線性表,它體現(xiàn)了“先來先服務(wù)”的原則:選項(xiàng)B中,棧頂元素總是最后被插入的元素,從而也是最先能被刪除的元素,棧底元素總是最先被插入的元素,從而也是最后才能被刪除的元素。隊(duì)列和棧都屆于線性表,它們具有順序存儲(chǔ)的特點(diǎn),所以才有“先進(jìn)先出”和“后進(jìn)先出”的數(shù)據(jù)組織方式。雙向鏈表使用鏈?zhǔn)酱鎯?chǔ)方式,二叉樹也通常采用鏈?zhǔn)酱鎯?chǔ)方式,它們的存儲(chǔ)數(shù)據(jù)的空間可以是不連續(xù)的,各個(gè)數(shù)據(jù)結(jié)點(diǎn)的存儲(chǔ)順序與數(shù)據(jù)元素之間的邏輯關(guān)系可以不一致。所以選項(xiàng)C和選項(xiàng)D錯(cuò)誤。本題的正確答案為選項(xiàng)B。

50.B解析:選項(xiàng)B中由于1和2都是整型,其1/2的運(yùn)算結(jié)果為0,故整個(gè)表達(dá)式的值為0,所以它的結(jié)果和題目中要求的代數(shù)式的討算結(jié)果不相符,所以,4個(gè)選項(xiàng)中選項(xiàng)B符合題意。

51.B解析:本題考查ifelse語句。C語言規(guī)定,else總是與它前面的最近的if配對。

52.C解析:EOF是指向文本文件的結(jié)束標(biāo)志,NULL是打開文件錯(cuò)誤時(shí)的返回值。feof(fp)用來判斷文件是否在文件末尾,文本文件和二進(jìn)制文件均可以使用此函數(shù),如果遇到文件結(jié)束就返回1,否則返回0。

53.CC.【解析】線性表是一種線性結(jié)構(gòu),由n(n≥0)個(gè)元素組成,所以線性表可以是空表。但是在線性表中,第一個(gè)結(jié)點(diǎn)沒有前件,最后一個(gè)結(jié)點(diǎn)沒有后件,其他結(jié)點(diǎn)有且只有一個(gè)前件和后件,所以選項(xiàng)C.是錯(cuò)誤的。

54.B解析:(1)二維數(shù)組的定義

二維數(shù)組的定義方式為:類型說明符數(shù)組名[常量表達(dá)式][常量表達(dá)式]。

二維數(shù)組在內(nèi)存中是按行優(yōu)先的順序存放的,即先存放第一行的元素,再存放第二行的元素,依次類推。

(2)二維數(shù)組元素的引用

二維數(shù)組元素的表示形式為:數(shù)組名[下標(biāo)][下標(biāo)],下標(biāo)可以是整型常量或整型表達(dá)式;其范圍為:0~(常量表達(dá)式-1)。

(3)二維數(shù)組的初始化

可以用以下方法對二維數(shù)組元素初始化。

①分行給二維數(shù)組賦初值,例如;

inta[2][2]=({1,2),{3,4));

這種賦值方式比較直觀,把第1個(gè)大括號內(nèi)的數(shù)據(jù)賦給第1行的元素,第2個(gè)大括號內(nèi)的數(shù)據(jù)賦給第2行的元素,即按行賦值。

②可以將所有數(shù)據(jù)寫在一個(gè)大括號內(nèi),按數(shù)組排列的順序?qū)Ω鱾€(gè)元素賦初值。

③可以對部分元素賦初值,沒有初始化的元素值為0。

④如果對全部數(shù)組元素賦初值,則定義數(shù)組時(shí)對第一維的長度可以不指定,但第二維的長度不能省略。

55.B本題主要考查C語言合法語句的定義。

在選項(xiàng)A中,a==1不是一個(gè)合法的語句,因?yàn)樗鼪]有語句結(jié)束標(biāo)識符“;”,不能說是一條語句,如果作為一個(gè)表達(dá)式,它是正確的。

在選項(xiàng)B中,由于變量i已被正確定義并有初值,“++i;”是正確的語句。

在選項(xiàng)C中,由于正確的賦值語句中,賦值符號的左邊不能為常量或表達(dá)式,而右邊不能為變量或表達(dá)式,很明顯,“a=a++=5;”違背了賦值語句的原則。

在選項(xiàng)D中,“a=int(i);”語句是不正確的,在C語言中沒有這種表示形式,如果是想將變量i強(qiáng)制轉(zhuǎn)換為整型的操作,應(yīng)該為“a=(int)i;”。

56.D解析:通過定義int*p,p是一個(gè)整型指針,p=&n是使p指向變量n,而p是一個(gè)指針,輸入時(shí)不需再用地址運(yùn)算符。

57.C解析:本題考核的知識點(diǎn)是局部變量和全局變量的區(qū)別。若在函數(shù)中定義與全局變量名字相同局部變量,則全局變量在該函數(shù)中將不起作用。本題中定義了一個(gè)全局變量a和局部變量a在主函數(shù)中定義一個(gè)整型變量s并賦初值為0,接著定義了一個(gè)局部變量a并賦值為5,由于該局部變量的和全局變量a同名,故全局變量在復(fù)合語句中將不起作用,然后調(diào)用函數(shù)f(&a)(該函數(shù)的作用是返回存儲(chǔ)變量a的空間中的值,并讓該值加1,分析程序可知返回值為5,并讓a值加1變?yōu)?),并將返回值加到s中.此時(shí)s的值為5,然后執(zhí)行該復(fù)合語句外的其他語句,同樣調(diào)用函數(shù)f(&a),但傳遞的參數(shù)是全局變量a,故其返回值為2,加到。中后s的值變?yōu)?,故最后輸出的s的值為7,所以,4個(gè)選項(xiàng)中選項(xiàng)C符合題意。

58.D解析:線性表的順序存儲(chǔ)是用一片連續(xù)的空間來存放數(shù)據(jù)元素,其特點(diǎn)是邏輯上相鄰的元素在物理位置上也相鄰。數(shù)據(jù)元素之間邏輯上的先后關(guān)系自動(dòng)隱含在物理位置的相鄰元素之中,因此,不需要另外開辟空間來保存元素之間的關(guān)系。

59.C

60.A解析:本題考查對字符數(shù)組中字符的引用。指針數(shù)組strp表示每一個(gè)數(shù)組元素都存放了一個(gè)字符串的首地址。選項(xiàng)A)代表指針數(shù)組strp的第一個(gè)數(shù)組元素的地址,不是對字符的引用。

61.C

\n語句charp[]={a,b,c);定義了一個(gè)一維字符數(shù)組p[],并用3個(gè)字符a,b,c進(jìn)行了初始化;而語句q[]='abe'表示定義了一個(gè)一維字符數(shù)組,并用一個(gè)字符串常量'abc'進(jìn)行了初始化。在C語言中,系統(tǒng)在每個(gè)字符串常量的最后自動(dòng)加入一個(gè)字符\0作為字符串的結(jié)束符。所以函數(shù)sizeof(q)=4,而sizeof(p)=3,因而選項(xiàng)C為正確答案。

\n

\n

\n

62.B解析:f函數(shù)的功能是返回地址為x,y的兩個(gè)數(shù)中值鉸的數(shù)的地址,本題輸出結(jié)果是7,8,7。

63.B

\n當(dāng)邏輯

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(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

提交評論