2021-2022年四川省眉山市全國計(jì)算機(jī)等級(jí)考試C語言程序設(shè)計(jì)測(cè)試卷(含答案)_第1頁
2021-2022年四川省眉山市全國計(jì)算機(jī)等級(jí)考試C語言程序設(shè)計(jì)測(cè)試卷(含答案)_第2頁
2021-2022年四川省眉山市全國計(jì)算機(jī)等級(jí)考試C語言程序設(shè)計(jì)測(cè)試卷(含答案)_第3頁
2021-2022年四川省眉山市全國計(jì)算機(jī)等級(jí)考試C語言程序設(shè)計(jì)測(cè)試卷(含答案)_第4頁
2021-2022年四川省眉山市全國計(jì)算機(jī)等級(jí)考試C語言程序設(shè)計(jì)測(cè)試卷(含答案)_第5頁
已閱讀5頁,還剩38頁未讀, 繼續(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ì)測(cè)試卷(含答案)學(xué)校:________班級(jí):________姓名:________考號(hào):________

一、單選題(20題)1.

2.衡量顯示器的主要技術(shù)指標(biāo)是()

A.波特率B.分辨率C.主頻D.顯示速度

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

A.switch(a==1){ case0:a=b;break; case1:a++;}

B.switch(a){ case1:a=b;break; default:a++;}

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

D.switch(a==1){ case1:a=b;break; case0:a++;}

4.由兩個(gè)棧共享一個(gè)存儲(chǔ)空間的好處是______。

A.減少存取時(shí)間,降低下溢發(fā)生的幾率

B.節(jié)省存儲(chǔ)空間,降低上溢發(fā)生的幾率

C.減少存取時(shí)間,降低上溢發(fā)生的幾率

D.節(jié)省存儲(chǔ)空間,降低下溢發(fā)生的幾率

5.

6.有以下程序:#include<stdio.h>main(){inti=0.s=0;for(;;)if(i==3‖i==5)continue;if(i==6)break;i++;s+=i;}printf("%d\n",s);程序運(yùn)行后的輸出結(jié)果是()。

A.10B.13C.21D.程序進(jìn)入列循環(huán)

7.以下敘述中正確的是A.局部變量說明為static存儲(chǔ)數(shù),其生存期將得到延長

B.全局變量說明為static存儲(chǔ)類,其作用域?qū)⒈粩U(kuò)大

C.任何存儲(chǔ)類的變量在未賦初值時(shí),其值都是不確定的

D.形參可以使用的存儲(chǔ)類說明符與局部變量完全相同

8.數(shù)據(jù)庫設(shè)計(jì)包括兩個(gè)方面的設(shè)計(jì)內(nèi)容,它們是()

A.概念設(shè)計(jì)和邏輯設(shè)計(jì)B.模式設(shè)計(jì)和內(nèi)模式設(shè)計(jì)C.內(nèi)模式設(shè)計(jì)和物理設(shè)計(jì)D.結(jié)構(gòu)特性設(shè)計(jì)和行為特性設(shè)計(jì)

9.設(shè)有下列二叉樹:

對(duì)此二叉樹先序遍歷的結(jié)果是

A.ABCDEFB.DBEAFCC.ABDECFD.DEBFCA

10.有定義語句:inta=1,b=2,c=3,x;,則以下選項(xiàng)中各程序段執(zhí)行后,x的值不為3的是

A.if(c<a)x=1;elseif(b<a)x=1;elsex=3;

B.if(a<3)x=3;elseif(a<2)x=2;elsex=1;

C.if(a<3)x=3;if(a<2)x=2;if(a<1)x=1;

D.if(a<b)x=b;if(b<c)x=c;if(c<a)x=a;

11.有以下程序main(){intp[7]={11,13,14,15,16,17,18},i=0,k=0;while(i<7&&p[i]%2){k=k+p[i];i++;}printf("%d\n",k);}執(zhí)行后輸出結(jié)果是

A.58B.56C.45D.24

12.

13.連通圖G中有n個(gè)頂點(diǎn),G的生成樹是()連通子圖。

A.包含G的所有頂點(diǎn)B.包含G的所有邊C.不包含G的所有頂點(diǎn)D.包含G的所有頂點(diǎn)和所有邊

14.以下屬于C語言實(shí)型常量的是()。

A.+6eB.e6+6C.6e+6D..e+6

15.

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

17.在一個(gè)有向圖中,所有頂點(diǎn)的入度之和等于所有頂點(diǎn)的出度之和的()倍。A.A.1/2B.1C.2D.4

18.

19.線性表是具有n個(gè)()的有限序列。

A.字符B.數(shù)據(jù)元素C.數(shù)據(jù)項(xiàng)D.表元素

20.若有定義floata[15],*p=a;,且數(shù)組a的首地址為300H,則p+13所指向的數(shù)組元素的地址為()。

A.334HB.30DHC.352HD.31AH

二、2.填空題(20題)21.若有定義語句chars[100],d[100];intj=0,i=0;且s中已賦字符串,請(qǐng)?zhí)羁找詫?shí)現(xiàn)拷貝。(注:不使用逗號(hào)表達(dá)式)

while(s[i])(d[j]=【】;j++;}

d[j]=0;

22.在面向?qū)ο蟮某绦蛟O(shè)計(jì)方法中,類的實(shí)例稱為______。

23.以下程序中,fun函數(shù)的功能足求3行4列二維數(shù)組每行尢素中的最大值。請(qǐng)?zhí)羁?。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;j<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(j=0;j<n;j++)if(())x=ar[i][j];br[i]=x;}}

24.若變量x、y已定義為int類型且X的值為33,y的值為3,請(qǐng)將輸出語句printf((),x/y);補(bǔ)充完整,使其輸出的計(jì)算結(jié)果形式為:x/y=11。

25.目前實(shí)際存在和使用的廣域網(wǎng)基本上都是采用______拓?fù)浣Y(jié)構(gòu)類型。

有以下程序:

#include<string.h>

structSTU

{intnum;

floatTotalScore;};

voidf(structSTUp)

{structSTUs[2]={{20041,703},{20045,537}};

p.num=s[1].num;p.TotalScore=s[1].TotalScore;

}

main()

{structSTUs[2]={{20041,703},{20042,580}};

f(s[0]);

printf("%d%3.0f\n",s[0].num,s[0],TotalScore);

}

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

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

#include<stdio.h>

#defineMAX_COUNT4

voidfun()

main()

