2021年河南省三門(mén)峽市全國(guó)計(jì)算機(jī)等級(jí)考試C語(yǔ)言程序設(shè)計(jì)_第1頁(yè)
2021年河南省三門(mén)峽市全國(guó)計(jì)算機(jī)等級(jí)考試C語(yǔ)言程序設(shè)計(jì)_第2頁(yè)
2021年河南省三門(mén)峽市全國(guó)計(jì)算機(jī)等級(jí)考試C語(yǔ)言程序設(shè)計(jì)_第3頁(yè)
2021年河南省三門(mén)峽市全國(guó)計(jì)算機(jī)等級(jí)考試C語(yǔ)言程序設(shè)計(jì)_第4頁(yè)
2021年河南省三門(mén)峽市全國(guó)計(jì)算機(jī)等級(jí)考試C語(yǔ)言程序設(shè)計(jì)_第5頁(yè)
已閱讀5頁(yè),還剩106頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

2021年河南省三門(mén)峽市全國(guó)計(jì)算機(jī)等級(jí)考試C語(yǔ)言程序設(shè)計(jì)學(xué)校:________班級(jí):________姓名:________考號(hào):________

一、單選題(20題)1.衡量顯示器的主要技術(shù)指標(biāo)是()

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

2.以下敘述中正確的是()A.當(dāng)對(duì)文件的讀(寫(xiě)操作完成之后,必須將它關(guān)閉,否則可能導(dǎo)致數(shù)據(jù)丟失

B.打開(kāi)一個(gè)已存在的文件并進(jìn)行了寫(xiě)操作后,原有文件中的全部數(shù)據(jù)必定被覆蓋

C.在一個(gè)程序中當(dāng)對(duì)文件進(jìn)行了寫(xiě)操作后,必須先關(guān)閉該文件然后再打開(kāi),才能讀到第1個(gè)數(shù)據(jù)

D.語(yǔ)言中的文件是流式文件,因此只能順序存取數(shù)據(jù)

3.以下程序的輸出結(jié)果是().A.A.2222B.2468C.222D.246

4.有以下程序:#includc<stdio.h>voidfun(int*p){printf("%d\n",p[5]);}main(){inta[10]={1,2,3,4,5,6,7,8,9,10};fun(&a[3]);}程序運(yùn)行后的輸出結(jié)果是()。A.5B.6C.8D.9

5.下面程序運(yùn)行的結(jié)果是______。main(){intx,y,z;x=0;y=z=-1;x+=-z---y;printf("x=%d\n",x);}

A.x=4B.x=0C.x=2D.x=3

6.軟件詳細(xì)設(shè)計(jì)的主要任務(wù)是確定每個(gè)模塊的()。

A.算法和使用的數(shù)據(jù)結(jié)構(gòu)B.外部接口C.功能D.編程

7.對(duì)一個(gè)有A,B,C,D隨機(jī)組成的序列進(jìn)行哈夫曼編碼,據(jù)統(tǒng)計(jì),各個(gè)元素的概率分別為:P(A)=0.4,P(B)=0.35,P(C)=0.2,P(D)=0.05,請(qǐng)問(wèn)該編碼的平均期望編碼長(zhǎng)度為()bits。

A.1.45B.1.74C.1.85D.1.92

8.需求分析階段的任務(wù)是確定()

A.軟件開(kāi)發(fā)方法B.軟件開(kāi)發(fā)工具C.軟件開(kāi)發(fā)費(fèi)用D.軟件系統(tǒng)功能

9.下列程序的運(yùn)行結(jié)果是()。#include<stdio.h>voidfun(int*S,int*p){staticintt=3:*p=s[t];t--;}voidmain{inta[]={2,3,4,5),k;intx;for(k=0,k<4,k++){fun(a,&x);printf("%d,",x);}}A.5,4,3,2B.2,3,4,5C.2,2,2,2D.5,5,5,5

10.程序運(yùn)行中需要從鍵盤(pán)上輸入多于一個(gè)數(shù)據(jù)時(shí),各數(shù)據(jù)之間應(yīng)使用()符號(hào)作為分隔符。

A.空格或逗號(hào)B.逗號(hào)或回車C.逗號(hào)或分號(hào)D.空格或回車

11.

12.有以下程序main(){chars[]="Yes\n/No",*ps=s;puts(ps+4);*(ps+4)=0;puts(s);}程序運(yùn)行后的輸出結(jié)果是(選項(xiàng)D中的第一行是空行)A.n/NoYes/NoB./NoYesYesC.n/No/NoD.Yes/No

13.若有下列定義,則對(duì)a數(shù)組元素地址的正確引用是()。inta[5],*p=a;

A.p+5B.*a+1C.&a+1D.&a[0]

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

A.gaeB.gaC.LanguageD.有語(yǔ)法錯(cuò)

15.設(shè)x,y,t均為int型變量,執(zhí)行語(yǔ)句:

x=y=3;

t=++x||++y;

完成后,y的值為A.A.不確定B.4C.3D.1

16.高度為h的滿二叉樹(shù)的結(jié)點(diǎn)數(shù)是________個(gè)。

A.log2h+1B.2h+1C.2h-1D.2h-1

17.

有以下程序:

main

{intnum[4][4]={1,2,3,4},{5,6,7,8},{9,10,11,

12,},{13,14,15,16}},i,j;

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

{for(j=0;j<i;j++)printf("%4c",);

for(j=________;J<4;j++)printf("%4d",num

[i][j]);

printf("\n");}}

若要按以下形式輸出數(shù)組右上半三角

1234

678

1112

16

則在程序下劃線處應(yīng)填入的是()。

A.i-1B.iC.i+1D.4一i

18.下列特征中不是面向?qū)ο蠓椒ǖ闹饕卣鞯氖?)。

A.多態(tài)性B.繼承C.封裝性D.模塊化

19.和順序棧相比,鏈棧有一個(gè)比較明顯的優(yōu)勢(shì)是()。

A.通常不會(huì)出現(xiàn)棧滿的情況B.通常不會(huì)出現(xiàn)棧空的情況C.插入操作更容易實(shí)現(xiàn)D.刪除操作更容易實(shí)現(xiàn)

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

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++;}

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

#include<stdio.h>

main()

{intx=1,y=0,a=0,b=0;

switch(x)

{case1:

switch(y)

{case0:a++;break;

case1:b++;break;

}

case2:a++;b++;break;

case3:a++;b++;

}

printf("a=%d,b=%d\n",a,b);

}

22.表示“整數(shù)x的絕對(duì)值大于5”時(shí)值為“假”的C語(yǔ)言表達(dá)式是______。

23.設(shè)有下列宏定義:

#defineA2

#defineB(A+3)

則執(zhí)行賦值語(yǔ)句“k=B*20;”(k為int型變量)后,k的值是______。

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

main()

{charc=′z′;

printf("%c",c-25);}

25.當(dāng)循環(huán)隊(duì)列非空且隊(duì)尾指針等于隊(duì)頭指針時(shí),說(shuō)明循環(huán)隊(duì)列已滿,不能進(jìn)行入隊(duì)運(yùn)算。這種情況稱為【】。

26.數(shù)據(jù)庫(kù)系統(tǒng)中實(shí)現(xiàn)各種數(shù)據(jù)管理功能的核心軟件稱為【】。

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

main()

{inty=9;

for(;y>0;y--)

if(y%3==0)

{printf("%d",--y);continue;}}

28.設(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);

}

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

例如,輸入字符串:abc123edf456gh,執(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);

}

30.若有如下程序:

main()

{intx=4,y=3,x=2,t;

t=x<y<z;

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

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

31.設(shè)有下列的程序段:

charstr[]="Hello";

char*ptr;

ptr=-str;

執(zhí)行上面的程序段后,*(ptr+5)的值為_(kāi)_____。

32.派生類對(duì)基類繼承控制訪問(wèn)有三種。派生類可以定義其基類中不具備的【】。

33.以下程序中,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(1=0;i<3;i++)printf("%4d",b[i]);

printf("\n");

}

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

{inti,j,x;

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

{x=ar[i][0];

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

【】=x;

}

}

34.設(shè)一棵完全二叉樹(shù)共有700個(gè)結(jié)點(diǎn),則在該二叉樹(shù)中有【】個(gè)葉子結(jié)點(diǎn)。

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

#defineMCRA(m)2*m

#defineMCRB(n,m)2*MCRA(n)+m

main()

{inti-2,j=3;

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

}

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

voidfun(int*n)

{

while((*n)--);

printf("%d",++(*n));

}

main()

{inta=100;

fun(&a);

}

37.以下程序通過(guò)函數(shù)指針p調(diào)用函數(shù)fun,請(qǐng)?jiān)谔羁諜趦?nèi)寫(xiě)出定義變量p的語(yǔ)句。

voidfun(int*x,int*y)

{……}

main()

{inta=10,b=20;

【】:

p=fun;p(&a,&b);

……

}

38.已有定義:double*p;,請(qǐng)寫(xiě)出完整的語(yǔ)句,利用malloc函數(shù)使p指向一個(gè)雙精度型的動(dòng)態(tài)存儲(chǔ)單元______。

