2022-2023年廣東省中山市全國計(jì)算機(jī)等級考試C語言程序設(shè)計(jì)預(yù)測試題(含答案)_第1頁
2022-2023年廣東省中山市全國計(jì)算機(jī)等級考試C語言程序設(shè)計(jì)預(yù)測試題(含答案)_第2頁
2022-2023年廣東省中山市全國計(jì)算機(jī)等級考試C語言程序設(shè)計(jì)預(yù)測試題(含答案)_第3頁
2022-2023年廣東省中山市全國計(jì)算機(jī)等級考試C語言程序設(shè)計(jì)預(yù)測試題(含答案)_第4頁
2022-2023年廣東省中山市全國計(jì)算機(jī)等級考試C語言程序設(shè)計(jì)預(yù)測試題(含答案)_第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ì)預(yù)測試題(含答案)學(xué)校:________班級:________姓名:________考號:________

一、單選題(20題)1.

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

A.在switch語句中不一定使用break語句

B.在switch語句中必須使用default語句

C.break語句必須與switch語句中的case配對使用

D.break語句只能用于switch語句

3.設(shè)有遞歸算法如下試問計(jì)算x(x(8))時(shí)需要計(jì)算()次x函數(shù)。A.8B.9C.16D.18

4.參加百年阿里培訓(xùn)的n位同學(xué)結(jié)伴去西湖旁邊為游人指路,兩人一組,他們打算先讓體重之和恰好為102公斤的同學(xué)一組,請給出一個(gè)算法找到這樣的組合,或者確定他們中不存在這樣的組合,其中最優(yōu)的算法時(shí)間復(fù)雜度為?(假設(shè)體重均為整數(shù))()

A.O(log(n))B.O(n)C.O(nlog(n))D.O(n^2)

5.

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

#include<stdio.h>

#defineS(X)X*X

voidmain()

{ihta=9,k=3,m=2;

a/=S(k+m)/S(k+m);

printf("%d",A);

}

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

7.有3個(gè)節(jié)點(diǎn)的二叉樹可能有()種。

A.12B.13C.5D.15

8.使用下列二維圖形變換矩陣A=a*T,,其中,a是行向量(xy1),是齊次坐標(biāo)形式的二維點(diǎn)。給定的變換矩陣T如下所示,則將產(chǎn)生的變換結(jié)果為()A.圖形放大2倍

B.圖形放大2倍,同時(shí)沿X、Y坐標(biāo)軸方向各移動(dòng)一個(gè)單位

C.沿X坐標(biāo)軸方向各移動(dòng)2個(gè)單位

D.沿X坐標(biāo)軸放大2倍,同時(shí)沿X、Y坐標(biāo)軸方向各移動(dòng)一個(gè)單位

9.若已包括頭文件且已有定義charsl[18],s2={"ABCDE")和inti,現(xiàn)要將字符串”ABCDE”賦給sl,下列語句錯(cuò)誤的是()。

A.strcpy(s1,s2)

B.strcpy(s1,"ABCDE");

C.sl="ABCDE";

D.for(i=0;i<6;i++)sl[i]=s2[i]

10.以下選項(xiàng)中與“if(a==l)a=b;elsea++;”語句功能不同的switch語句是()。

A.switch(a){casel:a=b;break;default:a++;}

B.switch(a==l){case0:a=b;break;casel:a++;}

C.switch(a){default:a++;break;casel:a=b;}

D.switch(a==l){casel:a=b;break;case0:a++;}

11.若已知一個(gè)棧的進(jìn)棧序列是l,2,3…n,其輸出序列是P1,P2,P3,…PN,若P1=3,則P2為()。

A.可能是2B.一定是2C.可能是1D.一定是1

12.有以下程序:#include<stdio.h>voidf(int*p,int*q);main(){intm=1,n=2,*r=&m;f(r,&n);printf(“%d,%d”,m,n);}voidf(int*p,int*q){p=p+1;*q=*q+1;}程序的運(yùn)行結(jié)果是()。A.2,3B.1,3C.1,4D.1,2

13.以下可以正確且安全地用作用戶標(biāo)識符的一組選項(xiàng)是()。

A._32int,long64B.Switch,unsignedC.Abc,getchD.3break,enter

14.最壞情況下時(shí)間復(fù)雜度不是n(n-1)/2的排序算法是()

A.快速排序B.冒泡排序C.直接插入排序D.堆排序

15.在堆棧中存取數(shù)據(jù)的原則是。A.先進(jìn)先出B.后進(jìn)先出C.先進(jìn)后出D.隨意進(jìn)出

16.下列程序段的時(shí)間復(fù)雜度為()。A.O(n)B.O(log2n)C.O(n3)D.O(n2)

17.以下選項(xiàng)中非法的字符常量是A.A.'\101'

B.'\65'

C.”\xff'

D.'\019'

18.若用一個(gè)大小為6的數(shù)組來實(shí)現(xiàn)循環(huán)隊(duì)列,且當(dāng)前rear和front的值分別為0和3,當(dāng)從隊(duì)列中刪除一個(gè)元素,再加入兩個(gè)元素后,rear和front的值分別為多少()。

