2021年安徽省池州市全國計(jì)算機(jī)等級考試C語言程序設(shè)計(jì)測試卷一(含答案)_第1頁
2021年安徽省池州市全國計(jì)算機(jī)等級考試C語言程序設(shè)計(jì)測試卷一(含答案)_第2頁
2021年安徽省池州市全國計(jì)算機(jī)等級考試C語言程序設(shè)計(jì)測試卷一(含答案)_第3頁
2021年安徽省池州市全國計(jì)算機(jī)等級考試C語言程序設(shè)計(jì)測試卷一(含答案)_第4頁
2021年安徽省池州市全國計(jì)算機(jī)等級考試C語言程序設(shè)計(jì)測試卷一(含答案)_第5頁
已閱讀5頁,還剩32頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

2021年安徽省池州市全國計(jì)算機(jī)等級考試C語言程序設(shè)計(jì)測試卷一(含答案)學(xué)校:________班級:________姓名:________考號:________

一、單選題(20題)1.

2.

3.以下程序輸出的結(jié)果是#include<stdio.h>#include<string.h>main(){charw[][10]={"ABCD","EFGH","IJKL","MNOP"},k;for(k=1;k<3;k++)printf("%s\n",&w[k][k]);}

A.ABCDFGHKLB.ABCEFGUMC.EFGJKOD.FGHKL

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

5.有以下程序:main(){chars[]="ABCD",*p;for(p=s+1;p<s+4;p++)printf("%s\n",p);}程序運(yùn)行后的輸出結(jié)果是()。

A.ABCDBCDCDDB.ABCDC.BCDD.BCDCDD

6.數(shù)據(jù)在計(jì)算機(jī)存儲器內(nèi)表示時(shí),如果元素在存儲器中的相對位置能反映數(shù)據(jù)元素之間的邏輯關(guān)系,則稱這種存儲結(jié)構(gòu)為()。

A.存儲結(jié)構(gòu)B.邏輯結(jié)構(gòu)C.順序存儲結(jié)構(gòu)D.鏈?zhǔn)酱鎯Y(jié)構(gòu)

7.

8.

9.有以下程序:#include<stdio.h>#include<string.h>main(){charv[4][10]={“efg”,“abcd”,“mnopq”,“hijkl”},*p[4],*t;inti,j;for(i=0;i<4;i++)p[i]=v[i];for(i=0;i<3;i++) for(j=i+1;j<4;j++) if(strcmp(p[i],p[j])>0) {t=p[i];p[i]=p[j];p[j]=t}for(i=0;i<4;i++) printf(“%s”,p[i]);}程序運(yùn)行后的輸出結(jié)果是()。

A.efgabcdhijklmnopq

B.abcdefghijklmnopq

C.mnopqhijklefgabcd

D.efgabcdmnopqhijkl

10.#define能作簡單的替代,用宏來替代計(jì)算多項(xiàng)式5*x*x+5*x+5的值的函數(shù)f,正確的宏定義語句為()。

A.#definef(x)5*x*x+5*x+5

B.#definef5*X*x+5*x+5

C.#definef(a)(5*a*a+5*a+5)

D.#define(5*x*x+5*x+5)f(x)

11.下列敘述中正確的是()。A.算法就是程序B.設(shè)計(jì)算法時(shí)只需要考慮數(shù)據(jù)結(jié)構(gòu)的設(shè)計(jì)C.設(shè)計(jì)算法時(shí)只需要考慮結(jié)果的可靠性D.以上三種說法都不對

12.if語句的基本形式是:if(表達(dá)式)語句,以下關(guān)于“表達(dá)式”值的敘述中正確的是A.A.必須是邏輯值

B.必須是整數(shù)值

C.必須是正數(shù)

D.可以是任意合法的數(shù)值

13.一個隊(duì)列的入隊(duì)序列是1,2,3,4,則隊(duì)列的輸出序列是()。

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

14.若已定義inta,則表達(dá)式a=10,a+10,a++的值是()。

A.20B.10C.21D.11

15.若有定義“inta,b,c;”以下程序段的輸出結(jié)果是()。a=11;b=3;c=0;printf(“%d\n”,c=(a/b,a%b));

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

16.以下函數(shù)不能用于向文件中寫入數(shù)據(jù)的是()。

A.hellB.fwriteC.fputcD.fprintf

17.要求通過while循環(huán)不斷讀入字符,當(dāng)讀入字母N時(shí)結(jié)束循環(huán),若變量已正確定義,下列正確的程序段是()。

A.while((ch—getchar)!=N)printf("%c",ch);

B.while(oh=getchar!=N)printf("%c",ch);

C.while(ch=getchar==N)printf("%c",ch);

D.while((ch—getchar)==N)printf("%c",ch);

18.有以下結(jié)構(gòu)體說明、變量定義和賦值語句:structSTD{charname[10];intage;charsex;}s[5],*ps;ps=&s[0];則下列scanf函數(shù)調(diào)用語句有錯誤的是()。

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

B.scanf(“%d”,&s[0].age);

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