39.以下定義的結(jié)構(gòu)體類型擬包含兩個(gè)成員,其中成員變量info用來(lái)存入整形數(shù)據(jù);成員變量link是指向自身結(jié)構(gòu)體的指針,請(qǐng)將定義補(bǔ)充完整。

structnode

{intinfo;

【】link;};

40.函數(shù)調(diào)用語(yǔ)句:“fgets(buf,n,fp);”從中指向的文件中讀入n個(gè)字符放到buf字符數(shù)組中,函數(shù)返回值為_(kāi)_____。

三、1.選擇題(20題)41.軟件設(shè)計(jì)中,有利于提高模塊獨(dú)立性的一個(gè)準(zhǔn)則是______。A.低內(nèi)聚低耦合B.低內(nèi)聚高耦合C.高內(nèi)聚低耦合D.高內(nèi)聚高耦合

42.有以下程序:main(){intm=12,n=34;printf("%d%d",m++,++n);printf("%d%d\n",n++,++m);}程序運(yùn)行后的輸出結(jié)果是______。

A.12353514B.12353513C.12343514D.12343513

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

A.break語(yǔ)句只能用于switch語(yǔ)句體中

B.continue語(yǔ)句的作用是使程序的執(zhí)行流程跳出包含它的所有循環(huán)

C.break語(yǔ)句只能用在循環(huán)體內(nèi)和switch語(yǔ)句體內(nèi)

D.在循環(huán)體內(nèi)使用break語(yǔ)句和continue語(yǔ)句的作用相同

44.下面關(guān)于對(duì)象概念的描述中,錯(cuò)誤的是

A.對(duì)象就是C語(yǔ)言中的結(jié)構(gòu)體變量

B.對(duì)象代表著正在創(chuàng)建的系統(tǒng)中的一個(gè)實(shí)體

C.對(duì)象是一個(gè)狀態(tài)和操作(或方法)的封裝體

D.對(duì)象之間的信息傳遞是通過(guò)消息進(jìn)行的

45.有以下程序

main()

{inta[4][4]={{l,4,3,2},{8,6,5,7},{3,7,2,5},{4,8,6,1}},i,j,k,t;

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

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

for(k=j+1;k<4;k++)

if(a[j][i]>a[k][i]){t=a[j][i];a[j][i]=a[k][i];a[k][i]=t;}/*按列排序*/

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

}

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

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

46.有定義語(yǔ)句:intb;charc[10];,則正確的輸入語(yǔ)句是

A.scanf("%d%s",&b,&c);

B.scanf("%d%s",&b,c);

C.scanf("%d%s",b,c);

D.scanf("%d%s",b,&c);

47.希爾排序?qū)儆?)。A.A.交換排序B.歸并排序C.選擇排序D.插入排序

48.若變量已正確定義并賦值,以下符合C++語(yǔ)言語(yǔ)法的表達(dá)式是()。

A.a:=b+1B.a=b=c+2C.int18.5%3D.a=a+7=c+b

49.下列對(duì)隊(duì)列的敘述正確的是A.隊(duì)列屬于非線性表B.隊(duì)列按“先進(jìn)后出”原則組織數(shù)據(jù)C.隊(duì)列在隊(duì)尾刪除數(shù)據(jù)D.隊(duì)列按“先進(jìn)先出”原則組織數(shù)據(jù)

50.以下敘述不正確的是

A.一個(gè)C源程序可由一個(gè)或多個(gè)函數(shù)組成

B.一個(gè)C源程序必須包含一個(gè)main函數(shù)

C.C程序的基本組成單位是函數(shù)

D.在C程序中,注釋說(shuō)明只能位于一條語(yǔ)句的后面

51.用C言編寫(xiě)的代碼程序()。

A.可立即執(zhí)行B.是個(gè)源程序C.經(jīng)過(guò)編譯即可執(zhí)行D.經(jīng)過(guò)編譯解釋即可執(zhí)行

52.有以下程序:#include<stdio.h>main(){inty=9;for(;y>0;y--)f(y%3==0)printf("%d",--y);}程序的運(yùn)行結(jié)果是()。

A.741B.963C.852D.875421

53.以下選項(xiàng)中,非法的字符常量是______。

A.'\t'B.'\17'C.\nD.'\xaa'

54.以下敘述中正確的是

A.用C程序?qū)崿F(xiàn)的算法必須要有輸入和輸出操作

B.用C程序?qū)崿F(xiàn)的算法可以沒(méi)有輸出但必須要有輸入

C.用C程序?qū)崿F(xiàn)的算法可以沒(méi)有輸入但必須要有輸出

D.用C程序?qū)崿F(xiàn)的算法可以既沒(méi)有輸入出沒(méi)有輸出

55.以下程序的輸出結(jié)果是()。mam(){charcf[3][5]={"AAAA","BBB","CC");printf("\"%s\"n",cf[1]);}

A.AAAAB.BBBC.BBBCCD.CC

56.對(duì)關(guān)系S和只進(jìn)行集合運(yùn)算,結(jié)果中既包含S中的所有元組也包含只中的所有元組,這樣的集合運(yùn)算稱為()。

A.并運(yùn)算B.交運(yùn)算C.差運(yùn)算D.積運(yùn)算

57.以下程序的輸出結(jié)果是______。#defineM(x,y,z)x*y+zmain(){inta=1,b=2,c=3;printf("%d\n",M(a+b,b+c,c+a));}

A.19B.17C.15D.12

58.在下列幾種排序方法中,要求內(nèi)存量最大的是______。

A.插入排序B.選擇排序C.快速排序D.歸并排序

59.下列關(guān)于棧的描述中錯(cuò)誤的是______。

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

60.下列說(shuō)法錯(cuò)誤的是()。

A.下列結(jié)構(gòu)體定義時(shí),占據(jù)了5個(gè)字節(jié)的空間structstudent{intnum;intage;charsex;}

B.結(jié)構(gòu)體的成員名可以與程序中的變量名相同

C.對(duì)結(jié)構(gòu)體中的成員可以單獨(dú)使用,它的作用相當(dāng)于普通變量

D.結(jié)構(gòu)體可以嵌套定義

四、選擇題(20題)61.

62.如果在C程序中要用到庫(kù)函數(shù)中的字符串比較函數(shù)strcmp(),那么在程序前面應(yīng)該添加的頭文件是()。

A.stdio.hB.string,hC.a(chǎn)lloc.hD.math.H

63.

64.對(duì)于一個(gè)正常運(yùn)行的C程序,以下敘述中正確的是()。

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

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

C.程序的執(zhí)行總是從main函數(shù)開(kāi)始、

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

65.

66.

有下列程序:

main

{intx=5;

do

{printf("%d",X-=4);)

while(!(--x));

}

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

A.1B.20C.1-4D.死循環(huán)

67.關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng)所管理的關(guān)系是()。A.若干個(gè)二維表B.一個(gè)DBF文件C.一個(gè)DBC文件D.若干個(gè)DBC文件

68.

69.兩個(gè)或兩個(gè)以上模塊之間聯(lián)系的緊密程度稱為()。

A.耦合性B.內(nèi)聚性C.復(fù)雜性D.數(shù)據(jù)傳輸特性

70.程序中若有如下說(shuō)明和定義語(yǔ)句

charfun(char*);

main()

{

char*s="one",a[5]={0},(*f1)()=fun,ch;

……

}

以下選項(xiàng)中對(duì)函數(shù)fun的正確調(diào)用語(yǔ)句是

A.(*f1)(A);B.*f1(*s);C.fun(&A);D.ch=*f1(s);

71.

72.若有“doublea;”,則正確的輸入語(yǔ)句是()。A.A.scanf("%1f",a);

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

C.scanf("%1f",&a);

D.scanf("1e",&a);

73.

74.

75.設(shè)有以下定義uniondata{intd1;floatd2;)demo;則下面敘述中錯(cuò)誤的是()。A.變量demo與成員d2所占的內(nèi)存字節(jié)數(shù)相同

B.變量demo中各成員的地址相同

C.變量demo和各成員的地址相同

D.若給demo.d1賦99后,demo.d2中的值是99.0

76.設(shè)有數(shù)組定義:chararray[]="Chinese";則數(shù)組array所占的空間為

A.6個(gè)字節(jié)B.7個(gè)字節(jié)C.8個(gè)字節(jié)D.9個(gè)字節(jié)

77.

78.有以下程序程序執(zhí)行后的輸出結(jié)果是()。

A.y=-IB.y=oC.y=lD.while構(gòu)成無(wú)限循環(huán).

79.若有以下程序

#include<stdio.h>

main()

{inti;

inta[]={1,3,5,7,9}

int*p=a;

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

a[i]=*p;

printf("%d,%d\n",a[2],a[4]);

}

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

A.3,9B.5,9

C.1,9D.1,1

80.

五、程序改錯(cuò)題(1題)81.下列給定程序中,函數(shù)proc()的功能是:通過(guò)某種方式實(shí)現(xiàn)兩個(gè)變量值的交換,規(guī)定不允許增加語(yǔ)句和表達(dá)式。例如變量num1中的值原為2,num2中的值原為1,程序運(yùn)行后,num1中的值為l,num2中的值為2。請(qǐng)修改程序中的錯(cuò)誤,使它能得出正確的結(jié)果。注意:不要改動(dòng)main()函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。試題程序:

