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

下載本文檔

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

文檔簡介

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

一、單選題(20題)1.有以下程序:structst{intx;int*y;}*pt;inta[]={1,2},b[]={3,4};structstc[2]={10,a,20,b};pt=c;以下選項(xiàng)中表達(dá)式值為11的是()。

A.++p->xB.pt->xC.*pt->yD.(pt++)->x

2.“商品”與“顧客”兩個實(shí)體集之間的聯(lián)系一般是

A.一對一B.一對多C.多對一D.多對多

3.

4.算法具有五個特性,以下選項(xiàng)中不屬于算法特性的是_____。A.有窮性B.簡潔性C.可行性D.確定性

5.關(guān)于排序算法的以下說法,錯誤的是()

A.歸并排序的平均時間復(fù)雜度O(nlogn),最壞時間復(fù)雜度O(n^2)

B.堆排序平均時間復(fù)雜度O(nlogn),最壞時間復(fù)雜度O(nlogn)

C.冒泡排序平均時間復(fù)雜度O(n^2),最壞時間復(fù)雜度O(n^2)

D.快速排序的平均時間復(fù)雜度O(nlogn),最壞時間復(fù)雜度O(n^2)

6.若有定義:floatx=1.5;inta=1.b=3.c=2;則正確的switch語句是()。A.

B.

C.

D.

7.廣義表((a),a)的表頭是()。

A.aB.()C.(a)D.((a))

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

B.'\65'

C.”\xff'

D.'\019'

9.程序中已構(gòu)成如下不帶頭節(jié)點(diǎn)的單向鏈表結(jié)構(gòu),指針變量s、p、q均已正確定義,并用于指向鏈表節(jié)點(diǎn),指針變量s總是作為指針指向鏈表的第1個節(jié)點(diǎn)。若有以下程序段:q=s;s=s->next;p=s;while(p->next)p=p->next;p->next=q;q->next=NULL;該程序段實(shí)現(xiàn)的功能是()。

A.刪除尾節(jié)點(diǎn)B.使尾節(jié)點(diǎn)成為首節(jié)點(diǎn)C.刪除首節(jié)點(diǎn)D.使首節(jié)點(diǎn)成為尾節(jié)點(diǎn)

10.有以下程序: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

11.對于循環(huán)隊(duì)列()。

A.無法判斷隊(duì)列是否為空B.無法判斷隊(duì)列是否為滿C.隊(duì)列不可能滿D.以上說法都不對

12.堆排序是一種()排序。

A.插入B.選擇C.交換D.歸并

13.設(shè)a、b、c、d、m、n均為int型變量,且a=5、b=6、c=7、d=8、m=2、n=2,則邏輯表達(dá)式(m=a>b)&&(n—c>d)運(yùn)算后,n的值是()n

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

14.廣告系統(tǒng)為了做地理位置定向,將IPV4分割為627672個區(qū)間,并標(biāo)識了地理位置信息,區(qū)間之間無重疊,用二分查找將IP地址映射到地理位置信息,請問在最壞的情況下,需要查找多少次?()

A.17B.18C.19D.20

15.

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

17.有以下程序:main{chara=a,b;printf("%c,",++a);printf("%c\n",b=a++):)程序運(yùn)行后的輸出結(jié)果是()。A.b,bB.b,cC.a,bD.a,c

18.有以下程序:main{union{charch[2];intd;}s;d=0x4321;printf("%x,%x\n",S.ch[0],S.ch[l]);}在16位編譯系統(tǒng)上,程序執(zhí)行后的輸出結(jié)果是()A.21,43B.43,21C.43,00D.21,00

19.有如下程序該程序的輸出結(jié)果是().A.A.12B.13C.14D.15

20.下列關(guān)于棧的描述中錯誤的是()。

A.棧是先進(jìn)先出的線性表B.棧只能順序存儲C.棧具有記憶作用D.對棧的插入刪除操作中,不需要改變棧底指針

二、2.填空題(20題)21.下列程序的運(yùn)行結(jié)果是______。

main()

{ints=0,i=1;

while(s<=10)

{s=s+i*i;

i++;

}

printf("%d",--i);

}

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

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

}

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

main()

{inti=0,a=0;

while(i<20)

{for(;;)

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

elsei--;}

i+=11;

a+=i;

}

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

}

24.若有定義inta[4][4]={{1,2,3,4},{0},{4,6,8,10},{1,3,5,7}},則初始化后,a[1][1]得到的初值是______。