A.1和5B.2和4C.4和2D.5和1

19.若f(n)=3n2+2n+1,則f(n)=()。

A.O(n2)B.O(n)C.O(2n)D.O(3n2)

20.有以下程序:#include<stdio.h>main(){chara==‘0’,b=‘A’;inti;for(i=1;i<6;i++)if(i%2==0)putchar(a+i);elseputchar(b+i);}程序運(yùn)行后的輸出結(jié)果是()。

A.A2A3BB.2B4DFC.B4CD7D.B2D4F

二、2.填空題(20題)21.有以下語句段

intnl=10,n2=20;

printf("______",n1,n2);

要求按以下格式輸出n1和n2的值,每個(gè)輸出行從第一列開始,請?zhí)羁铡?/p>

n1=10

n2=20

22.以下程序段中,錯(cuò)誤的行號是【】。①#include<stdio.h>②main()③{charstr[14];str[]={"IloveChina!"};④printf("%s",str);⑤}

23.面向?qū)ο蟮哪P椭?,最基本的概念是對象和______。

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

structst

{charname[20];doublescore;};

main()

{structstex;

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

25.\13'在內(nèi)存中占1個(gè)字節(jié),"\12"在內(nèi)存中占______個(gè)字節(jié)。

26.以下程序中函數(shù)fun()的功能是構(gòu)成一個(gè)如圖所示的帶頭結(jié)點(diǎn)的單向鏈表,在結(jié)點(diǎn)的數(shù)據(jù)域中放入了具有兩個(gè)字符的字符串。函數(shù)disp的功能是顯示輸出該單向鏈表中所有結(jié)點(diǎn)中的字符串。請?zhí)羁胀瓿珊瘮?shù)disp。

#include<atdio.h>

typedefstructnode/*鏈表結(jié)點(diǎn)結(jié)構(gòu)*/

{charsub[3];

structnode*next;

}Node

Node~un(chars)/*建立鏈表*/

{......}

voiddisp(Node*h)

{Node*Ps

p=h->next;

while(【】)

{printf("%s\n",p->suh);p=【】;}

}

main()

{Node*hd;

hd=fun();disp(hd);prinff("\n");

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

a=15;

b=0;

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

28.下面程序的功能是將字符串s中所有的字符c刪除,補(bǔ)足所缺語句。

#include<stdio.h>

main()

{chars[80];

inti,j;

gets(s);

for(i=j=0;s[i]!='\0';i++)

if(s[i]!='c')【】;

s[j]='\0';

puts(s);

}

29.求任意一個(gè)數(shù)(用16位二進(jìn)制碼表示)的補(bǔ)碼。

main()

{unsignedinta;

【】;

scanf("%O",&a);

printf("%o\n",getbits(a));

}

unsignedintgetbits(value)

unsignedintvalue;

{unstgnedintz;

z=【】;

if(z==0100000)

【】;

else

z=value;

return(z);

}

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

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

fun(intx)

{staticinta=3;

a+=x;

return(a);

}

main()

{intk=2,m=1,n;

n=fun(k);

n=fun(m);

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

}

32.以下程序中select函數(shù)的功能是:在N行M列的二維數(shù)組中,選出一個(gè)最大值作為函數(shù)值返回,并通過形參傳回此最大值所在的行下標(biāo)。請?zhí)羁铡?/p>

#defineN3

#defineM3

select{inta[N][M],int*n;

{inti,j,row=l,eolum=l;

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

forj=0;j<M;j++)

if(a[i][j]>a[row][colum]){row=i;colum=j:}

*n=______;

return______;

}

main()

{inta[N][M]={9,11,23.6,1,15,9,17,20},max,nj

max=select(a,&n);

printf("max=%d,line=%d\n",max.n;

}

33.棧中允許進(jìn)行插入和刪除的一端叫做______。

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

35.下列程序執(zhí)行輸出的結(jié)果是______。

#include<stdio.h>

f(intA)

{intb=0;

staticc=7;

a=c++;b++;

return(A);

}

main()

{inta=2,i,k;

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

k=f(a++);

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

}

36.下面函數(shù)用來求出兩個(gè)整數(shù)之和,并通過形參傳回兩數(shù)相加之和值。請?zhí)羁铡?/p>

intadd(intx,inty,【】,)

{【】=x+y;}

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

intm=17;

intfun(intx,inty)

{intm=3;

return(x*Y-m);

}

main()

{inta=5,b=7;

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

}

38.已知head指向一個(gè)帶頭結(jié)點(diǎn)的單向鏈表,鏈表中每個(gè)結(jié)點(diǎn)包含數(shù)據(jù)域(data)和指針域(next),數(shù)據(jù)域?yàn)檎汀R韵潞瘮?shù)求出鏈表中所有鏈結(jié)點(diǎn)數(shù)據(jù)域的和值,作為函數(shù)值返回。請?jiān)跈M線處填入正確內(nèi)容。

structlink

{intdata;structlink*next;}

main()