六、程序設(shè)計(jì)題(1題)82.請(qǐng)編寫(xiě)函數(shù)proc(),其功能是:將所有大于1小于整數(shù)m的非素?cái)?shù)存入XX所指數(shù)組中,非素?cái)?shù)的個(gè)數(shù)通過(guò)k傳回。例如,輸入20,則應(yīng)輸出4689101214151618。注意:部分源程序給出如下。請(qǐng)勿改動(dòng)main()函數(shù)和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)proc()的花括號(hào)中填入所編寫(xiě)的若干語(yǔ)句。試題程序:

參考答案

1.B

2.AB)選項(xiàng)中打開(kāi)一個(gè)已存在的文件并進(jìn)行了寫(xiě)操作后,原有文件中的全部數(shù)據(jù)不一定被覆蓋,也可以對(duì)源文件進(jìn)行追加操作等。C)選項(xiàng)中在一個(gè)程序中當(dāng)對(duì)文件進(jìn)行了寫(xiě)操作后,不用先關(guān)閉該文件然后再打開(kāi),才能讀到第1個(gè)數(shù)據(jù),可以用fseek()函數(shù)進(jìn)行重新定位即可。D)選項(xiàng)中,C語(yǔ)言中的文件可以進(jìn)行隨機(jī)讀寫(xiě)。

3.D

4.B由題可知,fun(&a[3])是將&a[3]作為參數(shù),而fun(int*p)后執(zhí)行的語(yǔ)句為p[5],由數(shù)組a可知輸出的為6。

5.C解析:表達(dá)式“x+=-z---y”等價(jià)于“x=x+(-z-(-(-y)))=0+(1-(-1))=2”。

6.A解析:從軟件開(kāi)發(fā)的工程化觀點(diǎn)來(lái)看,在使用程序設(shè)計(jì)語(yǔ)言編制程序以前,需要對(duì)所采用算法的邏輯關(guān)系進(jìn)行分析,設(shè)計(jì)出全部必要的過(guò)程細(xì)節(jié),并給予清晰的表達(dá)。詳細(xì)設(shè)計(jì)的任務(wù)就是要決定各個(gè)模塊的實(shí)現(xiàn)算法,并精確表達(dá)出這些算法。本題正確答案為選項(xiàng)A。

7.C

8.D解析:結(jié)構(gòu)化分析方法,數(shù)據(jù)流圖,數(shù)據(jù)字典,軟件需求規(guī)格說(shuō)明書(shū)

評(píng)析,需求分析是軟件定義時(shí)期的最后一個(gè)階段,它的基本任務(wù)就是詳細(xì)調(diào)查現(xiàn)實(shí)世界要處理的對(duì)象(組織,部門(mén)、企業(yè)等),充分了解原系統(tǒng)的工作概況,明確用戶的各種需求,然后在此基礎(chǔ)上確定新系統(tǒng)的功能.選項(xiàng)A)軟件開(kāi)發(fā)方法是在總體設(shè)計(jì)階段完成的任務(wù);選項(xiàng)B)軟件開(kāi)發(fā)工具是在實(shí)現(xiàn)階段需完成的任務(wù):選項(xiàng)C)軟件開(kāi)發(fā)費(fèi)用是在可行性研究階段需完成的任務(wù)。

9.A依據(jù)fun函數(shù),可知其要實(shí)現(xiàn)的功能是將S中第(t+1)個(gè)元素以前的元素逆置賦給數(shù)組P。由于fun中函數(shù)定義了靜態(tài)變量t=3,因此,main函數(shù)中調(diào)用函數(shù)fun(a,&x)時(shí),就是要將數(shù)組a中前4個(gè)元素逆置賦給數(shù)x,最后輸出x數(shù)組。

10.D

11.D

12.B本題考核的知識(shí)點(diǎn)是puts()函數(shù)的應(yīng)用。主函數(shù)中定義了一個(gè)字符數(shù)組s并賦初值,一個(gè)字符串指針變量ps并讓它指向s。程序中p+4的地址為數(shù)組第5個(gè)元素的地址,而調(diào)用put(str_adr)函數(shù)時(shí),將從str_adr這一地址開(kāi)始,依次輸出存儲(chǔ)單元中的字符,遇到第一個(gè)“\\0”時(shí)結(jié)束輸出,并自動(dòng)輸出一個(gè)換行符。所以put(p++4)將輸出n/No,put(s)將從s第一個(gè)元素開(kāi)始輸出到第3個(gè)元素結(jié)束(因?yàn)閳?zhí)行*(p4)c0語(yǔ)句后s中的第5個(gè)元素的值為0,而s中的第4個(gè)元素為“\\”,puts將遇到“\\0”,結(jié)束輸出),即輸出yes。所以,4個(gè)選項(xiàng)中選項(xiàng)B符合題意。

13.D本題考查數(shù)組元素的地址的引用。A中,p+5引用的是a[5]的地址,而數(shù)組a只有5個(gè)元素,即a[0]、a[1]、a[2]、a[3]、a[4],所以引用錯(cuò)誤(注:數(shù)組元素下標(biāo)從0開(kāi)始);B中,*a+1指的是將數(shù)組a的第一個(gè)元素加1;選項(xiàng)C中,不存在這種引用方式;D中,&a[0]引用的是數(shù)組的首地址。

14.A考查用指針來(lái)引用字符數(shù)組元素的方法。指針pl+k相當(dāng)于指針pl向后移動(dòng)了k個(gè)字符的位置,指針p2同理。

15.Ct=++x或++y,當(dāng)++x不為0的時(shí)候,即++x為真,則不需要再繼續(xù)判斷++y,那么y就不再執(zhí)行自加,因此y=3.

16.C

17.B

\n本題中要求輸出右上半角的數(shù),對(duì)角線上的數(shù)的下標(biāo)相同,所以j=i。

\n

18.DD。【解析】面向?qū)ο笤O(shè)計(jì)方法與面向過(guò)程設(shè)計(jì)方法有本質(zhì)的不同,其基本原理是:使用現(xiàn)實(shí)世界的概念抽象地思考問(wèn)題從而自然地解決問(wèn)題。其特點(diǎn)包括:分類性、多態(tài)性、封裝性、模塊獨(dú)立性、繼承和多態(tài)性等。模塊化是結(jié)構(gòu)化程序設(shè)計(jì)的特點(diǎn)。

19.A

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

21.a=2b=1a=2,b=1解析:本題考查了switch結(jié)構(gòu)的內(nèi)容。C語(yǔ)言中,程序執(zhí)行完一個(gè)case標(biāo)號(hào)的內(nèi)容后,如果沒(méi)有break語(yǔ)句,控制結(jié)構(gòu)會(huì)轉(zhuǎn)移到下一個(gè)case繼續(xù)執(zhí)行,因?yàn)閏ase常量表達(dá)式只是起語(yǔ)句標(biāo)號(hào)作用,并不是在該處進(jìn)行條件判斷。本題程序在執(zhí)行完內(nèi)部switch結(jié)構(gòu)后,繼續(xù)執(zhí)行了外部switch結(jié)構(gòu)的case2:分支,最后a和b的值分別為2和1。

22.(x>-5)&&(x<5)(x>-5)&&(x<5)解析:本題考查基本邏輯表達(dá),“整數(shù)x的絕對(duì)值大于5”時(shí)值為“假”,即整數(shù)x的絕對(duì)值小于等于5,也就是整數(shù)x要大于等于-5且要小于等于5。這里“且”用“與(&&)”表示,所以C語(yǔ)言表達(dá)式為:(x>-5)&&(x<5)。

23.100100解析:本題考查帶參數(shù)的宏定義及相關(guān)運(yùn)算。運(yùn)算過(guò)程為:k=B*20=(A+3)*20=(2+3)*20=100。

24.aa解析:'z'的ASCII碼值為122,經(jīng)過(guò)c-25運(yùn)算后,得97,以字符形式輸出是a。

25.上溢上溢解析:入隊(duì)運(yùn)算是指在循環(huán)隊(duì)列的隊(duì)尾加入一個(gè)新元素。這個(gè)運(yùn)算有兩個(gè)基本操作:首先將隊(duì)尾指針進(jìn)一(即rear=rear+1),并當(dāng)rear=m+1時(shí)置rear=1;然后將新元素插入隊(duì)尾指針指向的位置。當(dāng)循環(huán)隊(duì)列非空(s=1)時(shí)且隊(duì)尾指針等于隊(duì)頭指針時(shí),說(shuō)明循環(huán)隊(duì)列已滿,不能進(jìn)行入隊(duì)運(yùn)算,這種情況稱為“上溢”。

26.數(shù)據(jù)庫(kù)管理系統(tǒng)數(shù)據(jù)庫(kù)管理系統(tǒng)(DBMS)

