2021年江蘇省南通市全國(guó)計(jì)算機(jī)等級(jí)考試C語(yǔ)言程序設(shè)計(jì)測(cè)試卷一(含答案)_第1頁(yè)
2021年江蘇省南通市全國(guó)計(jì)算機(jī)等級(jí)考試C語(yǔ)言程序設(shè)計(jì)測(cè)試卷一(含答案)_第2頁(yè)
2021年江蘇省南通市全國(guó)計(jì)算機(jī)等級(jí)考試C語(yǔ)言程序設(shè)計(jì)測(cè)試卷一(含答案)_第3頁(yè)
2021年江蘇省南通市全國(guó)計(jì)算機(jī)等級(jí)考試C語(yǔ)言程序設(shè)計(jì)測(cè)試卷一(含答案)_第4頁(yè)
2021年江蘇省南通市全國(guó)計(jì)算機(jī)等級(jí)考試C語(yǔ)言程序設(shè)計(jì)測(cè)試卷一(含答案)_第5頁(yè)
已閱讀5頁(yè),還剩21頁(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年江蘇省南通市全國(guó)計(jì)算機(jī)等級(jí)考試C語(yǔ)言程序設(shè)計(jì)測(cè)試卷一(含答案)學(xué)校:________班級(jí):________姓名:________考號(hào):________

一、單選題(20題)1.若變量已正確定義,要求程序段完成5!的計(jì)算,不能完成此操作的程序段是______。

A.for(i=1,p=1;i<=5;i++)p*=i;

B.for(i=1;i<=5;i++){p=1;p*=i;}

C.i=1;p=1;while(i<=5){p*=i;i++;}

D.i=1;p=1;do{p*=i;i++;}while(i<=5);

2.設(shè)有定義:“inta;floatb;”,執(zhí)行“scanf("%2d%f",&a,&b);”語(yǔ)句時(shí),若從鍵盤(pán)輸入876543.0<回車(chē)>,a和b的值分別是()。

A.876和543.000000

B.87和6.000000

C.87和543.000000

D.76和543.000000

3.第

17

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

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

4.有以下程序#include<stdio.h>main(){chara[3O],b[30];scanf("%S",a);gets(b);printf("%s\n%s\\n",a,b);}程序運(yùn)行時(shí)若輸入:howareyou?Iamfine<回車(chē)>則輸出結(jié)果是()。A.howareyou?Iamfine

B.howareyou?Iamfine

C.howareyou?Iamfine

D.howareyou?

5.一個(gè)遞歸算法必須包括()。

A.遞歸部分B.終止條件和遞歸部分C.迭代部分D.終止條件和迭代部分

6.有以下程序:

#include<stdio.h>

voidfunc(intn)

{staticintnum=1);

num=num+n;printf("%d",num);

}

main()

{funo(3);func(4);printf("n");}

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

A.48B.34C.35D.45

7.

8.在循環(huán)雙鏈表的p所指的結(jié)點(diǎn)之前插入s所指結(jié)點(diǎn)的操作是()。A.p->prior->prior

B.p->prior->prior

C.s->prior->next=s

D.s->prior->prior=s

9.有以下程序:#includeMain(){charc1.c2;.c1='A'+'8'-'4';c2='A'+'8'-'5';.printf("%c,%d\n",,c1.c2);}已知字母A的ASCI碼為65.程序運(yùn)行后的輸出結(jié)果是()。A.E.68B.D.69C.E,DD.輸出無(wú)定值

10.

11.下列敘述中正確的是A.程序設(shè)計(jì)就是編制程序

B.程序的測(cè)試必須由程序員自己去完成

C.程序經(jīng)調(diào)試改錯(cuò)后還應(yīng)進(jìn)行再測(cè)試

D.程序經(jīng)調(diào)試改錯(cuò)后不必進(jìn)行再測(cè)試

12.無(wú)向圖中一個(gè)頂點(diǎn)的度是指圖中與該頂點(diǎn)相鄰接的頂點(diǎn)數(shù)。若無(wú)向圖G中的頂點(diǎn)數(shù)為n,邊數(shù)為e,則所有頂點(diǎn)的度數(shù)之和為()

A.n*eB.n+eC.2nD.2e

13.若程序中有宏定義行“#defineN100”,則下列敘述中正確的是()。

A.宏定義行中定義了標(biāo)識(shí)符N的值為整數(shù)100

B.在編譯程序?qū)語(yǔ)言源程序進(jìn)行預(yù)處理時(shí)用100替換標(biāo)識(shí)符N

C.上述宏定義行實(shí)現(xiàn)將100賦給標(biāo)識(shí)符N

D.在運(yùn)行時(shí)用100替換標(biāo)識(shí)符N

14.

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

A.c語(yǔ)言是一種結(jié)構(gòu)化程序設(shè)計(jì)語(yǔ)言

