2021-2022年山東省濰坊市全國計(jì)算機(jī)等級(jí)考試C語言程序設(shè)計(jì)預(yù)測(cè)試題(含答案)_第1頁
2021-2022年山東省濰坊市全國計(jì)算機(jī)等級(jí)考試C語言程序設(shè)計(jì)預(yù)測(cè)試題(含答案)_第2頁
2021-2022年山東省濰坊市全國計(jì)算機(jī)等級(jí)考試C語言程序設(shè)計(jì)預(yù)測(cè)試題(含答案)_第3頁
2021-2022年山東省濰坊市全國計(jì)算機(jī)等級(jí)考試C語言程序設(shè)計(jì)預(yù)測(cè)試題(含答案)_第4頁
2021-2022年山東省濰坊市全國計(jì)算機(jī)等級(jí)考試C語言程序設(shè)計(jì)預(yù)測(cè)試題(含答案)_第5頁
已閱讀5頁,還剩35頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

2021-2022年山東省濰坊市全國計(jì)算機(jī)等級(jí)考試C語言程序設(shè)計(jì)預(yù)測(cè)試題(含答案)學(xué)校:________班級(jí):________姓名:________考號(hào):________

一、單選題(20題)1.以下說法錯(cuò)誤的是A.A.高級(jí)語言都是用接近人們習(xí)慣的自然語言和數(shù)學(xué)語言作為語言的表達(dá)形式

B.計(jì)算機(jī)只能處理由0和1的代碼構(gòu)成的二進(jìn)制指令或數(shù)據(jù)

C.C語言源程序經(jīng)過C語言編譯程序編譯之后生成一個(gè)后綴為.EXE的二進(jìn)制文件

D.每一種高級(jí)語言都有它對(duì)應(yīng)的編譯程序

2.設(shè)n個(gè)待排序的記錄關(guān)鍵字,則在堆排序中需要()個(gè)輔助記錄單元。

A.1B.12C.60D.15

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

#include<stdio.h>

intb=2;

intfunc(int*A)

{b+=*a;retumb;}

main()

{inta=1,t=2;

t+=func(&A);

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

}

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

4.設(shè)有以下宏定義:#defineN3#defineY(n)((N+1)*n)則執(zhí)行以下語句后,z的值為______。z=2*(N+Y(5+1));A.出錯(cuò)B.42C.48D.54

5.

6.設(shè)有表示學(xué)生選課的三張表,學(xué)生S(學(xué)號(hào),姓名,性別,年齡,身份證號(hào)),課程C(課號(hào),課名),選課SC(學(xué)號(hào),課號(hào),成績(jī).,則表SC的關(guān)鍵字(鍵或碼)為()

A.課號(hào),成績(jī)B.學(xué)號(hào),成績(jī)C.學(xué)號(hào),課號(hào)D.學(xué)號(hào),姓名,成績(jī)

7.若變量均已正確定義并賦值,以下合法的C語言賦值語句是()。

A.x=y==5;B.X=n%2.5:C.x+n=i;D.x=5=4+1:

8.

9.以下正確的字符串常量是()。A.“\\\”B.‘a(chǎn)bc’C.OlympicGamesD.“”

10.

11.有以下程序:main(){chara[]="abcdefg",b[10]="abcdefg";printf("%d%d\n",sizeof(a),sizeof(b));}執(zhí)行后輸出結(jié)果是()。

A.77B.88C.810D.1010

12.若有定義“intw[3][5];”,則以下不能正確表示該數(shù)組元素的表達(dá)式是()。

A.*(&w[0][0]+1)B.*(*w+3)C.*(*(w+1))D.*(w+1)[4]

13.有以下程序:#include<stdio.h>main(){chara[5][10]={“China”,“beijing”,“very”,“welcome”,“you”};char*p[5];inti;for(i=3;i<5;i++){p[i]=*(a+i);printf(“%s”,p[i]);printf(“%c”,*p[i]);}}程序運(yùn)行后的輸出結(jié)果是()。

A.wwyyB.ChinaCbeijingbC.veryvwelcomewD.welcomewyouy

14.給出以下定義:charx[]="abcdefg";chary[]={'a','b','c','d','e','f','g'};則正確的敘述為()。

A.數(shù)組x和數(shù)組y等價(jià)B.數(shù)組x和數(shù)組y的長(zhǎng)度相同C.數(shù)組x的長(zhǎng)度大于數(shù)組y的長(zhǎng)度D.數(shù)組x的長(zhǎng)度小于數(shù)組y的長(zhǎng)度

15.若有定義:“inta=4,b=5;floatx=3.4,y=2.1;”,則下列表達(dá)式的值為()。(float)(a+b)/2+(int)x%(int)y;

A.5.5B.55C.5.500000D.55.00000

16.

17.有以下程序:main(){intk=5,n=0;do{switch(k){case1:case3:n+=l;k--;break;defalut:n=0;k--;case2:case4:n+=2;k--;break:}printf("%d",n);}while(k>0&&n<5);}程序運(yùn)行后的輸出結(jié)果是()。A.235B.0235C.02356D.2356

18.下列程序的執(zhí)行結(jié)果是______。#include<stdio.h>unionun{inti;charc[2];};voidmain(){unionunx;x.c[0]=10;x.c[1]==1;printf("\n%d",x.i);}

A.266B.11C.265D.138

19.對(duì)于線性表(7,34,55,25,64,46,20,10)進(jìn)行散列存儲(chǔ)時(shí),若選用H(K)=K%9作為散列函數(shù),則散列地址為1的元素有()個(gè)。

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

20.

二、2.填空題(20題)21.數(shù)據(jù)模型按不同的應(yīng)用層次分為三種類型,它們是______數(shù)據(jù)模型、邏輯數(shù)據(jù)模型和物理數(shù)據(jù)模型。

22.若線性表的長(zhǎng)度經(jīng)常發(fā)生變化,那么該線性表應(yīng)采用的存儲(chǔ)結(jié)構(gòu)是【】。

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

#include<stdio.h>

#include<string.h>

char*ss(char*s)

{returns+strlen(s)/2;}

main()

{char*p,*str="abcdefgh";

p=ss(str);printf("%s\n",p);

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

25.下面程序的輸出是【】。

main()

{intarr[10],i,k=0;

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

arr[i]=i;

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

k+=arr[i]+i;

printf("%d\n"k);}

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

#include<stdio.h>

main()

{FILE*fp;inta[10]={1,2,3,0,0},i;

fp=fopen("d2.dat","wb");

fwtite(a,sizeof(int),5,fp);

fwrite(a,sizeof(int),5,fp);

fclose(fp);

fp=fopen("d2.dat","rb");

fread(a,sizeof(int),10,fp);

fclose(fp);

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

}

27.一棵二叉樹第六層(根節(jié)點(diǎn)為第一層)的節(jié)點(diǎn)數(shù)最多為______。

28.有以下定義和語句,則sizeof(a)的值是【】,而sizeof(a.share)的值是【】。

structdate

{intday;

intmouth;

intyear;

union{intshare1;

floatshare2;

}share;

}a;

29.按"先進(jìn)后出"原則組織數(shù)據(jù)的數(shù)據(jù)結(jié)構(gòu)是【】。

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

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

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

main()

/inti,j,a[][3]={1,2,3,4,5,6,7,8,9};

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

for(j=i+1;j<3;j++)a[j][i]=0;

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

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

printf("\n");

}

}