25.以下程序的功能是計(jì)算:s=1+12+123+1234+12345。請?zhí)羁铡?/p>

#include<stdio.h>

main()

intt=0.s=0,i:

for(i=1;i<=5;i++){t=i+【】;s=s+t;}

prinff("s=%d\n".s);}

26.數(shù)據(jù)庫設(shè)計(jì)分為以下6個設(shè)計(jì)階段:需求分析階段、______、邏輯設(shè)計(jì)階段、物理設(shè)計(jì)階段、實(shí)施階段、運(yùn)行和維護(hù)階段。

27.在C語言中,while和do…while循環(huán)的主要區(qū)別是______的循環(huán)至少被執(zhí)行一次。

28.以下程序的功能是:利用指針向三個整型變量,并通過指針運(yùn)算找出三個數(shù)中最大值,輸出到屏幕上。請?zhí)羁?/p>

main()

{intx,y,z,max,*px,*py,*pz,*pmax;

scanf("%d%d%d",&x,&y,&z);

px=&x;py=&y;pz=&z;pmax=&max;

if(*pmax<*py)*pmax=*py;

if(*pmax<*pz)*pmax二*pz;

printf("max=%d\n",max);}

29.下列程序的循環(huán)次數(shù)是______。

x=2;

do

{x=x*x;}

while(!x);

30.若輸入Ihaveatest.#,則以下程序的運(yùn)行結(jié)果為【】。

#include<stdio.h>

main()

{FILE*fp;

charstr[100],filename[10];

inti=0;

if((fp=fopen("test","w"))==NULL)

{printf("cannotopenthefile!\n");

exit(0);

}

getchar();

gets(str);

while(str[i]!='#')

{if(str[i]>='a'&&str[i]<='z')

str[i]=str[i]-32;

fputc(str[i],fp);

i++;

}

fclose(fp);

fp=fopen("test","r");

fgets(str,strlen(str)+1,fp);

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

fclose(fp);

}

31.若有如下定義,則該數(shù)組的第一維大小為【】。

intb[][4]={1,2,3,4,5,6,7,8,9);

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

main()

{charb[]="Helloyou";

b[5]=0;

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

}

33.下面的程序把從終端讀入的文本(用@作為文本結(jié)束標(biāo)志)輸出到一個名為bi.dat的新文件中,請?zhí)羁铡?/p>

#include<stdio.h>

#include<stdlib.h>

FILE*fp;

main()

{charch;

if((fp=fopen(【】))==NULL)exit(0);

while((ch=getchar())!='@')fputc(ch,fp);

fclose(fp);

}

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

#include<stdio.h>

fun(intx)

{if(x/2>0)fun(x/2);

printf("%d",x);

}

main()

{fun(6);}

35.語句“int(*ptr)();”的含義是______是指向函數(shù)的指針,該函數(shù)返回一個血型數(shù)據(jù)。

36.以下程序運(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);

}

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

#include<string.h>

typeaefstructstudent{

charname[10];

longsno;

floatscore;

{STU;

main()

{STUa={"zhangsan",2001,95},b={"Shangxian",2002,90},c={"Anhua",2003,95},d,*p=&d;

d=a;

if(strcmp(a.name,b.name)>0)d=b;

if(strcmp(C.name,)>0)d=C;

printf("%1d%s\n",d.sno,p->name);

}

38.函數(shù)fun的功能是:根據(jù)以下公式求p的值,結(jié)果由函數(shù)值返回。m與n為兩個正數(shù),且要求m>n。

例如:m=12,n=8時,運(yùn)行結(jié)果應(yīng)該是495.000000。請?jiān)陬}目的空白處填寫適當(dāng)?shù)某绦蛘Z句,將該程序補(bǔ)充完整。

#include<stdio.h>

floatfun(intm,intn)

{inti;

doublep=1.0;

for(i=1;i<=m;i++)【】;

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

for(i=1;i<=m-n;i++)p=p/i;

returnp;

}

main()

{printf("p=%f\n",fun(12,8));

}

39.以下程序的作用是:從名為filea.dat的文本文件中逐個讀入字符并顯示在屏幕上。請?zhí)羁铡?/p>

#include<stdio.h>

main()

{FILE*fp;charch;

fp=fopen(______);

ch=fSetc(fp);

while(!feof(fp)){putchar(ch);ch=fSetc(fp);}

putchar('\n');fclose(fp);

}

40.順序存儲方法是把邏輯上相鄰的結(jié)點(diǎn)存儲在物理位置______的存儲單元中。