{intcount;

for(count=1;count<=MAX_COUNT;coun++)fun();

}

voidfun()

{staicinti;

i+=2;

printf(”%d,i);

}

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

main()

{

inta[4][4]={{1,2,3,4},{5,6,7,8},{11,12,13,14},{15,16,17,18}};

inti=0,j=0,s=0;

while(i++<4)

{

if(i==2||==4)continue;

j=0;

do

{

s+=a[i][j];

j++;

}while(j<4);

}

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

}

28.一棵二叉樹第6層(根結(jié)點(diǎn)為第一層)的結(jié)點(diǎn)最多為______個(gè)。

29.性結(jié)構(gòu)中,隊(duì)列的操作順序是先進(jìn)先出,而棧的操作順序是______。

30.對(duì)于長度為n的順序存儲(chǔ)的線性表,當(dāng)隨機(jī)插入和刪除一個(gè)元素時(shí),需平均移動(dòng)元素的個(gè)數(shù)為【】。

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

#include<stdio.h>

main()

{structstru

{inta;

floatb;

chard[4];

};

printf("%d\n",sizeof(structstru));}

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

main()

{intt=0,s=0,i;

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

{t=i+______;s=s+t;}

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

}

33.以下程序的功能是將字符串s中的數(shù)字字符放入d數(shù)組中,最后輸出d中的字符串。例如,輸入字符串:

abcl23edf456gh,執(zhí)行程序后輸出:123456。請(qǐng)?zhí)羁铡?/p>

#include<stdio.h>

#include<ctype,h>

main()

{chars[80],d[80];inti,j;

gets(s);

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

if(【】){d[j]=s[i];j++;}

d[j]='\0';

puts(d);

}

34."print("%d\n",strlen("\t\"\023\xABC\n"));”語句的輸出結(jié)果是______。

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

#include<stdio.h>

msin()

{inti,n[]={0,0,0,0,0};

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

{n[i]=n[i-1]*2+1;

printf("%d",n[i]);

}

}

36.設(shè)函數(shù)findbig已定義為求3個(gè)數(shù)中的最大值,以下程序?qū)⒗煤瘮?shù)指針調(diào)用findbig函數(shù)。請(qǐng)?zhí)羁铡?/p>

main()

{intfindbig(int,int,int);

int(*f)(),x,y,z,big;

f=【】。

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

big=(*f)(x,y,z);

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

}

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

#include<stdio.h>

main()

{inty,a;

y=2,a=1;

while(y--!=-1)

{do{a*=y;a++;}while(y--);}

printf("%d,%d",a,y);}

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

#defineMAX(x,y)(x)>(y)?(x):(y)

main()

{inta=5,b=2,c=3,d=3,t;

t=MAX(a+b,c+d)*10;

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

}

39.在面向?qū)ο蠓椒ㄖ?,類的?shí)例稱為______。

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.請(qǐng)讀程序段:charstr[]="ABCD",*p=strprint("%d\n",*(p+4));程序段的輸出結(jié)果是______。

A.68B.OC.字符'D'的地址D.不確定的值

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

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

43.以下關(guān)于long、int和short類型數(shù)據(jù)占用內(nèi)存大小的敘述中正確的是(),

A.均占4個(gè)字節(jié)B.根據(jù)數(shù)據(jù)的大小來決定所占內(nèi)存的字節(jié)數(shù)C.由用戶自己定義D.由C語言編譯系統(tǒng)決定

44.軟件需求分析一般應(yīng)確定的是用戶對(duì)軟件的______。

A.功能需求B.非功能需求C.性能需求D.功能需求和非功能需求

45.在結(jié)構(gòu)化方法中,用數(shù)據(jù)流程圖(DFD)作為描述工具的軟件開發(fā)階段是______。

A.可行性分析B.需求分析C.詳細(xì)設(shè)計(jì)D.程序編碼

46.下面程序的輸出是______。chars[]="ABCD";main(){char*p;for(p=s;p<s+4;p++)printf("%s\n",p);}

A.ABCDBCDCDDB.ABCDC.DCBAD.ABCDABCABA

47.若有條件表達(dá)式(exp)?a++:b--,則以下表達(dá)式中能完全等價(jià)于表達(dá)式(exp)的是

A.(exp==0)B.(exp!=0)C.(exp==1)D.(exp!=1)

48.下列程序的輸出結(jié)果是()。#include<stdio.h>main(){structst{inty,x,z;};union{longi;intj;chark;}un;printf("%d,%d\n",sizeof(structst),sizeof(un));}

A.6,2B.6,4C.8,4D.8,6

49.下列程序的輸出結(jié)果是()。#include<stdio.h>main(){inta=O,i;for(i=1;i<5;i++){swich(i){case0:case3:a+=1;case1:case2:a+=2;default:a+=3;}}printf("%d",a);}

A.19B.18C.6D.8

50.以下合法的十六進(jìn)制數(shù)是()。

A.0xB.0x4deC.0x1hD.oX77

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

A.對(duì)于double類型數(shù)組,不可以直接用數(shù)組名對(duì)數(shù)組進(jìn)行整體輸入或輸出

B.數(shù)組名代表的是數(shù)組所占存儲(chǔ)區(qū)的首地址,其值不可改變

C.當(dāng)程序執(zhí)行中,數(shù)組元素的下標(biāo)超出所定義的下標(biāo)范圍時(shí),系統(tǒng)將給出“下標(biāo)越界”的出錯(cuò)信息

D.可以通過賦初值的方式確定數(shù)組元素的個(gè)數(shù)

52.以下程序的輸出結(jié)果是()。#include<stdio.h>#include<string.h>mam(){charb1[8]="abcdefg",b2[8],*pb=b1+3;while(--pb>=b1)strcpy(b2,pB);printf("%d\n",strlen(b2));}

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

53.閱讀下面程序,則程序段的功能是#include"stdio.h"main(){intc[]={23,1,56,234,7,0,34},i,j,t;for(i=1;i<7;i++){t=c[i];j=i-1;while(j>=0&&t>c[j]){c[j+1]=c[j];j--;}c[j+1]=t;}for(i=0;i<7;i++)printf("%d",c[i]);putchar('\n');}

A.對(duì)數(shù)組元素的升序排列B.對(duì)數(shù)組元素的降序排列C.對(duì)數(shù)組元素的倒序排列D.對(duì)數(shù)組元素的隨機(jī)排列