D.scanf(“%d”,ps->age);

19.以下程序的輸出結(jié)果是()。main{charch[3][4]={"123","456","78"),*p[3];inti;for(i=0;i<3;i++)p[i]=ch[i];for(i=0;i<3;i++)printf("%s",p[i]);}A.123456780B.123456780C.12345678D.147

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

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

二、2.填空題(20題)21.由計(jì)算機(jī)、操作系統(tǒng)、DBMS、數(shù)據(jù)庫、應(yīng)用程序及用戶組成的一個整體叫做【】。

22.程序測試分為靜態(tài)分析和動態(tài)測試。其中【】是指不執(zhí)行程序,而只是對程序文本進(jìn)行檢查,通過閱讀和討論,分析和發(fā)現(xiàn)程序中的錯誤。

23.軟件危機(jī)出現(xiàn)于60年代末,為了解決軟件危機(jī),人們提出了【】的原理來設(shè)計(jì)軟件,這就是軟件工程誕生的基礎(chǔ)。

24.計(jì)算機(jī)中網(wǎng)絡(luò)通信協(xié)議IP是【】。

25.按照邏輯結(jié)構(gòu)分類,數(shù)據(jù)結(jié)構(gòu)可分為線性結(jié)構(gòu)和非線性結(jié)構(gòu),隊(duì)列屬于______。

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

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

main()

{

intp=30;

printf("%d\n",(p/3>0?p/10:p%3));

}

28.以下程序是求矩陣a,b的和,結(jié)果存入矩陣c中,并按矩陣形式輸出,請?zhí)羁铡?/p>

#include<stdio.h>

main()

{inta[3][4]={13,-2,7,5},{1,0,4,-3},{6,8,0,2}};

intb[3][4]={{-2,0,1,4},{5,-1,7,6},{6,8,0,2}};

inti,j,c[3][4];

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

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

c[i][j]=【】;

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

{for(j=0;j<4;j++)

printf("%3d",c[i][j]);

printf("\n");}}

29.測試的目的是暴露錯誤,評價(jià)程序的可靠性;而______的目的是發(fā)現(xiàn)錯誤的位置并改正錯誤。

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

#include<stdio.h>

main()

{inta,b,c;

a=3;b=4;c=5;

if(a>b)

if(a>c)

printf("%d",a);

elseprintf("%d",b);

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

}

31.對軟件是否能達(dá)到用戶所期望的要求的測試稱為【】。

32.一棵二叉樹第六層(根結(jié)點(diǎn)為第一層)的結(jié)點(diǎn)數(shù)最多為______個。

33.執(zhí)行以下程序,輸入-10的結(jié)果是【】,輸入5的結(jié)果是【】,輸入10的結(jié)果是

【】,輸入30的結(jié)果是【】。

#include<stdio.h>

main()

{

intx,c,m;

floaty;

scanf("%d",&x);

if(x<0)c=-1

elsec=x/10;

switch(c)

{

case-1;y=0;break;

case0;y=x;break;

case1;y=10;break

case2:

case3;y=-0.5*x+20;break;

default:y=-2;

}

if(y!=-2)printf("y=%f"\n",y);

elseprintf("error\n");

}

34.與表達(dá)式a+=b等價(jià)的另一書寫形式是______。

35.在長度為n的有序線性表中進(jìn)行二分查找。最壞的情況下,需要的比較次數(shù)為【】。

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

#include<string.h>

typedefstructstudent{

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(,)>0)d=b;

if(strcmp(,)>0)d=c;

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

}

37.以下程序中,fun函數(shù)的功能是求3行4列二維數(shù)組每行元素的最大值。請?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(i=0;i<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(i=0;j<n;j++)if(x<ar[i][j])x=ar[i][j];

______=X;

}

}

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

main()

{inta=1,b=2,c=3,t=0;

if(a<B){t=a;a=b;b=t;}

if(a<C){t=a;a=c;c=t;}

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

}

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

#include<stdio.h>

voidfun()

{staticinta=0;

a+=2;printf("%d",a);

}

main()

{intcc;

for(cc=1;cc<4;cc++)fun();

printf("\n");

}

40.數(shù)據(jù)模型按不同應(yīng)用層次分成3種類型,它們是概念數(shù)據(jù)模型、【】和物理數(shù)據(jù)模型。

三、1.選擇題(20題)41.以下程序運(yùn)行后,輸出結(jié)果是#definePT5.5#defineS(x)PT*x*x#include<stdio.h>main(){inta=1,b=2;printf("%4.1f\n",s(a+b));}

A.49.5B.9.5C.22D.45.0

42.以下程序的輸出結(jié)果是______。main(){inti,a[10];for(i=9;i>=0;i--)a[i]=10-i;printf("%d%d%d,",a[2],a[5],a[8]);}

A.258B.741C.852D.369

43.在下列選項(xiàng)中,沒有構(gòu)成死循環(huán)的是

A.inti=100;while(1){i=i%100+1;if(i>100)break;}

B.for(;;);

C.intk=10000;do{k++;}while(k>10000);