32.下列軟件系統(tǒng)結(jié)構(gòu)圖的寬度為[]。

33.在面向?qū)ο蠓椒ㄖ?,類之間共享屬性和方法的機(jī)制稱為______。

34.請(qǐng)?jiān)谝韵鲁绦虻谝恍械南聞澗€處填寫適當(dāng)內(nèi)容,使程序能正確運(yùn)行。

【】(double,double);

main()

{doublex,y;

seanf("%1f%1f",&x,&y);

pfintf("%1f\n",max(x,y));

}

doublemax(doublea,doubleb)

{return(a>b?a:b);}

35.以下程序中,fun函數(shù)的功能是求3行4列二維數(shù)組每行元素的最大值。請(qǐng)?zhí)羁铡?/p>

voidfun(int,int,int(*)[4],int*);

main()

{

inta[3][4]={{12,41,36,28},{19,33,15,27),{3,27,19,1}},b[3],i;

fun(3,4,a,B);

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

printf("\n");

}

voidfun(intm,intn,intar[][4],int*br)

{inti,j,x;

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

{

x=ar[i][0];

for(i=0;j<n;j++)if(x<ar[i][j])x=ar[i][j];

______=X;

}

}

36.下列程序?qū)⒍S數(shù)組a的行和列元素互換后存放到另一個(gè)二維數(shù)組b中。請(qǐng)?zhí)羁铡?/p>

main()

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

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

{for(j=0;j<3;j++)

}

}

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

intx=0,y=0;

while(x<15)y++,x+=++y;

printf("%d,%d",y,x);

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

voidswap(int*a,int*b)

{

int*tp;

t=a;a=b;b=t;

}

main()

{

intx=3,y=5,*p=&x,*q=&y;

swap(p,q);

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

}

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

#include<stdio.h>

voidmain()

{ints=0,k;

for(k=7;k>4;k--)

{switch(k)

{case1:

case4:

case7:s++;break;

case2:

case3:

case6:break;

case0:

case5:s+=2;break;}}

printf("s=%d",s);}

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

inta=5;

fun(intB)

{staticinta=10;

a+=b++;

printf("%d",A);

}

main()

{intc=20;

fun(C),

a+=C++;

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

}

三、1.選擇題(20題)41.下面程序段中的循環(huán)體的執(zhí)行次數(shù)是()。for(i=4;i<0;i--)for(j=1;j<=4;j++)sum=sum+j;

A.4B.0C.12D.16