54.有以下程序prt(int*m,intn){inti;for(i=0;i<n;i++)m[i]++;}main(){inta[]={1,2,3,4,5},i;prt(a,5);for(i=0;i<5;i++)printf("%d,",a[i]);}程序運(yùn)行后的輸出結(jié)果是

A.1,2,3,4,5,B.2,3,4,5,6,C.3,4,5,6,7,D.2,3,4,5,1,

55.讀下面程序段(字符串內(nèi)沒有空格字符):printf("%d\n",strlen("ATS\n012\1\\"));其輸出結(jié)果是()。

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

56.下列程序執(zhí)行后的輸出結(jié)果是main(){inta[3][3],*p,i;p=&a[0][0];for(i=1;i<9;i++)p[i]=i+1;printf("%d\n",a[1][2]);}

A.3B.6C.9D.隨機(jī)數(shù)

57.若有說明:int*p,m=5,n;以下正確的程序段是

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

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

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

D.p=&n;*p=m;

58.下面描述中,不符合結(jié)構(gòu)化程序計(jì)風(fēng)格的是_______。

A.使用順序、選擇和重復(fù)(循環(huán))三種基本控制結(jié)構(gòu)表示程序的控制邏輯

B.自頂向下

C.注重提高程序的執(zhí)行效率

D.限制使用goto語句

59.設(shè)變量x為float型且已賦值,則以下語句中能將x中的數(shù)值保留到小數(shù)點(diǎn)后兩位,并將第三位四舍五入的是A.x=x*100+0.5/100.0;

B.x=(x*100+0.5)/100.0;

C.x=(int)(x*100+0.5)/100.0;

D.x=(x/100+0.5)*100.0;

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

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

四、選擇題(20題)61.(61)數(shù)據(jù)結(jié)構(gòu)中,與所使用的計(jì)算機(jī)無關(guān)的是數(shù)據(jù)的()

A.存儲(chǔ)結(jié)構(gòu)

B.物理結(jié)構(gòu)

C.邏輯結(jié)構(gòu)

D.物理和存儲(chǔ)結(jié)構(gòu)

62.有以下程序:

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

A.1212B.117C.1111D.127

63.

64.

65.當(dāng)用戶要求輸入的字符串中含有空格時(shí),應(yīng)使用的輸入函數(shù)是()。

A.scanfB.getcharC.getsD.getc

66.有以下程序

voidfunc(int*a,intb[])

{b[0]=*a+6;}

main()

{inta,b[5]={0};

a=0;b[0]=3;

func(&a,b);

rintf("%d\n",b[0]);

}

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

A.6B.7

C.8D.9

67.

68.

69.有以下程序

#include<stdio.h>

#include<string.h>

main()

{chara[10]=”abcd”;

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

}

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

A.7,4

B.4,10

C.8,8

D.10,10

70.

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

A.32

B.31

C.16

D.15

72.有以下程序

#defineP(a)a+a

voidF(intx)

{return(P(2)*x*x);}

main()

{printf("%d\n",F(1+3));}

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

A.10B.34

C.64D.編譯出錯(cuò)

73.有三個(gè)關(guān)系R、S和T如下:

則由關(guān)系R和S得到關(guān)系T的操作是()。

A.自然連接B.交C.投影D.并

74.以下對(duì)C語言函數(shù)的有關(guān)描述中,正確的是()。

A.C函數(shù)可以遞歸調(diào)用也可以嵌套調(diào)用

B.在C中,調(diào)用函數(shù)時(shí),只能把實(shí)參值傳給形參,形參值不能返回給實(shí)參

C.沒有返回值的函數(shù)不能被使用.

D.C程序中有調(diào)用關(guān)系的所有函數(shù)必須放在同一個(gè)源程序文件中

75.(58)在數(shù)據(jù)流圖(DFD)中,帶有名字的箭頭表示______。

A.制程序的執(zhí)行順序

B.模塊之間的調(diào)用關(guān)系

C.數(shù)據(jù)的流向

D.程序的組成成分

76.以下不正確的敘述是

A.在C程序中,逗號(hào)運(yùn)算符的優(yōu)先級(jí)最低

B.在C程序中,APH和aph是兩個(gè)不同的變量

C.若a和b類型相同,在計(jì)算了賦值表達(dá)式a=b后,b中的值將放入a中,而b中的值不變

D.從鍵盤輸入數(shù)據(jù)時(shí),對(duì)于整型變量,只能輸入整型數(shù)值;對(duì)于實(shí)型變量,只能輸入實(shí)型數(shù)值

77.

設(shè)變量a、b、c、d和y都已正確定義并賦值。若有以下if語句:

if(a<b)

if(c==d)y=0;

elsey=1;

該語句所表示的含義是()。

A.y=0,a<b且c=dy=1,a≥b

B.y=0,a<b且c=dy=1,a≥b且c≠d

C.y=0,a<b且c=dy=1,a<b且c≠d

D.y=0,a<b且c=dy=1,c≠d

78.有以下程序

#include<string.h>

main()

{FILE*fp;

inti,k,n;

fp=fopen("data.dat","w+");

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

{fprintf(fp,"%d",i);

if(i%3==0)fprintf(fp,"\n");

}

rewind(fp);

fscanf(fp,"%d%d",&k,&n);

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

fclose(fp);

}

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

A.00B.45

C.4578D.45678

79.有以下程序:

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

A.32B.12C.21D.22

80.“年齡在18~25之間”這種約束是屬于數(shù)據(jù)庫當(dāng)中的()。A.A.原子性措施B.一致性措施C.完整性措施D.安全性措施

五、程序改錯(cuò)題(1題)81.已知一個(gè)數(shù)列從0項(xiàng)開始的前3項(xiàng)為0,0,1,以后的各項(xiàng)都是其相鄰的前3項(xiàng)之和。下列給定的程序中,函數(shù)proc的功能是:計(jì)算并輸出該數(shù)列前n項(xiàng)的和sum。n的值通過形參傳人。例如,當(dāng)n=20時(shí),程序的輸出結(jié)果應(yīng)為42762.000000。請(qǐng)修改程序中的錯(cuò)誤,使它能得到正確結(jié)果。注意:不要改動(dòng)maiil函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。試題程序:#include<stdlib.h>#include<conio.h>#include<stdio.h>doubleproc(intn){doublesum,s0,s1,s2,s;intk;sum=1.0;if(n<=2)sum=0.0;s0=0.0;s1=0.0;s2=1.0;//****found****for(k=4;k<n;k++)}{s=s0+s1+s2;sum+=S:s0=s1;s1=s2;//****found****s2=s;returnsum;}voidmain{intn;system("CLS");printf("InputN=");scanf("%d",&nJ;printf("%f\n",proc(n));}