D.)ints=36;while(s)--s;

44.請選出以下語句的輸出結(jié)果Printf("%d\n",strlen("\t\"\065\xff\n"));

A.5B.14C.8D.輸出項(xiàng)不合法,無正常輸出

45.有以下程序:main(){intx,y,z;x=y=1;z=x++,y++,++y;printf("%d,%d,%d,%d\n",x,y,z);程序運(yùn)行后的輸出結(jié)果是()。

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

46.fgetc函數(shù)的作用是從指定文件讀入一個個字符,該文件的打開方式必須是______。

A.只讀B.追加C.讀或讀寫D.以上均正確

47.若運(yùn)行時(shí)給變量x賦值12,則以下程序的運(yùn)行結(jié)果是()。#include<stdio.h>main(){intx,y;scanf("%d",&x);y=x>12?x+10:x-12;printf("%d\n",y);}

A.0B.22C.12D.10

48.下列程序的輸出結(jié)果是______。main(){chara[10]={9,8,7,6,5,4,3,2,1,0},*p=a+5;printf("%d",*--p);}

A.非法B.a[4]的地址C.5D.3

49.有以下程序

intadd(inta,intb){return(a+b);}

main()

{intk,(*f)(),a=5,b=10;

f=add;

}

則以下函數(shù)調(diào)用語句錯誤的是A.k=(*f)(a,b);B.k=add(a,b);C.k=*f(a,b);D.k=f(a,b);

50.有以下程序:voidf(intv,intw){intt;t=v;V=W;W=t;}main(){intx=1,y=3,z=2;if(x>y)f(x,y);elseif(y>z)f(y,z);elsef(x,z);printf("%d,%d<%d\n",x,y,Z);}執(zhí)行后輸出結(jié)果是()。

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

51.已知inta;floatb;所用的scanf調(diào)用語句格式為:scanf("a//%d,b=%f",&a,&b);為了將數(shù)據(jù)3和25.08分別賦給x和y,正確的輸入應(yīng)當(dāng)是

A.3,25.08<Enter>

B.a=3,b=25.08<Enter>

C.a//3.b=25.08<Enter>

D.a//3<Enter>b=25.08<Enter>

52.待排序的關(guān)鍵碼序列為(33,18,9,25,67,82,53,95,12,70),要按關(guān)鍵碼值遞增的順序排序,采取以第一個關(guān)鍵碼為基準(zhǔn)元素的快速排序法,第一趟排序后關(guān)鍵碼33被放到第()個位置。

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

53.若有下面的說明和定義,則sizeof(structaa)的值是______。structaa{intr1;doubler2;floatr3;unionuu{charu1[5];longu2[2]}ua;}mya;

A.30B.29C.24D.22

54.若有定義floata=25,b,*p=&b;,則下列對賦值語句*p=a;和p=&a;的正確解釋為()。

A.兩個語句都是將變量a的值賦予變量p

B.*p=a是使p指向變量a,而p=&a是將變量a的值賦予變量指針p

C.*p=a是將變量a的值賦予變量b,而p=&a是使p指向變量a

D.兩個語句都是使p指向變量a

55.下面程序的輸出結(jié)果是main(){charstr[10],c='a';inti=0;for(;i<5;i++)str[i]=c++;printf("%s",str);}

A.abcdeB.aC.不確定D.bcdef

56.表達(dá)式0x130x17的值是()。

A.0x04B.0x13C.0xE8D.0x17

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

A.在面向?qū)ο蟮某绦蛟O(shè)計(jì)中,各個對象之間具有密切的聯(lián)系

B.在面向?qū)ο蟮某绦蛟O(shè)計(jì)中,各個對象都是公用的

C.在面向?qū)ο蟮某绦蛟O(shè)計(jì)中,各個對象之間相對獨(dú)立,相互依賴性小

D.上述三種說法都不對

58.下面程序:voidfunc(int*a,intb[]){b[0]=*a+6;)main(){inta,b[5];a=0;b[0]=3;func(&a,b);printf("%d\n",b[0]);}則程序運(yùn)行后的輸出結(jié)果是()。

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

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

main()