42.下列程序執(zhí)行后的輸出結(jié)果是:main(){chararr[2][4];strcpy(arr'"you");strcpy(arr[1],"me");arr[0][3]='&';printf("%s\n",arr);}程序的輸出結(jié)果是()。

A.you&meB.meC.youD.err

43.一個(gè)C語言的源程序中,______。

A.必須有一個(gè)主函數(shù)B.可以有多個(gè)主函數(shù)C.必須有主函數(shù)和其他函數(shù)D.可以沒有主函數(shù)

44.設(shè)a和b均為int型變量,且a=6、b=11、c=3,則能使值為3的表達(dá)式是()。

A.b%(c%4)B.b%(c-a%5)C.b%a-a%5D.(b%A)-(a%4)

45.執(zhí)行下列程序后,輸出的結(jié)果是()。#include<stdio.h>#defineS(X)X*Xvoidmain(){inta=9,k=3,m=2;a/=S(k+m)/S(k+m);printf("%d",a);}

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

46.若進(jìn)棧序列為1,2,3,4,進(jìn)棧過程中可以出棧,則下列不可能的一個(gè)出棧序列是______。

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

47.對(duì)于一個(gè)正常運(yùn)行的C程序,下列敘述中正確的是()。A.A.程序的執(zhí)行總是從main函數(shù)開始,在main函數(shù)結(jié)束

B.程序的執(zhí)行總是從程序的第一個(gè)函數(shù)開始,在main函數(shù)結(jié)束

C.程序的執(zhí)行總是從main函數(shù)開始,在程序的最后一個(gè)函數(shù)中結(jié)束

D.程序的執(zhí)行總是從程序中的第一個(gè)函數(shù)開始,在程序的最后一個(gè)函數(shù)中結(jié)束

48.數(shù)據(jù)庫設(shè)計(jì)的四個(gè)階段是:需求分析、概念設(shè)計(jì)、邏輯設(shè)計(jì)和______。A.編碼設(shè)計(jì)B.測(cè)試階段C.運(yùn)行階段D.物理設(shè)計(jì)

49.在C程序中,可把整型數(shù)以二進(jìn)制形式存放到文件中的函數(shù)是()。

A.fprintf函數(shù)B.fread函數(shù)C.fwrite函數(shù)D.fputc函數(shù)

50.C語言結(jié)構(gòu)體類型變量在程序執(zhí)行期間,()。

A.所有成員一直駐留在內(nèi)存中B.沒有成員駐留在內(nèi)存中C.部分成員駐留在內(nèi)存中D.只有一個(gè)成員駐留在內(nèi)存中

51.軟件的可維護(hù)性度量可分解為多種因素的度量,下列選項(xiàng)中的______是可維護(hù)性度量的內(nèi)容。

①可測(cè)試性

②可移植性

③可復(fù)用性

④可靠性

A.全部B.①和③C.①、②和④D.②和④

52.有以下程序:main(){intm=3,n=4,x;x;-m++;x=x+8/++n;printf("%d\n",x);}程序運(yùn)行后的輸出結(jié)果是()。

A.3B.5C.-1D.-2

53.若有說明語句:double*P,a;則能通過scanf語句正確給輸入項(xiàng)讀入數(shù)據(jù)的程序段是()。

A.*p=&a;scanf("%lf",p);

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

C.p=&a;scanf("%lf",*p);

D.p=&a;scanf("%lf",p);

54.在C語言中,while和do…while循環(huán)的主要區(qū)別是()。

A.do…while的循環(huán)體不能是復(fù)合語句

B.do…while允許從循環(huán)體外轉(zhuǎn)到循環(huán)體內(nèi)

C.while的循環(huán)體至少被執(zhí)行一次

D.do…while的循環(huán)體至少被執(zhí)行一次

55.有以下程序:main(){chara,b,c,*d;a='\';b='\xbc';c='\0xab';d="\017";printf("%c%c%c\n",a,b,c,*d);}編譯時(shí)出現(xiàn)錯(cuò)誤,以下敘述中正確的是()。

A.程序中只有“a='\';”語句不正確

B.“b='\xbc';”語句不正確

C.“d="\0127";”語句不正確

D.“a='\';”和“c='\0xab';”語句都不正確

56.若有定義和語句:char*sl="12345",*s2="1234";printf("%d\n",strlen(stren(sl,s2)));則輸出結(jié)果()

A.4B.5C.9D.10

57.設(shè)已執(zhí)行預(yù)編譯命令#include<string.h>,以下程序段的輸出結(jié)果是()。chars[]="anapple";printf("%d\n",strlen(s));

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

58.設(shè)a和b均為int型變量,且a=6,b=11,則能使值為3的表達(dá)式是()。

A.b%(a%4)B.b%(a-a%5)C.b%a-a%5D.(b%B)-(a%4)

59.線性表的順序存儲(chǔ)結(jié)構(gòu)和線性表的鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)分別是______。

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

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

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

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

60.對(duì)下列二叉樹進(jìn)行前序遍歷的結(jié)果為()

A.DYBEAFCZXB.YDEBFZXCAC.ABDYECFXZD.ABCDEFXYZ

四、選擇題(20題)61.

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

A.程序執(zhí)行的效率與數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)密切相關(guān)

B.程序執(zhí)行的效率只取決于程序的控制結(jié)構(gòu)

C.程序執(zhí)行的效率只取決于所處理的數(shù)據(jù)量

D.以上三種說法都不對(duì)

63.運(yùn)行下面程序時(shí),從鍵盤輸入字母H,則輸出結(jié)果是()。

A.

B.

C.

D.

64.有以下程序:

#include<stdio.h>

#defineN3

voidfun(inta[][N],intb[])

{inti,j;

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

{b[i]=a[i][0];

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

if(b[i]<a[i][j])b[i]=a[i][j];

}

}

main()

{intx[N][N]={1,2,3,4,5,6,7,8,9},y[N],i;

fun(x,y);

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

printf("\n");

}

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

A.2,4,8,

B.3,6,9,

C.3,5,7,

D.1,3,5,

65.有以下程序:

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

A.0B.4C.6D.7

66.

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

A.1,2,3,1,5,9,

B.1,3,5,1,3,5,

C.1,3,5,0,d,8,

D.1,3,5,-1,3,7,

68.

設(shè)有定義的語句:“charc1=92,c2=92;”,則以下表達(dá)式中的值為零的是()。

A.c1^c2B.c1&c2C.~c2D.c1E.c2

69.有以下程序:

main()

{

chara[7]="a0\OaO\0";inti,j;

i=sizeof(a);j=strlen(a);

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

}

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

A)22B)76

C)75D)62

70.n個(gè)頂點(diǎn)的連通圖中邊的條數(shù)至少為______。A.A.0B.1C.n-1D.n

71.若有以下程序:

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

A.5B.7C.1D.3

72.若要求定義具有10個(gè)int型元素的一維數(shù)組a,則以下定義語句中錯(cuò)誤的是()。

73.以下4個(gè)選項(xiàng)中,不能看作一條語句的是()。