六、程序設(shè)計(jì)題(1題)82.使用VC++2010打開考生文件夾下prog1中的解決方案。此解決方案的項(xiàng)目中包含一個(gè)源程序文件prog1.c。在此程序中,請(qǐng)編寫一個(gè)函數(shù)fun(),該函數(shù)的功能是使變量h的值保留兩位小數(shù),并對(duì)第3位進(jìn)行四舍五入(規(guī)定h的值為正數(shù))。若h的值為1234.567,則函數(shù)返回1234.570000;若h的值為1234.564,則函數(shù)返回1234.560000。注意:部分源程序在文件prog1.c中。請(qǐng)勿改動(dòng)主函數(shù)main()和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun()的花括號(hào)中填入你編寫的若干語句。試題程序:

參考答案

1.C

2.B

3.A題干中,if語句的含義是:如果a的值為1,將b的值賦給a,否則將a的值自增1。選項(xiàng)A中,“switch(a==1)”中表達(dá)式“a==1”的結(jié)果如果為真,即1,則從case1開始執(zhí)行“a++”;如果“a==1”的結(jié)果為假,即為0,則從case0開始執(zhí)行“a=b”,所以與題干含義執(zhí)行操作相反的是選項(xiàng)A中的語句。故本題答案為A選項(xiàng)。

4.B解析:常常一個(gè)程序中要用到多個(gè)棧,為了不發(fā)生上溢錯(cuò)誤,就必須給每個(gè)棧分配一個(gè)足夠大的存儲(chǔ)空間。但實(shí)際中,很難準(zhǔn)確地估計(jì),若每個(gè)棧都分配過大的存儲(chǔ)空間,勢(shì)必造成系統(tǒng)空間緊張;若讓多個(gè)棧共用一個(gè)足夠大的連續(xù)存儲(chǔ)空間,則可利用棧的動(dòng)態(tài)特性使他們的存儲(chǔ)空間互補(bǔ)。

5.C

6.D解析:程序第1次執(zhí)行for循環(huán)時(shí),i=0,兩條if語句中的表達(dá)式都不成立,執(zhí)行i++;s+=i;此時(shí)i為1,s為1第2次循環(huán),兩條if語句中的表達(dá)式也不成立,執(zhí)行i++,s+=i,此時(shí)i為2,s為3;……;當(dāng)i=3時(shí),執(zhí)行continue,結(jié)束本輪循環(huán),不執(zhí)行i++;繼續(xù)執(zhí)行下一輪循環(huán),這樣一來i值始終為3,繼續(xù)continue,無終止條件,進(jìn)入死循環(huán)。

7.A解析:全局變量說明為static存儲(chǔ)類,其生命周期將得到延長,但作用域不能被擴(kuò)大;static存儲(chǔ)類變量在未賦初值時(shí),是有默認(rèn)值的,形參中的存儲(chǔ)類說明符與局部變量完全相同。

8.A解析:模式設(shè)計(jì)和內(nèi)模式設(shè)計(jì)是概念設(shè)計(jì)的兩種方法。物理設(shè)計(jì)是根據(jù)特定的計(jì)算機(jī)系統(tǒng),對(duì)數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)和存取方法進(jìn)行設(shè)計(jì),從而實(shí)現(xiàn)從邏輯結(jié)構(gòu)到物理結(jié)構(gòu)的轉(zhuǎn)換。從系統(tǒng)開發(fā)的角度來看,結(jié)構(gòu)特性設(shè)計(jì)和行為特性-設(shè)計(jì)是數(shù)據(jù)庫應(yīng)用系統(tǒng)所具有的兩個(gè)特性。結(jié)構(gòu)特性的設(shè)計(jì),設(shè)計(jì)各級(jí)數(shù)據(jù)庫模式(靜態(tài)特性):行為特性的設(shè)計(jì),改變實(shí)體及其特性,決定數(shù)據(jù)庫系統(tǒng)的功能(動(dòng)態(tài)特性)。

9.C解析:二叉樹的遍歷分為先序、中序、后序三種不同方式。本題要求先序遍歷遍歷順序應(yīng)該為:訪問根結(jié)點(diǎn)->先序遍歷左子樹->先序遍歷右子樹。按照定義,先序遍歷序列是ABDECF。

10.C解析:選項(xiàng)A首先判斷if語句條件中表達(dá)式的值“3<1”為假,然后執(zhí)行最近的else后面的語句,該else后面又為if-else語句,在這個(gè)if-else語句中首先判斷該if語句條件中表達(dá)式的值“2<1”為假,程序執(zhí)行其最近的else后面的語句,將3賦值給x。

選項(xiàng)B中首先判斷if語句條件中表達(dá)式的值“1<3”為真,然后執(zhí)行最近的else后面的語句“x=3”,后面的else不再執(zhí)行,最后x的值為3。

選項(xiàng)C中,首先執(zhí)行第一條if語句,由于“1<3”為真,執(zhí)行此if后面的語句“x=3”,接著執(zhí)行第二條if語句,由于“1<2”為真,執(zhí)行此if后面的語句“x=2”,接著執(zhí)行第三條if語句,由于“1<1為假,后面的語句不執(zhí)行,所以最后的x值為2不為3。

選項(xiàng)D中;首先執(zhí)行第一條if語句,由于“a<b”為真,執(zhí)行此if后面的語句“x=b”;接著執(zhí)行第二條if語句,由于“b<c”,為真,執(zhí)行此if后面的語句“x=c”,接著執(zhí)行第三條if語句,由于“c<a”為假,后面的語句不執(zhí)行,所以最后的x值為c即為3。

11.D解析:在主函數(shù)中首先定義了一個(gè)數(shù)組p并初始化,在while后面括號(hào)里的表達(dá)式中,i初值為0,當(dāng)p[i]為偶數(shù)時(shí),P[i]%2等于0,根據(jù)“&&”運(yùn)算符的規(guī)則,其表達(dá)式為假退出循環(huán),顯然當(dāng)i=2時(shí),p[i]=14為偶數(shù),此時(shí)while后面括號(hào)里的表達(dá)式的值為假,退出循環(huán),此時(shí)k=p[0]+p[1],即k=11+13。所以最后輸出k為24。

12.D

13.A