{structlink*head;

......

sum(head);

......

}

sum(【】);

{structlink*p;ints=0;

p=head->next;

while(p){s+=p->data;p=p->next;}

return(s);}

39.二分法查找僅限于這樣的表:表中的數(shù)據(jù)元素必須有序,其存儲(chǔ)結(jié)構(gòu)必須是______。

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

main()

{inti=0,a=0;

while(i<20)

{for(;;)

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

elsei--;}

i+=11;

a+=i;

}

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

}

三、1.選擇題(20題)41.設(shè)intx=1,y=1;表達(dá)式(!x||--y)的值是()。

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

42.以下程序的輸出結(jié)果是______。#defineTIMES(X)X*Xmain(){inta=16,k=2,m=1;a/=TIMES(k+m)/TIMES(k+m);printf("d\n",a);}

A.16B.2C.9D.1

43.已知i、j、k為整型變量,若從鍵盤輸入1,2,3<回車>,使i的值為1、j的值為2、k的值為3,以下選項(xiàng)中正確的輸入語句是()。

A.scanf("%2d%2d%2d",&i,&j,&k);

B.scanf("%d%d%d",&i,&j,&k);

C.scanf("%d,%d,%d",&i,&j,&k);

D.scanf("i=%d,j=%d,k=%d",&i,&j,&k);

44.有以下程序main(){intx[8]={8,7,6,5,0,0},*s;s=x+3;printf("%d\n",s[2]);}執(zhí)行后輸出結(jié)果是

A.隨機(jī)值B.0C.5D.6

45.設(shè)有以下程序段intx=0,s=0;while(!x!=0)s+=++x;printf("%d",s);則

A.運(yùn)行程序段后輸出0B.運(yùn)行程序段后輸出1C.程序段中的控制表達(dá)式是非法的D.程序段執(zhí)行無限次

46.設(shè)有如下三個(gè)關(guān)系表:

下列操作中正確的是()。

A.T=R∩SB.T=R∪SC.T=R×SD.T=R/S

47.以下敘述中不正確的是

A.在不同的函數(shù)中可以使用相同的名字的變量

B.函數(shù)中的形式參數(shù)是局部變量

C.在一個(gè)函數(shù)內(nèi)定義的變量只在本函數(shù)范圍內(nèi)有效

D.在一個(gè)函數(shù)內(nèi)的復(fù)合語句中定義的變量在本函數(shù)范圍內(nèi)有效

48.執(zhí)行下列程序后的輸出結(jié)果是______。main(){inty=10;do{y--;}while(--y);printf("%d\n",y--);}

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

49.若有以下的說明和語句,則在執(zhí)行for語句后,*(*(pt+1)+2)表示的數(shù)組元素是______。intt[3][3],*pt[3],k;for(k=0;k<3k++)pt[k]=&t[k][0]

A.t[2][0]B.t[2][2]C.t[1][2]D.t[2][1]

50.有如下定義語句:intaa[][3]={12,23,34,4,5,6,78,89,45};,則45在數(shù)組aa中的行列坐標(biāo)各為

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

51.在下面語句中,其含義為“p為指向含n個(gè)元素的一維數(shù)組的指針變量”的定義語句是()

A.intp[n]B.int*p();C.int*p(n);D.int(*p)[n]

52.有下列二叉樹,對此二叉樹前序遍歷的結(jié)果為()。

A.ACFXDBEYZB.ABEFXYZCDC.ABCDEFXYZD.ABDYECFXZ

53.下面程序段中,輸出*的個(gè)數(shù)是char*s="\ta\018bc";for(;*s!='\0';s++)printf("*");

A.9B.5C.6D.7

54.分布式數(shù)據(jù)庫系統(tǒng)不具有的特點(diǎn)是()。A.A.數(shù)據(jù)分布性和邏輯整體性B.位置透明性和復(fù)制透明性C.分布性D.數(shù)據(jù)冗余

55.非空的循環(huán)單鏈表head的尾結(jié)點(diǎn)(由p所指向),滿足()

A.p->next==NULIB.p==NULLC.p->next=headD.p=head

56.有以下程序:#include<stdio.h>main(){intc;while((c=getchar())!='\n')switch(c-'2'){case1:putchar(c+4);case2:putchar(c+4);break;case3:putchar(c+4);case4:putchar(c+4);break;}printf("\n");}輸入以下數(shù)據(jù),<CR>代表一個(gè)回車符,2743<CR>程序的輸出結(jié)果是()。

A.877B.966C.778D.766

57.若有下列說明和語句,則對結(jié)構(gòu)體變量st中成員i的引用方式不正確的是()。Structstu{inti;intname;}st,*p;p=&st;

A.st.iB.*p.iC.(*p).iD.p->i

58.能正確表示邏輯關(guān)系:“a≥10或a≤0”的C語言表達(dá)式是

A.a>=10ora<=0

B.a>=0|a<=10

C.a>=10&&a<=0

D.a>=10‖a<=0

59.數(shù)據(jù)庫DB、數(shù)據(jù)庫系統(tǒng)DBS、數(shù)據(jù)庫管理系統(tǒng)DBMS之間的關(guān)系是()。