B.使用三種基本結(jié)構(gòu)構(gòu)成的程序只能解決簡(jiǎn)單問(wèn)題

C.結(jié)構(gòu)化程序設(shè)計(jì)提倡模塊化的設(shè)計(jì)方法

D.結(jié)構(gòu)化程序由順序、分支、循環(huán)三種基本結(jié)構(gòu)組成

16.使用深度優(yōu)先算法遍歷下圖,遍歷的順序?yàn)?)A.ABCDEFGB.ABDCFEGC.ABDECFGD.ABCDFEG

17.

18.設(shè)x、y和z是int型變量,且x=4,y=6,z=8,則下列表達(dá)式中值為0的是()。

A.x&&yB.x<=yC.x||++y&&y-zD.!(x<y&&!z||1

19.以下關(guān)于順序存儲(chǔ)結(jié)構(gòu)的敘述中,()是不正確的。

A.存儲(chǔ)密度大

B.邏輯上相鄰的結(jié)點(diǎn)物理上不必鄰接

C.可以通過(guò)計(jì)算機(jī)直接確定第i個(gè)結(jié)點(diǎn)的存儲(chǔ)地址

D.插入、刪除運(yùn)算操作不方便

20.下列敘述中錯(cuò)誤的是()。

A.可以給指針變量賦一個(gè)整數(shù)作為地址值

B.函數(shù)可以返回地址值

C.改變函數(shù)形參的值,不會(huì)改變對(duì)應(yīng)實(shí)參的值

D.當(dāng)程序的開(kāi)頭包含頭文件stdio.h時(shí),可以給指針變量賦NULL值

二、2.填空題(20題)21.以下程序的輸出結(jié)果是【】。

main()

{

intarr[]={30,25,20,15,10,5},*p=arr;

p++;

printf("%d\n",*(p+3));

}

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

23.冒泡排序算法在最好的情況下的元素交換次數(shù)為【】。

24.語(yǔ)句:x++;、++x;、x=x+1;、x=1+x;,執(zhí)行后都使變量x中的值增1,請(qǐng)寫(xiě)出一條同一功能的賦值語(yǔ)句(不得與列舉的相同)【】。

25.若a=10,b=20,則表達(dá)式!(a<b)的值是【】。

26.在對(duì)文件操作的過(guò)程中,若要求文件的位置指針回到文件的開(kāi)始處,應(yīng)當(dāng)調(diào)用的函數(shù)是【】。

27.面向?qū)ο蟮哪P椭校罨镜母拍钍菍?duì)象和______。

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

#include<string.h>

voidfun(char*s,intp,intk)

{inti;

for(i=p;i<k-1;i++)s[i]=s[i+2];

}

main()

{chars[]="abcdefg";

fun(s,3,strlen(s));puts(s);

}

29.在內(nèi)存中,存儲(chǔ)字符'x'要占用1個(gè)字節(jié),存儲(chǔ)字符串"x"要占用【】個(gè)字節(jié)。

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

31.下列程序段是從鍵盤(pán)輸入的字符中統(tǒng)計(jì)小寫(xiě)字母的個(gè)數(shù),用換行符結(jié)束循環(huán)。請(qǐng)?zhí)羁铡?/p>

intn=0,c;

c=getchar();

while(c!='\n')

{if(______)

n++;

}

32.以下fun函數(shù)的功能是:累加數(shù)組元素中的值,n為數(shù)組中元素的個(gè)數(shù),累加的和值放入x所指的存儲(chǔ)單元中。請(qǐng)?zhí)羁铡?/p>

fun(intb[],intn,int*x)

{intk,r=0;

for(k=0,k<n;k++)r=【】;

【】=r;

}

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

main()

{chars[]=“abcdef”;

s[3]='\0';

printf(“%s\n”,s);

}

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

main()

{inti=3,j=2;

char*a="DCBA";

printf("%c%c\n",a[i],a[j])

}

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

#defineN3

#defineM3

select(inta[N][M],int*n)

{inti,j,row=1,colum=1;

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

for(j=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,n;

max=select(a,&n);

printf(“max=%d,line=%d\n”,max,n);

}

36.以下程序的功能是根據(jù)輸入的"y"("Y")與"n"("N"),在屏幕上分別顯示出"ThisisYES."與"ThisisNO."??瞻滋幮枰钊氲膬?nèi)容是

#include<stdio.h>

voidYesNo(charch)