14.CC語言的實(shí)型常量可以用小數(shù)形式、指數(shù)形式來表示。題中的選項(xiàng)都是指數(shù)形式,指數(shù)形式的一般形式為:尾數(shù)E(或e)整型指數(shù)。C語言規(guī)定,字母E或e之前必須要有數(shù)字,且E或e后面的指數(shù)必須為整數(shù),E或e的前后以及數(shù)字之間不得插入空格。故本題答案為C選項(xiàng)。

15.C

16.D

17.B

18.A

19.B

20.C解析:解答本題,首先要明白在對(duì)指針進(jìn)行加、減運(yùn)算的時(shí)候,數(shù)字“1”不是十進(jìn)制的數(shù)“1”,而是指'1'個(gè)存儲(chǔ)單元長度,而1個(gè)存儲(chǔ)單元長度占多少存儲(chǔ)空間,應(yīng)該視具體情況而定。如果基本類型是int型,移動(dòng)1個(gè)存儲(chǔ)單元的長度就是位移2個(gè)字節(jié),如果基本類型是float型,移動(dòng)1個(gè)存儲(chǔ)單元的長度就是位移4個(gè)字節(jié)。所以p+13所指向的數(shù)組元素的地址:300H+(13*上標(biāo))4)H=352H。

21.s[i++]s[i++]解析:本題中為了能實(shí)現(xiàn)字符串的拷貝,需要使字符數(shù)組s從頭到尾依次遍歷其所有元素.本題應(yīng)使用i的自增后置來實(shí)現(xiàn)。

22.對(duì)象對(duì)象解析:在面向?qū)ο蟮某绦蛟O(shè)計(jì)方法中,類是具有相同的屬性或方法的對(duì)象的抽象,對(duì)象是類的實(shí)例。

23.x<ar[i][j]x<ar[i][j]解析:本題考查的是循環(huán)的嵌套。本題定義了二維數(shù)組a,存放3行4列的數(shù)組元素,定義了,一維數(shù)組b用于存放每行的最大數(shù)。存函數(shù)fun中,通過二重for循環(huán)求每行的最大數(shù),外層for循環(huán)用于控制行數(shù),內(nèi)層for循環(huán)用于控制列數(shù)。當(dāng)外層循環(huán)執(zhí)行一次時(shí),內(nèi)層循環(huán)則執(zhí)行4次,并求出了這一行的最大值x,最后將每一行求出最大值x賦值給存放最大值的數(shù)組br,故本題答案為x<ar[i][j]。

24.x/y=%dx/y=%d解析:本題考查prinff語句的輸出格式。printf()函數(shù)是格式化輸出函數(shù),一般用于向標(biāo)準(zhǔn)輸出設(shè)備按規(guī)定格式輸出信息。在編寫程序時(shí)經(jīng)常會(huì)用到此函數(shù)。printf()函數(shù)的調(diào)用格式為:printf('<格式化字符串>”,<參最表>)其中,格式化字符串包括兩部分內(nèi)容。一部分足正常字符,這些字符將按原樣輸出;另一部分是格式化規(guī)定字符,以“%”開始,后跟一個(gè)或幾個(gè)規(guī)定字符,用來確定輸出內(nèi)容格式。參量表是需要輸出的一系列參數(shù),其個(gè)數(shù)必須與格式化字符串所說明的輸出參數(shù)個(gè)數(shù)一樣多,各參數(shù)之間用“,”分開,且順序一一

25.2004170320041703解析:由于參數(shù)傳遞只是將實(shí)參的值復(fù)制到形參中,形參與實(shí)參擁有各自的存儲(chǔ)空間,因此形參的改變并不影響實(shí)參,所以并不改變s的情況。

26.2468(若字符間有空格扣1分)2468(若字符間有空格扣1分)

27.9292解析:主函數(shù)中首先定義了一個(gè)4行4列的二維數(shù)組,然后執(zhí)行一個(gè)while循環(huán),該循環(huán)中又嵌套了一個(gè)do-while循環(huán)?,F(xiàn)看while循環(huán),該循環(huán)通過i++的值來判斷是否結(jié)束循環(huán)當(dāng)i++的值為4的時(shí)候結(jié)束循環(huán),當(dāng)i=0時(shí),執(zhí)行while的循環(huán)體,顯然if語句條件不滿足不執(zhí)行,接著讓i=0,然后執(zhí)行do-while循環(huán)體,我們不難看出do-whilo循環(huán)的功能是將第i+1行的所有元素加起來,所以這時(shí)s的值為s=a[1][0]+a[1][1]+a[1][2]+a[1][3)=26,當(dāng)i=1時(shí),i+1=2,uf后面括號(hào)里的表達(dá)式的值為真執(zhí)行后面的continue語句,結(jié)束該次循環(huán);當(dāng)i=2時(shí),i加1變?yōu)?,把第3+1行的所有元素的加到s上,此時(shí)s=s+a[2][0]+a[2][1]+a[2][2]+a[2][3]=92,當(dāng)i=3時(shí),3+1=4,if后面括號(hào)里的表達(dá)式的值為真執(zhí)行后面的continue語句,結(jié)束該次循環(huán),當(dāng)i=3時(shí),if后面括號(hào)里的表達(dá)式的值為真執(zhí)行后面的continue語句,結(jié)束該次循環(huán)當(dāng)i=4時(shí)while循環(huán)結(jié)束,所以最后輸出的s的值為92。

28.3232解析:二叉樹第k層上,最多有2k-1(k≥1)個(gè)結(jié)點(diǎn)。第6層的結(jié)點(diǎn)數(shù)最多是26-1=32。注意區(qū)別“二叉樹的結(jié)點(diǎn)最多數(shù)”和“某一層的結(jié)點(diǎn)最多數(shù)”。前者的計(jì)算是深度為m的二叉樹最多有2m-1個(gè)結(jié)點(diǎn)。

29.先進(jìn)后出先進(jìn)后出解析:隊(duì)列和棧都是線性結(jié)構(gòu),但是不同之處在于隊(duì)列的操作順序是先進(jìn)先出,而棧的操作順序是先進(jìn)后出。

30.n/2n/2解析:刪除一個(gè)元素,平均移動(dòng)的元素個(gè)數(shù)為(n-1+n-2+…+0)/n=(n-1)/2;插入一個(gè)元素,平均移動(dòng)元素個(gè)數(shù)為(n+n-1+n-2+…+1)/n=(n+1)/2;所以總體平均移動(dòng)元素個(gè)數(shù)為n/2。

31.14