27.852852解析:循環(huán)前,變量y的值為9,其中,循環(huán)語(yǔ)句在y大于0情況下循環(huán),每次循環(huán)后y的值都減1。循環(huán)體是當(dāng)y能被3整除時(shí)輸出表達(dá)式--y,輸出的是減1后的y值。這樣,第一次循環(huán)因y為9,能被3整除,輸出8,y也變成8。又經(jīng)兩次循環(huán),y的值變?yōu)?,又讓y減1變成5,并輸出5;又經(jīng)兩次循環(huán),y的值變成3,讓y減1變成2,輸出2;再經(jīng)兩次循環(huán)后,y的值變成0,結(jié)束循環(huán),所以程序輸出852。

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

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

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

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

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

29.s[i]>='0'&&s[i]<='9'或isdigit(s[i])s[i]>='0'&&s[i]<='9'或isdigit(s[i])解析:根據(jù)題意和程序可知要填空的內(nèi)容是:將字符申s中的數(shù)字字符放入d數(shù)組的條件。

30.1

31.'\0''\\0'解析:本題涉及字符數(shù)組和指針的兩個(gè)知識(shí)點(diǎn):①在c語(yǔ)言中,字符型數(shù)組在存放字符串時(shí)會(huì)自動(dòng)在末尾加上字符串結(jié)束標(biāo)識(shí)符'\\0',所以題中數(shù)組str有6個(gè)元素。②ptr指向數(shù)組s仕的首地址,ptr+5是指向str[5],*(ptr+5)是引用str[5]的值,即'\\0'。

32.數(shù)據(jù)和操作數(shù)據(jù)和操作

33.bar[i]bar[i]解析:fun函數(shù)中的內(nèi)層for循環(huán),求出了每一行中的最大值x,內(nèi)循環(huán)結(jié)束后就需要把最大值放在存儲(chǔ)每行最大值的數(shù)組bar[i]中,因此應(yīng)填bar[i]。

34.350350解析:在任意一棵二叉樹(shù)中,度為0的結(jié)點(diǎn)(即葉子結(jié)點(diǎn))總是比度為2的結(jié)點(diǎn)多一個(gè)。在根據(jù)完全二叉樹(shù)的定義,在一棵完全二叉樹(shù)中,最多有1個(gè)度為1的結(jié)點(diǎn)。因此,設(shè)一棵完全二叉樹(shù)具有n個(gè)結(jié)點(diǎn),若n為偶數(shù),則在該二叉樹(shù)中有n/2個(gè)葉子結(jié)點(diǎn)以及n/2-1個(gè)度為2的結(jié)點(diǎn),還有1個(gè)是度為1的結(jié)點(diǎn):若n為奇數(shù),則在該二叉樹(shù)中有[n/2]+1個(gè)葉子結(jié)點(diǎn)以及[n/2]個(gè)度為2的結(jié)點(diǎn),沒(méi)有度為1的結(jié)點(diǎn)。本題中,完全二叉樹(shù)共有700個(gè)結(jié)點(diǎn),700是偶數(shù),所以,在該二叉樹(shù)中有350個(gè)葉子結(jié)點(diǎn)以及349個(gè)度為2的結(jié)點(diǎn),還有1個(gè)是度為1的結(jié)點(diǎn)。所以,本題的正確答案為350。

35.1616解析:首先將程序中宏替換掉,先把“MCRA(i)”替換成“2*i”,然后把“MCRA(j,2*i)”替換成“2*2*j+2*i”,經(jīng)計(jì)算該表達(dá)式的值為16,所以最后輸出為16。

36.00解析:在函數(shù)fun()中,while((*n)-)是先引用*n的值,再做(*n)--運(yùn)算,所以循環(huán)結(jié)束時(shí)*n的值為0,再做(*n)--運(yùn)算后,*n的值為-1;執(zhí)行++(*n)后,*n的值是0。

37.void(*p)();void(*p)();解析:要定義p為指向函數(shù)的指針變量,需寫(xiě)成void(*p)();,注意*p兩側(cè)的括弧不可以省略,表示P先與*結(jié)合,是指針變量,再與后面的()結(jié)合,表示此指針變量指向函數(shù),這個(gè)函數(shù)無(wú)返回值(同fun()函數(shù))。

38.p=(double*)malloc(sizeof(double)):或p=(double*)malloc(8);p=(double*)malloc(sizeof(double)):或p=(double*)malloc(8);解析:malloc()函數(shù)只有一個(gè)參數(shù),該參數(shù)指定了需要分配多少字節(jié)的內(nèi)存。然后將分配好的內(nèi)存塊的首地址作為void*(未知類型指針)返回.故標(biāo)準(zhǔn)的調(diào)用形式應(yīng)該寫(xiě)成:

p(double*)malloc(sizeof(double));

39.structnode*structnode*解析:本題中的結(jié)構(gòu)類型名為structnode,所以空白處應(yīng)填:structnode*。即定義一個(gè)指向自身的結(jié)構(gòu)體指針。

40.buf的首地址buf的首地址解析:考查fsets()函數(shù)的功能,f8ets()函數(shù)用來(lái)從文件中讀入字符串。調(diào)用格式為:f8ets(buf,n,fp)。此處,fp是文件指針,buf是存放字符串的起始地址,n是一個(gè)int型變量。調(diào)用函數(shù)fsets()時(shí),最多能讀入n-1個(gè)字符,系統(tǒng)自動(dòng)在最后加字符串結(jié)束標(biāo)志,并以buf作為函數(shù)值返回。

41.C耦合是對(duì)一個(gè)軟件結(jié)構(gòu)內(nèi)不同模塊之間互連程度的度量,耦合度越高,則模塊的獨(dú)立性越差。內(nèi)聚反映一個(gè)模塊內(nèi)各個(gè)元素彼此結(jié)合的緊密程度。高內(nèi)聚是指一個(gè)軟件模塊是由相關(guān)性很強(qiáng)的代碼組成,只負(fù)責(zé)一項(xiàng)任務(wù),也就是常說(shuō)的單一責(zé)任原則。低耦合是指不同軟件模塊之間通過(guò)穩(wěn)定的接口交互,而不需要關(guān)心模塊內(nèi)部的實(shí)現(xiàn)。

42.A解析:自增運(yùn)算符“++”,放在變量之前表示在使用變量之前,先使變量的值加1;放在變量之后表示在使用變量之后,再使變量的值加1。第一條輸出語(yǔ)句,先輸出m=12,m再自加1,變成13,n先自加1再輸出,輸出n=35;第二條輸出語(yǔ)句,先輸出n=35,n再自加1,變成36,m先自加1再輸出,輸出m=14。

43.C解析:只能在循環(huán)體內(nèi)和switch語(yǔ)句體內(nèi)使用break語(yǔ)句。當(dāng)break出現(xiàn)在循環(huán)體的switch語(yǔ)句體內(nèi)時(shí),其作用只是跳出該switch語(yǔ)句體,并不能中止循環(huán)體的執(zhí)行。若想強(qiáng)行中止循環(huán)體的執(zhí)行,可以在循環(huán)體中,但并不在switch語(yǔ)句中設(shè)置break語(yǔ)句,滿足某種條件,則跳出本層循環(huán)體。

44.A解析:對(duì)象是由數(shù)據(jù)和容許的操作組成的封裝體,與客觀實(shí)體有直接的對(duì)應(yīng)關(guān)系,對(duì)象之間通過(guò)傳遞消息互相聯(lián)系,從模擬現(xiàn)實(shí)世界中不同事物彼此之間的聯(lián)系,B)、C)、D)是正確的,對(duì)象的思想廣泛應(yīng)用于C++、Java等語(yǔ)言中,因此A)錯(cuò)誤。

45.A解析:本題利用多重for循環(huán)的嵌套來(lái)實(shí)現(xiàn)對(duì)二維數(shù)組元素的按列排序。利用最外層循環(huán)來(lái)實(shí)現(xiàn)對(duì)列的控制。內(nèi)部循環(huán)利用選擇法對(duì)數(shù)組元素按照從小到大的順序進(jìn)行排列,最后輸出對(duì)角線上的元素值。

46.B解析:scanf函數(shù)的第一個(gè)參數(shù)是格式控制字符串,該字符串中所出現(xiàn)的格式控制符必須與scanf函數(shù)的笫二個(gè)及其后面的參數(shù)一一對(duì)應(yīng).本題中四個(gè)選項(xiàng)的格式控制字符串都是'%d%s',其中包括兩個(gè)格式控制符%d和%s,它們分別表示輸入一個(gè)十進(jìn)制整數(shù)和輸入一個(gè)字符串,其對(duì)應(yīng)的參數(shù)應(yīng)該分別為一個(gè)整型變量的地址和一個(gè)字符型數(shù)組的首地址。變量的地址可以通過(guò)對(duì)變量做取地址(&)運(yùn)算來(lái)得到,而宇符型數(shù)組的首地址則可以直接通過(guò)數(shù)組名來(lái)得到。所以,4個(gè)選項(xiàng)中選項(xiàng)B符合題意。

47.D解析:希爾排序的基本思想是把記錄按照下標(biāo)的一定增量進(jìn)行分組,對(duì)每組記錄使用插入排序,隨著增量逐漸減小,所分成的組包含的記錄越來(lái)越多,到增量的值減小到1時(shí),整個(gè)數(shù)據(jù)合成一組,構(gòu)成一組有序記錄,故其屬于插入排序方法。