{switch(ch)

{case′y′:

case′Y′:printf("\nThisisYES.\n");

case′n′:

case′N(xiāo)′:printf("\nThisisNO.\n");}

main()

{charch;

printf("\nEnterachary,Yorn,N:");

ch=【】;

printf("ch;%c",ch);

YesNo(ch);}

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

intt(intx,inty,ntcp,intdp)

{cp=x*x+y*y;

dp=x*x-y*y;

}

main()

{inta=4,b=3,c=5,d=6;

t(a,b,c,d);

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

}

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

main()

{intx=0;

sub(&x,8,1);

printf(“%d\n”,x);

}

sub(int*a,intn,intk)

{if(k<=n)sub(a,n/2,2*k);

*a+=k;

}

39.函數(shù)voidfun(float*sn,intn)的功能是:根據(jù)以下公式計(jì)算S,計(jì)算結(jié)果通過(guò)形參指針sn傳回;n通過(guò)形參傳入,n的值大于等于0。請(qǐng)補(bǔ)全程序。

S=1-1/3+1/5-1/7+…+1/(2n+1)

voidfun(float*sn,intn)

{floats=0.0,w,f=-1.0;

inti=0;

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

{f=【】*f;

w=f/(2*i+1);

s+=w;

}

【】=s;

}

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

structNODE

{intk;

structNODE*link;

};

main()

{structNODEm[5],*p=m,*p=m,*q=m+4;

inti=0;

while(p!=q)

{p->k=++i;p++

q->k=i++;q--;

}

q->k=i;

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

printf("%d",m[i].k);

ptintf("\n");

}

三、1.選擇題(20題)41.下列敘述中,不屬于測(cè)試的特征的是

A.測(cè)試的挑剔性B.完全測(cè)試的不可能性C.測(cè)試的可靠性D.測(cè)試的經(jīng)濟(jì)性

42.設(shè)有如下定義:inta=4;則計(jì)算表達(dá)式“a+=a-a*a”后的值是()。

A.0B.-12C.-24D.-8

43.有以下程序:#include<stdio.h>main(){inti,j;for(i=3;i>=1;i--){for(j=1;j<=2;j++)printf("%d",i+j);printf("\n");}}程序運(yùn)行的結(jié)果是()。

A.234B.432C.23D.4534554334344523

44.在面向?qū)ο蟮姆椒ㄖ校?)描述的是具有相似屬性與操作的一組對(duì)象。

A.屬性B.事件C.方法D.類(lèi)

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

46.有以下程序main(){chara[]={'a','b','c','d','e','f','g','h','\0'};inti,j;i=sizeof(a);j=strlen(a);printf("%d,%d\n"i,j);}程序運(yùn)行后的輸出結(jié)果是

A.9,9B.8,9C.1,8D.9,8

47.一個(gè)C程序中______。

A.main函數(shù)必須出現(xiàn)在所有函數(shù)之前

B.main函數(shù)可以在任何地方出現(xiàn)

C.main函數(shù)必須出現(xiàn)在所有函數(shù)之后

D.main函數(shù)必須出現(xiàn)在固定位置

48.以下選項(xiàng)中合法的實(shí)型常數(shù)是

A.5E2.0B.E-3C.2.00E+00D.1.3E

49.以下程序運(yùn)行后,輸出結(jié)果是______。main(){char*d[]={"ab","cde"};printf("%x",d[1]);}

A.cdeB.字符c的AScII碼值C.字符c的地址D.出錯(cuò)