32.t*10或10*tt*10或10*t解析:本題要求累加一系列有規(guī)律的數(shù),從輸出結(jié)果來看,s保存的是最終結(jié)果,而s在循環(huán)體中,每次累加一個(gè)t,則說明t在5次循環(huán)中分別等于1.12、123、1234、12345;而t每次循環(huán)等于“填空內(nèi)容”加上循環(huán)變量i,又因?yàn)閕在5次循環(huán)中分別等于1、2、3、4,5,所以t每次循環(huán)要加的“填空內(nèi)容”應(yīng)分別為0、10、120,1230,12340,這一系列值正好是前一次t的值的10倍.所以“填空內(nèi)容”應(yīng)是t*10。

33.s[i]>='0'&&s[i]<='9'或isdigit(s[i])或s[i]>=48&&s[i]<=57或s[i]<='9'&&s[i]>='0'或'9'>=s[i]&&'0'<=s[i]或'0'<=s[i]&&'9'>=s[i]或s[i]<=57&&s[i]>=48或57>=s[i]&&48<=s[i]或48<=s[i]&&57>=s[i]s[i]>='0'&&s[i]<='9'或isdigit(s[i])或s[i]>=48&&s[i]<=57或s[i]<='9'&&s[i]>='0'或'9'>=s[i]&&'0'<=s[i]或'0'<=s[i]&&'9'>=s[i]或s[i]<=57&&s[i]>=48或57>=s[i]&&48<=s[i]或48<=s[i]&&57>=s[i]解析:字符數(shù)組的初始化,字符串的輸入和輸出的應(yīng)用。C語言沒有字符串變量,字符串不是存放在一個(gè)變量中而是存放在一個(gè)字符型數(shù)組中,因此為了存放字符串,常常在程序中定義字符型數(shù)組;字符串存放在字符數(shù)組中,但字符數(shù)組與字符串可以不等長,C語言規(guī)定以“\\0”字符作為字符串結(jié)束標(biāo)志。

本題中,chars[80],d[80];定義了兩個(gè)字符型數(shù)組,可以放入80個(gè)字符。gets函數(shù)是c語言提供的一個(gè)專門用于讀字符串的函數(shù),它讀入全部字符(包括空格),直到遇到回車為止。本題中,讀入字符串s后,開始比較s中的每個(gè)字符是否為數(shù)字字符,因?yàn)樽址麛?shù)據(jù)在內(nèi)存中以相應(yīng)的ASCII碼存放,所以只需比較相應(yīng)的ASCII碼值是否在48('0'的ASCII代碼)與57('9'的ASCII代碼)之間,或者直接與'0','9'進(jìn)行比較,如果是數(shù)字字符則將此字符存入d數(shù)組中,不是則繼續(xù)進(jìn)行下一字符的比較,直至s結(jié)束(即'0'的出現(xiàn))。將“'\\0'”字符作為字符串d結(jié)束標(biāo)志,最后調(diào)用puts函數(shù)輸出d。所以在空格處應(yīng)填入比較語句s[i]>='0'&&s[i]<='9'或isdigit(s[i])或s[i]>=48&&s[i]<=57或s[i]<='9'&&s[i]>='0'或'9'>=s[i]&&'0'<=s[i]或'0'<=s[i]&&'9'>=s[i]或s[i]<=57&&s[i]>=48或&&48<=s[i]或57>=s[i]。

34.66解析:strlen()函數(shù)的作用是計(jì)算字符串的長度并作為函數(shù)的返回值,這里的長度不包括串尾的結(jié)束標(biāo)志,\'\\0\'。

\'\\t\',是轉(zhuǎn)義字符,代表橫向跳若干格;\'\\\''是轉(zhuǎn)義字符,代表雙引號(hào);\'\\023\'只代表一個(gè)字符,而不管轉(zhuǎn)義字符后面有幾個(gè)字符:\'\\xAB\'是以兩位十六進(jìn)制數(shù)AB表示的ASCII碼字符,只代表一個(gè)字符:\'\\n\'是轉(zhuǎn)義字符,代表回車換行?!?/p>

5個(gè)子符常量各代表一個(gè)字符,再加上字母C,所以返回的長度是6。

35.1371513715解析:程序中n是一個(gè)有5個(gè)元素,且元素值全為0的數(shù)組。在for循環(huán)中,當(dāng)i=1時(shí),n[1]=n[0]*2+1,此時(shí)n[1]=1;i=2時(shí),n[2]=n[1]*2+1,此時(shí)n[2]=3;i=3時(shí),n[3]=n[2]*2+1,此時(shí)n[3]=7;i=4時(shí),n[4]=n[3]*2+1,此時(shí)n[4]=15,循環(huán)結(jié)束。輸出函數(shù)中%d后有空格,因此輸出結(jié)果為13715。

36.findbigfindbig解析:f是指向函數(shù)的指針變量,根據(jù)題意要求,空格處應(yīng)填入findbig。

本題目考查:C語言中指向函數(shù)的指針變量定義的一般形式為;

數(shù)據(jù)類型標(biāo)識(shí)符(*指針變量名)();

“數(shù)據(jù)類型標(biāo)識(shí)符”表示函數(shù)返回值的類型。

函數(shù)的調(diào)用可以通過函數(shù)名調(diào)用,也可以通過函數(shù)指針調(diào)用。在給函數(shù)指針變量賦值時(shí),只需給出函數(shù)名而不必給出參數(shù)。(*p)()表示定義一個(gè)指向函數(shù)的指針變量,專門用來存放函數(shù)的入口地址,可以先后指向不同的指針變量。用函數(shù)指針調(diào)用函數(shù)時(shí),只需要將(*p)代替函數(shù)名即可,在(*p)之后的括號(hào)中,根據(jù)需要寫上參數(shù)。

37.

38.77解析:在C語言中,宏定義是直接替換的,所以在劉表達(dá)式MAX(a+b,c+d)*10進(jìn)行替換后,表達(dá)式變?yōu)?a+b)>(c+d)?(a+b):(c+d)*10。在這個(gè)條件表達(dá)式中,(a+b)>(c+d)為真,所以用(a+b)的值作為整個(gè)表達(dá)式的值(否則用(c+d)*10的值作為整個(gè)表達(dá)式的值),而(a+b)的值為7。所以整個(gè)表達(dá)式的值為7。

