2022-2023年廣東省中山市全國計算機等級考試C語言程序設計預測試題(含答案)_第1頁
2022-2023年廣東省中山市全國計算機等級考試C語言程序設計預測試題(含答案)_第2頁
2022-2023年廣東省中山市全國計算機等級考試C語言程序設計預測試題(含答案)_第3頁
2022-2023年廣東省中山市全國計算機等級考試C語言程序設計預測試題(含答案)_第4頁
2022-2023年廣東省中山市全國計算機等級考試C語言程序設計預測試題(含答案)_第5頁
已閱讀5頁,還剩20頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

2022-2023年廣東省中山市全國計算機等級考試C語言程序設計預測試題(含答案)學校:________班級:________姓名:________考號:________

一、單選題(20題)1.

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

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

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

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

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

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

4.參加百年阿里培訓的n位同學結(jié)伴去西湖旁邊為游人指路,兩人一組,他們打算先讓體重之和恰好為102公斤的同學一組,請給出一個算法找到這樣的組合,或者確定他們中不存在這樣的組合,其中最優(yōu)的算法時間復雜度為?(假設體重均為整數(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個節(jié)點的二叉樹可能有()種。

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

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

B.圖形放大2倍,同時沿X、Y坐標軸方向各移動一個單位

C.沿X坐標軸方向各移動2個單位

D.沿X坐標軸放大2倍,同時沿X、Y坐標軸方向各移動一個單位

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

A.strcpy(s1,s2)

B.strcpy(s1,"ABCDE");

C.sl="ABCDE";

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

10.以下選項中與“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.若已知一個棧的進棧序列是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;}程序的運行結(jié)果是()。A.2,3B.1,3C.1,4D.1,2

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

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

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

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

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

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

17.以下選項中非法的字符常量是A.A.'\101'

B.'\65'

C.”\xff'

D.'\019'

18.若用一個大小為6的數(shù)組來實現(xiàn)循環(huán)隊列,且當前rear和front的值分別為0和3,當從隊列中刪除一個元素,再加入兩個元素后,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);}程序運行后的輸出結(jié)果是()。

A.A2A3BB.2B4DFC.B4CD7D.B2D4F

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

intnl=10,n2=20;

printf("______",n1,n2);

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

n1=10

n2=20

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

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

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

structst

{charname[20];doublescore;};

main()