50.有以下程序main(){inti=0,s=0;do{if(i%2){i++;continue;}i++;s+=i;while(i<7);printf("%d\n",s);}執(zhí)行后輸出的結(jié)果是

A.16B.12C.28D.21

51.某二叉樹(shù)中有n個(gè)度為2的結(jié)點(diǎn),則該二叉樹(shù)中的葉子結(jié)點(diǎn)數(shù)為()

A.n+1B.n-1C.2nD.n/2

52.若有以下定義:structlink{intdata;structlink*next;}a,b,c,*p,*q;且變量a和b之間已有下圖所示的鏈表結(jié)構(gòu):

指針p指向變量a,指針q指向變量c,則能夠把c插入到a和b之間并形成新的鏈表的語(yǔ)句組是()。

A.a.next=c;c.next=b;

B.p.next=q;q.next=p.next;

C.p->next=&c;q->next=p->next;

D.(*p).next=q;(*q).next=&b;

53.s1和s2已正確定義并分別指向兩個(gè)字符串,若要求:當(dāng)s1所指串大于s2所指串時(shí),執(zhí)行語(yǔ)句S;則以下選項(xiàng)中正確的是

A.if(s1>s2)S;

B.if(strcmp(s1,s2))S;

C.if(strcmp(s2,s1)>0)S;

D.if(strcmp(s1,82)>0)S;

54.下列選項(xiàng)中不合法的十六進(jìn)制數(shù)是()。

A.OxffB.OXllC.OxlgD.OXabc

55.下列函數(shù)值的類(lèi)型是()。fun(doublex){floaty;y=3*x-4;returny;}

A.intB.不確定C.voidD.float

56.有以下程序:voidf(intn,int*r){intr1=0;if(n%3==0)r1=n/3;elseif(n%5==0)r1=n/5;elsef(--n,&r1);*r=r1;}main(){intm=7,r;f(m,&r);printf("%d\n",r);}程序運(yùn)行后的輸出結(jié)果是______。

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

57.以下所列的c語(yǔ)言常量中,錯(cuò)誤的是______。

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

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

59.視圖設(shè)計(jì)一般有3種設(shè)計(jì)次序,下列不屬于視圖設(shè)計(jì)的是______。

A.自頂向下B.由外向內(nèi)C.由內(nèi)向外D.自底向上

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

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

四、選擇題(20題)61.設(shè)有如下定義語(yǔ)句:intm[]={2,4,6,8,10},*k=m;以下選項(xiàng)中,表達(dá)式的值為6的是()。

A.*(k+2)B.k+2C.*k+2D.*k+=2

62.

63.有以下結(jié)構(gòu)體說(shuō)明、變量定義和賦值語(yǔ)句:

則以下scanf函數(shù)調(diào)用語(yǔ)句有錯(cuò)誤的是()。

A.scanf(”%s”,s[0].name);

B.scanf(”%d”,&s[0].a(chǎn)ge);

C.scanf(”%c”,&(ps一>sex));

D.scanf(”%d”,ps一>age):

64.

65.下列關(guān)于棧的敘述中正確的是()。

A.在棧中只能插入數(shù)據(jù),不能刪除數(shù)據(jù)

B.在棧中只能刪除數(shù)據(jù),不能插入數(shù)據(jù)

C.棧是先進(jìn)后出(FILO.的線性表

D.棧是先進(jìn)先出(FIFO.的線性表

66.下列描述錯(cuò)誤的是()。

A.繼承分為多重繼承和單繼承

B.對(duì)象之間的通信靠傳遞消息來(lái)實(shí)現(xiàn)

C.在外面看不到對(duì)象的內(nèi)部特征是基于對(duì)象的“模塊獨(dú)立性好”這個(gè)特征

D.類(lèi)是具有共同屬性、共同方法的對(duì)象的集合

67.有以下程序:

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

A.Zhao,111,85,90,Qian,f,95,92

B.Zhao,m,85,90,Zha0,m,85,90

C.Qian,f,95,92,Qian,f,95,92

D.Qian,f,95,92,Zha0,m,85,90

68.交換兩個(gè)變量的值,不允許用臨時(shí)變量,應(yīng)該使用下列()位運(yùn)算符。A.A.&B.^C.||D.~

69.

70.

71.

72.層次型、網(wǎng)狀型和關(guān)系型數(shù)據(jù)庫(kù)劃分原則是()。

A.記錄長(zhǎng)度B.文件的大小C.聯(lián)系的復(fù)雜程度D.數(shù)據(jù)之間的聯(lián)系方式

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

#include<stdio.h>

voidmain()

{inta,b,d=241;

a=d/100%9;

b=(-1)&&(-1);

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

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

74.

75.有以下程序:int*f(int*x,int*y){if(*x<*y)returnx;elsereturny;}main(){inta=7,b=8,*p,*q,*r;p=&a;q=&b;r=f(p,q);printf("%d,%d,%d\n",*p,*q,*r);}程序運(yùn)行后輸出結(jié)果是______。

A.7,8,8B.7,8,7C.8,7,7D.8,7,8

76.

77.下列選項(xiàng)中,能正確定義數(shù)組的語(yǔ)句是()。

A.

B.

C.

D.

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

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ǔ)句的作用相同

79.有以下程序程序運(yùn)行后的輸出結(jié)果是()。A.24B.28C.32D.36

80.以下選項(xiàng)中不能用作C程序合法常量的是()。

五、程序改錯(cuò)題(1題)81.下列給定程序中,函數(shù)fun()的功能是:將tt所指字符串中的小寫(xiě)字母全部改為對(duì)應(yīng)的大寫(xiě)字母,其他字符不變。例如,若輸入“Ab,cD”,則輸出“AB,CD”。請(qǐng)改正程序中的錯(cuò)誤,使它能得出正確的結(jié)果。注意:不要改動(dòng)main()函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)!試題程序:

六、程序設(shè)計(jì)題(1題)82.編寫(xiě)函數(shù)fun,其功能是:求出1~1000之間能被7或11整除,但不能同時(shí)被7和11整除的所有整數(shù),并將其放在a所指的數(shù)組中,通過(guò)n返回這些數(shù)的個(gè)數(shù)。

注意:部分原程序在文件PROGl.C中。

請(qǐng)勿改動(dòng)主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花括號(hào)中填人你編寫(xiě)的若干語(yǔ)句。

參考答案

1.B解析:選項(xiàng)B中每次執(zhí)行循環(huán)體都要執(zhí)行p=1,無(wú)法保存上次的運(yùn)算結(jié)果,執(zhí)行完while循環(huán)后p=5。

2.B本題考查scanf函數(shù),輸入格式符%2d%f表示只接收了字符,其中a輸入的值為2位的十進(jìn)制整數(shù),即87,然后將緊接著的6賦給b,因?yàn)閎的值為單精度數(shù)在,即6.000000,故選擇B選項(xiàng)。

3.B解析:條件運(yùn)算符要求有3個(gè)操作對(duì)象,稱三目(元)運(yùn)算符,它是C語(yǔ)言中惟一的一個(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á)式的值。并且注意++、--的用法。

4.B此題主要考查scanf函數(shù)和gets函數(shù)的區(qū)別。答案為B。

5.B

6.A\n第一調(diào)用func函數(shù)時(shí)輸出4,第二次調(diào)用func函數(shù)時(shí)num的值并不會(huì)釋放,仍然是上次修改后的值4,第二次調(diào)用結(jié)果為8,所以輸出結(jié)果是48。

\n

7.A

8.D

9.A[解析]本題目中字符變量c1是字符A的ASCII碼加上4.即69所對(duì)應(yīng)的字符E。字符變量c2是字符'A'的ASCII碼加上3.即68所對(duì)應(yīng)的字符D'。但是打印輸出時(shí),c1以%c的格式輸出,所以是E,c2以%d的格式輸出,所以是68.

10.B

11.C解析:軟件設(shè)計(jì)的基本目標(biāo)是用比較抽象概括的方式確定目標(biāo)系統(tǒng)如何完成預(yù)定的任務(wù),軟件沒(méi)計(jì)是確定系統(tǒng)的物理模型。軟件測(cè)試即使用人工或自動(dòng)手段來(lái)運(yùn)行或測(cè)定某個(gè)系統(tǒng)的過(guò)程,其日的在于檢驗(yàn)它是否滿足規(guī)定的需求或是弄清預(yù)期結(jié)果與實(shí)際結(jié)果之間的差別。軟件調(diào)試后要進(jìn)行回歸測(cè)試,防止引進(jìn)新的錯(cuò)誤。

12.D

13.B宏定義在編譯程序時(shí)做了一個(gè)簡(jiǎn)單的替換,所以B選項(xiàng)正確。故本題答案為B選項(xiàng)。

14.D

15.BC語(yǔ)言是一種結(jié)構(gòu)化程序設(shè)計(jì)語(yǔ)言。結(jié)構(gòu)化程序設(shè)計(jì)是以模塊化設(shè)計(jì)為中心的,有三種基本結(jié)構(gòu):順序、選擇和循環(huán)結(jié)構(gòu)。各模塊相互獨(dú)立,因而可將原來(lái)較為復(fù)雜的問(wèn)題化簡(jiǎn)為一系列簡(jiǎn)單模塊并充分利用現(xiàn)有模塊搭建新系統(tǒng),提高程序的重用性和可維護(hù)性。

16.C

17.C

18.D本題考查邏輯運(yùn)算符的使用。當(dāng)“&&”的兩個(gè)運(yùn)算對(duì)象都是邏輯1時(shí),表達(dá)式返回值才是1;“||”的兩個(gè)運(yùn)算對(duì)象至少有一個(gè)是邏輯1時(shí),表達(dá)式返回值也是1,x<y為1,!z為0,1&&0為1,0||為1,因此,!1為0。

19.B

20.A不能將一個(gè)整數(shù)直接賦給指針變量作為地址值,A選項(xiàng)錯(cuò)誤。函數(shù)的返回值可以是地址,即指針。函數(shù)調(diào)用中形參值的變化不會(huì)傳遞給實(shí)參。故本題答案為A選項(xiàng)。

21.1010解析:整型指針最初被賦的值是數(shù)組arr的頭指針,即指向數(shù)組的第一個(gè)元素30,p++后,指針指向數(shù)組的下一個(gè)元素,即*p=arr[1]=25,在執(zhí)行*(p+3)時(shí),則相當(dāng)于a[1+3],即10。因此,輸出應(yīng)為100。

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

23.0

24.x+=1;

25.00解析:已知a=10,b=20,所以邏輯表達(dá)式a<b的值為true,即為1,在這個(gè)表達(dá)式前面有一個(gè)邏輯運(yùn)算符!,表示反操作,所以整個(gè)語(yǔ)句的值應(yīng)當(dāng)為false,即為0。

26.rewind()或fseek()rewind()或fseek()

27.類(lèi)類(lèi)

28.abcfgabcfg解析:本題考查的是字符數(shù)組用作函數(shù)參數(shù)。C語(yǔ)言中數(shù)組名可以看作該數(shù)組首地址的常量指針、因此可以直接傳遞給指針類(lèi)型的參數(shù)。本題的主函數(shù)調(diào)用fun(s,3,strlen(s));后,函數(shù)中for循環(huán)就是for(i=3;i<strlen(s)-1;i++),即i從3遞增到字符數(shù)組s的長(zhǎng)度-2位置,循環(huán)中讓s[i]=s[i+2],所以函數(shù)fun()實(shí)現(xiàn)的功能簡(jiǎn)單來(lái)說(shuō)就是將字符串s下標(biāo)為p+2~k范圍的字符整體復(fù)制到字符串s下標(biāo)為p~k-2的位置上。在本題中strlen(s)返回s的長(zhǎng)度7,所以復(fù)制的字符為s[5]~s[7],即'f'、'g','\\0'三個(gè)字符,復(fù)制到s[3]~s[5],故最終輸出的字符串為abcfg(因?yàn)閟[5]為'\\0',所以后面的字符不會(huì)輸出)。