三、1.選擇題(20題)41.以下程序的輸出結(jié)果是main(){charx=040;printf("%o\n",x<<1);}

A.100B.80C.64D.32

42.樹是結(jié)點(diǎn)的集合,它的根結(jié)點(diǎn)的數(shù)目是()。

A.有且只有1個B.1或多于1C.0或1D.至少有2個

43.以下四組用戶自定義標(biāo)識符中,全部合法的一組是()。

A._mainencludesin

B.If-maxturbo

C.txtREAL3COM

D.intk_2_001

44.軟件生命周期中花費(fèi)費(fèi)用最多的階段是

A.詳細(xì)設(shè)計(jì)B.軟件編碼C.軟件測試D.軟件維護(hù)

45.以下選項(xiàng)中,與k=n++完全等價的表達(dá)式是A.k=n,n=n+1B.n=n+1,k=nC.k=++nD.k+=n+1

46.有以下程序:voidf(intb[]){inti;for(i=2;i<6;i++)b[i]*=2;}main(){inta[10]={1,2,3,4,5,6,7,8,9,10},i;f(A);for(i=0;i<10;i++)printf("%d,",a[i]);}程序運(yùn)行后的輸出結(jié)果是()。

A.1,2,3,4,5,6,7,8,9,10,

B.1,2,6,8,10,12,7,8,9,10,

C.1,2,3,4,10,12,14,16,9,10,

D.1,2,6,8,10,12,14,16,9,10,

47.有以下程序:#include<stdio.h>intfun(chars[]){intn=0;while(*s<='9'&&*s>='0'){n=10*n+*s-'0';s++;}return(n);}main(){chars[10]={'6','1','*','4','*','9','*','0','*'};printf("%d\n",fun(s));}程序的運(yùn)行結(jié)果是()。

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

48.有如下定義語句: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

49.設(shè)有定義:10ngx=-123456L,則以下能夠正確輸出變量x值的語句是()。

A.printf("x=%d\n",x);

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

C.peintf("x=%8dL\n",x);

D.printf('x=%LD\n",x);

50.在C語言中,函數(shù)調(diào)用時()。

A.實(shí)參和形參各占獨(dú)立的存儲單元

B.實(shí)參和形參共用存儲單元

C.由系統(tǒng)自動確定實(shí)參和形參是否共用存儲單元

D.由用戶指定實(shí)參和形參是否共用存儲單元

51.函數(shù)fun的返回值是()。fun(char*a,char*b)intnum=0,n=0;while(*(a+num))!='\0')num++;while(b[n]){*(a+num)=b[n];num++;n++;)returnnum;}

A.字符串a(chǎn)的長度B.字符串b的長度C.字符串a(chǎn)和b的長度之差D.字符串a(chǎn)和b的長度之和