{inta,i;a=0;

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

{switch(i)

{case0:

case3:a+=2;

case1:

case2:a+=3;

default:a+=5;}

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

A.31B.13C.10D.20

60.以下關(guān)于字符串的敘述中正確的是()。

A.C語言中有字符串類型的常量和變量

B.兩個字符串中的字符個數(shù)相同時(shí)才能進(jìn)行串符串大小的比較

C.可以用關(guān)系運(yùn)算符對字符串的大小進(jìn)行比較

D.空串一定比空格打頭的字符串小

四、選擇題(20題)61.若有定義語句:inta[2][3],*p[3];,則以下語句中正確的是()。

A.p=a;B.p[0]=a;C.p[o]=&a[1][2];D.p[1]=&a;

62.有以下程序:

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

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

63.

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

#include<stdio.h>

main

{inta[2][3]={{1,2,3),{4,5,6}},(*p)[3],i;

p=a;

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

{if(i<2)

p[1][i]=p[1][i]一1;

else

p[1][i]=1;)

printf("%d\n",a[0][1]+a[1][1]+a[1][2]);}

A.8B.7C.12D.9

64.以下敘述中錯誤的是()。。

A.C程序必須由一個或一個以上的函數(shù)組成

B.函數(shù)調(diào)用可以作為一個獨(dú)立的語句存在

C.NN數(shù)NNN值,必須通過return語句返回

D.函數(shù)形參的值也可以傳回給對應(yīng)的實(shí)參

65.有如下程序

#include"stdio.h"

main()

{inta,b,m;

for(a=5;a>=1;a--)

{m=0;

for(b=a;b<=5;b++)

m=m+a*b;

}

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

}

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

A.30B.15

C.20D.10

66.若有說明,double*m,n;則能通過sCanf語句正確給輸入項(xiàng)讀人數(shù)據(jù)的程序段是()。

A.*m=&n;scanf("%lf",m);

B.m=(double*)malloc(10);scanf("%f",m);

C.m=&n;scanf("%lf",n);

D.m=&n;scanf("%le",m);

67.

68.數(shù)據(jù)流程圖(DFD)是()。

A.軟件概要設(shè)計(jì)的工具B.軟件詳細(xì)設(shè)計(jì)的工具C.結(jié)構(gòu)化方法的需求分析工具D.面向?qū)ο蠓椒ǖ男枨蠓治龉ぞ?/p>

69.

70.以下敘述中正確的是()。

A.在C語言程序中,main函數(shù)必須放在其他函數(shù)的最前面

B.每個后綴為C的C語言源程序都可以單獨(dú)進(jìn)行編譯

C.在C語言程序中,只有main函數(shù)才可單獨(dú)進(jìn)行編譯

D.每個后綴為.C的C語言源程序都應(yīng)該包含一個main函數(shù)

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

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

72.

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

A.21B.11C.20D.10

74.

75.當(dāng)執(zhí)行下面的程序時(shí),如果輸入ABC,則輸出結(jié)果是()。

#include<stdio.h>

#include<string.h>

voidmain()

{charss[10]="12345",

gets(ss);strcat(ss,"6789");

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

}

A.ABC6789B.ABC67C.12345ABC6D.ABC456789

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

A.678910

B.13579

C.12345

D.62345

77.有以下程序:

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

A.5B.24C.32D.40

78.關(guān)于以下程序段的描述,正確的是

x=-1;

do

{x=x*x-1;}while(!x);

A.是死循環(huán)B.循環(huán)執(zhí)行兩次

C.循環(huán)執(zhí)行一次D.有語法錯誤

79.

80.在關(guān)系數(shù)據(jù)庫中,用來表示實(shí)體之間聯(lián)系的是()。

A.二維表B.E—R圖C.元組D.文件

五、程序改錯題(1題)81.下列給定程序中,函數(shù)fun的功能是:從整數(shù)l0-55,查找能被3整除且有一位上的數(shù)值是5的數(shù),把這些:故放在b所指的數(shù)組中,這些數(shù)的個數(shù)作為函數(shù)值返回。規(guī)定函數(shù)中al放位數(shù),a2放十位數(shù)。請改正程序中的錯誤,使它能得出正確的結(jié)果。注意:不要改動main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)!試題程序:

六、程序設(shè)計(jì)題(1題)82.編寫函數(shù)fun,其功能是:實(shí)現(xiàn)兩個字符串的連接(不要使用庫函數(shù)strcat),即把p2所指的字符串連接到

pl所指的字符串的后面。

例如,分別輸入下面兩個字符串:

程序輸出:

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

請勿改動主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花括號中填入你編寫的若干語句。

參考答案

1.D

2.C

3.D當(dāng)k=1時(shí),引用的是二維數(shù)組元素w[1][1],值為字符串“FGH”;當(dāng)k=2時(shí),引用的是數(shù)組元素w[2][2],即字符串“KL”;當(dāng)k=3時(shí),結(jié)束程序的執(zhí)行。注意:字符串?dāng)?shù)組的定義。

4.C

5.D解析:本題中首先定義一個字符數(shù)組s,并將字符串'ABCD'存到數(shù)組s中,定義了一個字符指針變量p,在接下來for循環(huán)中,循環(huán)體共執(zhí)行了三次,第一次p指向s[1],所以此時(shí)輸出的p所指字符串的值為BCD,第二次循環(huán)p指向s[2],此時(shí)輸出p所指的字符串的值為CD,第三次循環(huán)p指向s[3],此時(shí)輸出的p所指的字符串的值為D。所以,4個選項(xiàng)中選項(xiàng)D符合題意。

6.C

7.C

8.D