29.22解析:計(jì)算機(jī)存儲(chǔ)一個(gè)字符用1個(gè)字節(jié),存儲(chǔ)字符串時(shí),每個(gè)字符用占用1個(gè)字節(jié),另在字符串的有效字符之后存儲(chǔ)1個(gè)字符串的結(jié)束標(biāo)記符。所以存儲(chǔ)字符串“X”要占用2個(gè)字節(jié),存儲(chǔ)字符'x'只要1個(gè)字節(jié)。注意:sizeof()函數(shù)和strlen()函數(shù)的作用。

30.隊(duì)列隊(duì)列解析:隊(duì)列是一種特殊的線性表,只允許在表的一端插入元素,在表的另一端刪除元素,插入元素的一端叫做“隊(duì)尾”,刪除元素的一端叫做“隊(duì)頭”,先插入的元素先被刪除,是按先進(jìn)先出的原則組織數(shù)據(jù)的。

31.c>='a'&&c<='z'c>='a'&&c<='z'解析:小寫(xiě)字母在內(nèi)存中以ASCII的形式存入,且從a到z依次遞增,所以可以直接用c>='a'&&c<='z'判斷是不是小寫(xiě)字母;c!='\\n'判斷是用換行符結(jié)束循環(huán)。

32.r+b[k]*x