52.下列程序運(yùn)行后的輸出結(jié)果是______。main(){inta=2,b=-1,c=2;if(a<b)if(b<0)c=0;elsec++;printf("%d\n",c);

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

53.主程序調(diào)用findmax函數(shù)求出數(shù)組中最大元素在數(shù)組中的下標(biāo),()中需填寫的內(nèi)容是。#include<stdio.h>findmax(int*s,intt,int*k){intp;for(p=0,*k=p;p<t;p++)if(s[p]>s[*k])();}main(){inta[10],i,k;for(i=0;i<10;i++)scanf("%d",&a[i]);findmax(a,10,&k);printf("%d%d\n",k,a[k]);}

A.k=pB.*k=pC.k=p-sD.*k=p-s

54.以下所列的c語言常量中,錯誤的是______。

A.0xFFB.1.2e0.5C.2LD.'\72'

55.下面程序段的運(yùn)行結(jié)果是charstr[]="ABC",*p=str;printf("%d\n",*(p+3));

A.67B.0C.字符'C'的地址D.字符'C'

56.以下程序的功能是:給r輸入數(shù)據(jù)后計(jì)算半徑r圓面積s。程序在編譯時出錯。main()/*Beginning*/{intr;floats;scanf("%d",&r);s=*π*r*r;printf("s=%f\n",s);出錯的原因是

A.注釋語句書寫位置錯誤

B.存放圓半徑的變量r不應(yīng)該定義為整型

C.輸出語句中格式描述符非法

D.計(jì)算圓面積的賦值語句中使用了非法變量

57.在深度為5的滿二叉樹中,葉子結(jié)點(diǎn)的個數(shù)為()。

A.31B.32C.16D.15

58.下列敘述中,不符合良好程序設(shè)計(jì)風(fēng)格要求的是()

A.程序的效率第一,清晰第二B.程序的可讀性好C.程序中要有必要的注釋D.輸入數(shù)據(jù)前要有提示信息

59.設(shè)ch是char型變量,其值為A,且有表達(dá)式:ch=(ch>='A'&&ch<='Z')?(ch+32):ch。該表達(dá)式的值是______。

A.AB.aC.ZD.z

60.下列程序的輸出結(jié)果是______。main(){inta[3][3]={{1,2},{3,4},{5,6}},i,j,s=0;for(i=1;i<3;i++)for(j=0;i<=i;j++)s+=a[i][j];printf("%d\n",s);}

A.18B.19C.20D.21

四、選擇題(20題)61.

下列程序中函數(shù)sort()的功能是對數(shù)組a中的數(shù)據(jù)進(jìn)行由大到小的排序。

#include<stdio.h>

voidsort(inta[],intll)

{inti,j,t;

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

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

if(a[i]<a[j])

{t=a[i];a[i]=a[j];a[j]=t;

}

}

main()

{inta[10]一{1,2,3,4,5,6,7,8,9,10},i;

sort(&a[1],7);

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

}

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

A.1,2,3,4,5,6,7,8,9,10,

B.10,9,8,7,6,5,4,3,2,1,

C.1,8,7,6,5,4,3,2,9,10,

D.1,2,10,9,8,7,6,5,4,3,

62.if語句的基本形式是:if(表達(dá)式)語句,以下關(guān)于“表達(dá)式”值的敘述中正確的是()。A.可以是任意合法的數(shù)值B.必須是整數(shù)值C.必須是正數(shù)D.必須是邏輯值

63.假設(shè)a和b為int型變量,則執(zhí)行以下語句后b的值為()。a=1;b=10;do{b-=a;a++;}while(b--<0);A.9B.-2C.-lD.8

64.

65.C語言中用于結(jié)構(gòu)化程序設(shè)計(jì)的三種基本結(jié)構(gòu)是A.順序結(jié)構(gòu)、選擇結(jié)構(gòu)、循環(huán)結(jié)構(gòu)

B.if、switch、break

C.for、while、do-while

D.if、for、continue

66.下面敘述中正確的是(

)。A.全局變量的作用域一定比局部變量的作用域范圍大B.靜態(tài)類型變量的生存期貫穿于整個程序的運(yùn)行期間C.函數(shù)的形參都屬于全局變量D.未在定義語句中賦值的auto變量和static變量的初值都是隨機(jī)值

67.

68.有以下程序:

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

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

69.函數(shù)fseek(pf,OL,SEEKEND)中的SEEKENE代表的起始點(diǎn)是()。

A.文件開始B.文件末尾C.文件當(dāng)前位置D.以上都不對

70.為了使模塊盡可能獨(dú)立,要求()。A.模塊的內(nèi)聚程度要盡量高,且各模塊間的耦合程度要盡量強(qiáng)

B.模塊的內(nèi)聚程度要盡量高,且各模塊間的耦合程度要盡量弱

C.模塊的內(nèi)聚程度要盡量低,且各模塊間的偶合程度要盡量弱

D.模塊的內(nèi)聚程度要盡量低,且各模塊間的耦合程度要盡量強(qiáng)

71.

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

A.ACFXDBEYZB.ABEFXYZCDC.ABCDEFXY7D.ABDYECFXZ

73.如下程序的輸出結(jié)果是()。

A.69825B.63825C.6385D.693825

74.設(shè)有如圖所示二叉樹,對此二叉樹后序遍歷的結(jié)果為()。

A.ZBTYCPXAB.ATBZXCYPC.TZBACYXPD.ATBZXCPY

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

A.棧是一種先進(jìn)先出的線性表B.隊(duì)列是一種后進(jìn)先出的線性表C.棧與隊(duì)列都是非線性結(jié)構(gòu)D.以上三種說法都不對

76.以下程序的輸出結(jié)果是()。main{inta=7,b=8,*P,*q,*r;p=&a;q=&b;r=P;P=q;q=r;printf("%d,%d,%d,%a\n",*P,*q,a,b);}A.8,7,8,7B.7,8,7,8C.8,7,7,8D.7,8,8,7

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

main()

{charst[20]="hell0\O\t\\\”;

printf("%d%d\n",strlen(st),sizeof(st));

}

A.99

B.520

C.1320

D.2020

78.

79.

80.有以下程序:

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

A.y=OS)y=一1B.0C.y=1D.while構(gòu)成無限循環(huán)

五、程序改錯題(1題)81.下列給定程序中,函數(shù)fun的功能是:將s所指字符串的正序和反序進(jìn)行連接,形成的新串放在t所指的數(shù)組中。例如,當(dāng)S所指字符串為“ABCD”時,t所指字符串中的內(nèi)容應(yīng)為“ABCDDCBA”。請改正程序中的錯誤,使它能得出正確的結(jié)果。注意:不要改動main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)!試題程序:

六、程序設(shè)計(jì)題(1題)82.請編寫函數(shù)proc(),其功能是:計(jì)算并輸出下列多項(xiàng)式值。S=(1+1/2)+(1/3+1/4)+…+(1/(2n1)+1/2n)例如,若主函數(shù)從鍵盤給n輸入100后,則輸出為s=5.878031。n的值要求大于1但不大于100。注意:部分源程序給出如下。請勿改動主函數(shù)main()和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)proc()的花括號中填入所編寫的若干語句。試題程序:

參考答案

1.A題目中定義了一個結(jié)構(gòu)體數(shù)組c并初始化,指針pt指向c的第1個元素。則“++pt->x”為11,“pt->x”為10,“*pt->y”為1,“(pt++)->x”為20。故本題答案為A選項(xiàng)。

2.D解析:兩個實(shí)體間的聯(lián)系可以歸納為3種類型:一對一聯(lián)系:一對一的聯(lián)系表現(xiàn)為主表中的每一條記錄只與相關(guān)表中的一條記錄相關(guān)聯(lián)。一對多聯(lián)系,一對多的聯(lián)系表現(xiàn)為主表中的每一條記錄與相關(guān)表中的多條記錄相關(guān)聯(lián)。多對多聯(lián)系:多對多的聯(lián)系表現(xiàn)為二個表中的多個記錄在相關(guān)表中同樣有多個記錄其匹配。本題中一個顧客可以購買多種商品,同一種商品可以有多個顧客購買,所以商品和顧客之間是多對多的聯(lián)系。

3.C

4.B解析:一個算法應(yīng)當(dāng)具有以下5個特性:有窮性;確定性;可行性;有零個或多個輸入;由一個或多個輸出.簡潔性不屬于這5個特性,所以本題應(yīng)該選擇B。

5.A

6.AB)選項(xiàng)中switch(n[nx);語句中不應(yīng)該有最后的分號。switch(expr1),中的exp1不能用浮點(diǎn)類型或Iong類型,也不能為一個字符串,所以C)錯誤。case后面常量表達(dá)式的類型必須與switch后面表達(dá)式的類型一致,所以D)錯誤。

7.C

8.D【答案】D

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

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

9.D程序中,指針s指向了它的下一個節(jié)點(diǎn)。題目中說明了s總是指向鏈表的第1個節(jié)點(diǎn)。然后while循環(huán)找到鏈表的最后一個元素,最后一個元素指向了之前鏈表的頭節(jié)點(diǎn),之前頭節(jié)點(diǎn)指向了空節(jié)點(diǎn)。所以本題實(shí)現(xiàn)的是使首節(jié)點(diǎn)成為尾節(jié)點(diǎn)。故本題答案為D選項(xiàng)。

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

11.D

12.B解析:堆排序是一種選擇排序。選擇排序有直接選擇排序和堆排序兩種。

13.C因?yàn)閍>b不成立,故表達(dá)式a>b的值為0,即為0賦給m,因此&&左邊表達(dá)式的值為0,0與任何值&&運(yùn)算都為0,于是不再計(jì)算&&右邊表達(dá)式的值,所以此時的n仍然為2。

14.D

15.A

16.D

17.A++a與a++的區(qū)別是前者先自加再運(yùn)算,后者是先運(yùn)算后自加。

18.As是一個公用體,d的值分別與ch中的兩個元素的值相同,d的高位放在chFl]中、低位放在chl-0]中,因此輸出的結(jié)果為21,43。

19.D

20.B

\n棧是線性表的一種,它的特點(diǎn)是先進(jìn)后出,并且只能在表的一端進(jìn)行插入和刪除操作的線性表,入棧和出棧都是在棧頂進(jìn)行,因此具有記憶作用,棧可以采用順序存儲,也可以采用鏈?zhǔn)酱鎯Α?/p>

\n