9.Bmain函數(shù)中定義一個二維數(shù)組v,另外還定義一個指針數(shù)組p。通過for循環(huán),將v的各個行(字符串的首地址)賦給P的對應(yīng)下標(biāo)的元素。然后通過嵌套的for循環(huán),為該二維數(shù)組中存放的各個字符串進(jìn)行排序。strcmp函數(shù)返回值大于0時(shí)(p[i]>p[j])交換兩個字符串,所以每一輪內(nèi)嵌的for循環(huán),都將下標(biāo)為i的字符串放在最終的排序位置上,即排序規(guī)則是按字符串升序排列。字符串排序時(shí),是將兩個字符串自左向右逐個字符比較(按字符的ASCII值大?。?,直到出現(xiàn)不同的字符或遇到‘\\0’為止。排序后,再將v中各個排序后的字符串輸出。所以程序輸出結(jié)果為:abcdefghijklmnopq。故本題答案為B選項(xiàng)。

10.C解析:帶參數(shù)宏的格式為:#define標(biāo)識符(形參表)形參表達(dá)式。其功能是:在預(yù)處理程序中將程序中出現(xiàn)的所有帶實(shí)參的宏名,展開成由實(shí)參組成的表達(dá)式。

11.D算法是指解題方案的準(zhǔn)確而完整的描述,算法不等于程序,也不等于計(jì)算方法,所以A錯誤。設(shè)計(jì)算法時(shí)不僅要考慮對數(shù)據(jù)對象的運(yùn)算和操作,還要考慮算法的控制結(jié)構(gòu)。故答案為D選項(xiàng)。

12.D

13.B

14.B

15.AC語言中,逗號運(yùn)算符可以把兩個以上(包含兩個)的表達(dá)式連接成一個表達(dá)式。逗號運(yùn)算符的優(yōu)先級是所有運(yùn)算符中級別最低的,逗號運(yùn)算符保證左邊的子表達(dá)式運(yùn)算結(jié)束后才進(jìn)行右邊的子表達(dá)式的運(yùn)算。也就是說,逗號運(yùn)算符是一個序列點(diǎn),其左邊所有子表達(dá)式運(yùn)算都結(jié)束后,才對其右邊的子表達(dá)式進(jìn)行運(yùn)算,并以最右邊表達(dá)式的值作為整個逗號表達(dá)式的值。因此c的值為“a%b”,即“11%3=2”。故本題答案為A選項(xiàng)。

16.Aftell是返回文件當(dāng)前指針。

17.Awhile循環(huán)的執(zhí)行過程如下:①計(jì)算while后面圓括號中表達(dá)式的值。當(dāng)值為非0時(shí),執(zhí)行步驟②;當(dāng)值為0時(shí),執(zhí)行步驟④。②執(zhí)行循環(huán)體一次。③轉(zhuǎn)去執(zhí)行步驟①。④退出循環(huán)。在選項(xiàng)A中,表達(dá)式(ch=get-char)!=N表示輸入的字符不等于N,如果這個條件表達(dá)式成立,則執(zhí)行循環(huán)體,打印輸出輸入的字符。如果這個條件表達(dá)式不成立,即輸入的字符等于N,則退出循環(huán)。所以選項(xiàng)A為正確答案。

18.D題目中需要輸入一個變量,scanf要求輸入?yún)?shù)為指針,而D選項(xiàng)中“ps->age”為變量,不是指針。故本題答案為D選項(xiàng)。

19.B第一個for循環(huán)的作用是讓p指向每行的首地址,第二個for循環(huán)的作用是把它指向的字符串輸出,故選擇B選項(xiàng)。

20.C解析:二叉樹的一個性質(zhì)是,在二叉樹的第k層上,最多有2(k-1)(k>=1)個結(jié)點(diǎn)。對于滿二叉樹,每一層上的結(jié)點(diǎn)數(shù)都達(dá)到最大值,即在滿二叉樹的第k層上有2k-1個結(jié)點(diǎn)。所以,在深度為5的滿二叉樹中,所有葉子結(jié)點(diǎn)在第5層上,即其結(jié)點(diǎn)數(shù)為2(k-1)=2(5-1)=16。

21.數(shù)據(jù)庫系統(tǒng)數(shù)據(jù)庫系統(tǒng)

22.靜態(tài)分析靜態(tài)分析解析:程序測試分為靜態(tài)分析和動態(tài)測試。其中,靜態(tài)分析是指不執(zhí)行程序,而只是對程序文本進(jìn)行檢查,通過閱讀和討論,分析和發(fā)現(xiàn)程序中的錯誤。

23.軟件工程學(xué)軟件工程學(xué)

24.網(wǎng)際協(xié)議網(wǎng)際協(xié)議

25.線性結(jié)構(gòu)線性結(jié)構(gòu)解析:隊(duì)列有且只有一個根結(jié)點(diǎn),而且每一個結(jié)點(diǎn)最多有一個前件,也最多有一個后件,滿足線性結(jié)構(gòu)的條件,所以屬于線性結(jié)構(gòu)。

26.類類

27.33解析:條件表達(dá)式的一般形式為;表達(dá)式1?表達(dá)式2:表達(dá)式3條件運(yùn)算符的執(zhí)行順序:先求解表達(dá)式1,若為非0(真)則求解表達(dá)式2,此時(shí)表達(dá)式2的值就作為整個條件表達(dá)式的值;若表達(dá)式1的值為0(假),則求解表達(dá)式3,表達(dá)式3的值就是整個條件表達(dá)式的值。30/3=10>0,所以執(zhí)行p/10,結(jié)果為3。