39.對(duì)象對(duì)象解析:類描述的是具有相似性質(zhì)的一組對(duì)象。例如,每本具體的書是一個(gè)對(duì)象,而這些具體的書都有共同的性質(zhì),它們都屬于更一般的概念“書”這一類對(duì)象。一個(gè)具體對(duì)象稱為類的實(shí)例。

40.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é)束。

41.B解析:在對(duì)字符數(shù)組賦字符串值時(shí),系統(tǒng)會(huì)自動(dòng)在字符串的末尾加上—個(gè)字符串結(jié)束標(biāo)志'\\0',故指向字符數(shù)組的指針p的*(p+4)的值為'\\0'。由于'\\0'的編碼值就是0,所以本題輸出為0。

42.BB.【解析】棧是一種特殊的線性表,其插入和刪除運(yùn)算都只在線性表的一端進(jìn)行,而另一端是封閉的。進(jìn)行插入、刪除的一端稱為棧頂,封閉的一端稱為棧底。棧頂元索是最后被插入的元素,也是最后被刪除的元素。棧是按先進(jìn)后出的原則組織數(shù)據(jù)的。

【知識(shí)拓展】“棧”的形式如手槍的彈匣,最后壓入的子彈總是最先被彈出,而最先壓人的子彈最后才被彈出,也就是“先進(jìn)后出”。

43.D解析:在C語言的標(biāo)準(zhǔn)中,short占2個(gè)字節(jié)、long占4個(gè)字節(jié),但int的大小和編譯系統(tǒng)相關(guān)。例如在Turbo\u3000C\u30002.0中,int占2個(gè)字節(jié),但在VisualC++6.0(VC6可以用做C語言編譯器)中占4個(gè)字節(jié)。故本題應(yīng)該選擇D。

44.DD。【解析】軟件需求分析中需要構(gòu)造一個(gè)完全的系統(tǒng)邏輯模型,理解用戶提出的每一功能與性能要求,使用戶明確自己的任務(wù)。因此,需求分析應(yīng)確定用戶對(duì)軟件的功能需求和非功能需求。

45.B[答案]B

[考點(diǎn)]軟件工程基礎(chǔ)

[評(píng)析]

分析員對(duì)用戶的要求作出分析,并畫出數(shù)據(jù)流程圖,該圖通俗易懂,不涉及到如何在計(jì)算機(jī)上實(shí)現(xiàn),這是需求分析階段。

軟件工程中的瀑布模型:

問題定義,可行性研究,需求分析,概要設(shè)計(jì),詳細(xì)設(shè)計(jì),編碼,測(cè)試,運(yùn)行和維護(hù)

相關(guān)鏈點(diǎn):

層次圖和HIPO圖是概要設(shè)計(jì)中的工具圖;程序流程圖、N-S圖、問題分析PAD圖、設(shè)計(jì)程序語言PDL是詳細(xì)設(shè)計(jì)中的工具圖

46.A解析:在第一次執(zhí)行for循環(huán)時(shí),字符數(shù)組的首地址賦給了指針變量p,使得指針變量p指向了s的首地址,輸出p所指向的字符串;第二次執(zhí)行for循環(huán)時(shí),p值增加1,p指向了s的第二個(gè)元素輸出BCD;第三次輸出CD;第四次輸出D;直到P指向字符串的結(jié)束字符“\\0”,for循環(huán)終止抽行。

47.B解析:條件運(yùn)算符要求有3個(gè)操作對(duì)象,稱三目(元)運(yùn)算符,它是C語言中惟一的一個(gè)三目運(yùn)算符。條件表達(dá)式的一般形式為:表達(dá)式17表達(dá)式2:表達(dá)式3其求解順序是:先求解表達(dá)式1,若為非O(真)則求解表達(dá)式2,此時(shí)表達(dá)式2的值就作為整個(gè)條件表達(dá)式的值。若表達(dá)式1的值為0(假),則求解表達(dá)式3,表達(dá)式3的值就是整個(gè)條件表達(dá)式的值。并且注意++、--的用法。

48.B解析:本題主要考查結(jié)構(gòu)體和聯(lián)合內(nèi)存使用的區(qū)別:結(jié)構(gòu)中不同的成員分別使用不同的內(nèi)存空間,一個(gè)結(jié)構(gòu)所占內(nèi)存空間的大小是結(jié)構(gòu)中每個(gè)成員所占內(nèi)存空間大小的總和,結(jié)構(gòu)中每個(gè)成員相互獨(dú)立;聯(lián)合所占用的內(nèi)存空間為最長的成員所占用的空間。

49.A解析:本題考查switch語句。當(dāng)i=1時(shí),執(zhí)行case1,因?yàn)闆]有遇到break語句,所以依次往下運(yùn)行,a=a+2=2,a=a+3=5;當(dāng)i=2時(shí),執(zhí)行case2,因?yàn)闆]有遇到break語句,所以依次柱下運(yùn)行,a=a+2=7,a=a+3=10:當(dāng)i=3時(shí),執(zhí)行case3,a=a+1=11,因?yàn)闆]有遇到break語句,所以依次往下運(yùn)行,a=a+2=13,a=a+3=16;當(dāng)i=4時(shí),執(zhí)行default,a=a+3=19,結(jié)束循環(huán)。

50.B解析:考查十六進(jìn)制數(shù)的表示方法。十六進(jìn)制數(shù)以0x開頭,后面跟著若干位1f的數(shù),所以正確答案為B)。整形常量、實(shí)型常量和字符型常量的合法性判斷。

51.C解析:在C語言中,除字符數(shù)組外,一個(gè)數(shù)組不能通過數(shù)組名對(duì)數(shù)姐進(jìn)行整體引用,因此選項(xiàng)A是對(duì)的。數(shù)組名中存放的是一個(gè)地址常量,它代表整個(gè)數(shù)組的首地址,因此選項(xiàng)B是對(duì)的。C語言程序在運(yùn)行過程中,系統(tǒng)不自動(dòng)檢驗(yàn)數(shù)組元素的下標(biāo)是否越界,因此選項(xiàng)C是錯(cuò)誤的。C語官規(guī)定可以通過賦初值來定義數(shù)組的大小,這時(shí)數(shù)組說明符的一對(duì)方括號(hào)中可以不指定數(shù)組的大小,因此選項(xiàng)D也是正確的。所以,4個(gè)選項(xiàng)中選項(xiàng)C符合題意。