21.33解析:分析程序運(yùn)行過程,第1次循環(huán):s=s+i*i=0+1*1=1,i=2;第2次循環(huán):s=s+i*i=1+2*2=5,i=3;第3次循環(huán):s=s+i*i=5+3*3=14,i=4;循環(huán)條件不成立輸出i,--i使i的值減1,輸出結(jié)果為3。

22.1212解析:本題的第—個for循環(huán)用于紿數(shù)組arr賦初值,第二個for循環(huán)用于求和運(yùn)算。由于第二個for循環(huán)初始值為1,而循環(huán)條件為i<4,所以求的是arr[1]到arr[3]及i的和,所以輸出結(jié)果為12。

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

24.00解析:二維數(shù)組可以看成是按矩陣形式排列的,題目中給二維數(shù)組賦初值是按行分段賦值的,a[4][4]可以分解為4個一維數(shù)組,其數(shù)組名分別為a[0]、a[1]、a[2]、a[3],這4個一維數(shù)組都有4個元素,a[0]的元素為a[0][0]、a[0][1]、a[0][2]、a[0][3]。

25.t*10t*10解析:程序中變量,用于存放表達(dá)式1+12+123+1234+12345之和,變量t用于存放其表達(dá)式的各項(xiàng)。當(dāng)i=1時,要使t=1;i=2時,t=12;i=3時,t=123;依此類推。每一次的t值是用上一次的t乘以10再加上此次的i的值,所以本題答案為t*10。

26.概念設(shè)計(jì)階段(數(shù)據(jù)庫概念設(shè)計(jì)階段)概念設(shè)計(jì)階段(數(shù)據(jù)庫概念設(shè)計(jì)階段)

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

28.

29.11解析:do…while語句的功能是:首先執(zhí)行循環(huán)體語句,然后檢測循環(huán)控制條件表達(dá)式的值,若為真,則重復(fù)執(zhí)行循環(huán)體語句,否則退出循環(huán);do…while語句的特點(diǎn)是先執(zhí)行后判斷,因此循環(huán)體至少執(zhí)行1次.本程序中x=2不符合循環(huán)條件,所以只循環(huán)1次。

30.IHAVEATEST.

31.33解析:在初始化一個含有未指定維度的數(shù)組時,C語言總是在能完全容納初始化列表的基礎(chǔ)上盡可能小地設(shè)定該維度,來作為指定維度的標(biāo)準(zhǔn)。本題有9個初始值,若指定第一維度為2,則數(shù)組含有2*4=8個元素,容納不下,所以指定維度為3,3*4=12,足夠容納了。故應(yīng)該填3。

32.HelloHello解析:執(zhí)行b[5]=0;是給數(shù)組的第6個元素賦值為0,即將Hello后的空格變?yōu)?。當(dāng)輸出字符串時遇到0終止輸出。

33.bi.dat"w"或"bi.dat""w+"bi.dat,'w'或'bi.dat','w+'解析:根據(jù)fopen函數(shù)的調(diào)用方式fopen(文件名,使用文件方式)和題意可得結(jié)果。

34.136136解析:程序中定義了一個遞歸調(diào)用函數(shù)fun。程序運(yùn)行時,先把實(shí)參6傳給形參。if語句中6/2>0成立,執(zhí)行fun(x/2),即fun(3),同時輸出x的值6;再判斷if條件,3/2>0成立,再執(zhí)行fun(x/2),即fun(1),同時輸出x的值3;此時1/2>0不再成立,輸出1。而遞歸調(diào)用的輸出順序是相反的,故輸出結(jié)果為136。

35.ptrptr解析:本題考查函數(shù)指針的概念。函數(shù)指針的定義格式是:類型標(biāo)識符(葉旨針變量名)()。注:“類型標(biāo)識符”為函數(shù)返回值的類型。

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

37.2002Shanxian2002Shanxian解析:本題中第一個if語句將結(jié)構(gòu)體變量a.name和結(jié)構(gòu)體變量b.name中較小的那個賦值給結(jié)構(gòu)體變量d,第二個if語句將結(jié)構(gòu)體變量c.name和結(jié)構(gòu)體變量d.name較大的那個賦給結(jié)構(gòu)體變量d。通過函數(shù)strcmp比較。strcmp()函數(shù)有兩個參數(shù),分別為被比較的兩個字符串。如果第一個字符串大于第二個字符串返回值大于0,若第一個小于第二個返回值小于0,相等時返回值為0。字符串比較大小的標(biāo)準(zhǔn)是從第一個字符開始依次向右比較,遇到某一個字符大,該字符所在的字符串就是較大的字符串,如果遇到某一個字符小,該字符所在的字符串就是較小的字符串。本程序中第一個if語句strcmp(a.name,b.name)>0為真,故將b的值賦給d,第二個if語句strcmp(c.name,d.name)>0為假,故不執(zhí)行后面的語句,最后d的值為b的值,因此d.sno和p->name的值為2002Shangxian。