28.a[i][j]+b[i][j]a[i][j]+b[i][j]解析:此題是雙重for循環(huán)結(jié)構(gòu)應(yīng)用在了二維數(shù)組中。外層for循環(huán)用來控制二維數(shù)組的行,內(nèi)層for循環(huán)控制二維數(shù)組的列。

29.調(diào)試調(diào)試

30.55解析:分析程序,當(dāng)a=3;b=4;c=5時(shí),判斷語句a>b不成立,所以不執(zhí)行后面的語句,直接執(zhí)行“printf('%d\\n',c);”語句,輸出c的值,輸出結(jié)果為5。

31.有效性測試有效性測試

32.3232解析:二叉樹的一個性質(zhì)是,在二叉樹的第k層上,最多有2k-1(k≥1)個結(jié)點(diǎn)。由此,26-1=32.所以答案為32。

33.05105

34.a=a+ba=a+b解析:a+=b與a=a+b等價(jià),作用是把變量a的值加b后再賦給變量a。

35.log2n

36.2002Shangxian2002Shangxian解析:本題中首先定義一個結(jié)構(gòu)體類型STU,該結(jié)構(gòu)體由一個長度為10的字符型數(shù)組、一個long型變量和一個float型變量組成。接著在主函數(shù)中用STU定義了4個結(jié)構(gòu)體變量a、b、c、d,并且給a、b、c賦初值,然后定義了一個結(jié)構(gòu)體指針p,并讓它指向變量do將變量a的值賦給變量d,接著通過兩個if語句比較結(jié)構(gòu)體變量a、b、c的成員name大小。第一個if語句將結(jié)構(gòu)體變量和結(jié)構(gòu)體變量中較小的那個賦值給結(jié)構(gòu)體變量d,第二個if語句將結(jié)構(gòu)體變量和結(jié)構(gòu)體變量較大的那個賦給結(jié)構(gòu)體變量do比較通過函數(shù)strcmp實(shí)現(xiàn)。strcmp()函數(shù)有兩個參數(shù),分別為被比較的兩個字符串。如果第一個字符串大于第二個字符串返回值大于0,若第一個小于第二個返回值小于0,相等時(shí)返回值為0。字符串比較大小的標(biāo)準(zhǔn)是從第一個字符開始依次向右比較,遇到某一個字符大,該字符所在的字符串就是較大的字符串,如果遇到某一個字符小,該字符所在的字符串就是較小的字符串。程序中第一個if語句strcmp(,)>0為真,故將b的值賦給d,第二個if語句strcmp(,)>0為假,故不執(zhí)行后面的語句,最后d的值為b的值,因此輸出d.sn0和p->name的值為2002Shangxian。

37.br[i]或*(br+i)br[i]或*(br+i)解析:求最大值算法要求輸入的一般是一系列數(shù),例如一個數(shù)組,而輸出只有一個值。計(jì)算時(shí)通常的做法是,首先將這一系列數(shù)的笫1個值保存到結(jié)果變量中,然后用一個指針或循環(huán)變量從頭(或從第2個值)至尾遍歷這一系列數(shù),每次比較結(jié)果變量和被遍歷的值,如果該值比結(jié)果大,則將該值保存到結(jié)果中。本題中,3行4列二維數(shù)組a顯然是算法的輸入值,而傳給函數(shù)fun()的3和4在函數(shù)中起到限制循環(huán)次數(shù)的作用,所以它們代表輸入數(shù)據(jù)的行列數(shù).而傳遞給函數(shù)的一維數(shù)組b即沒有初始化,最后又要輸出它,所以數(shù)組b肯定是用來保存每行的最大值。在函數(shù)中是一個二重循環(huán),外循環(huán)首先將ar[i][0]賦給x,然后內(nèi)循環(huán)中比較x和ar[il剛,若x比較小就讓x=ar[i][j],這就說明x是保存結(jié)果的臨時(shí)變量.最后應(yīng)該將x的值輸出到數(shù)組b中,也就是形參br的相應(yīng)位置。故在空格處應(yīng)該填的內(nèi)容為br[i]或者寫成指針方式*(br+i)。

38.3123,1,2解析:分析程序,第一個if語句,a=1,b=2,控制條件a<b成立,則交換a、b的值,此時(shí)a=2,b=1。第二個if語句,a=2,c=3,控制條件a<c成立,則交換a、c的值,此時(shí)a=3,c=2。

39.246246解析:本題考查靜態(tài)(static)局部變量的使用。fun函數(shù)中的靜態(tài)局部變量a所占用的存儲單元在程序運(yùn)行過程中始終不釋放,即當(dāng)下一次調(diào)用該函數(shù)時(shí),該變量仍然保留上一次函數(shù)調(diào)用結(jié)束時(shí)已有的值,3次調(diào)用fun函數(shù)分別得到2,4,6。

40.邏輯數(shù)據(jù)模型邏輯數(shù)據(jù)模型解析:數(shù)據(jù)是現(xiàn)實(shí)世界符號的抽象,而數(shù)據(jù)模型(datamodel)則是數(shù)據(jù)特征的抽象,它從抽象層次上描述了系統(tǒng)的靜態(tài)特征、動態(tài)行為和約束行為,為數(shù)據(jù)庫系統(tǒng)的信息表示與操作提供一個抽象的框架。數(shù)據(jù)模型按不同的應(yīng)用層次分成3種類型,它們是概念數(shù)據(jù)模型(conceptualdatamodel)、邏輯數(shù)據(jù)模型(logicdatamodel)、物理數(shù)據(jù)模型(physicaldatamodel)。

41.A

42.C解析:在本題運(yùn)行時(shí)主要注意的是當(dāng)i=9時(shí),a[i]=10-9=1;i=8時(shí),a[i]=10-8=2;i=7時(shí),a[i]=10-7=3;……依此類推,直到i=0時(shí),a[i]=10-0=10;此時(shí),i的值已變?yōu)?1,判斷for的循環(huán)條件,不成立,然后輸出a[2],a[5],a[8]分別為8,5,2。