A.;B.a=5,b=2.5,c=3.6;C.if(b!=5)x=2;y=6;D.returnj;

74.

75.有以下程序則輸出結(jié)果是()。A.1245B.1256C.1278D.1267

76.有下列程序:

fun(intx,inty)

{staticintm=0,i=2;

i+=++rn;m=ixy;returnm;

}

main

{intj=l,m=1,k;

k=fun(j,m);printf("%d,",k);

k=fun(j.m);printf(”%d\n”,k);

}

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

A.5.5B.5,11C.11,11D.11,5

77.

78.

79.

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

main()

{inta[3][3]={{1,2},{3,4),{5,6}},i,j,s=0;

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

for(j=0;j<=i;j++)s+=a[i][j];

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

}

A.18

B.19

C.20

D.21

五、程序改錯(cuò)題(1題)81.下列給定程序中函數(shù)fun的功能是:逐個(gè)比較P.q所指兩個(gè)字符串對(duì)應(yīng)位置上的字符,并把ASCIl值大或相等的字符依次存放到C所指的數(shù)組中,形成一個(gè)新的字符串。

例如,若主函數(shù)中a字符串為“aBCDeFgH”,b字符串為“Abed”,則C中的字符串應(yīng)為“aBcdeFgH”。請(qǐng)改正程序中的錯(cuò)誤,使它能得出正確的結(jié)果。

注意:部分源程序在文件MODll.C中,不得增行或刪行,也不得更改程序的結(jié)構(gòu)!

六、程序設(shè)計(jì)題(1題)82.規(guī)定輸入的字符串中只包含字母和*號(hào)。編寫函數(shù)fun(),其功能是:刪除字符串中所有的*號(hào)。編寫函數(shù)時(shí),不得使用C語言提供的字符串函數(shù)。例如,字符串中的內(nèi)容為“****A*BC*DEF*G****”,刪除后,字符串中的內(nèi)容應(yīng)當(dāng)是“ABCDEFG”。注意:部分源程序給出如下。請(qǐng)勿改動(dòng)main()函數(shù)和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun()的花括號(hào)中填入編寫的若干語句。試題程序:

參考答案

1.C本題主要考查我們對(duì)C語言一些基礎(chǔ)知識(shí)的掌握情況。下面分別分析本題的四個(gè)選項(xiàng)。

由于高級(jí)程序設(shè)計(jì)語言具有可讀寫、可理解性好等特點(diǎn),這就要求高級(jí)程序設(shè)計(jì)語言用接近人們習(xí)慣的自然語言和數(shù)學(xué)語言作為語言的表達(dá)形式,選項(xiàng)A的說法正確。

在計(jì)算機(jī)中,機(jī)器可以接受和處理的只能是由0和1組成的二進(jìn)制代碼,用高級(jí)語言編寫的程序都需要經(jīng)過編譯和連接,使其轉(zhuǎn)化為二進(jìn)制代碼才能被機(jī)器執(zhí)行。因此,選項(xiàng)B的說法正確。

C語言源程序經(jīng)過C語言編譯程序編譯之后生成一個(gè)后綴為.OBJ的二進(jìn)制文件(稱為目標(biāo)文件);最后要由“連接程序”把此.OBJ文件與C語言提供的各種庫函數(shù)連接起來生成一個(gè)后綴為.EXE的可執(zhí)行文件。因此,選項(xiàng)C的說法不正確。

由于高級(jí)語言編寫的程序都需要經(jīng)過編譯和連接,才能被計(jì)算機(jī)執(zhí)行,因此,每一種高級(jí)語言都有它對(duì)應(yīng)的編譯程序,D選項(xiàng)的說法正確。

2.A

3.B解析:本題考查函數(shù)調(diào)用時(shí)的參數(shù)傳遞。在執(zhí)行函數(shù)func時(shí),由于全局定義了一個(gè)變量b,所以在函數(shù)體中執(zhí)行時(shí)b=2+1=3,最終t=2+3=5。

4.D

5.A

6.C學(xué)號(hào)是學(xué)生表S的主鍵,課號(hào)是課程表C的主鍵,所以選課表SC的關(guān)鍵字就應(yīng)該是與前兩個(gè)表能夠直接聯(lián)系且能唯一定義的學(xué)號(hào)和課號(hào),所以選擇C項(xiàng)。

7.AB選項(xiàng)中運(yùn)算符“%”的運(yùn)算對(duì)象為整數(shù)。C選項(xiàng)中不能將變量賦給表達(dá)式“x+n”。D選項(xiàng)中不能將表達(dá)式“4+1”賦給常量5。故本題答案為A選項(xiàng)。

8.A

9.D在C語言中,字符串常量是用雙引號(hào)標(biāo)注的字符序列,因此B選項(xiàng)和C選項(xiàng)不正確。字符序列中可包含一些轉(zhuǎn)義字符,轉(zhuǎn)義字符以“\\”開頭。A選項(xiàng)中包含3個(gè)前兩個(gè)(\\\\)代表一個(gè)“\\”字符,后面一個(gè)為“””。因?yàn)閈\”被看作一個(gè)“””,所以該字符串缺少一個(gè)結(jié)束的“””。因此A選項(xiàng)不正確。D選項(xiàng)的兩個(gè)“”之間沒有任何字符,代表的是一個(gè)空串,是合法的字符串常量,因此D選項(xiàng)正確。B選項(xiàng)的abc應(yīng)該使用雙引號(hào)標(biāo)注。故本題答案為D選項(xiàng)。

10.D