52.D解析:首先定義了兩個(gè)字符數(shù)組b1和b2,并用一個(gè)字符串給b1賦初值,然后定義了一個(gè)字符型指針變量pb,通過賦初值使它指向b1[3]。接著執(zhí)行while循環(huán),該循環(huán)執(zhí)行了3次:第一次判斷條件“--pb>=b1”,使pb的值為“b1+2”,執(zhí)行“strepy(b2,pB);”后,b2中的內(nèi)容為“cdefg”:第二次判斷條件“--pb>=b1”,使pb的值為“b1+1”,執(zhí)行“strcpy(b2,pB);”后b2的內(nèi)容為“bedefg”第三次判斷條件“--pb>=b1”使pb的值為“b1”,執(zhí)行“strcpy(b2,pB):”后b2的內(nèi)容為“abcdefg”。最后輸出b2數(shù)組中存放的字符串長度,顯然是7。(這里還有一個(gè)關(guān)鍵點(diǎn):就是每當(dāng)執(zhí)行—次while循環(huán)判斷條件,就執(zhí)行一次“--pb”,他使得指針pb自減1,即前移一位)所以,4個(gè)選項(xiàng)中D為所選。

53.B解析:讀懂兩個(gè)循環(huán)的關(guān)系,是解這個(gè)題目的關(guān)鍵,本題的第一個(gè)for循環(huán)的作用是實(shí)現(xiàn)對(duì)數(shù)組元素的遍歷,第二個(gè)循環(huán)的作用是排序。while(j>=0&&t>c[j]),這個(gè)語句是控制排序的關(guān)鍵語句,它即實(shí)現(xiàn)了比較兩個(gè)元素大小的作用,又實(shí)現(xiàn)了元素向后移動(dòng)的作用,不斷地把大的數(shù)據(jù)向前移動(dòng),直到找到一個(gè)比它小的,或到數(shù)據(jù)的上界為止。

54.B解析:函數(shù)ptr(*m,n)中,參數(shù)m傳遞的是一個(gè)地址,所以可以改變主函數(shù)中數(shù)組a的各元素值,函數(shù)ptr(*m,n)的功能是將數(shù)組的各元素都自加1,所以,最后數(shù)組a中的各元素為2,3,4,5,6。

55.C解析:本題考查字符串的長度。printf的功能是輸出'ATS\\n012\\1\\\\'這個(gè)字符串的長度,在字符串中“\\\\”代表一個(gè)“\\”,僅為一個(gè)字符,而“\\1”代表數(shù)字1,占一個(gè)字符,“\\n”是回車換行符,也占一個(gè)字符,加上A、T、S、0、1、2,一共是9個(gè)字符。

56.B解析:本題中,a[1][2]是二維數(shù)組中的第6個(gè)元素,對(duì)應(yīng)for循環(huán)中i的值為5,p[5]=5+1。

57.D解析:“&”是求址運(yùn)算符,“*”是指變量說明符。選項(xiàng)A)、B)應(yīng)改為scanf('%d',p);選項(xiàng)C)中指針變量p未指向一確定的內(nèi)存單元,不能為其賦值,并且這樣做很危險(xiǎn),建議不使用。

58.C解析:結(jié)構(gòu)化程序設(shè)計(jì)方法的四條原則是:1.自頂向下;2.逐步求精;3.模塊化;4.限制使用goto語句。

59.C解析:本題考核的知識(shí)點(diǎn)是實(shí)型變量中小數(shù)點(diǎn)的位數(shù)。選項(xiàng)A中0.5/100.0將保留小數(shù)點(diǎn)后六位,不滿足題目要求,故選項(xiàng)A不正確:選項(xiàng)B和選項(xiàng)D也將保留小數(shù)點(diǎn)后六位,不滿足題目要求,故選項(xiàng)B不正確:所以,4個(gè)選項(xiàng)中選項(xiàng)C符合題意。

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

61.C

62.B根據(jù)宏替換的替換規(guī)則,我們可知,

63.C

64.Afun函數(shù)將空格之前的小寫字母修改為大寫字母,所以答案選A)。

65.C解析:C語言提供了許多輸入函數(shù),其中有:getchar(輸入字符)、scanf(格式輸入)和gets\u3000(輸入字符串)等。題目要求輸入的是字符串,所以可以排除getchar,而且要求輸入的字符串中包含空格,而scanf函數(shù)默認(rèn)將輸入的空格字符作為分割符,所以空格不會(huì)被輸入,故可排除scanf。getc的作用是從文件中輸入一個(gè)字符,故也不可取。gets函數(shù)可以輸入一整行作為一個(gè)字符串,其中也包括空格字符,故應(yīng)該選擇C。

66.A本題考查數(shù)組作為函數(shù)形參與實(shí)參的使用。題目給出的程序分為兩個(gè)部分,一個(gè)是函數(shù)func,該函數(shù)有兩個(gè)形參,一個(gè)為整型的指針a,一個(gè)為整型的數(shù)組b[],這里的b只是一個(gè)形參數(shù)組名,與main函數(shù)中的數(shù)組b沒有關(guān)系。為了區(qū)別,將func函數(shù)中的數(shù)組b用b’表示。func函數(shù)實(shí)現(xiàn)的功能是將指針a所指向的整型值*a與6相加,并將結(jié)果放入數(shù)組b’[0]處。main函數(shù)首先對(duì)整型數(shù)據(jù)a和數(shù)組b進(jìn)行初始化,初始化后a的值為0,數(shù)組b中第一個(gè)值b[0]=3。初始化結(jié)束后,對(duì)函數(shù)func進(jìn)行調(diào)用。應(yīng)當(dāng)注意,調(diào)用函數(shù)func時(shí),是將數(shù)組b的數(shù)組名作為函數(shù)的實(shí)參。這樣調(diào)用的結(jié)果就是沒有把數(shù)組元素的值傳遞給形參數(shù)組,而是把實(shí)參數(shù)組的起始地址傳遞給形參,b和b’共占有同一段內(nèi)存,這樣形參數(shù)組中的值發(fā)生變化也將導(dǎo)致實(shí)參數(shù)組中的值發(fā)生變化。題目中雖然main函數(shù)初始化使得b[0]=3,但是在調(diào)用func函數(shù)的過程中,作為該函數(shù)形參的數(shù)組b’有b’[0]=*a+6=6,故main函數(shù)中的實(shí)參數(shù)組b[0]值也發(fā)生改變,變?yōu)?。

67.B

68.B

69.B\nstrlen是求字符串的長度,結(jié)果為4,sizeof是求數(shù)組的長度,而數(shù)據(jù)在定義時(shí)已給出長度為10

溫馨提示

  • 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)論