A.DB包括DBS和DBMSB.DBMS包括DB和DBSC.DBS包括DB和DBMSD.沒有任何關(guān)系

60.下面的程序段運(yùn)行后,輸出結(jié)果是

inti,j,x=0;

staticinta[8][8];

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

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

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

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

x+=a[i][j];

printf("%d",x);

A.9B.不確定值C.0D.18

四、選擇題(20題)61.

62.軟件的()設(shè)計(jì)又稱總體結(jié)構(gòu)設(shè)計(jì),其主要任務(wù)是建立軟件系統(tǒng)的總體結(jié)構(gòu)。

A.概要B.抽象C.邏輯D.規(guī)劃

63.若有以下說明,則()不是對strcpy庫函數(shù)正確的調(diào)用。strcpy庫函數(shù)用于復(fù)制一個(gè)字符串:char*strl="abCd",str2[10],*str3="hijklmn",*str4[2],*str5="aaaa";

A.strcpy(str2,strl)

B.strcpy(str3,strl)

C.strcpy(strl,str2)

D.strcpy(str5,strl)

64.有以下程序:

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

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

65.

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

A.

B.

C.

D.

66.

67.有以下程序:

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

A.1234B.5678C.9101112D.1111

68.沒有以下語句

則Z的二進(jìn)制值是()。

A.00010100B.00011011C.00011100D.00011000

69.

70.(55)在設(shè)計(jì)程序時(shí),應(yīng)采納的原則之一是()

A.程序結(jié)構(gòu)應(yīng)有助于讀者理解

B.不限制goto語句的使用

C.減少或取消注解行

D.程序越短越好

71.以下選項(xiàng)中關(guān)于C語言常量的敘述錯(cuò)誤的是()。

A.經(jīng)常被使用的變量可以定義成常量

B.常量分為整型常量、實(shí)型常量、字符常量和字符串常量

C.常量可分為數(shù)值型常量和非數(shù)值型常量.

D.所謂常量,是指在程序運(yùn)行過程中,其值不能被改變的量

72.有以下程序

73.已知inta,b;doublec;,則以下語句中錯(cuò)誤的函數(shù)調(diào)用是

A.scanf("%d,%x,%lf",&a,&b,&c);B.scanf("%d,%d,%le",&a,&b,&c);

C.scanf("%o,%x,%o",&a,&b,&c);D.scanf("%d,%o,%e",&a,&b,&c);

74.

75.有以下程序main(){chara[7]="a0\0a0\0";inti,j;i=sizeof(a);j=strlen(a);printf("%d%d\n",i,j);}程序運(yùn)行后的輸出結(jié)果是______。

A.22B.76C.72D.62

76.若有如下說明和定義

structtest

{intml;charm2;floatm3;

unionuu{charul[5];intu2[2];}ua;

}myaa;

則sizeof(structtest)的值是

A.12B.16

C.14D.9

77.

78.在軟件設(shè)計(jì)中,不屬于過程設(shè)計(jì)工具的是()。

A.PDL(過程設(shè)計(jì)語言B.PAD圖C.N—S圖D.DFD圖

79.有以下程序已知字母A的ASCIl碼為65,程序運(yùn)行后的輸出結(jié)果是()。

A.E。68B.D,69C.E,DD.輸出無定值

80.

五、程序改錯(cuò)題(1題)81.下列給定程序中,函數(shù)proc()的功能是:從字符串str中,刪除所有小寫字母c。請修改程序中的錯(cuò)誤,使它能得出正確的結(jié)果。注意:不要改動(dòng)main()函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。試題程序:

六、程序設(shè)計(jì)題(1題)82.使用VC++2010打開考生文件夾下prog1中的解決方案。此解決方案的項(xiàng)目中包含一個(gè)源程序文件prog1.c。在此程序中,請編寫函數(shù)fun(),該函數(shù)的功能是求出二維數(shù)組周邊元素之和,作為函數(shù)值返回。二維數(shù)組中的值在主函數(shù)中賦予。例如,若二維數(shù)組中的值為13579299946999813570則函數(shù)值為61。注意:部分源程序在文件prog1.c中。請勿改動(dòng)主函數(shù)main()和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun()的花括號中填入你編寫的若干語句。試題程序:1#include2#include3#include4#defineM45#defineN56intfun(inta[m][n])7{89}10voidmain()11{12FILE*wf;13intaa[M][N]={{1,3,5,7,9},{2,9,9,9,4},{6,9,9,9,8},{1,3,5,7,0}};14inti,j,y;15system("CLS");16printf("Theoriginaldatais:\n");17for(i=0;i<m;i++)18{for(j=0;j<n;j++)19printf("%6d",aa[i][j]);20printf("\n");21}22y=fun(aa);23printf("\nThesum:%d\nM,y);24printf("\n");25/******************/26wf=fopen("out.dat","w");27fprintf(wf,"%d",y);28fclose(wf)29/******************/30}

參考答案

1.B

2.Adefault語句在switch語句中可以省略,所以B選項(xiàng)錯(cuò)誤;switch語句中并非每個(gè)case后都需要使用break語句,所以C選項(xiàng)錯(cuò)誤;break語句還可以用于for等循環(huán)結(jié)構(gòu)中,所以D選項(xiàng)錯(cuò)誤。故本題答案為A選項(xiàng)。

3.D

4.B

5.B

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

7.C

8.D

9.C數(shù)組名sl是代表sl數(shù)組首地址的地址常量,因?yàn)椤?”左邊不能出現(xiàn)常量,所以s1="ABCDE"的方法是錯(cuò)誤的。