38.p=p*ip=p/ip=p*ip=p/i解析:本題中,欲求p的值,需要先求m!,n!,(m-n)!,可分別用循環(huán)語句實(shí)現(xiàn)。

39.解析:fopen函數(shù)的調(diào)用方式通常為fopen(文件名,使用文件方式)。本題中要求程序可以打開filea.dat文件,并且是要讀取文件中的內(nèi)容,所以空白處應(yīng)當(dāng)填入'filea.dat','r'。

40.相鄰相鄰

41.A解析:本題考核的知識點(diǎn)是位運(yùn)算符的應(yīng)用.首先將八進(jìn)制040轉(zhuǎn)換成二進(jìn)制數(shù)000100000,在將此;進(jìn)制數(shù)左移一位為001000000,輸出時轉(zhuǎn)換成八進(jìn)制數(shù)100。所以,4個選項(xiàng)中A為所選。

42.CC?!窘馕觥繕渚哂忻黠@的層次關(guān)系,即樹是一種層次結(jié)構(gòu)。在樹結(jié)構(gòu)中,根結(jié)點(diǎn)在第一層上。當(dāng)樹為非空時,樹中有且只有一個根結(jié)點(diǎn),當(dāng)樹為空時,樹中根結(jié)點(diǎn)的數(shù)目為0。

43.A解析:C語言規(guī)定標(biāo)識符只能由字母、數(shù)字和下劃線三種符號組成,而且第一個字符必須是字母或下劃線。D)中的-max不合法,'-'既不是字母、數(shù)字,也不是下劃線;C)中的3COM第一個字符為數(shù)字,不合法;D)中的int和C語言的關(guān)鍵字重名,不合法。

44.D解析:軟件生命周期分為軟件定義、軟件開發(fā)及軟件運(yùn)行維護(hù)3個階段。本題中,詳細(xì)設(shè)計(jì)、軟件編碼和軟件測試都屬于軟件開發(fā)階段;維護(hù)是軟件生命周期的最后一個階段,也是持續(xù)時間最長,花費(fèi)代價最大的一個階段,軟件工程學(xué)的一個目的就是提高軟件的可維護(hù)性,降低維護(hù)的代價。

45.A解析:在本題中k=n++,為后綴運(yùn)算。根據(jù)其運(yùn)算規(guī)則,首先n先加一,但n++表達(dá)式的值依然n原來的值,即k的值沒有改變。選項(xiàng)A中先給k賦值為n,然后n再加1,k值沒有變化,所以這個表達(dá)式和本題中表達(dá)式等價:選項(xiàng)B中先n加1,然后將n加1后的值賦給k,k變化了比原來的值大1,所以這個表達(dá)式和本題中表達(dá)式不等價:選項(xiàng)C中先計(jì)算表達(dá)式左邊的表達(dá)式++=N的值,執(zhí)行++n后,左邊的表達(dá)式的值為n的值加1,然后將n+1后的值賦給k,所以這個表達(dá)式和本題中的表達(dá)式不等價;選項(xiàng)D中表達(dá)式展開為k=k+(n+1),k的值發(fā)生了變化,所以這個表達(dá)式和本題中的表達(dá)式不等價。所以4個選項(xiàng)中A正確。

46.B解析:本題在調(diào)用函數(shù)時,實(shí)參是數(shù)組名也是把數(shù)組a的首地址傳遞給形參,由條件i=2且i<6得出函數(shù)將列以a[2]開始的4個元素(3、4、5、6)進(jìn)行乘2操作,結(jié)果分別是a[2]=6、a[3]=8、a[4]=10、a[5]=12。a[0]、a[1]、a[6]、a[7]、a[8]、a[9]的值沒有發(fā)生變化。