33.abcabc解析:字符串的結(jié)束標(biāo)記'\\0',當(dāng)輸出一個(gè)存放在字符數(shù)組中的字符串時(shí),只需輸出到'\\0'為止,而不管其后有什么數(shù)據(jù)。本題給字符數(shù)組s的元素s[3]賦值為'\\0',故只能輸出3個(gè)字符“abc”。

34.AB

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

36.getchargetchar解析:考查了字符可以作為整型變量來(lái)對(duì)待,參與操作。題中要求根據(jù)輸入的字符調(diào)用函數(shù)YesNo來(lái)判斷輸入的字符是y(Y)還是n(N),字符的輸入可用字符輸入函數(shù)getchar。函數(shù)YesNo用來(lái)判斷一個(gè)字符是y(Y)還是n(N),主要用了一個(gè)switch多分支結(jié)構(gòu)來(lái)比較輸入字符與字符\ue008'y',\ue009'Y'、,'n','N'是否相等來(lái)實(shí)現(xiàn)的。

37.5656解析:本題中a,b,c,d是實(shí)參,x,y,cp,dp是形參。C語(yǔ)言規(guī)定,實(shí)參變量對(duì)形參變量的數(shù)據(jù)傳遞是“值傳遞”,即單向傳遞,只由實(shí)參傳給形參,而不能由形參傳回來(lái)給實(shí)參。在內(nèi)存中,實(shí)參單元與形參單元是不同的單元。在調(diào)用函數(shù)時(shí),給形參分配存儲(chǔ)單元,并將實(shí)參對(duì)應(yīng)的值傳遞給形參,調(diào)用結(jié)束后,形參單元被釋放,實(shí)參單元仍保留并維持原值。因此,程序的輸出結(jié)果是56。

38.77解析:在主函數(shù)中定義了一個(gè)變量x并賦初值0,然后執(zhí)行函數(shù)調(diào)用語(yǔ)句,該語(yǔ)句的執(zhí)行過(guò)程為sub(&x,8,1)調(diào)用sub(&a,4,2),sub(&a,4,2)調(diào)用sub(&a,2,4),sub(&a,2,4)中由于2<4,所以if后面括號(hào)里的判斷為假,遞歸結(jié)束,執(zhí)行其后的*a+=k;語(yǔ)句此時(shí)x=x+k=0+4=4,回退到上一層調(diào)用函數(shù)sub(&x,4,2)中,執(zhí)行后面的語(yǔ)句,x=x+k=4+2=6,再回推到最上一層調(diào)用函數(shù)sub(&x,8,1)執(zhí)行后面的語(yǔ)句,x=x+k=6+1=7,所以最后輸出7。