{structstex;

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

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

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

#include<atdio.h>

typedefstructnode/*鏈表結(jié)點結(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刪除,補足所缺語句。

#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.求任意一個數(shù)(用16位二進制碼表示)的補碼。

main()

{unsignedinta;

【】;

scanf("%O",&a);

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

}

unsignedintgetbits(value)

unsignedintvalue;

{unstgnedintz;

z=【】;

if(z==0100000)

【】;

else

z=value;

return(z);

}

30.在運算過程中,能夠使空表與非空表的運算統(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ù)組中,選出一個最大值作為函數(shù)值返回,并通過形參傳回此最大值所在的行下標。請?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.棧中允許進行插入和刪除的一端叫做______。

34.【】是數(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ù)用來求出兩個整數(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指向一個帶頭結(jié)點的單向鏈表,鏈表中每個結(jié)點包含數(shù)據(jù)域(data)和指針域(next),數(shù)據(jù)域為整型。以下函數(shù)求出鏈表中所有鏈結(jié)點數(shù)據(jù)域的和值,作為函數(shù)值返回。請在橫線處填入正確內(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ù)元素必須有序,其存儲結(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.設intx=1,y=1;表達式(!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,以下選項中正確的輸入語句是()。

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.隨機值B.0C.5D.6

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

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

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

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

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

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

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

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

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

D.在一個函數(shù)內(nèi)的復合語句中定義的變量在本函數(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中的行列坐標各為

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

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

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

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

A.ACFXDBEYZB.ABEFXYZCDC.ABCDEFXYZD.ABDYECFXZ

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

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

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

55.非空的循環(huán)單鏈表head的尾結(jié)點(由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>代表一個回車符,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語言表達式是

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.下面的程序段運行后,輸出結(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.軟件的()設計又稱總體結(jié)構(gòu)設計,其主要任務是建立軟件系統(tǒng)的總體結(jié)構(gòu)。

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

63.若有以下說明,則()不是對strcpy庫函數(shù)正確的調(diào)用。strcpy庫函數(shù)用于復制一個字符串: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ù)組元素的引用中錯誤的是()。

A.

B.

C.

D.

66.

67.有以下程序:

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

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

68.沒有以下語句

則Z的二進制值是()。

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

69.

70.(55)在設計程序時,應采納的原則之一是()

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

B.不限制goto語句的使用

C.減少或取消注解行

D.程序越短越好

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

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

B.常量分為整型常量、實型常量、字符常量和字符串常量

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

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

72.有以下程序

73.已知inta,b;doublec;,則以下語句中錯誤的函數(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);}程序運行后的輸出結(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.在軟件設計中,不屬于過程設計工具的是()。

A.PDL(過程設計語言B.PAD圖C.N—S圖D.DFD圖

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

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

80.

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

六、程序設計題(1題)82.使用VC++2010打開考生文件夾下prog1中的解決方案。此解決方案的項目中包含一個源程序文件prog1.c。在此程序中,請編寫函數(shù)fun(),該函數(shù)的功能是求出二維數(shù)組周邊元素之和,作為函數(shù)值返回。二維數(shù)組中的值在主函數(shù)中賦予。例如,若二維數(shù)組中的值為13579299946999813570則函數(shù)值為61。注意:部分源程序在文件prog1.c中。請勿改動主函數(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選項錯誤;switch語句中并非每個case后都需要使用break語句,所以C選項錯誤;break語句還可以用于for等循環(huán)結(jié)構(gòu)中,所以D選項錯誤。故本題答案為A選項。

3.D

4.B

5.B

6.D解析:本題主要是考查帶參數(shù)的宏定義及其相關(guā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ù)組首地址的地址常量,因為“=”左邊不能出現(xiàn)常量,所以s1="ABCDE"的方法是錯誤的。

10.B題中當a的值為l時,關(guān)系表達式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所對應的地址加1,而“*q=*q+1;”是將q所指向n的地址所對應的值加1,所以m的值沒有變,而n的值則變?yōu)?。故本題答案為B選項。

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

14.D

15.C

16.A

17.D【答案】D

【知識點】字符常量的考察

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

18.B

19.A

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

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ù)和輸出項參數(shù),其中格式控制參數(shù)由兩種成分組成;格式說明和普通字符,普通字符將被簡單地復制顯示,格式說明項將引起一個輸出參數(shù)項的轉(zhuǎn)換與顯示,它是由“%”引出并以一個類型描述符結(jié)束的字符串。本題中,n1=和n2=就是普通字符,可以直接顯示,又因為n1,n2為整數(shù),所以格式說明項為%d,也可以在%與d之間加上域?qū)?,另外還要在每行輸出結(jié)束時加轉(zhuǎn)義字符\\n進行換行。所以,應填寫n1=%d\\nn2=%d\\n,n或n1=%d\\nn2=%d或n1=%2d\\nn2=%2d\\n或n1=%2d\\nn2=%2d。

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

23.類類

24.

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

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

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

do循環(huán)體

while表達式

首先執(zhí)行循環(huán)體語句,然后檢測循環(huán)控制條件表達式的值,若為真,則重復執(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,此時再判斷循環(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)鏈表解析:在鏈表的運算過程中,采用鏈接方式即循環(huán)鏈表的結(jié)構(gòu)把空表與非空表的運算統(tǒng)一起來。循環(huán)鏈表具有兩個特點:①在循環(huán)鏈表中增加了一個表頭結(jié)點,其數(shù)據(jù)域為任意或根據(jù)需要來設置,指針域指向線性表的第一個元素的結(jié)點。循環(huán)鏈表的頭指針指向表頭結(jié)點。②循環(huán)鏈表中最后一個結(jié)點的指針不是空,而是指向表頭結(jié)點。

31.6

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

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

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)時,a=c++=8,所以k=8。

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

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

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

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

40.3232解析:while(表達式)的功能是:首先計算表達式的值.若為真,則執(zhí)行循環(huán)體語句,執(zhí)行完畢,再計算表達式的值.若仍為真,則重復執(zhí)行循環(huán)體語句,直到表達式的值為假,結(jié)束while語句的執(zhí)行,繼續(xù)執(zhí)行while語句后面的語句;i=0時滿足循環(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解析:當邏輯或運算符兩邊的運算對象至少有一個為1時,整個邏輯表達式的值是1;如果兩邊的運算對象都為0,則整個邏輯表達式的值為0。題中!x=0,--y=0,所以整個表達式的值是0。

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

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

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

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

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

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

48.D

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

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

51.D

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

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

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

55.C

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

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

58.D

59.CC。【解析】數(shù)據(jù)庫系統(tǒng)(DBS)由數(shù)據(jù)庫(DBS)、數(shù)據(jù)庫管理系統(tǒng)(DBMS)、數(shù)據(jù)庫管理員、硬件平臺和軟件平臺五個部分組成,可見DB和DBMS都是DBS的組成部分。

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

012

234

456

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

61.B

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

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

64.A因為fun(intx)是一個遞歸函數(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選項正確。

65.C數(shù)組m下標從0到4計算,共5個元素,選項c)中m[0]=5,則m[m[0]]為m[5],超出了數(shù)組m的下標范圍。因此正確答案為C)。

66.A

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

68.B本題考查兩個位運算符。按位異或運算

69.B

70.A注:和設計風格有關(guān)

71.AC語言中,常量是指在程序運行過程中其值不能被改變的量,變量是指運行過程中其值可以改變的量,二者不能混淆,所以A選項錯誤。

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

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論