47.C解析:題目fun()函數(shù)中while循環(huán)的意思是:判斷s所指內(nèi)容是否為數(shù)字字符,如果是數(shù)字字符,則計(jì)算表達(dá)式n=10*n+*s-'0';。其中*s-'0'的作用是將相應(yīng)的數(shù)字字符轉(zhuǎn)換為數(shù)值,例如字符'8'減去字符'0'后,得到的結(jié)果就是數(shù)值8了。n=10*n+的作用是將累計(jì)變量n中原來內(nèi)容乘以10,然后再加上剛轉(zhuǎn)換的數(shù)字字符的數(shù)值,例如原來n的值為1,*s現(xiàn)在的內(nèi)容為'2',那么執(zhí)行了n=10*n+*s-'0';語句后,n的值變?yōu)?2,如果接下來再來一個'8'字符,執(zhí)行n=10*n+*s-'O';語句后,n的值就是128了。故不難看出fun()函數(shù)的作用是“將數(shù)字字符串轉(zhuǎn)換為相應(yīng)的十進(jìn)制數(shù)值,碰到非數(shù)字字符時結(jié)束”。從主函數(shù)中定義的字符數(shù)組s的初始化內(nèi)容可以看出,fun()函數(shù)返回值應(yīng)該是61。故應(yīng)該選擇C。

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

49.B解析:x為一個長整型的變量,而且是一個十進(jìn)制的數(shù),它的輸出控制符是%1d,所以排除選項(xiàng)A和選項(xiàng)C;由于C語言中是區(qū)分大小寫的,1d中的d不能為大寫,故排除選項(xiàng)D。4個選項(xiàng)中B正確。

50.A解析:本題考查函數(shù)調(diào)用時的參數(shù)傳遞。函數(shù)的形參是函數(shù)定義時由用戶定義的形式上的變量,實(shí)參是函數(shù)調(diào)用時,主調(diào)函數(shù)為被調(diào)函數(shù)提供的原始數(shù)據(jù)。

在函數(shù)調(diào)用時,實(shí)參和其所對應(yīng)的形參分別占用不同的存儲單元,彼此之間不影響。

51.D解析:因?yàn)?\\0'是字符串結(jié)束標(biāo)記,而fun函數(shù)中的第一個while循環(huán)從字符串a(chǎn)的第一個字符開始,直到碰到'\\0'時結(jié)束循環(huán),所以其作用就是將字符串a(chǎn)的長度記錄到變量num中。而第二個while循環(huán)從b[0]開始,將字符串b中的字符依次復(fù)制到字符串a(chǎn)的結(jié)尾處,直到b[n]為假,即b[n]為字符串結(jié)束標(biāo)志'\\0'時,所以最后返回的num保存了字符串a(chǎn)和b的長度之和。故應(yīng)該選擇D。

52.C

53.B解析:數(shù)組元素可以通過數(shù)組首地址和下標(biāo)的方式來引用,數(shù)組元素的下標(biāo)是從0開始的,也可以將數(shù)組首地址賦給一個指針變量,通過指針和下標(biāo)的方式來引用數(shù)組元素。注意:通過數(shù)組的首地址引用數(shù)組元素。

54.B解析:在C語言中常量可以用十進(jìn)制數(shù)、八進(jìn)制數(shù)、十六進(jìn)制數(shù)來表示:也可以用轉(zhuǎn)義字符、長整型、科學(xué)計(jì)數(shù)法等來表示。選項(xiàng)A為十六進(jìn)制表示法正確,故選項(xiàng)A正確。選項(xiàng)B為科學(xué)計(jì)數(shù)法,但在選項(xiàng)B中的科學(xué)計(jì)數(shù)的表示形式是錯誤的,指數(shù)不能為小數(shù),故選項(xiàng)B的表示法是錯誤的。選項(xiàng)C為長整型表示法正確,故C正確。選項(xiàng)D為轉(zhuǎn)義字符表示正確,故選項(xiàng)D的表示法是正確的。所以,4個選項(xiàng)中選項(xiàng)B符合題意。

55.B解析:考查指向字符串的指針變量。在該題中,指針變量p指向的應(yīng)該是該字符串中的首地址,p+3指向的是字符串結(jié)束標(biāo)志'\\0'的地址,因而。(p+3)的值為0。

56.D解析:在C語言源程序中了注釋部分、字符串常量部分可以使用任意字符外,其余部分只能由52個大小寫:字母、10個阿拉伯?dāng)?shù)字以及+-*/=,._:;?\\'\'~|!#%&()[]^<>“空格”30個特殊符號組成。所以在計(jì)算圓面積的賦值語句中出現(xiàn)的π是非法字符,將引起編譯出錯.應(yīng)該選擇D。

57.C解析:二叉樹的一個性質(zhì)是,在二叉樹的第k層上,最多有2(k-

溫馨提示

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

最新文檔

評論

0/150

提交評論