10.B題中當(dāng)a的值為l時(shí),關(guān)系表達(dá)式a==l的值為真,即1,因此程序?qū)⑻D(zhuǎn)到easel執(zhí)行a++操作,與題干程序剛好相反。

11.A

12.B在f(int*p,int*q)函數(shù)中,執(zhí)行“p=p+1;”是將p所對應(yīng)的地址加1,而“*q=*q+1;”是將q所指向n的地址所對應(yīng)的值加1,所以m的值沒有變,而n的值則變?yōu)?。故本題答案為B選項(xiàng)。

13.AC語言中,合法的標(biāo)識符由字母、數(shù)字和下劃線組成,并且第1個(gè)字符必須是字母或下劃線。選項(xiàng)D中的“3break”錯(cuò)誤;用戶標(biāo)識符不能是C語言中的關(guān)鍵字或函數(shù),選項(xiàng)B中的“unsigned”是關(guān)鍵字,不是合法的用戶標(biāo)識符,“Switch”是合法的用戶標(biāo)識符;選項(xiàng)C中的“getch”是庫函數(shù)名,不是合法的用戶標(biāo)識符,而C語言區(qū)分字母大小寫,“Abc”是合法的用戶標(biāo)識符;選項(xiàng)A中的兩個(gè)標(biāo)識符都是合法的用戶標(biāo)識符。故本題答案為A選項(xiàng)。

14.D

15.C

16.A

17.D【答案】D

【知識點(diǎn)】字符常量的考察

【解析】在C語言中要求八進(jìn)制字符常量的表示為\\ddd形式,但是八進(jìn)制中只有0~7,7個(gè)數(shù)字,沒有9這個(gè)數(shù)字,所以選擇D。

18.B

19.A

20.D程序首先定義字符變量a并賦初值‘0’,定義字符變量b并賦初值‘A’。然后執(zhí)行for循環(huán),當(dāng)i為偶數(shù)時(shí),輸出字符“a+i”;當(dāng)i為奇數(shù)時(shí),輸出字符“b+i”。因?yàn)閿?shù)字和字母的ASCII值都是按順序遞增的,所以本題輸出為B2D4F。故本題答案為D選項(xiàng)。

21.n1=%d\nn2=%d\n或n1=%d\nn2=%d或n1=%2d\nn2=%2d\n或n1=%2d×nn2=%2dn1=%d\\nn2=%d\\n或n1=%d\\nn2=%d或n1=%2d\\nn2=%2d\\n或n1=%2d×nn2=%2d解析:printf函數(shù)有兩種參數(shù):格式控制參數(shù)和輸出項(xiàng)參數(shù),其中格式控制參數(shù)由兩種成分組成;格式說明和普通字符,普通字符將被簡單地復(fù)制顯示,格式說明項(xiàng)將引起一個(gè)輸出參數(shù)項(xiàng)的轉(zhuǎn)換與顯示,它是由“%”引出并以一個(gè)類型描述符結(jié)束的字符串。本題中,n1=和n2=就是普通字符,可以直接顯示,又因?yàn)閚1,n2為整數(shù),所以格式說明項(xiàng)為%d,也可以在%與d之間加上域?qū)?,另外還要在每行輸出結(jié)束時(shí)加轉(zhuǎn)義字符\\n進(jìn)行換行。所以,應(yīng)填寫n1=%d\\nn2=%d\\n,n或n1=%d\\nn2=%d或n1=%2d\\nn2=%2d\\n或n1=%2d\\nn2=%2d。

22.③數(shù)組可以在定義時(shí)整體賦初值,但不能在賦值語句中整體賦初值。因此,可將第三行改為charstr[14]={"IloveChina!"};

23.類類

24.

25.22解析:'\\13':表示八進(jìn)制數(shù)13表示的ASCII字符,是一個(gè)字符,占一個(gè)字節(jié);而”\\12”是個(gè)字符串,除了八進(jìn)制數(shù)12表示的ASCII字符占一個(gè)字節(jié)外,還有在字符串的末尾加上串結(jié)束標(biāo)志“'\\0'”,所以共有2個(gè)字節(jié)。