48.B解析:a=b=c+2實(shí)際上相當(dāng)于a=(b=c+2),進(jìn)而可分解為兩個(gè)表達(dá)式:b=c+2和a=b。注意:選項(xiàng)A)中包含一個(gè)不合法的運(yùn)算符“:=”;選項(xiàng)C)應(yīng)改為(int)18.5%3;選項(xiàng)D)可理解為兩個(gè)表達(dá)式:a+7=c+b和a=a+7,其中第一個(gè)是錯(cuò)的,因?yàn)镃++語(yǔ)言規(guī)定賦值號(hào)的左邊只能是單個(gè)變量,不能是表達(dá)式或常量等。注意:C++語(yǔ)言賦值語(yǔ)句的運(yùn)用,

49.D解析:本題考查數(shù)據(jù)結(jié)構(gòu)中隊(duì)列的基本知識(shí)。隊(duì)列是一種限定性的線性表,它只允許在表的一端插入元素,而在另一端刪除元素,所以隊(duì)列具有先進(jìn)先出的特性。在隊(duì)列中,允許插入元素的一端叫做隊(duì)尾,允許刪除的一端則稱為隊(duì)頭。這與日常生活中的排隊(duì)是一致的,最早進(jìn)入隊(duì)列的人最早離開(kāi),新來(lái)的人總是加入到隊(duì)尾。因此,本題中只有選項(xiàng)D的說(shuō)法是正確的。

50.D解析:本題考查C語(yǔ)言的基本基礎(chǔ)知識(shí)。在C程序中,注釋用符號(hào)“/*”開(kāi)始,而以符號(hào)“*/”結(jié)束。程序的注釋可以放在程序的任何位置。通常將注釋放在程序的開(kāi)始,以說(shuō)明本程序的功能;或者放在程序的某個(gè)語(yǔ)句后面,以對(duì)此語(yǔ)句的功能進(jìn)行描述。無(wú)論將注釋放有何處,在程序進(jìn)行編譯時(shí),編譯程序不會(huì)處理注釋的內(nèi)容;且注釋內(nèi)容也不會(huì)出現(xiàn)在目標(biāo)程序中。

51.B解析:C語(yǔ)言一種高級(jí)語(yǔ)言,C語(yǔ)言源程序經(jīng)過(guò)C語(yǔ)言編譯程序編譯之后,生成一個(gè)后綴為.obj的二進(jìn)制文件(稱為目標(biāo)文件),最后還要由稱為“連接程序”(Link)的軟件,把此.obj文件與C語(yǔ)言提供的各種庫(kù)函數(shù)連接在一起,生成一個(gè)后綴.exe的可執(zhí)行文件。顯然C語(yǔ)言不能立即執(zhí)行,故選項(xiàng)A錯(cuò)誤;根據(jù)以上定義,選項(xiàng)C和選項(xiàng)D錯(cuò)誤,所以,4個(gè)選項(xiàng)中選項(xiàng)B符合題意。

52.C解析:本題考查的重點(diǎn)是printf()函數(shù)和for循環(huán)的執(zhí)行方式。在循環(huán)體內(nèi),若y為的倍數(shù),則執(zhí)行print(“%d”,--y)語(yǔ)句。所以,當(dāng)y為9時(shí),輸出--y為8;當(dāng)y為6時(shí),輸出--y為5;當(dāng)y為3時(shí),輸出--y為2;當(dāng)y為零時(shí),for循環(huán)結(jié)束。因此,選項(xiàng)C是正確的。

53.C解析:C語(yǔ)言中字符常量是以單引號(hào)括起來(lái)的單個(gè)字符,或?yàn)橐浴癨\”與三位八進(jìn)制數(shù)值或兩位十六進(jìn)制數(shù)值代替單個(gè)字符。

54.C解析:算法是指為解決某個(gè)特定問(wèn)題而采取的確定且有限的步驟。一個(gè)算法應(yīng)當(dāng)具有以下五個(gè)特性:有窮性;確定性;可行性;有零個(gè)或多個(gè)輸入;有一個(gè)或多個(gè)輸出。所以,4個(gè)選項(xiàng)中選項(xiàng)C符合題意。

55.B解析:二維字符數(shù)組可以看成由若干個(gè)一維字符數(shù)組組成,每行是一個(gè)一維字符數(shù)組。本題首先定義了一個(gè)數(shù)組ch[3][5],并給它們按行賦初值,即相當(dāng)于給eh[0]賦值“AAAA”,給ch[1]賦值“BBB”,給eh[2]賦值“BBB”,最后輸出轉(zhuǎn)義字符“?!?、ch[1]和轉(zhuǎn)義字符“\\”,因此輸出為“BBB”。所以,4個(gè)選項(xiàng)中B為所選。

56.A解析:關(guān)系的并運(yùn)算是指,由結(jié)構(gòu)相同的兩個(gè)關(guān)系合并,形成一個(gè)新的關(guān)系,其中包含兩個(gè)關(guān)系中的所有元組。

57.D解析:C語(yǔ)言的宏定義包括不帶參數(shù)的宏定義與帶參數(shù)的宏定義。本題為帶參數(shù)的宏定義,其形式為:

#define宏名(形參表)字符串

本題的M(a+b,b+c,c+a)被字符串a(chǎn)+b*b+c+c+a代替。

58.D解析:快速排序的基本思想是,通過(guò)一趟排序?qū)⑴判蛴涗浄指畛瑟?dú)立的兩部

分,其中一部分記錄的關(guān)鍵字均比另一部分記錄的關(guān)鍵字小,再分別對(duì)這兩部分記錄繼

續(xù)進(jìn)行排序,以達(dá)到整個(gè)序列有序;插入排序的基本操作是指將無(wú)序序列中的各元素依

次插入到已經(jīng)有序的線性表中,從而得到一個(gè)新的序列;選擇排序的基本思想是:掃描整

個(gè)線性表,從中選出最小的元素,將它交換到表的最前面(這是它應(yīng)有的位置),然后對(duì)剩

下的于表采用同樣的方法,直到表空為止;歸并:排序是將兩個(gè)或兩個(gè)以上的有序表組合

成一個(gè)新的有序表。

注意:各種排序方法實(shí)現(xiàn)過(guò)程及實(shí)現(xiàn)機(jī)制。

59.B解析:棧是限定在一端進(jìn)行插入與刪除運(yùn)算的線性表。在棧中,允許插入與刪除的一端稱為棧頂,不允許插入與刪除的另一端稱為棧底,對(duì)棧的插入和刪除操作中,不需要改變棧底指針。棧是按照“先進(jìn)后出”或“后進(jìn)先出”的原則組織數(shù)據(jù)的。棧具有記憶作用。棧的存儲(chǔ)方式和線性表類似,也有兩種,即順序棧和鏈?zhǔn)綏!?/p>

60.A解析:本題主要考查定義結(jié)構(gòu)體的幾個(gè)特點(diǎn):①結(jié)構(gòu)的定義明確了結(jié)構(gòu)的組成形式,定義了一種C語(yǔ)言中沒(méi)有而用戶需要的新的數(shù)據(jù)類型。與其他的數(shù)據(jù)類型不同,在程序編譯的時(shí)候結(jié)構(gòu)的定義并不會(huì)使系統(tǒng)為該結(jié)構(gòu)分配內(nèi)存空間,只有在說(shuō)明結(jié)構(gòu)變量時(shí)才分配內(nèi)存空間;②結(jié)構(gòu)體的成員名可以與程序中的變量名相同;⑧結(jié)構(gòu)體中的成員可以單獨(dú)使用,它的作用相當(dāng)于普通變量;④結(jié)構(gòu)體可以嵌套定義。

61.D

62.B頭文件;C語(yǔ)言中要用庫(kù)函數(shù),則需在前面添加頭文件。輸入輸出函數(shù)的頭文件為”stdio.h”

63.B\r\n

64.C任何一個(gè)C語(yǔ)言程序的執(zhí)行都是從主函數(shù)main開(kāi)始,至主函數(shù)main結(jié)束。故本題答案為C選項(xiàng)。

65.B

66.C

\n本題考查do-while循環(huán)。先執(zhí)行do的內(nèi)容,也就是printf語(yǔ)句,x=x-4=1,輸出1,判斷while循環(huán)的控制條件,--x=0,則!(--x)為非零,循環(huán)條件成立,執(zhí)行下一次循環(huán);x=x-4=-4,輸出-4,判斷while循環(huán)的條件,--X=-5,則!(--x)為零,循環(huán)條件不成立,結(jié)束循環(huán)。

67.A解析:VisualFoxPro就是一種關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng),一個(gè)“表”就是一個(gè)關(guān)系,一個(gè)關(guān)系就是一個(gè)二維表。關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng)可管理若干個(gè)二維表。

68.D

69.A解析:耦合性是模塊間互相連接的緊密程度的度量,取決于各個(gè)模塊之間接口的復(fù)雜度、調(diào)用方式以及哪些信息通過(guò)接口。