43.D解析:選項(xiàng)A)的循環(huán)表達(dá)式的條件永久為1,并且小于100的數(shù)與100取余不超過99,所以在循環(huán)體內(nèi)表達(dá)式i%100+1的值永遠(yuǎn)不大于100,break語句永遠(yuǎn)不會執(zhí)行,所以是死循環(huán);選項(xiàng)B)的括號內(nèi)沒有能使循環(huán)停下來的變量增量,是死循環(huán);選項(xiàng)C)中先執(zhí)行k++,使k=10001,從而使循環(huán)陷入死循環(huán)。

44.A解析:本題考查用strlen函數(shù)計(jì)算字符串長度的方法。該字符串中包含的字符是:\'\\t\'(跳格符)、\'\\'\'(雙引號)、\'\\065\'(ASCII值為八進(jìn)制065,也即+進(jìn)制為51的字符)、\'\\xff\'(ASCII值為+六進(jìn)制ff,也即+進(jìn)制為255的字符)、\'\\n\'(換行符)。

45.C解析:z=x++是先把x的值1賦給z,所以z=1,然后再把x加1賦給x,x=2,++y后y又加1,所以y=3。

46.D解析:fgetc函數(shù)是指從指定的文件讀入一個字符,該文件必須是以讀或讀寫方式打開的。fgetc函數(shù)的調(diào)用形式為:ch=fgetc(fp);。

47.A解析:條件運(yùn)算符“?:”是三目運(yùn)算符,其形式為:

表達(dá)式17表達(dá)式2:表達(dá)式3

當(dāng)表達(dá)式1的值為真時(shí),則表達(dá)式2的值為整個表達(dá)式的值;如果表達(dá)式1的值為假,則表達(dá)式3的值為整個表達(dá)式的值。題中,表達(dá)式x>12的結(jié)果為假,所以將表達(dá)式x-12的值0作為y的值。

48.C解析:本題中char*p=a+5;即相當(dāng)于p=&a[5],而--p,是先要減1,則printf語句要輸出的值就是a[4]。

49.C答案C

解析:在語句“k=*f(a,b)”中,由于“()”的優(yōu)先級高于“*”,所以“*f(a,b);”表示其返回類型為指針的帶有兩個整型參數(shù)的函數(shù)。

50.C解析:C語言規(guī)定else總是和離它最近的if語句配對。分析可以知道,。函數(shù)f()作用是讓形參v和形參w的值交換。在主函數(shù)中首先定義了3個變量x、y和z。然后再執(zhí)行下面的if-else語句。由程序可以看出第一個else和第一個if搭配,第二個else和第二個if搭配。由于調(diào)用函數(shù)時(shí)是進(jìn)行值傳遞的。即將實(shí)參x、y、z傳給形參v和w,以后行參和實(shí)參再無聯(lián)系,故通過if語句調(diào)用f()函數(shù)后,x、y和z的值并沒有改變。因此最后輸出的x、y和z的值為1、3和2,所以,4個選項(xiàng)中選項(xiàng)C符合題意。

51.C解析:若在scanf的格式控制串中插入了其他字符,則在輸入時(shí)要求按一一對應(yīng)的位置原樣輸入這些字符。由于scanf的格式控制串中插入了“a\\\\”、逗號和“b=”等字符,所以輸入時(shí)候應(yīng)該一一對應(yīng)地在對應(yīng)位置上輸入這些字符。

52.BB.【解析】快速排序的基本思想是:從表中選取一個元素(如本題中的33),將表中小于此元素的移到前面,大于此元素的移到后面,結(jié)果把線性表分割成兩部分(兩個子表),此元素插入到其分界線的位置處。然后分別對兩個子表再次分割……本題中33作為分割的中界線,第一趟排序后排在比它小的18、9、25、12后面。