39.-1或-1.0*sn-1或-1.0\r\n*sn解析:由于在對(duì)S求和時(shí),相鄰兩項(xiàng)的符號(hào)剛好相反,而在函數(shù)fun中沒(méi)有對(duì)數(shù)據(jù)進(jìn)行取反的操作,故第—空的目的是對(duì)數(shù)據(jù)進(jìn)行取反,以保證序列中相鄰兩項(xiàng)的符號(hào)不同。故第—個(gè)應(yīng)填-1或-1.0。在執(zhí)行完循環(huán)體后,要將求和結(jié)果通過(guò)指針參數(shù)的形式傳遞紿調(diào)用fun的函數(shù),故第二空應(yīng)填*sn。

40.1343113431解析:程序首先定義了一個(gè)結(jié)構(gòu)體NODE,在主函數(shù)中聲明了一個(gè)該結(jié)構(gòu)體的數(shù)組m[5]和兩個(gè)結(jié)構(gòu)體指針p和q,并分別初始化p指向m(指向數(shù)組的第—個(gè)元素):q指向m+4(指向數(shù)組的最后一個(gè)元素)。接下來(lái)定義并初始化一個(gè)整型變量i為0。然后用一個(gè)while循環(huán),在p和q不相等的時(shí)候執(zhí)行循環(huán)體:讓p所指結(jié)構(gòu)體的成員k等于++i的值,然后讓p指向下一個(gè)結(jié)構(gòu)體;讓q所指結(jié)構(gòu)體的成員k等于i++的值,然后讓q指向前一個(gè)結(jié)構(gòu)體。i從0開(kāi)始交替調(diào)用++i和i++,兩個(gè)表達(dá)式的值依次分別為1和1、3和3……。所以當(dāng)p==q循環(huán)結(jié)束時(shí),實(shí)際循環(huán)了兩次,p和q都指向m數(shù)組的中間位置m[2],i自增了4次,所以q->k=i;就是讓m[2]k=4。所以程序最后輸出為:13431。

41.C解析:軟件測(cè)試的目標(biāo)是在精心控制的環(huán)境下執(zhí)行程序,以發(fā)現(xiàn)程序中的錯(cuò)誤,給出程序可靠性的鑒定。它有3個(gè)方面的重要特征,即測(cè)試的挑剔性、完全測(cè)試的不可能性及測(cè)試的經(jīng)濟(jì)性。其中沒(méi)有測(cè)試的可靠性這一說(shuō)法。注意:軟件測(cè)試與軟件調(diào)試的概念,以及相應(yīng)的方法。

42.D解析:a+=a-a*a等價(jià)于a=a+a-a*a=4+4-4*4=-8。

43.D解析:本題主要考查for循環(huán)語(yǔ)句的嵌套。外層主循環(huán)執(zhí)行了3次,嵌套的循環(huán)語(yǔ)句每輪執(zhí)行2次,每次輸出i+j的值,推出嵌套循環(huán)語(yǔ)句后換行。

44.D解析:類(lèi)(calss)描述的是具有相似屬性與操作的一組對(duì)象,而一個(gè)具體對(duì)象則是其對(duì)應(yīng)類(lèi)的一個(gè)實(shí)例。

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

46.D解析:本題中首先定義了字符數(shù)組a,由于它的長(zhǎng)度省略,所以其長(zhǎng)度由初值個(gè)數(shù)確定,為9。接著將sizeof()函數(shù)返回的值賦給i(SIZeof()函數(shù)的作用是返回運(yùn)算對(duì)象占用的字符數(shù)),所以i值為9。然后將strlen()函數(shù)的返回值賦給j(strlen()函數(shù)的作用是返回字符串的長(zhǎng)度,不包括字符串的結(jié)束標(biāo)記'\\0'),所以j值為8,所以最后輸出的i,j的值為9,8。所以4個(gè)選項(xiàng)中D正確。

47.B解析:本題主要考查main函數(shù)的基本知識(shí)。main函數(shù)可以出現(xiàn)在C程序的任何地方。

48.C解析:在C語(yǔ)言中,實(shí)數(shù)有兩種表示形式:十進(jìn)制數(shù)形式與指數(shù)形式。

1)一般形式的實(shí)數(shù):小數(shù)形式的實(shí)數(shù)由整數(shù)部分、小數(shù)點(diǎn)和小數(shù)部分組成(必須要有小數(shù)點(diǎn))。

2)指數(shù)形式的小數(shù):指數(shù)形式的實(shí)數(shù)由尾數(shù)部分、e(E)和指數(shù)部分組成(字母e或E的前后必須要有數(shù)字,且其后面的指數(shù)必須為整數(shù))。選項(xiàng)A中,5E2.0中E后面的2.0不是整數(shù);選項(xiàng)B中,E前面沒(méi)有數(shù)字;選項(xiàng)D中,E后面沒(méi)有數(shù)字。