[知識(shí)拓展]模塊的獨(dú)立程序是評(píng)價(jià)設(shè)計(jì)好壞的一個(gè)重要標(biāo)準(zhǔn),衡量軟件的模塊獨(dú)立性有兩個(gè)定性的度量標(biāo)準(zhǔn)。其中內(nèi)聚性是指一個(gè)模塊內(nèi)部各個(gè)元素間彼此結(jié)合的緊密程度的度最,內(nèi)聚性是從功能角度來(lái)度量模塊內(nèi)的聯(lián)系;耦合性是模塊間互相連接的緊密程度的度量,耦合性從整體的角度來(lái)度量模塊間的聯(lián)系。

70.A解析:函數(shù)fun()的參數(shù)為指針類型,返回值為字符型,而選項(xiàng)B、C的參數(shù)不是指針類型,所以不正確,選項(xiàng)D中,*fl(s)表示返回值為指針的函數(shù),所以也不正確。

71.C

72.C本題考查scanf函數(shù)的調(diào)用形式:scanf(格式字符串,輸入項(xiàng)地址表)?!案袷阶址笔且斎氲淖兞康母袷椒弧拜斎腠?xiàng)地址表”是要輸入的變量的地址。

73.B

74.C

75.D共用體變量中的所有成員共享一段公共存儲(chǔ)區(qū),所有成員的首地址相同。在每一個(gè)時(shí)刻所有的成員中只有一個(gè)有效,即只有最后一個(gè)被賦值的成員有效,其余的成員無(wú)效。

76.C本題主要考查字符數(shù)組的初始化操作。字符數(shù)組的初始化可以逐個(gè)元素賦值,也可以作為字符串賦值。

逐個(gè)元素賦值初始化形式:

char數(shù)組名[n]={字符1,字符2,……,字符n};

char數(shù)組名[]={字符1,字符2,……,字符n};

作為字符串賦值形式:

char數(shù)組名[n]='字符串';

char數(shù)組名[]='字符串';

在C語(yǔ)言中,為了方便確定字符串的長(zhǎng)度,編譯系統(tǒng)在字符串后增加了一個(gè)結(jié)束標(biāo)識(shí)’\\0’,即ASCII碼的0。因此,當(dāng)采用字符串初始化字符數(shù)組時(shí),必須為其保留一個(gè)存放結(jié)束標(biāo)識(shí)符的位置。

在本題中,用一個(gè)字符串作為數(shù)組的初值,這種方法直觀、方便,而且符合人們的習(xí)慣。數(shù)組array的長(zhǎng)度是7,但所占的空間是8,這點(diǎn)必須要注意。因?yàn)樽址A康淖詈笥上到y(tǒng)加上一個(gè)’\0’,因此,上面的初始化是chararray[]={′C′,′h′,′i′,′n′,′e′,′s′,′e′,′\0′}。

77.B

78.A當(dāng)y為。時(shí),表達(dá)式y(tǒng)一才為假,循環(huán)結(jié)束,最終y的值為一l,所以答案選擇A)。

79.C本題中,程序開(kāi)始定義了一個(gè)數(shù)組a,并對(duì)這個(gè)數(shù)組進(jìn)行賦初值。然后定義一個(gè)整型變量i和一個(gè)整型指針變量p,并使指針變量p指向數(shù)組a的首地址。然后執(zhí)行for循環(huán),循環(huán)變量i的初值為0,循環(huán)結(jié)束條件為變量i的值大于等于4,循環(huán)變量i的值每循環(huán)一次自加1,通過(guò)這些分析我們知道,循環(huán)執(zhí)行了4次結(jié)束。

第一次循環(huán)時(shí),由于*p表示數(shù)組的第一個(gè)元素值1,那么執(zhí)行a[i]=*p;語(yǔ)句,即將數(shù)組的第一個(gè)元素變?yōu)?;第二次循環(huán)時(shí),由于i為1,即將數(shù)組的第二個(gè)元素變?yōu)?,同理,第三次與第四次循環(huán)分別將數(shù)組的第三和第四個(gè)元素值變?yōu)?。

循環(huán)結(jié)束,程序執(zhí)行輸出語(yǔ)句,這時(shí)數(shù)組中所有元素的值分別為1,1,1,1,9,因此,程序最后的輸出結(jié)果是1,9,答案選C。

80.A

81.(1)錯(cuò)誤:t=x;x=y;

正確:t=*x;*x=y;

(2)錯(cuò)誤:return(y);

正確:return(t);

【解析】由函數(shù)proc()可知,變量x為整型指針,而變量t為整型變量.不能直接賦值。因此,“t=x;x=y;”應(yīng)改為“t=*x;*x=y;”。題目要求實(shí)現(xiàn)兩個(gè)數(shù)的交換,因此函數(shù)proc()應(yīng)返回變量X的值,變量x的值存放在變量t中。因此,“return(y);”應(yīng)改為“return(t);”。

82.

【解析】題目中要求將所有大于l小于整數(shù)m的非素?cái)?shù)存入xx所指數(shù)組中,因此需要判斷所有大干1小于m的整數(shù)是否為素?cái)?shù)。將所有大干1小于m的非素?cái)?shù)放入數(shù)組xx中,并將非素?cái)?shù)的個(gè)數(shù)通過(guò)形參k傳遞回主函數(shù)中。

2021年河南省三門(mén)峽市全國(guó)計(jì)算機(jī)等級(jí)考試C語(yǔ)言程序設(shè)計(jì)學(xué)校:________班級(jí):________姓名:________考號(hào):________

一、單選題(20題)1.衡量顯示器的主要技術(shù)指標(biāo)是()

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

2.以下敘述中正確的是()A.當(dāng)對(duì)文件的讀(寫(xiě)操作完成之后,必須將它關(guān)閉,否則可能導(dǎo)致數(shù)據(jù)丟失

B.打開(kāi)一個(gè)已存在的文件并進(jìn)行了寫(xiě)操作后,原有文件中的全部數(shù)據(jù)必定被覆蓋

C.在一個(gè)程序中當(dāng)對(duì)文件進(jìn)行了寫(xiě)操作后,必須先關(guān)閉該文件然后再打開(kāi),才能讀到第1個(gè)數(shù)據(jù)

D.語(yǔ)言中的文件是流式文件,因此只能順序存取數(shù)據(jù)

3.以下程序的輸出結(jié)果是().A.A.2222B.2468C.222D.246

4.有以下程序:#includc<stdio.h>voidfun(int*p){printf("%d\n",p[5]);}main(){inta[10]={1,2,3,4,5,6,7,8,9,10};fun(&a[3]);}程序運(yùn)行后的輸出結(jié)果是()。A.5B.6C.8D.9

5.下面程序運(yùn)行的結(jié)果是______。main(){intx,y,z;x=0;y=z=-1;x+=-z---y;printf("x=%d\n",x);}

A.x=4B.x=0C.x=2D.x=3

6.軟件詳細(xì)設(shè)計(jì)的主要任務(wù)是確定每個(gè)模塊的()。

A.算法和使用的數(shù)據(jù)結(jié)構(gòu)B.外部接口C.功能D.編程

7.對(duì)一個(gè)有A,B,C,D隨機(jī)組成的序列進(jìn)行哈夫曼編碼,據(jù)統(tǒng)計(jì),各個(gè)元素的概率分別為:P(A)=0.4,P(B)=0.35,P(C)=0.2,P(D)=0.05,請(qǐng)問(wèn)該編碼的平均期望編碼長(zhǎng)度為()bits。

A.1.45B.1.74C.1.85D.1.92

8.需求分析階段的任務(wù)是確定()

A.軟件開(kāi)發(fā)方法B.軟件開(kāi)發(fā)工具C.軟件開(kāi)發(fā)費(fèi)用D.軟件系統(tǒng)功能

9.下列程序的運(yùn)行結(jié)果是()。#include<stdio.h>voidfun(int*S,int*p){staticintt=3:*p=s[t];t--;}voidmain{inta[]={2,3,4,5),k;intx;for(k=0,k<4,k++){fun(a,&x);printf("%d,",x);}}A.5,4,3,2B.2,3,4,5C.2,2,2,2D.5,5,5,5

10.程序運(yùn)行中需要從鍵盤(pán)上輸入多于一個(gè)數(shù)據(jù)時(shí),各數(shù)據(jù)之間應(yīng)使用()符號(hào)作為分隔符。

A.空格或逗號(hào)B.逗號(hào)或回車C.逗號(hào)或分號(hào)D.空格或回車

11.

12.有以下程序main(){chars[]="Yes\n/No",*ps=s;puts(ps+4);*(ps+4)=0;puts(s);}程序運(yùn)行后的輸出結(jié)果是(選項(xiàng)D中的第一行是空行)A.n/NoYes/NoB./NoYesYesC.n/No/NoD.Yes/No

13.若有下列定義,則對(duì)a數(shù)組元素地址的正確引用是()。inta[5],*p=a;

A.p+5B.*a+1C.&a+1D.&a[0]

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

A.gaeB.gaC.LanguageD.有語(yǔ)法錯(cuò)

15.設(shè)x,y,t均為int型變量,執(zhí)行語(yǔ)句:

x=y=3;

t=++x||++y;

完成后,y的值為A.A.不確定B.4C.3D.1

16.高度為h的滿二叉樹(shù)的結(jié)點(diǎn)數(shù)是________個(gè)。

A.log2h+1B.2h+1C.2h-1D.2h-1

17.

有以下程序:

main

{intnum[4][4]={1,2,3,4},{5,6,7,8},{9,10,11,

12,},{13,14,15,16}},i,j;

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

{for(j=0;j<i;j++)printf("%4c",);

for(j=________;J<4;j++)printf("%4d",num

[i][j]);

printf("\n");}}