26.p!=NULL或P或p!=0或p!='0'p->next或(*p).nextp!=NULL或P或p!=0或p!='0'\r\np->next或(*p).next解析:程序中定義了一個(gè)結(jié)構(gòu)體類型名Node,其中定義了一個(gè)指向結(jié)點(diǎn)類型的指針next。接下來用Node定義了頭結(jié)點(diǎn)指針變量h和指向第一個(gè)結(jié)點(diǎn)的指針變量p,在滿足p未指向最后一個(gè)結(jié)點(diǎn)的空指針時(shí)(即為NULL),輸出p所指向結(jié)點(diǎn)的字符串,所以第一處應(yīng)填p!=NULL,然后將p指向下一個(gè)非空結(jié)點(diǎn),所以第二處應(yīng)填P->next或與其等效的形式,反復(fù)執(zhí)行直到所有的結(jié)點(diǎn)都輸出。

27.33解析:本題考查do…while語句形式:

do循環(huán)體

while表達(dá)式

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

28.s[j++]=s[i]

29.unsignedintgetbits()value&0100000z=~value+1unsignedintgetbits()\r\nvalue&0100000\r\nz=~value+1

30.循環(huán)鏈表循環(huán)鏈表解析:在鏈表的運(yùn)算過程中,采用鏈接方式即循環(huán)鏈表的結(jié)構(gòu)把空表與非空表的運(yùn)算統(tǒng)一起來。循環(huán)鏈表具有兩個(gè)特點(diǎn):①在循環(huán)鏈表中增加了一個(gè)表頭結(jié)點(diǎn),其數(shù)據(jù)域?yàn)槿我饣蚋鶕?jù)需要來設(shè)置,指針域指向線性表的第一個(gè)元素的結(jié)點(diǎn)。循環(huán)鏈表的頭指針指向表頭結(jié)點(diǎn)。②循環(huán)鏈表中最后一個(gè)結(jié)點(diǎn)的指針不是空,而是指向表頭結(jié)點(diǎn)。

31.6

32.rowa[row][colum]row\r\na[row][colum]解析:通過對題意的分析,在select()函數(shù)中,變量row的作用是用來記錄最大元素的行下標(biāo),column的作用是用來記錄最大元素的列下標(biāo)。程序中通過一個(gè)循環(huán)求得數(shù)組元素中最大值的行列下標(biāo),分別存放在變量row和colmnn中,根據(jù)題意,應(yīng)該把行下標(biāo)賦值給形參指針變量n指向的變量,把最大值a[row][columa]作為函數(shù)值返回。

33.棧頂棧頂解析:棧是限定在表的一端進(jìn)行插入和刪除操作的線性表。在表中,允許插入和刪除的一端叫做“棧頂”,不允許插入和刪除的一端叫做“棧底”。

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

35.88解析:第1次for循環(huán),i=0,調(diào)用函數(shù)f(2),然后將a的值加1,在f()函數(shù)中,變量c為static類型,所以c=8:第2次for循環(huán),i=1,調(diào)用函數(shù)f(3),然后將a的值加1,調(diào)用函數(shù)f(3)時(shí),a=c++=8,所以k=8。

36.int*p*p或p[0]int*p\r\n*p或p[0]

37.11解析:本題考查局部變量和全局變量的區(qū)別:局部變量是指作用域在函數(shù)級和塊級的變量,全局變量是指作用域在程序級和文件級的變量。本程序首先定義了一個(gè)全局變量m=17,m=17的作用域在整個(gè)程序內(nèi)。在fun函數(shù)內(nèi)部定義了一個(gè)局部變量m=3,m=3的作用域僅在fun函數(shù)內(nèi)部,通過fun函數(shù)返回兩個(gè)形參的積再減m。在主函數(shù)中,輸出fun(a,b)/m=(5*7-3)/17=1。

38.structlink*headstructlink*head解析:考查用指針引用結(jié)構(gòu)體變量成員數(shù)據(jù)的方法。因?yàn)楸绢}中是用結(jié)構(gòu)體變量構(gòu)成了鏈表,所以要從鏈表頭節(jié)點(diǎn),逐個(gè)節(jié)點(diǎn)的引用結(jié)構(gòu)體的數(shù)據(jù)域,需要有指向結(jié)構(gòu)體變量的指針,依次指向各個(gè)節(jié)點(diǎn),即p=p->next,而用指針引用結(jié)構(gòu)體成員數(shù)據(jù)的方法為:p->data。

39.順序存儲(chǔ)(順序方式存儲(chǔ))順序存儲(chǔ)(順序方式存儲(chǔ))解析:二分法查找對表的要求是有序的順序表,即第一要求是數(shù)據(jù)元素有序,第二要求是按順序方式存儲(chǔ)。

40.3232解析:while(表達(dá)式)的功能是:首先計(jì)算表達(dá)式的值.若為真,則執(zhí)行循環(huán)體語句,執(zhí)行完畢,再計(jì)算表達(dá)式的值.若仍為真,則重復(fù)執(zhí)行循環(huán)體語句,直到表達(dá)式的值為假,結(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é)束。

41.A解析:當(dāng)邏輯或運(yùn)算符兩邊的運(yùn)算對象至少有一個(gè)為1時(shí),整個(gè)邏輯表達(dá)式的值是1;如果兩邊的運(yùn)算對象都為0,則整個(gè)邏輯表達(dá)式的值為0。題中!x=0,--y=0,所以整個(gè)表達(dá)式的值是0。