11.C解析:本題考核的知識(shí)點(diǎn)是字符數(shù)組的定義、賦初值以及函數(shù)sizeof()的應(yīng)用。本題中定義兩個(gè)字符型數(shù)組,其中a省略了長(zhǎng)度,定義了b的長(zhǎng)度為10,并賦初值分別為“abcdefg”和“abcdfg”。所以a的長(zhǎng)度為賦值給它的字符串的字符個(gè)數(shù)7加上一個(gè)結(jié)束轉(zhuǎn)義字符,即a的長(zhǎng)度為7+1為8.定義時(shí)b的長(zhǎng)度定義為10,故b的長(zhǎng)度為10,因此最后通過函數(shù)sizeof()求得的數(shù)組a和數(shù)組b的長(zhǎng)度分別為8和10,所以,4個(gè)選項(xiàng)中選項(xiàng)C符合題意。

12.DA選項(xiàng)中,“*(&w[0][0]+1)”表示“w[0][1]”;B選項(xiàng)中,“*(*w+3)”表示“w[0][3]”;C選項(xiàng)中,“*(*(w+1))”表示“w[1][0]”;D選項(xiàng)中,“*(w+1)[4]”的正確寫法是“(*(w+1))[4]”,表示“w[1][4]”。故本題答案為D選項(xiàng)。

13.Dmain函數(shù)定義一個(gè)二維字符數(shù)組a,它包含5個(gè)字符串,每個(gè)字符串存放在一個(gè)長(zhǎng)度為10的一維數(shù)組中。指針數(shù)組P包含5個(gè)字符指針元素。for循環(huán)中,每次將*(a+i)賦給P[i],再輸出P[i]和*P[i]。由于*(a+i)等價(jià)于a[i],因此每次都是將下標(biāo)為i的字符串首地址賦給p[i],再輸出該字符串和該字符串的首字符。i=3時(shí),輸出字符串“welcome”和首字符“w”;i=4時(shí),輸出字符串“you”和首字符“y”。綜上,輸出結(jié)果為welcomewyouy。故本題答案為D選項(xiàng)。

14.C解析:在C語言中,字符串以'\\0'作為結(jié)束符,因此數(shù)組x的長(zhǎng)度為7+1=8,而數(shù)組y的長(zhǎng)度等于7。

15.C在計(jì)算(float)(a4-b)/2時(shí),由于通過強(qiáng)制類型轉(zhuǎn)換將(a+b)轉(zhuǎn)換成了float型,所以應(yīng)先將2轉(zhuǎn)換成float型,再進(jìn)行計(jì)算,得4.500000。在計(jì)算(int)x%(int)y時(shí),先將x和y通過強(qiáng)制類型轉(zhuǎn)換成int型,再進(jìn)行求余運(yùn)算,結(jié)果為1。又因?yàn)?.500000是float型,所以將1和它相加時(shí),先將1換成float型,再計(jì)算,得到5.500000。類型轉(zhuǎn)換的一般規(guī)則是:低級(jí)類型從高級(jí)類型,并進(jìn)行相應(yīng)的轉(zhuǎn)換。數(shù)據(jù)類型的級(jí)別由低到高的排序表示為:char→int→unsigned→log→float→double。

16.C

17.B本題考查分支語句用法加個(gè)句號(hào)因?yàn)樽兞康某跏贾捣謩e為k一5、n一0,所以程序第1次進(jìn)入循環(huán)時(shí),執(zhí)行default語句,輸出0,k減1;這時(shí)n=0、k=4,程序進(jìn)行第2次循環(huán),執(zhí)行case4:這個(gè)分支,結(jié)果是n=2、k=3,打印出2;這時(shí)n=2、k=3,break跳出,程序進(jìn)行第3次循環(huán),執(zhí)行case3:這個(gè)分支,結(jié)果是n=3、k=2,打印出3;這時(shí)n一3、k2,b¨ak跳出,程序然后進(jìn)行第4次循環(huán),執(zhí)行case2:case4:這個(gè)分支,結(jié)果是n=5、k=1,打印出5,break跳出,這時(shí)因?yàn)閚=5不滿足n<5的循環(huán)條件,因此循環(huán)結(jié)束。

18.A解析:由于本題定義的是共用體,所以成員表列中的整型變景x與字符數(shù)組c共占用同—個(gè)存儲(chǔ)單元,且此存儲(chǔ)單元為2個(gè)字節(jié),通常c[0]位于低字節(jié),c[1]位于高字節(jié),所以x.i的值為266。

19.D

20.C

21.概念概念

22.鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)

23.efghefgh解析:函數(shù)*ss的作用是使字符串指針往后移strlen(s)/2個(gè)位置。形參指針a指向字符串'abcdefeh',調(diào)用函數(shù)*ss后,指針指向e,所以輸出為efgh。

24.結(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ù)。

25.1212解析:本題通過第一個(gè)for循坪將數(shù)組arr[0]-arr[9]分別賦值為0-9,通過第二個(gè)for循環(huán)的三次循環(huán)累加,求出結(jié)果為12,具體分析如下:

i=1:k=0+arr[1]+1即k=2;

i=2:k=2+arr[2]+2即k=6;

i=3:k=6+arr[3]+3即k=12;

26.12300123001,2,3,0,0,1,2,3,0,0,解析:本題考查文件讀寫函數(shù)fread和fwrite的用法。fwrite函數(shù)將數(shù)組a的前5個(gè)元素輸出到文件fp中兩次,共10個(gè)字節(jié),再調(diào)用fread函數(shù)從文件fp中讀取這10個(gè)字節(jié)的數(shù)據(jù)到數(shù)組a中,此時(shí)數(shù)組a的內(nèi)容就變?yōu)閧1,2,3,0,0,1,2,3,0,0},最后的輸出結(jié)果為'1,2,3,0,0,1,2,3,0,0,'。