53.D解析:結(jié)構(gòu)伸變量所占內(nèi)存長度是各成員占的內(nèi)存長度之和,每個成員分別占有自己的內(nèi)存單元;共用體變量所占的內(nèi)存長度等于最長的成員的長度。結(jié)構(gòu)體變量aa中,成員r1占2個字節(jié),r2占8個字節(jié),r3占4個字節(jié),共用體ua占8個字節(jié),所以共占用2+8+4+8=22個字節(jié)。

54.C解析:“p”是指針變量,指向一個地址:“*p”,為p指針?biāo)赶虻刂返膬?nèi)容。

55.C解析:字符串少一個結(jié)束標(biāo)志,所以輸出的結(jié)果不確定。

56.A解析:運(yùn)算符“^”是按位異或運(yùn)算符,其運(yùn)算規(guī)則是:參與運(yùn)算的兩個二進(jìn)制數(shù),若相對應(yīng)的二進(jìn)制位上的數(shù)相同,則該位的結(jié)果為0;否則該位的結(jié)果為1。可得:0x130x17=1001110111=0x04

57.C解析:在面向?qū)ο蟮某绦蛟O(shè)計(jì)中,對象是面向?qū)ο蟮能浖幕灸K,它是由數(shù)據(jù)及可以對這些數(shù)據(jù)施加的操作所組成的統(tǒng)一體,而且對象是以數(shù)據(jù)為中心的,操作圍繞對其數(shù)據(jù)所需做的處理來設(shè)置,沒有無關(guān)的操作。從模塊的獨(dú)立性考慮,對象內(nèi)部各種元素彼此結(jié)合得很緊密,內(nèi)聚性強(qiáng)。由于完成對象功能所需要的元素(數(shù)據(jù)和方法)基本上都被封裝在對象內(nèi)部,它與外界的聯(lián)系自然就比較少,所以,對象之間的耦合通常比較松。所以,選項(xiàng)A與B錯誤,選項(xiàng)C正確。

58.A解析:在函數(shù)的形參中使用int*類型和使用int[]類型并無區(qū)別,兩者都可用宋傳遞數(shù)組名或指針變量,所以func()函數(shù)的形參是兩個指針a和b,又因?yàn)閎[0]亦可寫成*b,所以表達(dá)式b[0]=*a+6也可以寫成*b=*a+6,其意思是:將a所指內(nèi)容加上6賦給b所指內(nèi)容。所以主函數(shù)中對func()的調(diào)用func(&a,b)可看成b[0]=a+6,所以最后b[0]的結(jié)果為6。正確答案為選項(xiàng)A。

59.A解析:本題考查用于多分支選擇的switch語句,其一般形式為:

switch(表達(dá)式)

{

case常量表達(dá)式1:語句1;

case常量表達(dá)式2:語句2;

case常量表達(dá)式n:語句n;

default:語句n+1;

}

其語義是:計(jì)算表達(dá)式的值,并逐個與其后的常量表達(dá)式值進(jìn)行比較,當(dāng)表達(dá)式的值與某個常量表達(dá)式的值相等時(shí),即執(zhí)行其后的語句,然后不再進(jìn)行判斷,繼續(xù)執(zhí)行后面所有case后的語句;如表達(dá)式的值與所有case后的常量表達(dá)式均不相等時(shí),則執(zhí)行default后的語句。

60.D解析:C語言中只有字符串常量而沒有字符串變量,故選項(xiàng)A不正確:字符串比較大小是以第1個不相同字符的大小為標(biāo)準(zhǔn)的,跟長度沒有關(guān)系,故選項(xiàng)B不正確:字符串比較大小除了使用庫函數(shù)stremp()以外,就只能靠自己寫代碼來實(shí)現(xiàn)了,而不能通過關(guān)系運(yùn)算符來比較大小,因?yàn)樽址诒磉_(dá)式中相當(dāng)于coostchar*,即常字符指針,代表的是字符串的首地址,關(guān)系運(yùn)算符會將兩個字符串的首地址值比較大小,這是毫無意義的。所以選項(xiàng)C也不正確。空串的長度為0,而以空格打頭的字符串的長度至少為1,故選項(xiàng)D正確,本題應(yīng)該選擇D。

61.B選項(xiàng)B表示把整型數(shù)組a[o]的指針賦給p[0]。

62.Cs=f(a)表達(dá)式第一次調(diào)用f(n)函數(shù)時(shí).f(n)函數(shù)運(yùn)行結(jié)果為n=4,a=2,即s等于4;s=s+f(a)表達(dá)式第二次調(diào)用f(n)函數(shù)時(shí),f(n)函數(shù)運(yùn)行結(jié)果為n=5,所以得到s值為9。

63.B\n根據(jù)判斷本題共進(jìn)行三次for循環(huán),第一次執(zhí)行for循環(huán),p[1][0]=p[1][0]-1=3;第2次執(zhí)行for循環(huán),p[1][1]=p[1][1]-1=4;第3次執(zhí)行for循環(huán),[1][2]=1,最后輸出的是a[o][1]+a[1][1

溫馨提示

  • 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)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論