42.B解析:宏定義的作用是進(jìn)行字符的替換,應(yīng)先將賦值語句的右邊進(jìn)行宏替換,即等號右邊為:k+m*k+m/k+m*k+m=2+1*2+1/2+1*2+1=2+2+0+2+1=7,然后計(jì)算a/=7,即a=a/7=16/7=2。

43.C解析:使用scanf()函數(shù)時(shí),要求除格式控制符以外的字符都要原樣輸入,“,”為非格式符,要原樣輸入。選項(xiàng)A,輸入格式描述為“%2d%2d%2d”,意思是輸入一個(gè)長度為6的數(shù)字串,scanf()將每兩個(gè)為一組讀入3個(gè)變量中,不滿足鍵盤輸入1,2,3的條件,故A錯(cuò)誤;選項(xiàng)B中,輸入格式描述符為“%d%d%d”,輸入要用空格隔開,故錯(cuò)誤;選項(xiàng)D中,輸入格式描述符為“i=%d,j=%d,k=%d”,應(yīng)該從鍵盤輸入i=1,j=2,k=3,才能使得i,j,k的值為1,2,3,故選項(xiàng)D錯(cuò)誤。4個(gè)選項(xiàng)中C正確。

44.B解析:本題考核的知識點(diǎn)是指向一維數(shù)組的指針變量,通過賦值語句“s=x+3”,使指針變量s指向數(shù)組元素x[3],輸出語句中的s[2]等價(jià)于*(s+2),即x[5]僖為0。所以,B選項(xiàng)為所選。

45.B解析:本題考查while語句的使用。本題考查邏輯非運(yùn)算符和不等于運(yùn)算符的區(qū)別,邏輯非運(yùn)算符'!'的優(yōu)先級大于不等于運(yùn)算符'!='的優(yōu)先級。

46.C解析:本題考查數(shù)據(jù)庫的關(guān)系代數(shù)運(yùn)算。R表中只有一個(gè)域名A,有兩個(gè)記錄(也叫元組),分別是m和n;S表中有兩個(gè)域名,分別是B和C,其所對應(yīng)的記錄分別為1和3。注意觀察表T,它是由R的第一個(gè)記錄依次與S的所有記錄組合,然后再由R的第二個(gè)記錄與S的所有記錄組合,形成的一個(gè)新表。上述運(yùn)算恰恰符合關(guān)系代數(shù)的笛卡兒積運(yùn)算規(guī)則。關(guān)系代數(shù)中,笛卡兒積運(yùn)算用“×”來表示。因此,上述運(yùn)算可以表示為T=R×S。因此,本題的正確答案為C。

47.D解析:C語言在函數(shù)中說明的變量為局部變量,只在函數(shù)內(nèi)起作用但不會(huì)影響到其他函數(shù)。所以在不同的函數(shù)中使用相同的函數(shù)名不代表是同一函數(shù),A)項(xiàng)正確。在函數(shù)定義時(shí)聲明的參數(shù)只在函數(shù)內(nèi)部起作用,是函數(shù)的局部變量,B)正確。在一個(gè)函數(shù)中定義的變量是這個(gè)函數(shù)的局部變量,所以只在這個(gè)函數(shù)內(nèi)起作用,C)正確。復(fù)合語句中定義的變量其作用域是這個(gè)復(fù)合語句,不會(huì)擴(kuò)大到整個(gè)函數(shù),所以D)項(xiàng)錯(cuò)誤。注意:函數(shù)的書寫風(fēng)格。

48.D

49.C解析:本題考查通過指針引用數(shù)組元素。*(*(pt+1)+2)等價(jià)于*(pt[1]+2),pt[1]+2是t[1][2]的地址,故*(pt[1]+2)是t[1][2]的值。

50.C解析:考查對于第一維大小的決定規(guī)則的掌握情況。第一維大小的決定規(guī)則:當(dāng)初值的個(gè)數(shù)能被第二維的常量表達(dá)式的值除盡時(shí),所得商數(shù)就是第一維的大小。當(dāng)初值的個(gè)數(shù)不能被第二維的常量表達(dá)式的值除盡時(shí),則第一維的大??;所得的商數(shù)+1。數(shù)組元素的下標(biāo)(行列號)是從零開始的。

51.D

52.D解析:對二叉樹的前序遍歷是指:先訪問根結(jié)點(diǎn),然后訪問左子樹,最后訪問右于樹,并且,在訪問左、右子樹時(shí),先訪問根結(jié)點(diǎn),再依次訪問其左、右子樹。記住3種遍歷的順序:①前序,訪問根一按前序遍歷左子樹一按前序遍歷右子樹:②中序,按中序遍歷左子樹一訪問根一按中序遍歷右子樹;③后序,按后序遍歷左子樹呻按后序遍歷右子樹一訪問根。