27.在二叉樹的第k層上,最多有2k-1(k>1)個(gè)結(jié)點(diǎn)。

28.10410\r\n4解析:結(jié)構(gòu)體變量所占內(nèi)存長(zhǎng)度是各成員占的內(nèi)存長(zhǎng)度之和。每個(gè)成員分別占有其自己的內(nèi)存單元。int占2個(gè)字節(jié),float占4個(gè)字節(jié),共用體變量所占的內(nèi)存長(zhǎng)度等于最長(zhǎng)的成員的長(zhǎng)度。所以,sizeof(a.share)的值是4,sizeof(a)的值是2+2+2+4=10。

29.棧棧解析:考查考生對(duì)棧和隊(duì)列概念的掌握。按'先進(jìn)后出'原則組織數(shù)據(jù)的數(shù)據(jù)結(jié)構(gòu)是棧;按'先進(jìn)先出'原則組織數(shù)據(jù)的數(shù)據(jù)結(jié)構(gòu)是隊(duì)列。

30.*(p+5)或p[5]*(p+5)或p[5]解析:本題的考查點(diǎn)是通過指針引用數(shù)組元素。98是數(shù)組w的第5個(gè)元素(最開始的為第0個(gè)),而通過*p=w已經(jīng)將p指向了數(shù)組w,要想不移動(dòng)指針p而引用98,可以有以下兩種方法:p[5]、*(p+5)。

31.123\n056\n009123\\n056\\n009解析:數(shù)組是用于按順序存儲(chǔ)同類型數(shù)據(jù)的數(shù)據(jù)結(jié)構(gòu),如果有一個(gè)一維數(shù)組,它的每一個(gè)元素是類型相同的一維數(shù)組,就形成了一個(gè)二維數(shù)組。在內(nèi)存中數(shù)組的元素是連續(xù)順序存放的,對(duì);維數(shù)組來說,先存放第一行,再存放第;行,…,因?yàn)槊恳恍卸际瞧鋸V義一維數(shù)組的元素,并且在給出全部數(shù)組元素的初值后,二維數(shù)組的定義中可以將第一維的下標(biāo)省略。本題中,定義了一個(gè)元素類型為整型的二維數(shù)組敢a[][3]={1,2,3,4,5,6,7,8,9),它相當(dāng)于一個(gè)3*3的矩陣,for(i=0;i<3:i++)for(j=i+1;j<3;j++)a[j][i]=0;將行下標(biāo)i大于列下標(biāo)j的元素s[1][0],a[2][0],a[2][1]賦值為0,最后for(j=0;j<3;j++)prinff('%n',a[i][j]);printf('\\n');進(jìn)行換行輸出,所以輸出結(jié)果為

123

056

009

32.33解析:軟件系統(tǒng)結(jié)構(gòu)圖的寬度:整體控制跨度(最大模塊數(shù)的層)的表示。

33.繼承繼承解析:在面向?qū)ο蟮某绦蛟O(shè)計(jì)方法中,某些屬性和方法是可以共享的,由于類從父類中繼承而來,這樣提高了軟件的可重用性。

34.doublemax或externdoublemaxdoublemax或externdoublemax解析:函數(shù)聲明是對(duì)所用到的函數(shù)的特征進(jìn)行必要的聲明,編譯系統(tǒng)以函數(shù)聲明中給出的信息為依據(jù),對(duì)調(diào)用表達(dá)式進(jìn)行檢測(cè),以保證調(diào)用表達(dá)式與函數(shù)之間的參數(shù)正確傳遞。函數(shù)聲明的一般格式為:類型標(biāo)識(shí)符函數(shù)名(類型標(biāo)識(shí)符形參,…);這些信息就是函數(shù)定義中的第一行的內(nèi)容。本題中main()函數(shù)需要調(diào)用max()函數(shù),在main()之前就需要聲明函數(shù)max(),并且可以用extem說明符使變量的作用域擴(kuò)充到需要用到它的函數(shù),所以,填寫doublemax(或externdoublemax)。