49.C解析:指針數(shù)組中的每一個(gè)元素都相當(dāng)于一個(gè)指針變量。一維指針數(shù)組的定義形式為:類(lèi)型名*數(shù)組名[數(shù)組長(zhǎng)度],在本題main函數(shù)中定義指針數(shù)組d,它有兩個(gè)元素,其初值分別是“ab”、“cde”的首地址。d[1]的值為“cde”的首地址。%x是指以十六進(jìn)制數(shù)形式輸出整數(shù)。

50.A解析:在循環(huán)體中有一條if語(yǔ)句,其后面表達(dá)式為“i%2”,當(dāng)i的值為奇數(shù)時(shí),其值為真,執(zhí)行其后面的語(yǔ)句,i的值加1,重新開(kāi)始循環(huán),當(dāng)i的值為偶數(shù)時(shí),“i%2”為假,執(zhí)行“i++;s+1”。在循環(huán)中i為偶數(shù)時(shí)的值分別為0、2、4、6,加1過(guò)后的值分別為1、3、5、7,s中存放的是它們的和,值為16.所以,A選項(xiàng)為所選。

51.A解析:本題考查數(shù)據(jù)結(jié)構(gòu)中二叉樹(shù)的性質(zhì)。二叉樹(shù)滿足如下一條性質(zhì),即:對(duì)任意一棵二叉樹(shù),若終端結(jié)點(diǎn)(即葉子結(jié)點(diǎn))數(shù)為n0,而其度數(shù)為2的結(jié)點(diǎn)數(shù)為n2,則n0=n2+1。根據(jù)這條性質(zhì)可知,若二叉樹(shù)中有n個(gè)度為2的結(jié)點(diǎn),則該二叉樹(shù)中的葉子結(jié)點(diǎn)數(shù)為n+1。因此,本題的正確答案是選項(xiàng)A。

52.D解析:本題考查鏈表的數(shù)據(jù)結(jié)構(gòu),必須利用指針變量才能實(shí)現(xiàn)。b和c是變量,選項(xiàng)A)錯(cuò)誤;p是指針變量,選項(xiàng)B)表達(dá)錯(cuò)誤;選項(xiàng)C)的賦值/頃序錯(cuò)誤。

53.D解析:在C語(yǔ)言中字符串的比較用stremp()函數(shù),該函數(shù)有兩個(gè)參數(shù),分別為被比較的兩個(gè)字符串。如果第一個(gè)字符串大于第二個(gè)字符串返回值大于0,若小于返回值小于0,相等返回值為0。字符串比較大小的標(biāo)準(zhǔn)是從第一個(gè)字符開(kāi)始依次向右比較,遇到某一個(gè)字符大,該字符所在的字符串就是較大的字符中,女B果遇到某一個(gè)字符小,該字符所在的字符串就是較小的字符串。本題中要求當(dāng)sl所指字符串大于s2所指串時(shí),執(zhí)行語(yǔ)句s,因此應(yīng)該為stremp(s1,s2)>0或者strcmp(s2,s1)<0。

54.C解析:十六進(jìn)制是以“0x”或“0X”開(kāi)頭的字符串,字符串中只能含有0~9這10個(gè)數(shù)字和a、b、c、d、e、f這6個(gè)字母。

55.A解析:本題考查默認(rèn)函數(shù)的函數(shù)值的類(lèi)型。在函數(shù)調(diào)用時(shí),盡管y的類(lèi)型是float,x的類(lèi)型是double,但是因?yàn)楹瘮?shù)定義時(shí)省去類(lèi)型說(shuō)明,系統(tǒng)默認(rèn)函數(shù)值的類(lèi)型為int型,所以計(jì)算后的y的類(lèi)型是int型。

56.A解析:題目中定義了一個(gè)指針變量r作為形參f()的函數(shù)。在主函數(shù)main()中定義了兩個(gè)變量m和r,同時(shí)給m賦初值7,調(diào)用函數(shù)f(m,&r)并執(zhí)行,函數(shù)f()通過(guò)指針r將最后的值返回。

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

58.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符合題意。

59.B解析:視圖設(shè)汁一般有3種設(shè)計(jì)次序,它們分別是自頂向下、自底向上和由內(nèi)

向外,它們又為視圖設(shè)計(jì)提供了具體的操作方法,設(shè)計(jì)者可根據(jù)實(shí)際情況靈活掌握,可以

單獨(dú)使用也可混合使用。

注意:數(shù)據(jù)庫(kù)概念設(shè)計(jì)的過(guò)程:首先選擇局部應(yīng)用,再進(jìn)行局部視圖設(shè)計(jì),最后

對(duì)局部視圖進(jìn)行集成得到概念模式。

60.B解析:條件運(yùn)算符要求有3個(gè)操作對(duì)象,稱三目(元)運(yùn)算符,它是C語(yǔ)言中惟一的一個(gè)三目運(yùn)算符。條件表達(dá)

溫馨提示

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