若要按以下形式輸出數(shù)組右上半三角

1234

678

1112

16

則在程序下劃線處應(yīng)填入的是()。

A.i-1B.iC.i+1D.4一i

18.下列特征中不是面向?qū)ο蠓椒ǖ闹饕卣鞯氖?)。

A.多態(tài)性B.繼承C.封裝性D.模塊化

19.和順序棧相比,鏈棧有一個(gè)比較明顯的優(yōu)勢(shì)是()。

A.通常不會(huì)出現(xiàn)棧滿的情況B.通常不會(huì)出現(xiàn)??盏那闆rC.插入操作更容易實(shí)現(xiàn)D.刪除操作更容易實(shí)現(xiàn)

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

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++;}

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

#include<stdio.h>

main()

{intx=1,y=0,a=0,b=0;

switch(x)

{case1:

switch(y)

{case0:a++;break;

case1:b++;break;

}

case2:a++;b++;break;

case3:a++;b++;

}

printf("a=%d,b=%d\n",a,b);

}

22.表示“整數(shù)x的絕對(duì)值大于5”時(shí)值為“假”的C語(yǔ)言表達(dá)式是______。

23.設(shè)有下列宏定義:

#defineA2

#defineB(A+3)

則執(zhí)行賦值語(yǔ)句“k=B*20;”(k為int型變量)后,k的值是______。

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

main()

{charc=′z′;

printf("%c",c-25);}

25.當(dāng)循環(huán)隊(duì)列非空且隊(duì)尾指針等于隊(duì)頭指針時(shí),說(shuō)明循環(huán)隊(duì)列已滿,不能進(jìn)行入隊(duì)運(yùn)算。這種情況稱為【】。

26.數(shù)據(jù)庫(kù)系統(tǒng)中實(shí)現(xiàn)各種數(shù)據(jù)管理功能的核心軟件稱為【】。

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

main()

{inty=9;

for(;y>0;y--)

if(y%3==0)

{printf("%d",--y);continue;}}

28.設(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);

}

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

例如,輸入字符串:abc123edf456gh,執(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);

}

30.若有如下程序:

main()

{intx=4,y=3,x=2,t;

t=x<y<z;

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

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

31.設(shè)有下列的程序段:

charstr[]="Hello";

char*ptr;

ptr=-str;

執(zhí)行上面的程序段后,*(ptr+5)的值為_(kāi)_____。

32.派生類對(duì)基類繼承控制訪問(wèn)有三種。派生類可以定義其基類中不具備的【】。

33.以下程序中,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(1=0;i<3;i++)printf("%4d",b[i]);

printf("\n");

}

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

{inti,j,x;

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

{x=ar[i][0];

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

【】=x;

}

}

34.設(shè)一棵完全二叉樹(shù)共有700個(gè)結(jié)點(diǎn),則在該二叉樹(shù)中有【】個(gè)葉子結(jié)點(diǎn)。

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

#defineMCRA(m)2*m

#defineMCRB(n,m)2*MCRA(n)+m

main()

{inti-2,j=3;

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

}

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

voidfun(int*n)

{

while((*n)--);

printf("%d",++(*n));

}

main()

{inta=100;

fun(&a);

}

37.以下程序通過(guò)函數(shù)指針p調(diào)用函數(shù)fun,請(qǐng)?jiān)谔羁諜趦?nèi)寫(xiě)出定義變量p的語(yǔ)句。

voidfun(int*x,int*y)

{……}

main()

{inta=10,b=20;

【】:

p=fun;p(&a,&b);

……

}

38.已有定義:double*p;,請(qǐng)寫(xiě)出完整的語(yǔ)句,利用malloc函數(shù)使p指向一個(gè)雙精度型的動(dòng)態(tài)存儲(chǔ)單元______。

39.以下定義的結(jié)構(gòu)體類型擬包含兩個(gè)成員,其中成員變量info用來(lái)存入整形數(shù)據(jù);成員變量link是指向自身結(jié)構(gòu)體的指針,請(qǐng)將定義補(bǔ)充完整。

structnode

{intinfo;

【】link;};

40.函數(shù)調(diào)用語(yǔ)句:“fgets(buf,n,fp);”從中指向的文件中讀入n個(gè)字符放到buf字符數(shù)組中,函數(shù)返回值為_(kāi)_____。

三、1.選擇題(20題)41.軟件設(shè)計(jì)中,有利于提高模塊獨(dú)立性的一個(gè)準(zhǔn)則是______。A.低內(nèi)聚低耦合B.低內(nèi)聚高耦合C.高內(nèi)聚低耦合D.高內(nèi)聚高耦合

42.有以下程序:main(){intm=12,n=34;printf("%d%d",m++,++n);printf("%d%d\n",n++,++m);}程序運(yùn)行后的輸出結(jié)果是______。

A.12353514B.12353513C.12343514D.12343513

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

A.break語(yǔ)句只能用于switch語(yǔ)句體中

B.continue語(yǔ)句的作用是使程序的執(zhí)行流程跳出包含它的所有循環(huán)

C.break語(yǔ)句只能用在循環(huán)體內(nèi)和switch語(yǔ)句體內(nèi)

D.在循環(huán)體內(nèi)使用break語(yǔ)句和continue語(yǔ)句的作用相同

44.下面關(guān)于對(duì)象概念的描述中,錯(cuò)誤的是

A.對(duì)象就是C語(yǔ)言中的結(jié)構(gòu)體變量

B.對(duì)象代表著正在創(chuàng)建的系統(tǒng)中的一個(gè)實(shí)體

C.對(duì)象是一個(gè)狀態(tài)和操作(或方法)的封裝體

D.對(duì)象之間的信息傳遞是通過(guò)消息進(jìn)行的

45.有以下程序

main()

{inta[4][4]={{l,4,3,2},{8,6,5,7},{3,7,2,5},{4,8,6,1}},i,j,k,t;

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

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

for(k=j+1;k<4;k++)

if(a[j][i]>a[k][i]){t=a[j][i];a[j][i]=a[k][i];a[k][i]=t;}/*按列排序*/

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

}

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

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

46.有定義語(yǔ)句:intb;charc[10];,則正確的輸入語(yǔ)句是

A.scanf("%d%s",&b,&c);

B.scanf("%d%s",&b,c);

C.scanf("%d%s",b,c);

D.scanf("%d%s",b,&c);

47.希爾排序?qū)儆?)。A.A.交換排序B.歸并排序C.選擇排序D.插入排序

48.若變量已正確定義并賦值,以下符合C++語(yǔ)言語(yǔ)法的表達(dá)式是()。

A.a:=b+1B.a=b=c+2C.int18.5%3D.a=a+7=c+b

49.下列對(duì)隊(duì)列的敘述正確的是A.隊(duì)列屬于非線性表B.隊(duì)列按“先進(jìn)后出”原則組織數(shù)據(jù)C.隊(duì)列在隊(duì)尾刪除數(shù)據(jù)D.隊(duì)列按“先進(jìn)先出”原則組織數(shù)據(jù)

50.以下敘述不正確的是

A.一個(gè)C源程序可由一個(gè)或多個(gè)函數(shù)組成

B.一個(gè)C源程序必須包含一個(gè)main函數(shù)

C.C程序的基本組成單位是函數(shù)

D.在C程序中,注釋說(shuō)明只能位于一條語(yǔ)句的后面

51.用C言編寫(xiě)的代碼程序()。

A.可立即執(zhí)行B.是個(gè)源程序C.經(jīng)過(guò)編譯即可執(zhí)行D.經(jīng)過(guò)編譯解釋即可執(zhí)行

52.有以下程序:#include<stdio.h>main(){inty=9;for(;y>0;y--)f(y%3==0)printf("%d",--y);}程序的運(yùn)行結(jié)果是()。

A.741B.963C.852D.875421

53.以下選項(xiàng)中,非法的字符常量是______。

A.'\t'B.'\17'C.\nD.'\xaa'

54.以下敘述中正確的是

A.用C程序?qū)崿F(xiàn)的算法必須要有輸入和輸出操作

B.用C程序?qū)崿F(xiàn)的算法可以沒(méi)有輸出但必須要有輸入

C.用C程序?qū)崿F(xiàn)的算法可以沒(méi)有輸入但必須要有輸出

D.用C程序?qū)崿F(xiàn)的算法可以既沒(méi)有輸入出沒(méi)有輸出

55.以下程序的輸出結(jié)果是()。mam(){charcf[3][5]={"AAAA","BBB","CC");printf("\"%s\"n",cf[1]);}

A.AAAAB.BBBC.BBBCCD.CC

56.對(duì)關(guān)系S和只進(jìn)行集合運(yùn)算,結(jié)果中既包含S中的所有元組也包含只中的所有元組,這樣的集合運(yùn)算稱為()。