35.br[i]或*(br+i)br[i]或*(br+i)解析:求最大值算法要求輸入的一般是一系列數(shù),例如一個(gè)數(shù)組,而輸出只有一個(gè)值。計(jì)算時(shí)通常的做法是,首先將這一系列數(shù)的笫1個(gè)值保存到結(jié)果變量中,然后用一個(gè)指針或循環(huán)變量從頭(或從第2個(gè)值)至尾遍歷這一系列數(shù),每次比較結(jié)果變量和被遍歷的值,如果該值比結(jié)果大,則將該值保存到結(jié)果中。本題中,3行4列二維數(shù)組a顯然是算法的輸入值,而傳給函數(shù)fun()的3和4在函數(shù)中起到限制循環(huán)次數(shù)的作用,所以它們代表輸入數(shù)據(jù)的行列數(shù).而傳遞給函數(shù)的一維數(shù)組b即沒有初始化,最后又要輸出它,所以數(shù)組b肯定是用來保存每行的最大值。在函數(shù)中是一個(gè)二重循環(huán),外循環(huán)首先將ar[i][0]賦給x,然后內(nèi)循環(huán)中比較x和ar[il剛,若x比較小就讓x=ar[i][j],這就說明x是保存結(jié)果的臨時(shí)變量.最后應(yīng)該將x的值輸出到數(shù)組b中,也就是形參br的相應(yīng)位置。故在空格處應(yīng)該填的內(nèi)容為br[i]或者寫成指針方式*(br+i)。

36.b[j][i]=a[i][j]b[j][i]=a[i][j]解析:本題考查二維數(shù)組的基本知識(shí)。它是要將一個(gè)二維數(shù)組,的行和列元素互換后存放到另一個(gè)二維數(shù)組b中,只要將數(shù)組a的行標(biāo)和列標(biāo)互換,然后賦給數(shù)組b即可。

37.8208,20解析:本題考查while循環(huán)和++運(yùn)算符的運(yùn)用。x=0符合條件x<15,則執(zhí)行y++,x+=++y后,y=1,x=0+2=2后y=2,符合條件繼續(xù)循環(huán),y=3,x=x+4=6后y=4,再循環(huán)y=5,x=x+6=6+6=12后,y=6,繼續(xù)循環(huán)y=7,x=x+8=12+8-20,此時(shí)y=8。

38.3535解析:在主函數(shù)中通過定義和賦初值使p和q分別指向了x和y,執(zhí)行函數(shù)調(diào)用“swap(p,q)”,把p和q中的地址值傳給了形參指針.變量a和b,a和b分別指向了實(shí)參x和y。在函數(shù)swap()中交換了指針變量a和b的值,并沒有交換a和b指向的實(shí)參的值,所以函數(shù)調(diào)用返回后x和y依舊是原來的值。

39.s=3s=3解析:當(dāng)k=7時(shí),執(zhí)行case7,s++,s的值為1。當(dāng)k=6時(shí),直接break出switch結(jié)構(gòu);當(dāng)k=5時(shí),執(zhí)行case5,s+=2,s的值為3;當(dāng)k=4時(shí)由于不滿足for循環(huán)的條件,所以結(jié)束循環(huán),所以輸出的s的值為3。注意:循環(huán)語句和條件的嵌套使用。

40.30253025解析:本題考核的知識(shí)點(diǎn)是變量的存儲(chǔ)屬性和算術(shù)運(yùn)算的應(yīng)用。本題涉及了自動(dòng)變量、靜態(tài)變量和外部變量。外部變量是定義在所有函數(shù)之外的變量,本題中inta=5定義了一個(gè)外部變量a,它是一個(gè)全局變量,即作用域是從定義的位置開始到本文件的結(jié)束;靜態(tài)變量的存儲(chǔ)空間在程序的整個(gè)運(yùn)行期間是固定的(static),本題函數(shù)fun()中staticinta=10定義個(gè)一個(gè)靜態(tài)變量a,此靜態(tài)變量a是個(gè)靜態(tài)的局部變量,即它的值只能在本函數(shù)中使用;自動(dòng)變量是C程序中使用最多的一種變量,它的建立和撤消都是由系統(tǒng)在程序執(zhí)行過程中自動(dòng)進(jìn)行的,auto是自動(dòng)變量的存儲(chǔ)類別標(biāo)識(shí)符,如果省略auto,系統(tǒng)隱含認(rèn)為此變量為auto,本題中main()中intc=20定義了一個(gè)自動(dòng)變量c,此自動(dòng)變量c是個(gè)靜態(tài)的局部變量.算術(shù)運(yùn)算中a+=b++相當(dāng)于a=a+b,b=b+1.所以,在第一個(gè)ptine('%d',a)中a=a+b=10+20=30,第二個(gè)printf('%d',a)中a=a+c=5+20=25,即輸出3025。

41.B解析:本題是一個(gè)雙重循環(huán),而外循環(huán)的循環(huán)條件i<O在剛開始的時(shí)候就不滿足(i的初值為4),所以循環(huán)體一次也不會(huì)執(zhí)行。故應(yīng)該選擇B。

42.A解析:本題定義了一個(gè)二維字符數(shù)組arr[2][4],該二維數(shù)組可以看成一個(gè)含有兩個(gè)元素arr[0]、arr[1]的一維字符數(shù)組,分別看成是含有4個(gè)元素,也可以看成是以arr為首地址的一個(gè)一維字符數(shù)組。函數(shù)strcpy(arr,“you”)是把字符串“you”復(fù)制到arr指向的空間,strcpy(arr[1],“me”)同理,在以arr[0]為首地址的字符數(shù)組中有“you”,在以air[1]為首地址的字符數(shù)組中有“me”。arr[0][3]=‘&’;是給arr[0]為首地址的字符數(shù)組的第4個(gè)元素賦值為‘&’。因此輸出為you&me。

43.A

44.D選項(xiàng)D)括號(hào)內(nèi)的運(yùn)算分別是b%a=11%6=5和a%c=6%4=2,最后得到5-2=3。

45.D解析:本題主要是考查帶參數(shù)的宏定義及其相關(guān)運(yùn)算。本題中宏運(yùn)算過程如下:a=a/(S(k+m)/S(k+m))=a/(k+m*k+m/k+m*k+m)=9/(3+2*3+2/3+2*3+2)=0。

46.C解析:棧是一種后進(jìn)先出表,選項(xiàng)C中,先出棧的是3,說明此時(shí)棧內(nèi)必然有1,2,由于1先于2進(jìn)淺,所以1不可能在2之前出棧,故選項(xiàng)C這種出棧序列是不可能的。

47.A解析:一個(gè)C語言源程序無論包括了多少函數(shù),總是從main函數(shù)開始執(zhí)行,從main函數(shù)結(jié)束。

48.DD)【解析】數(shù)據(jù)庫設(shè)計(jì)目前一段采用生命周期法.即將整個(gè)數(shù)據(jù)庫應(yīng)用系統(tǒng)的開分解成目標(biāo)獨(dú)立的若干階段,它們是:需要分析階段、概念設(shè)計(jì)階段、邏輯設(shè)計(jì)階段、物理設(shè)計(jì)階段、編碼階段、測(cè)試階段、運(yùn)行階段、進(jìn)一步修改階段。在數(shù)據(jù)庫設(shè)計(jì)中采用上面幾個(gè)階段中的前四個(gè)階段,并且重點(diǎn)以數(shù)據(jù)結(jié)構(gòu)和模型設(shè)計(jì)為主線。