53.C解析:本題中,格式符。表示的是八進(jìn)制無符號形式輸出整型數(shù)(不帶前導(dǎo)0),字符常量在內(nèi)存中占一個(gè)字節(jié),存放的是ACSII碼代碼值。C語言規(guī)定,所有字符常量都作為整型量來處理,在計(jì)算機(jī)內(nèi)部,其對應(yīng)的整數(shù)值就是ACSII字符集中該字符的序號,即&*s中有幾個(gè)字符就輸出幾個(gè)*。

54.D解析:分布式數(shù)據(jù)庫系統(tǒng)具有數(shù)據(jù)分布性、邏輯整體性、位置透明性和復(fù)制透明性的特點(diǎn),其數(shù)據(jù)也是分布的;但分布式數(shù)據(jù)庫系統(tǒng)中數(shù)據(jù)經(jīng)常重復(fù)存儲(chǔ),數(shù)據(jù)也并非必須重復(fù)存儲(chǔ),主要視數(shù)據(jù)的分配模式而定。若分配模式是一對多的,即一個(gè)片段分配到多個(gè)場地存放,則是冗余的數(shù)據(jù)庫,否則是非冗余的數(shù)據(jù)庫。

55.C

56.A解析:本題通過一個(gè)while循環(huán)向鍵盤緩沖區(qū)讀取字符,直到讀到的字符是回車鍵結(jié)束循環(huán)。當(dāng)讀到的c為'2'時(shí),c-'2'為0,switch語句中沒有case0:所以沒有輸出,繼續(xù)讀下一個(gè);當(dāng)c為'7'時(shí),c-'2'=5,也沒有輸出;當(dāng)c為'4'時(shí),c-'2'=2,執(zhí)行case2:后面的語句輸出一個(gè)字符c+4='4'+4='8';當(dāng)c為'3'時(shí),c-'2'=1,執(zhí)行case1:后面的語句,連續(xù)輸出兩次c+4='3'+4='7'。故程序輸出結(jié)果是877,應(yīng)該選擇A。

57.B解析:本題主要考查結(jié)構(gòu)指針:p=&st,訪問結(jié)構(gòu)體的成員,可以通過結(jié)構(gòu)變量訪問,即st.i,也可以用等價(jià)的指針形式,即(*p).i和p->i。

58.D

59.CC?!窘馕觥繑?shù)據(jù)庫系統(tǒng)(DBS)由數(shù)據(jù)庫(DBS)、數(shù)據(jù)庫管理系統(tǒng)(DBMS)、數(shù)據(jù)庫管理員、硬件平臺和軟件平臺五個(gè)部分組成,可見DB和DBMS都是DBS的組成部分。

60.C解析:本題主要考查的是用二維數(shù)組首地址和下標(biāo)來引用二維數(shù)組元素的方法。通過分析可知,程序中的雙重循環(huán)定義了一個(gè)如下的二維數(shù)組:

012

234

456

由于數(shù)組的下標(biāo)是從0開始的,所以二維數(shù)組元素a[i][j]表示的是二維數(shù)組a的第i+1行、第j+1列對應(yīng)位置的元素。

61.B

62.A軟件設(shè)計(jì)分為概要設(shè)計(jì)和詳細(xì)設(shè)計(jì)。概要設(shè)計(jì)又稱總體結(jié)構(gòu)設(shè)計(jì),其主要任務(wù)是根據(jù)用戶的需求先確定軟件系統(tǒng)的總體結(jié)構(gòu)和總的設(shè)計(jì)原則。

63.Cstrcpy(sl,s2)函數(shù)的功能是將字符串s2復(fù)制到字符串s1中。要保證s1存儲(chǔ)區(qū)能容納下s2字符串。

64.A因?yàn)閒un(intx)是一個(gè)遞歸函數(shù),所以主函數(shù)中fun(7)經(jīng)過3次遞歸調(diào)用,其過程可以描述為“fun(7)=7一fun(5)=7一(5一fun(3))=7一(5一(3一fun(1)))=7一(5一(3—3))=7—5=2”,所以最后輸出結(jié)果為2。因此.A選項(xiàng)正確。

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

66.A

67.D在for(i=0;i<12;i++)e[s[i]]++中,數(shù)組元素s[i]的值作為數(shù)組c的下標(biāo),當(dāng)退出循環(huán)時(shí),數(shù)組C的4個(gè)元素的值分別為l、1、1、1。所以選項(xiàng)D)正確。

68.B本題考查兩個(gè)位運(yùn)算符。按位異或運(yùn)算

69.B

70.A注:和設(shè)計(jì)風(fēng)格有關(guān)

71.AC語言中,常量是指在程序運(yùn)行過程中其值不能被改變的量,變量是指運(yùn)行過程中其值可以改變的量,二者不能混淆,所以A選項(xiàng)錯(cuò)誤。

72.A本題考查的是break語句。d0…while循環(huán)是“先執(zhí)行,后判斷”,所以無論條件如何,它都至少會(huì)執(zhí)行一遍。程序首先初始化變量i為5,然后進(jìn)A.d0…while循環(huán)體,首先判斷(i%3==1),因?yàn)?%3=2,所以if條件不滿

溫馨提示

  • 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

提交評論