A.并運(yùn)算B.交運(yùn)算C.差運(yùn)算D.積運(yùn)算

57.以下程序的輸出結(jié)果是______。#defineM(x,y,z)x*y+zmain(){inta=1,b=2,c=3;printf("%d\n",M(a+b,b+c,c+a));}

A.19B.17C.15D.12

58.在下列幾種排序方法中,要求內(nèi)存量最大的是______。

A.插入排序B.選擇排序C.快速排序D.歸并排序

59.下列關(guān)于棧的描述中錯(cuò)誤的是______。

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

60.下列說(shuō)法錯(cuò)誤的是()。

A.下列結(jié)構(gòu)體定義時(shí),占據(jù)了5個(gè)字節(jié)的空間structstudent{intnum;intage;charsex;}

B.結(jié)構(gòu)體的成員名可以與程序中的變量名相同

C.對(duì)結(jié)構(gòu)體中的成員可以單獨(dú)使用,它的作用相當(dāng)于普通變量

D.結(jié)構(gòu)體可以嵌套定義

四、選擇題(20題)61.

62.如果在C程序中要用到庫(kù)函數(shù)中的字符串比較函數(shù)strcmp(),那么在程序前面應(yīng)該添加的頭文件是()。

A.stdio.hB.string,hC.a(chǎn)lloc.hD.math.H

63.

64.對(duì)于一個(gè)正常運(yùn)行的C程序,以下敘述中正確的是()。

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

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

C.程序的執(zhí)行總是從main函數(shù)開(kāi)始、

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

65.

66.

有下列程序:

main

{intx=5;

do

{printf("%d",X-=4);)

while(!(--x));

}

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

A.1B.20C.1-4D.死循環(huán)

67.關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng)所管理的關(guān)系是()。A.若干個(gè)二維表B.一個(gè)DBF文件C.一個(gè)DBC文件D.若干個(gè)DBC文件

68.

69.兩個(gè)或兩個(gè)以上模塊之間聯(lián)系的緊密程度稱為()。

A.耦合性B.內(nèi)聚性C.復(fù)雜性D.數(shù)據(jù)傳輸特性

70.程序中若有如下說(shuō)明和定義語(yǔ)句

charfun(char*);

main()

{

char*s="one",a[5]={0},(*f1)()=fun,ch;

……

}

以下選項(xiàng)中對(duì)函數(shù)fun的正確調(diào)用語(yǔ)句是

A.(*f1)(A);B.*f1(*s);C.fun(&A);D.ch=*f1(s);

71.

72.若有“doublea;”,則正確的輸入語(yǔ)句是()。A.A.scanf("%1f",a);

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

C.scanf("%1f",&a);

D.scanf("1e",&a);

73.

74.

75.設(shè)有以下定義uniondata{intd1;floatd2;)demo;則下面敘述中錯(cuò)誤的是()。A.變量demo與成員d2所占的內(nèi)存字節(jié)數(shù)相同

B.變量demo中各成員的地址相同

C.變量demo和各成員的地址相同

D.若給demo.d1賦99后,demo.d2中的值是99.0

76.設(shè)有數(shù)組定義:chararray[]="Chinese";則數(shù)組array所占的空間為

A.6個(gè)字節(jié)B.7個(gè)字節(jié)C.8個(gè)字節(jié)D.9個(gè)字節(jié)

77.

78.有以下程序程序執(zhí)行后的輸出結(jié)果是()。

A.y=-IB.y=oC.y=lD.while構(gòu)成無(wú)限循環(huán).

79.若有以下程序

#include<stdio.h>

main()

{inti;

inta[]={1,3,5,7,9}

int*p=a;

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

a[i]=*p;

printf("%d,%d\n",a[2],a[4]);

}

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

A.3,9B.5,9

C.1,9D.1,1

80.

五、程序改錯(cuò)題(1題)81.下列給定程序中,函數(shù)proc()的功能是:通過(guò)某種方式實(shí)現(xiàn)兩個(gè)變量值的交換,規(guī)定不允許增加語(yǔ)句和表達(dá)式。例如變量num1中的值原為2,num2中的值原為1,程序運(yùn)行后,num1中的值為l,num2中的值為2。請(qǐng)修改程序中的錯(cuò)誤,使它能得出正確的結(jié)果。注意:不要改動(dòng)main()函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。試題程序:

六、程序設(shè)計(jì)題(1題)82.請(qǐng)編寫(xiě)函數(shù)proc(),其功能是:將所有大于1小于整數(shù)m的非素?cái)?shù)存入XX所指數(shù)組中,非素?cái)?shù)的個(gè)數(shù)通過(guò)k傳回。例如,輸入20,則應(yīng)輸出4689101214151618。注意:部分源程序給出如下。請(qǐng)勿改動(dòng)main()函數(shù)和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)proc()的花括號(hào)中填入所編寫(xiě)的若干語(yǔ)句。試題程序:

參考答案

1.B

2.AB)選項(xiàng)中打開(kāi)一個(gè)已存在的文件并進(jìn)行了寫(xiě)操作后,原有文件中的全部數(shù)據(jù)不一定被覆蓋,也可以對(duì)源文件進(jìn)行追加操作等。C)選項(xiàng)中在一個(gè)程序中當(dāng)對(duì)文件進(jìn)行了寫(xiě)操作后,不用先關(guān)閉該文件然后再打開(kāi),才能讀到第1個(gè)數(shù)據(jù),可以用fseek()函數(shù)進(jìn)行重新定位即可。D)選項(xiàng)中,C語(yǔ)言中的文件可以進(jìn)行隨機(jī)讀寫(xiě)。

3.D

4.B由題可知,fun(&a[3])是將&a[3]作為參數(shù),而fun(int*p)后執(zhí)行的語(yǔ)句為p[5],由數(shù)組a可知輸出的為6。

5.C解析:表達(dá)式“x+=-z---y”等價(jià)于“x=x+(-z-(-(-y)))=0+(1-(-1))=2”。

6.A解析:從軟件開(kāi)發(fā)的工程化觀點(diǎn)來(lái)看,在使用程序設(shè)計(jì)語(yǔ)言編制程序以前,需要對(duì)所采用算法的邏輯關(guān)系進(jìn)行分析,設(shè)計(jì)出全部必要的過(guò)程細(xì)節(jié),并給予清晰的表達(dá)。詳細(xì)設(shè)計(jì)的任務(wù)就是要決定各個(gè)模塊的實(shí)現(xiàn)算法,并精確表達(dá)出這些算法。本題正確答案為選項(xiàng)A。

7.C

8.D解析:結(jié)構(gòu)化分析方法,數(shù)據(jù)流圖,數(shù)據(jù)字典,軟件需求規(guī)格說(shuō)明書(shū)

評(píng)析,需求分析是軟件定義時(shí)期的最后一個(gè)階段,它的基本任務(wù)就是詳細(xì)調(diào)查現(xiàn)實(shí)世界要處理的對(duì)象(組織,部門(mén)、企業(yè)等),充分了解原系統(tǒng)的工作概況,明確用戶的各種需求,然后在此基礎(chǔ)上確定新系統(tǒng)的功能.選項(xiàng)A)軟件開(kāi)發(fā)方法是在總體設(shè)計(jì)階段完成的任務(wù);選項(xiàng)B)軟件開(kāi)發(fā)工具是在實(shí)現(xiàn)階段需完成的任務(wù):選項(xiàng)C)軟件開(kāi)發(fā)費(fèi)用是在可行性研究階段需完成的任務(wù)。

9.A依據(jù)fun函數(shù),可知其要實(shí)現(xiàn)的功能是將S中第(t+1)個(gè)元素以前的元素逆置賦給數(shù)組P。由于fun中函數(shù)定義了靜態(tài)變量t=3,因此,main函數(shù)中調(diào)用函數(shù)fun(a,&x)時(shí),就是要將數(shù)組a中前4個(gè)元素逆置賦給數(shù)x,最后輸出x數(shù)組。

10.D

11.D

12.B本題考核的知識(shí)點(diǎn)是puts()函數(shù)的應(yīng)用。主函數(shù)中定義了一個(gè)字符數(shù)組s并賦初值,一個(gè)字符串指針變量ps并讓它指向s。程序中p+4的地址為數(shù)組第5個(gè)元素的地址,而調(diào)用put(str_adr)函數(shù)時(shí),將從str_adr這一地址開(kāi)始,依次輸出存儲(chǔ)單元中的字符,遇到第一個(gè)“\\0”時(shí)結(jié)束輸出,并自動(dòng)輸出一個(gè)換行符。所以put(p++4)將輸出n/No,put(s)將從s第一個(gè)元素開(kāi)始輸出到第3個(gè)元素結(jié)束(因?yàn)閳?zhí)行*(p4)c0語(yǔ)句后s中的第5個(gè)元素的值為0,而s中的第4個(gè)元素為“\\”,puts將遇到“\\0”,結(jié)束輸出),即輸出yes。所以,4個(gè)選項(xiàng)中選項(xiàng)B符合題意。

13.D本題考查數(shù)組元素的地址的引用。A中,p+5引用的是a[5]的地

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(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)論