49.C解析:fprintf是格式文件格式化輸出函數(shù),fread是讀文件,fputc輸出單個(gè)字符到文件。只有fwrite可以通過參數(shù)來設(shè)置以二進(jìn)制形式寫文件。

50.A解析:C語言結(jié)構(gòu)體類型變量在程序執(zhí)行期間所有成員一直駐留在內(nèi)存中。

51.C

52.D解析:主函數(shù)中首先定義了整型變量m、n和x,并給m和n賦初值為3和4,接著執(zhí)行兩條賦值語句,第一條x=-m++等價(jià)于x=-m,m++,運(yùn)行后x的值為-3,第二條x=x+8/++n等價(jià)于++n,x=x+8/n,即x=-3+8/5=-2,因此最后輸出x的值為-2。所以,4個(gè)選項(xiàng)中選項(xiàng)D符合題意。

53.D解析:*p間接引用指針指向的變量,因此“(*p)=&a”不對(duì)。scanf()的輸入變量必須為地址,因此C是錯(cuò)誤的。

54.D解析:本題考查while和do…while循環(huán)的區(qū)別。while循環(huán)的控制出現(xiàn)在循環(huán)體之前,只有當(dāng)while后面的表達(dá)式的值為非零時(shí),才可能執(zhí)行循環(huán)體:在do…while構(gòu)成的循環(huán)體中,總是先執(zhí)行一次循環(huán)體,然后再求表達(dá)式的值,因此無論表達(dá)式的值是否為零,循環(huán)體至少要被執(zhí)行一次。

55.D解析:語句a=\'\\\'是錯(cuò)誤的,因?yàn)閈\是轉(zhuǎn)義字符,應(yīng)該用\\\\來表示,語句“B=\'\\xbc\';”是正確的,它是將一個(gè)用十六進(jìn)制表示的轉(zhuǎn)義字符賦給一個(gè)字符型變量;語句“c=\\0xab;”是錯(cuò)誤的,反斜線后的十六進(jìn)制只可由小寫x開頭,不能用0x。語句“d='\\0127';”是正確的,可以給字符型指針變量賦一個(gè)字符串常量,其作用是讓該指針變量指向該字符串常量。所以,D選項(xiàng)為所選。

56.A

57.B解析:如果一個(gè)字符數(shù)組中存放一個(gè)字符串,則函數(shù)strlen的值為“\\0”之前的全部字符個(gè)數(shù),也包括空格在內(nèi)。注意:字符串處理函數(shù)的使用。

58.D

59.B【命題目的】考查有關(guān)線性表存儲(chǔ)結(jié)構(gòu)的基本知識(shí)。

【解題要點(diǎn)】順序存儲(chǔ)結(jié)構(gòu)中,數(shù)據(jù)元素存放在一組地址連續(xù)的存儲(chǔ)單元中,每個(gè)數(shù)據(jù)元素地址可通過公式LOC(ai)=LOC(a1)+(I-1)L計(jì)算得到,從而實(shí)現(xiàn)了隨機(jī)存取。對(duì)于鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu),要對(duì)某結(jié)點(diǎn)進(jìn)行存取,都得從鏈的頭指針指向的結(jié)點(diǎn)開始,這是一種順序存取的存儲(chǔ)結(jié)構(gòu)。

【考點(diǎn)鏈接】順序存儲(chǔ)結(jié)構(gòu)和鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)的定義和性質(zhì),兩種存儲(chǔ)結(jié)構(gòu)的操作方法。

60.C解析:本題考查數(shù)據(jù)結(jié)構(gòu)中二叉樹的遍歷。根據(jù)對(duì)二叉樹根的訪問先后順序不同,分別稱為前序遍歷、中序遍歷和后序遍歷。這三種遍歷都是遞歸定義的,即在其子樹中也按照同樣的規(guī)律進(jìn)行遍歷。下面就是前序遍歷方法的遞歸定義。

當(dāng)二叉樹的根不為空時(shí),依次執(zhí)行如下3個(gè)操作:

(1)訪問根結(jié)點(diǎn)。

(2)按先序遍歷左子樹。

(3)按先序遍歷右子樹。

根據(jù)如上前序遍歷規(guī)則,來遍歷本題中的二叉樹。首先訪問根結(jié)點(diǎn),即A,然后遍歷A的左子樹。遍歷左子樹同樣按照相同的規(guī)則首先訪問根結(jié)點(diǎn)B,然后遍歷B的左子樹。遍歷B的左子樹,首先訪問D,然后訪問D的左子樹,D的左子樹為空,接下來訪問D的右子樹,即Y。遍歷完B的左子樹后,再遍歷B的右子樹,即E。到此遍歷完A的左子樹,接下來遍歷A的右子樹。按照同樣的規(guī)則,首先訪問C,然后遍歷C的左子樹,即F。C的左子樹遍歷完,接著遍歷C的右子樹。首先訪問右子樹的根結(jié)點(diǎn)X,然后訪問X的左子樹,X的左子樹,即Z,接下來訪問X的右子樹,右子樹為空。到此,把題目的二叉樹進(jìn)行了一次前序遍歷。遍歷的結(jié)果為ABDYECFXZ,故本題的正確答案為選項(xiàng)C。

61.B

62.A本題考查程序效率。程序效率是指程序運(yùn)行速

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(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ǔ)空間,僅對(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)論