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

下載本文檔

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

文檔簡介

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

一、單選題(20題)1.設(shè)x為int型變量,則執(zhí)行以下語句后,x的值為()。x=10;x=x-=x-x;

A.10B.20C.40D.30

2.設(shè)以下變量均為int類型,表達(dá)式的值不為7的是A.(x=y=6,x+y,x+1)

B.(x=6,x+1,y=6,x+y)

C.(x=y=6,x+y,y+1)

D.(y=6,y+1,x=y,x+1)

3.

4.已知一個(gè)無向圖(邊為正數(shù))中頂點(diǎn)A,B的一條最短路P,如果把各個(gè)邊的權(quán)重(即相鄰兩個(gè)頂點(diǎn)的距離)變?yōu)樵瓉淼?倍,那么在新圖中,P仍然是A,B之間的最短路,以上說法是()A.錯(cuò)誤B.正確

5.結(jié)構(gòu)化程序設(shè)計(jì)的3種結(jié)構(gòu)是()。

A.順序結(jié)構(gòu)、選擇結(jié)構(gòu)、轉(zhuǎn)移結(jié)構(gòu)

B.分支結(jié)構(gòu)、等價(jià)結(jié)構(gòu)、循環(huán)結(jié)構(gòu)

C.多分支結(jié)構(gòu)、賦值結(jié)構(gòu)、等價(jià)結(jié)構(gòu)

D.順序結(jié)構(gòu)、選擇結(jié)構(gòu)、循環(huán)結(jié)構(gòu)

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

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

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

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

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

7.以下說法錯(cuò)誤的是:()

A.全局變量就是在函數(shù)外定義的變量,因此又叫做外部變量

B.一個(gè)函數(shù)中既可以使用本函數(shù)中的局部變量,也可以使用全局變量

C.局部變量的定義和全局變量的定義的含義不同

D.如果在同一個(gè)源文件中,全局變量和局部變量同名,則在局部變量的作用范圍內(nèi),全局變量通常不起作用

8.以下程序的輸出結(jié)果是()。main{inta[3][3]=“l(fā),2),{3,4),{5,6)},i,j,s=0;for(i=1;i<3;i++)for(j=0;j<=i;j++)s+=a[i][j];printf(”%d\n”,s);}A.18B.19C.20D.21

9.設(shè)有以下程序段intx=0,s=0;while(!x!=0)s+=++x;printf("%d",s);則

A.運(yùn)行程序段后輸出0B.運(yùn)行程序段后輸出1C.程序段中的控制表達(dá)式是非法的D.程序段執(zhí)行無限次

10.若要判斷char型變量c中存放的是否為小寫字母,以下正確的表達(dá)式是()。A.'a'<=c<='z'

B.(c>='a')&&(c<='z')

C.(c>='a')‖(c<='z')

D.('a'<=c)AND('z'>=c)

11.在有向圖G的拓?fù)湫蛄兄校繇旤c(diǎn)Vi在頂點(diǎn)Vj之前,則下列情形不可能出現(xiàn)的是()。

A.G中有弧

B.G中有一條從Vi到Vj的路徑

C.G中沒有弧

D.G中有一條從Vj到Vi的路徑

12.假定下列x和y均為int型變量,則不正確的賦值為()。

A.x+=y++B.x++=y++C.x=++yD.++x=++y

13.使用二分查找算法在一個(gè)有序序列中查找一個(gè)元素的時(shí)間復(fù)雜度為()

A.O(N)B.O(logN)C.O(N*N)D.O(N*logN)

14.數(shù)據(jù)在計(jì)算機(jī)存儲器內(nèi)表示時(shí),物理地址與邏輯地址相同并且是連續(xù)的,稱為()。

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

15.有說明語句“inta,b;”,如果輸入111222333,使得a的值為111,b的值為333,則以下正確的語句是()。A.scanf("%3d%*3d%3d",&a,&b);

B.scanf("%*3d%3d%3d",&a,&b);

C.scanf("%3d%3d%*3d",&a,&b);

D.scanf("%3d%*2d%3d",&a,&b);

16.

有以下程序

#include<stdio.h>

#include<string.h>

typedefstrlIct{charname[9];charsex;floatscore[2];}STU;

STUf(STUa)

{STUb={"Zhao",m,85.0,90.0);inti;

strcpy(aname,b.name);

sex:b.sex;

for(i=0;i<2;i++)a.score[i]=b.score[i];

returna;

}

main

{STUc="Qian",f,95.0,92.0},d;

d=f(c).printf("%s,%c,%2.0f,%2.0f",d.Name,d.sex,d.score[0],d.score[1]);

}

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

A.Qian,f,95,92

B.Qian,m,85,90

C.Zhao,m,85,90

D.Zhao,f,95,92

17.設(shè)有表示學(xué)生選課的三張表,學(xué)生s(學(xué)號,姓名,性別,年齡,身份證號),課程c(課號,課名),選課SC(學(xué)號,課號,成績),則表sc的關(guān)鍵字(鍵或碼)為()。

A.課號,成績B.學(xué)號,成績C.學(xué)號,課號D.學(xué)號,姓名,成績

18.計(jì)算機(jī)能夠直接識別和執(zhí)行的語言是

A.匯編語言B.自然語言C.機(jī)器語言D.高級語言

19.設(shè)”inta=12;”,則執(zhí)行完語句”a+=a*a;”后,a的值是()。

A.12B.144C.156D.288

20.選出任何情況下都不引起二義性的宏定義()。

A.#definePOWER(x)x*x

B.#definePOWER(x)((x)*(x))

C.#definePOWER(x)(x*x)

D.#definePOWER(x)(x)*(x)

二、2.填空題(20題)21.下面程序的功能:輸出100以內(nèi)能被3整除且個(gè)位數(shù)為6的所有整數(shù),請補(bǔ)充完整。

main()

{inti,j;

for(i=0;【】;i++)

{j=i*10+6;

if(【】)continue;

printf("%d",j);

}

}

22.在進(jìn)行模塊測試時(shí),要為每個(gè)被測試的模塊另外設(shè)計(jì)兩類模塊:驅(qū)動(dòng)模塊和承接模塊(樁模塊),其中【】的作用是將測試數(shù)據(jù)傳送給被測試的模塊,并顯示被測試模塊所產(chǎn)生的結(jié)果。

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

longfun5(intn)

{longs;

if((n==1)‖(n==2))

s=2;

else

s=n+fun5(n-1);

return(s);

}

main()

{longx;

x=fun5(4);

printf("%1d\n",x);}

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

main()

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

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

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

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

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

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

25.下面程序有兩個(gè)printf語句,如果第一個(gè)printf語句輸出的是194,則第二個(gè)printf語句的輸出結(jié)果是【】。

main()

{inta[10]={1,2,3,4,5,6,7,8,9,0},*p;

p=a;

printf("%x\n",p);

printf("%x\n,p+9);

}

26.已有文本文件test.txt,其中的內(nèi)容為:Hello,everyone!。以下程序中,文件test.txt已正確為“讀”而打開,由此文件指針fr指向文件,則程序的輸出結(jié)果是______。

#include<stdio.h>main(){FILE*fr;charstr[40];

fgets(str,5,fr);

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

fclose(fr);}

27.實(shí)現(xiàn)算法所需的存儲單元多少和算法的工作量大小分別稱為算法的【】。

28.設(shè)x和y均為int型變量,且x=1,y=2,則表達(dá)式2.0+x/y的值為_______。

29.若想通過以下輸入語句使a=5.0,b=4,c=3,則輸入數(shù)據(jù)的形式應(yīng)該是【】。

intb,c;floata;

scanf("%f,%d,c=%d",&a,&b,&c)

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

#include<string.h>

main()

{chara[]={'\1','\2','\3','\4','\0'};

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

}

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

#defineS(x)4*x*x+1

main()

{inti=6,j=8;

printf("%d\n",S(i+j));

}

32.軟件設(shè)計(jì)模塊化的目的是______。

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

main()

{inti,sum;

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

sum+=i;

primf("%d",sum);

}

34.若有定義doublea[5];,則a數(shù)組元素下標(biāo)的上限為______。

35.若先后輸入county、side,以下程序的運(yùn)行結(jié)果為【】。

main()

{chars1[40],s2[20];inti=0,j=0;

scanf("%s",s1);

scanf("%s",s2);

while(s1[i]!='\0')i++;

while(s2[j]!='\0')s1[i++]=s2[j++];

s1[i]='\0';

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

}

36.設(shè)有以下定義和語句,則*(*(P+2)+1)的值為【】。

int[3][2]={10,20,30,40,50,60},(*p)[2];

p=a;

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

intm=13;

intfun(intx,inty)

{intm=3;

return(x*y-m);

}

main()

{inta=7,b=5;

printf("%d\n",fun(a,b)/m);

}

38.在關(guān)系模型中,把數(shù)據(jù)看成是二維表,每一個(gè)二維表稱為一個(gè)【】。

39.關(guān)系模型的數(shù)據(jù)操縱即是建立在關(guān)系上的數(shù)據(jù)操縱,一般有______、增加、刪除和修改四種操作。

40.數(shù)據(jù)結(jié)構(gòu)包括數(shù)據(jù)的邏輯結(jié)構(gòu)、數(shù)據(jù)的【】以及列數(shù)據(jù)的操作運(yùn)算。

三、1.選擇題(20題)41.棧和隊(duì)列的共同特點(diǎn)是()。

A.都是先進(jìn)先出B.都是先進(jìn)后出C.只允許在端點(diǎn)處插入和刪除元素D.沒有共同點(diǎn)

42.下面的程序段運(yùn)行后,輸出結(jié)果是inti,j,x=0;staticinta[8][8];for(i=0;i<3;i++)for(j=0;j<3;j++)a[i][j]=2*i+j;for(i=0;i<8;i++)x+=a[i][j];printf("%d",x);

A.9B.不確定值C.0D.18

43.執(zhí)行下面程序段的結(jié)果是()。intx=23;do{printf("%2d",x--);}while(!x);

A.輸出321B.輸出23C.不輸出任何內(nèi)容D.陷入死循環(huán)

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

45.設(shè)char型變量x中的值為10100111,則表達(dá)式(2+x)(-3)的值為______。

A.10101001B.10101000C.11111101D.1010101

46.以下選項(xiàng)中非法的表達(dá)式是()。

A.0<=x<100B.i=j==0C.(char)(65+3)D.x+1=x+1

47.指出下面不正確的賦值語句

A.a++;B.a==b;C.a+=b;D.a=1,b=1;

48.下列程序的輸出結(jié)果是()。main(){intp[8]={11,12,13,14,15,16,17,18},i=0,j=0;while(i++<7)if(p[i]%2)j+=p[i];printf("%d\n",j);}

A.42B.45C.56D.60

49.下列不屬于軟件調(diào)試技術(shù)的是______。A.強(qiáng)行排錯(cuò)法B.集成測試法C.回溯法D.原因排除法

50.以下程序企圖把從終端輸入的字符輸出到名為abc.txt的文件中,直到從終端讀入字符#號時(shí)結(jié)束輸入和輸出操作,但程序有錯(cuò)。#include<stdio.h>main(){FILE*fout;charch;four=fopen('abc.txt','w');ch=fgetc(stdin);while(ch!='#'){fputc(ch,fout);ch=fgetc(stdin);}felose(fout);}出錯(cuò)的原因是

A.函數(shù)fopen調(diào)用形式錯(cuò)誤B.輸入文件沒有關(guān)閉C.函數(shù)fsetc調(diào)用形式錯(cuò)誤D.文件指針stdin沒有定義

51.結(jié)構(gòu)化程序設(shè)計(jì)的3種結(jié)構(gòu)是()。

A.順序結(jié)構(gòu)、選擇結(jié)構(gòu)、轉(zhuǎn)移結(jié)構(gòu)

B.分支結(jié)構(gòu)、等價(jià)結(jié)構(gòu)、循環(huán)結(jié)構(gòu)

C.多分支結(jié)構(gòu)、賦值結(jié)構(gòu)、等價(jià)結(jié)構(gòu)

D.順序結(jié)構(gòu)、選擇結(jié)構(gòu)、循環(huán)結(jié)構(gòu)

52.下面程序段中c的二進(jìn)制值是______。chara=3,b=6,c;c=ab<<1;

A.1011B.1111C.11110D.11100

53.有以下程序:#definef(x)x*xmain(){inti;i=f(4+4)/f(2+2);printf("%d\n",i);}執(zhí)行后輸出結(jié)果是

A.28B.22C.16D.4

54.下列判斷正確的是()。

A.chara="ABCD";等價(jià)于char*a;*a="ABCD";

B.charstr[10]={"ABCD"};等價(jià)于charstr[10];str[]={"ABCD"};

C.char*s="ABCD";等價(jià)于chars;*s="ABCD";

D.charc[5]="ABCD",d[5]="ABCD";等價(jià)于charc[5]=d[5]="ABCD";

55.有以下函數(shù)定義:voidfun(intn,doublex){......}若以下選項(xiàng)中的變量都已正確定義并賦值,則對函數(shù)fun正確調(diào)用語句是______。

A.fun(inty,doublem);

B.k=fun(10,12.5);

C.fun(x,n);

D.voidfun(n,x);

56.整型變量x和y的值相等,且為非。值,則以下選項(xiàng)中,結(jié)果為0的表達(dá)式是()

A.x||yB.x|yC.x&yD.xy

57.s1和s2已正確定義并分別指向兩個(gè)字符串。若要求:當(dāng)s1所指串大于s2所指串時(shí),執(zhí)行語句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,s2)>0)S;

58.以下程序輸出的結(jié)果為______。main(){char*alpha[6]={"ABCD","EFGH","IJKL","MNOP","QRST","UVWX"};char**p;inti;p=alpha;for(i=0,i<4;i++)prntf("%s",p[i]);}

A.ABCDEFGHIJKLB.ABCDC.ABCDEFGHIJKLMNOPD.AEIM

59.設(shè)有以下語句:charstr1[]="string",str2[8],*str3,*str4="str4="string";則______不是對庫函數(shù)的正確調(diào)用。

A.strcpy(str1,"HELLO1");

B.strcpy(str2."HELLO2");

C.strcpy(str3."HELLO3");

D.strcpy(str4."HELLO4");

60.下列不屬于軟件工程的3個(gè)要素的是______。

A.工具B.過程C.方法D.環(huán)境

四、選擇題(20題)61.以下程序的輸出結(jié)果是()。

main()

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

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

}

A.99

B.520

C.1320

D.2020

62.下列程序的輸出結(jié)果是

intb=2;

intfunc(int*a)

{b+=*a;return(b);}

main()

{inta=2,res=2;

res+=func(&a);

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

}A.2

B.4C.6

D.8

63.

64.設(shè)有定義:

inta=1,b=2,C=3;

以下語句中執(zhí)行效果與其他三個(gè)不同的是()。

A.if(a>B.C=a,a=b,b=C;

B.if(a>B.{C=a,a=b,b=C;}

C.if(a>B.C=a;a=b;b=c;

D.if(a>B.{C=a;a=b;b=c;}

65.

有下列程序:

main

{charp[]={a,h,c},q[]="a";

printf("%d%d\n".sizeof(P),sizeof(q));

}

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

A.44B.33C.34D.43

66.以三級模式為框架形成的3種數(shù)據(jù)庫中,真實(shí)存在于計(jì)算機(jī)外存的數(shù)據(jù)庫是()。

A.概念數(shù)據(jù)庫B.用戶數(shù)據(jù)庫C.物理數(shù)據(jù)庫D.邏輯數(shù)據(jù)庫

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

A.兩個(gè)語句都是將變量a的值賦予變量P

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

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

D.兩個(gè)語句都是使P指向變量a

68.

有如下程序:

main

{inta=2,b=-1.c=2;

if(a<0)if(b<0)c=0;

elsec++;

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

}

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

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

69.以下定義語句中正確的是()。

A.inta=b=0;

B.charA=65+1,b=’b’;

C.floata=1,*b=*a,*C=&b;

D.doublea=0.0;b=1.1;

70.以下對二維數(shù)組a進(jìn)行正確初始化的是()

A.inta[2][3]={{1,2},{3,4},{5,6}};

B.inta[][3]={1,2,3,4,5,6};

C.inta[2][]={1,2,3,4,5,6};

D.inta[2][]={{1,2},{3,4}};

71.計(jì)算機(jī)高級語言程序的運(yùn)行方法有編譯執(zhí)行和解釋執(zhí)行兩種,以下敘述中正確的是A.C語言程序僅可以編譯執(zhí)行B.C語言程序僅可以解釋執(zhí)行C.C語言程序既可以編譯執(zhí)行又可以解釋執(zhí)行D.以上說法都不對

72.

73.若程序中定義了以下函數(shù)doublemyadd(doublea,doubleb){return(a+b);}并將其放在調(diào)用語句之后,則在調(diào)用之前應(yīng)該對該函數(shù)進(jìn)行說明,以下選項(xiàng)中錯(cuò)誤的說明是()A.doublemyadd(doublea,b);

B.doublemyadd(double,double);

C.doublemyadd(doubleb,doublea);

D.doublemyadd(doublex,doubley);

74.軟件的()設(shè)計(jì)又稱總體結(jié)構(gòu)設(shè)計(jì),其主要任務(wù)是建立軟件系統(tǒng)的總體結(jié)構(gòu)。

A.概要B.抽象C.邏輯D.規(guī)劃

75.下面程序段的輸出為()。

#include"stdio.h"

main

{

printf("%d\n",12<<2);

}

A.0B.47C.48D.24

76.下列定義數(shù)組的語句中,正確的是()。

77.有如下程序

#include"stdio.h"

main()

{intj,i,k=0;

for(j=20;j<=30;j++)

{if(!(k%10))printf("\n");

for(i=2;i<j;i++)if(!(j%i))break;

if(i>=j-1)

{printf("%d",j);

k++;}

}

}

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

A.2329B.2923

C.3292D.9232

78.以下不能定義為用戶標(biāo)識符的是()

A.MainB._0C._intD.sizeof

79.在數(shù)據(jù)庫設(shè)計(jì)中,將E—R圖轉(zhuǎn)換成關(guān)系數(shù)據(jù)模型的過程屬于()。

A.需求分析階段B.概念設(shè)計(jì)階段C.邏輯設(shè)計(jì)階段D.物理設(shè)計(jì)階段

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

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

五、程序改錯(cuò)題(1題)81.下列給定程序中,函數(shù)proc()的功能是:將字符串str中的所有字符復(fù)制到字符串b中,要求在每復(fù)制3個(gè)字符之后插入1個(gè)空格。例如,在調(diào)用proc()函數(shù)之前給字符

串str輸入abcdefghijk,調(diào)用函數(shù)之后,字符串b中的內(nèi)容則為abcdefghijk。

請修改程序中的錯(cuò)誤,使它能得出正確的結(jié)果。

注意:不要改動(dòng)main()函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。

試題程序:

六、程序設(shè)計(jì)題(1題)82.使用VC++2010打開考生文件夾下prog1中的解決方案。此解決方案的項(xiàng)目中包含一個(gè)源程序文件prog1.c。在此程序中,規(guī)定輸入的字符串中只包含字母和*號。請編寫函數(shù)fun(),其功能是使字符串中尾部的*號不多于n個(gè),若多于n個(gè),則刪除多余的*號;若少于或等于n個(gè),則不做任何操作,字符串中間和前面的*號不刪除。例如,字符串中的內(nèi)容為“****A*BC*DEF*G*******”,若n的值為4,刪除后,字符串中的內(nèi)容應(yīng)為“****A*BC*DEF*G****”;若n的值為7,則字符串中的內(nèi)容仍為“****A*BC*DEF*G*******”。n的值在主函數(shù)中輸入。編寫函數(shù)時(shí),不得使用C語言提供的字符串函數(shù)。注意:部分源程序給出如下。請勿改動(dòng)主函數(shù)main()和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun()的花括號中填入你編寫的若干語句。試題程序:#include<stdio.h>voidfun(char*a,intn){}main(){ chars[81];intn; printf("Enterastring:\n”); gets(s); printf(“Entern:”); scanf(“%d”,&n); fun(s,n); printf(“Thestringafterdeleted:\n”); puts(s);}

參考答案

1.A執(zhí)行x=x-=x-x語句可寫成x=x-(x-x),可看出結(jié)果為10,故八選項(xiàng)正確。

2.B本題考查逗號表達(dá)式的用法。C語言中逗號“,”也是一種運(yùn)算符,稱為逗號運(yùn)算符,其功能是把兩個(gè)表達(dá)式連接起來組成一個(gè)表達(dá)式,稱為逗號表達(dá)式。其一般形式為:表達(dá)式1,表達(dá)式2。其求值過程是分別求兩個(gè)表達(dá)式的值,并以表達(dá)式2的值作為整個(gè)逗號表達(dá)式的值。逗號表達(dá)式的一般形式可以擴(kuò)展為:表達(dá)式1,表達(dá)式2,表達(dá)式3,…,表達(dá)式n。它的值為表達(dá)式n的值。

3.B

4.B

5.D結(jié)構(gòu)化程序設(shè)計(jì)的基本要點(diǎn):①采用自頂向下、逐步求精的程序設(shè)計(jì)方法;②任何程序都可由順序、選擇和循環(huán)3種基本控制結(jié)構(gòu)構(gòu)造。

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

7.A

8.A循環(huán)的作用是求行下標(biāo)從1到2列下標(biāo)從0到i的元素之和,即s=a[1][0]+a[1][1]+a[2][0]+a[2][1]+a[2][2]=3+4+5+6+0=18。

9.B解析:本題考查while語句的使用。本題考查邏輯非運(yùn)算符和不等于運(yùn)算符的區(qū)別,邏輯非運(yùn)算符'!'的優(yōu)先級大于不等于運(yùn)算符'!='的優(yōu)先級。

10.BC語言中,char型變量的值是其對應(yīng)字符的ASCII值,可以做比較運(yùn)算。由于小寫字母的ASCII值按字母表的順序連續(xù)遞增,因此判斷char型變量c是不是小寫字母時(shí),判斷c的ASCII值是否在’a’和’z’之間,即(c>=’a’)&&(c<=’z’)。本題答案為B選項(xiàng)。

11.D若G中有一條從Vj到Vi的路徑,則圖的拓?fù)湫蛄兄许旤c(diǎn)Vj在頂點(diǎn)Vi之前。設(shè)G(V,E)是一個(gè)具有n個(gè)頂點(diǎn)的有向圖,V中頂點(diǎn)的序列v1,v2,…,vn稱為一個(gè)拓?fù)湫蛄?,?dāng)且僅當(dāng)該頂點(diǎn)滿足下列條件:若在有向圖G中,從頂點(diǎn)vi在vj有一條路徑,則在拓?fù)湫蛄兄许旤c(diǎn)vi必須排在頂點(diǎn)vj之前。

12.B

13.B

14.C

15.A根據(jù)題意,要使a的值為111,b的值為333,必須在讀入時(shí)指定a的讀入寬度為3,b的讀入寬度為3,且a和b的控制字符之間必須額外增加%*控制符,用于跳過中間的3位輸入數(shù)字,選項(xiàng)A正確。本題答案為A選項(xiàng)。

16.Cf函數(shù)的功能是對形參a的各個(gè)成員用結(jié)構(gòu)體變量b的各個(gè)成員進(jìn)行賦值后,然后返回變量a。

17.C學(xué)號是學(xué)生表S的主鍵,課號是課程表C的主鍵,所以選課表SC的關(guān)鍵字就應(yīng)該是與前兩個(gè)表能夠直接聯(lián)系且能唯一定義的學(xué)號和課號,所以選擇C項(xiàng)。

18.C

19.C

20.B解析:引起帶參數(shù)宏的二義性主要有兩個(gè)方面:一是,參數(shù)之間因運(yùn)算符優(yōu)先級不確定而帶來的二義性。例如本題的選項(xiàng)A),若程序中使用POWER(a+b),會展開為a+b*a+b,這樣就會先計(jì)算b*a的值,然后再加一個(gè)a和一個(gè)b,產(chǎn)生二義性。杜絕這種二義性的方法是在宏定義的每個(gè)參數(shù)外加上圓括號以保證總是先計(jì)算每個(gè)參數(shù)的值,就好像本題的選項(xiàng)D)那樣。另一個(gè)是,整個(gè)宏所代表的表達(dá)式因運(yùn)算符優(yōu)先級不確定而帶來的二義性。例如本題的選項(xiàng)D),若程序中使用a/POWER(b),會展開為a/(b)*(b),這樣就會先計(jì)算a/b的值,然后再乘以b,產(chǎn)生二義性。杜絕這種二義性的方法是對整個(gè)宏定義加一個(gè)圓括號,就好像本題的選項(xiàng)B)那樣。故選項(xiàng)B)在任何情況下都不會引起二義性,應(yīng)該選B。

21.i<10i%3!=0i<10\r\ni%3!=0解析:本題要求輸出100以內(nèi)能被3整除且個(gè)位數(shù)為6的所有整數(shù),程序中j=i*10+6;語句是求個(gè)位數(shù)為6的整數(shù),由此可得出程序的循環(huán)次數(shù)為i<10。然后通過if語句判斷整數(shù)是否能被3整除,若不能則繼續(xù)下一次循環(huán),若能則輸出該整數(shù),所以邏輯表達(dá)式為j%3!=0。

22.驅(qū)動(dòng)模塊驅(qū)動(dòng)模塊解析:在進(jìn)行模塊測試時(shí),要為每個(gè)被測試的模塊另外設(shè)計(jì)兩類模塊:驅(qū)動(dòng)模塊和承接模塊(樁模塊)。其中,驅(qū)動(dòng)模塊相當(dāng)于被測試模塊的主程序,它接收測試數(shù)據(jù),并傳給被測試模塊,輸出實(shí)際測試結(jié)果。承接模塊通常用于代替被測試模塊調(diào)用的其他模塊,其作用僅做少量的數(shù)據(jù)操作,是一個(gè)模擬子程序,不必將子模塊的所有功能帶入。

23.考查ifelse語句,n=4不滿足條件,所以fun5(4)=4+fun5(3),n==3也不滿足條件,fun5(3)=3+fun5(2),n==2滿足條件fun5(2)=2,故x=4+3+2=9。\r\n\r\n

24.

25.1a61a6解析:對于指針變量的運(yùn)算,就是對地址的運(yùn)算。本題中由于指針指向的是整型變量,所以,使指針變量移動(dòng)9個(gè)位置也就是移動(dòng)18個(gè)字節(jié)。注意,本題是以十六進(jìn)制輸出的。

26.HellHell解析:該函數(shù)有3個(gè)參數(shù),第三個(gè)參數(shù)是文件指針指向要讀取數(shù)據(jù)的文件,第二個(gè)參數(shù)是一個(gè)整數(shù)(假設(shè)為n),表示從文件中讀n-1個(gè)字符并在其后加一個(gè)'\\0',第一個(gè)參數(shù)為存放讀取的字符串的內(nèi)存區(qū)的起始地址,讀取得數(shù)據(jù)保存在其中??梢姳绢}的輸出結(jié)果為:Hell。

27.空間復(fù)雜度和時(shí)間復(fù)雜度算法的復(fù)雜性是指對一個(gè)在有限步驟內(nèi)終止算法和所需存儲空間大小的估計(jì)。算法所需存儲空間大小是算法的空間復(fù)雜性,算法的計(jì)算量是算法的時(shí)間復(fù)雜性。

28.2.0。2.0。解析:x和y為整數(shù),運(yùn)算符“/”在這里是整型除,整除后值為0。

29.5.04c=35.0,4,c=3解析:scanf(掐式控制,地址列表),如果在“格式控制”字符串中除了格式說明以外還有其他字符,則在輸入數(shù)據(jù)時(shí)應(yīng)輸入與這些字符相同的字符。所以此題中輸入數(shù)據(jù)的形式是5.04,c=3。

30.545\u3000\u30004解析:字符串處理函數(shù)strlen()返回的是字符數(shù)組的實(shí)際長度,不包括字符申結(jié)束標(biāo)志‘\\\u30000’。而sizeof運(yùn)算符則計(jì)算的是字符數(shù)組的總長度,包括串末尾的結(jié)束標(biāo)志。

31.8181解析:將S(i+j)展開來有:S(i+j)=S(6+8)=4×6+8×6+8+1=81。

32.降低復(fù)雜性降低復(fù)雜性

33.無定值無定值解析:for(i=l;i<7;i++)決定了循環(huán)次數(shù)為6次,每次執(zhí)行的操作是sum+=i,但由于sum沒有初始化,并不知道sum的初值是多少,所以結(jié)果無定值。

34.44解析:一維數(shù)組元素的定義形式為:數(shù)組名[N],則該數(shù)組中元素的下限是0,上限是N-1。

35.countryside

36.6060解析:本題定義了一個(gè)3行2列的二維數(shù)組a,并定義了一個(gè)指向兩個(gè)元素的一維數(shù)組指針p,讓p指向二維數(shù)組a的首行。*(*(p+2)+1)是引用a[2][1],其值是60。

37.22解析:本題變量m既是外部變量(值是13),又是fun函數(shù)的局部變量(值為3)。函數(shù)fun(x*y-m)的值為7*5-3=32,在main函數(shù)中,fun(a,b)/m中的m應(yīng)取外部變量的值13,因此輸出2。

38.關(guān)系關(guān)系解析:在數(shù)據(jù)庫中,一個(gè)表就是一個(gè)關(guān)系。一個(gè)關(guān)系的邏輯結(jié)構(gòu)就是一張二維表。

39.查詢查詢

40.存儲結(jié)構(gòu)存儲結(jié)構(gòu)解析:數(shù)據(jù)結(jié)構(gòu)包括3個(gè)方面,即數(shù)據(jù)的邏輯結(jié)構(gòu)、數(shù)據(jù)的存儲結(jié)構(gòu)及對數(shù)據(jù)的操作運(yùn)算。

41.C解析:考查棧和隊(duì)列概念的掌握。棧和隊(duì)列都是一種特殊的操作受限的線性表,只允許在端點(diǎn)處進(jìn)行插入和刪除。二者的區(qū)別是:棧只允許在表的一端進(jìn)行插入或刪除操作,是一種'后進(jìn)先出'的線性表;而隊(duì)列只允許在表的一端進(jìn)行插入操作,在另一端進(jìn)行刪除操作,是一種'先進(jìn)先出'的線性表。模塊之間的耦合程度反映了模塊的獨(dú)立性,也反映了系統(tǒng)分解后的復(fù)雜程度。按照耦合程度從弱到強(qiáng),可以將其分成5級,分別是:數(shù)據(jù)耦合、同構(gòu)耦合、控制耦合、公用耦合和內(nèi)容耦合。選項(xiàng)C),沒有這種耦合方式。

42.C解析:本題主要考查的用二維數(shù)組首地址和下標(biāo)來引用二維數(shù)組元素的方法。通過分析可知,程序中的雙重循環(huán)定義了一個(gè)如下的二維數(shù)組:

由于數(shù)組的下標(biāo)是從0開始的,所以二維數(shù)組元素a[i][j]表示的是二維數(shù)組a的第i+1行、第j+1列對應(yīng)位置的元素。

43.B解析:x--是先使用x的值,后進(jìn)行自減運(yùn)算,所以輸出的結(jié)果應(yīng)當(dāng)為23。

44.B解析:f函數(shù)的功能是返回地址為x,y的兩個(gè)數(shù)中值鉸的數(shù)的地址,本題輸出結(jié)果是7,8,7。

45.D解析:異或運(yùn)算符(^)的運(yùn)算規(guī)則是:參加運(yùn)算的兩個(gè)相應(yīng)位同號,則結(jié)果為0(假);異號則為1(真)。取反運(yùn)算符(-)的運(yùn)算規(guī)則是:對一個(gè)二進(jìn)制數(shù)按位取反,即將0變?yōu)?,1變?yōu)?。本題(-3)是對3(二進(jìn)制形式為00000011)按位取反即11111100。表達(dá)式(2+x)(-3)的值就等價(jià)于(00000010+10100111)^11111100,結(jié)果為01010101。

46.D解析:選項(xiàng)A)在C語言中是一個(gè)合法的關(guān)系表達(dá)式,但它并不代表數(shù)學(xué)式o<=x<100。計(jì)算0<=x<100時(shí),從左到右結(jié)合,先計(jì)算0<=x,其結(jié)果只能是0或1,然后再比較0<100或1<100。根據(jù)運(yùn)算符的優(yōu)先級,選項(xiàng)B)先判斷j==0是否成立,其結(jié)果只能是0或1,然后再將0或1賦給i。選項(xiàng)C)中,(char)(65+3)為類型強(qiáng)制轉(zhuǎn)換,將整數(shù)型數(shù)據(jù)轉(zhuǎn)換為字符型。選項(xiàng)D)是將一個(gè)數(shù)據(jù)賦給一個(gè)表達(dá)式,等號左邊不合要求,所以錯(cuò)誤。

47.B解析:本題考核的知識點(diǎn)是賦值語句的正確使用。C語言中賦值語句是由賦值表達(dá)式加“;”構(gòu)成的.賦值表達(dá)式的形式為:變量:表達(dá)式;。選項(xiàng)A中a++相當(dāng)于a+1,是賦值語句;選項(xiàng)C和選項(xiàng)D也是賦值語句.只有選項(xiàng)B不是,因?yàn)檫x項(xiàng)B中“==”符號是等于的意思,并不是賦值運(yùn)算符,所以,4個(gè)選項(xiàng)中B符合題意。

48.B解析:在C語言中,數(shù)組的下標(biāo)默認(rèn)為0,因此數(shù)組p的下標(biāo)范圍為:0~7。程序循環(huán)過程為:第1次循環(huán)i=0,執(zhí)行循環(huán),并且i自加,得i=1,因此p[i]為p[1]=12,12%2=0,不執(zhí)行后面的語句;接著進(jìn)行第2次循環(huán),此時(shí)i=1,小于7執(zhí)行循環(huán),并且i自加,得i=2,因此p[i]為p[2]=13,13%2=1,執(zhí)行后面的語句;這樣一直到退出循環(huán)。最后j的值為j=13+15+17=45。

49.B解析:我們嚴(yán)格區(qū)分調(diào)試與測試,調(diào)試是已知有錯(cuò)誤而來找錯(cuò)誤,是被動(dòng)的;測試有很多種,比如未發(fā)現(xiàn)錯(cuò)誤但不能保證程序沒錯(cuò)而來找BUG,還比如我們運(yùn)行測試程序是否符合用戶的要求,是主動(dòng)的。所以答案是選項(xiàng)B。A、C、D都是具體的程序調(diào)試方法,而B是宏觀的程序測試方法。測試有單元測試、集成測試、確認(rèn)測試、系統(tǒng)測試。比如我們在進(jìn)行單元測試時(shí),發(fā)現(xiàn)程序有錯(cuò)誤,我們再可以根據(jù)A、C、D的方法來找錯(cuò)誤。

50.A解析:stdin是標(biāo)準(zhǔn)輸入設(shè)備的文件指針,不需定義直接可以使用,它隨系統(tǒng)的啟動(dòng)而打開,隨系統(tǒng)的關(guān)閉而關(guān)閉,fgetc()函數(shù)的作用是從某個(gè)文件中讀取一個(gè)數(shù)據(jù),其參數(shù)為要讀取文件的文件指針。fopen()函數(shù)有兩個(gè)參數(shù),第一個(gè)參數(shù)是打開的文件名,第二個(gè)參數(shù)是文件打開模式,兩個(gè)參數(shù)都是字符串,本例中“four=fopen('abc.txt','w');”語句的fopen()函數(shù)參數(shù)是錯(cuò)誤的,應(yīng)該用雙引號“w”,正確的應(yīng)改為fout=fopen(“abc.tx”,“w”);。

51.D結(jié)構(gòu)化程序設(shè)計(jì)的基本要點(diǎn):①采用自頂向下、逐步求精的程序設(shè)計(jì)方法;②任何程序都可由順序、選擇和循環(huán)3種基本控制結(jié)構(gòu)構(gòu)造。

52.B解析:C語言提供六種位運(yùn)算符,按優(yōu)先級由高到低的順序分別為:取反(~)、左移(<<)和右移(>>)、按位與(&)、按位異或(∧)、按位或(|)。所以表達(dá)式c=ab<<1先運(yùn)算b<<1得二進(jìn)制值為00001100,再運(yùn)算a∧00001100,最后得二進(jìn)制值00001111。

53.A解析:本題考核的知識點(diǎn)是宏定義的簡單應(yīng)用。本題中首先將所有的宏替換掉,則表達(dá)式為i=4+4*4+4/2+2*2+2,故最后輸出的i的值為28。所以,4個(gè)選項(xiàng)中選項(xiàng)A符合題意。

54.D解析:a='ABCD'書寫錯(cuò)誤,因?yàn)椤?;”左邊不能出現(xiàn)常量;數(shù)組名s是代表s數(shù)組首地址的地址常量,而不是變量;字符串只有在定義時(shí)維數(shù)可以省略。

55.C解析:函數(shù)調(diào)用的一般形式為:函數(shù)名(實(shí)參表列);,實(shí)參與形參的個(gè)數(shù)應(yīng)相等,類型應(yīng)一致,在調(diào)用函數(shù)時(shí),不要指定其返回類型,對于返回類型為void的函數(shù),不能作為賦值表達(dá)式的組成部分,所以選C。

56.D

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

58.C解析:alpha[0]指向“ABCD'’的首地址;alpha[1]指向“EFGH'’的首地址;alpha[2]指向“IJKL”的首地址,依此類推。當(dāng)初行p=alpha后,p指向指針數(shù)組alpha的首地址。for循環(huán)中輸出了4個(gè)字符串。

59.C解析:C語言中:strcpy(st1,st2);,其兩個(gè)參數(shù)均為字符指針或字符數(shù)組,選項(xiàng)C中的字符串指針str3沒有指向具體有效的存儲單元,故是錯(cuò)誤的調(diào)用。

60.D解析:本題考查了軟件工程的基本概念。軟件工程包括3個(gè)要素,即方法、工具和過程。方法是完成軟件工程項(xiàng)目的技術(shù)手段;工具支持軟件的開發(fā)、管理和文檔生成;過程支持軟件開發(fā)的各個(gè)環(huán)節(jié)的控制和管理。

61.B\n從題目中可知,\O、\t、\\分別為一個(gè)字符,而sizeof是求字節(jié)個(gè)數(shù)的函數(shù),其中包括\O占的字節(jié),strlen函數(shù)是求數(shù)組長度的函數(shù);其以\0結(jié)束,因此strlen的值為5,sizeof的值為20。

\n

62.C在本題程序中,首先定義了一個(gè)全局整型變量b,并給其賦初值為2,然后定義一個(gè)函數(shù)func,該函數(shù)帶有一個(gè)指針類型的形參,在函數(shù)體中,通過形參的值來改變?nèi)肿兞縝的值,b+=*a等價(jià)于b=b+(*a),然后通過return語句返回計(jì)算后的變量b的結(jié)果。

在主函數(shù)中,定義兩個(gè)整型變量a和res,并都賦初值為2,然后調(diào)用func函數(shù),傳遞的形參是變量a的地址,即使形參指針變量a指向?qū)崊⒆兞縜的值,通過b+=*a計(jì)算,可以得到b=2+2=4。由于變量b是一個(gè)全局變量,作用域是整個(gè)程序,而非函數(shù)func,因此,在主函數(shù)中變量res的最后結(jié)果為2+4=6,程序最后的輸出結(jié)果為6。

63.D

64.C由于a小于b,所以所有選項(xiàng)中的條件都為假,c選項(xiàng)中實(shí)際執(zhí)行了a=b;b=c;兩個(gè)操作。而A、B、D選項(xiàng)由于條件不成立,所以什么也沒有做,所以選擇c選項(xiàng)。

65.C

\n語句charp[]={a,b,c);定義了一個(gè)一維字符數(shù)組p[],并用3個(gè)字符a,b,c進(jìn)行了初始化;而語句q[]='abe'表示定義了一個(gè)一維字符數(shù)組,并用一個(gè)字符串常量'abc'進(jìn)行了初始化。在C語言中,系統(tǒng)在每個(gè)字符串常量的最后自動(dòng)加入一個(gè)字符\0作為字符串的結(jié)束符。所以函數(shù)sizeof(q)=4,而sizeof(p)=3,因而選項(xiàng)C為正確答案。

\n

\n

\n

66.B

\n①以內(nèi)模式為框架所組成的數(shù)據(jù)庫,1物理數(shù)據(jù)庫;②以概念模式為框架所組成的數(shù)據(jù)庫叫概念數(shù)據(jù)庫;③以外模式為框架所組成的數(shù)據(jù)庫叫用戶數(shù)據(jù)庫。它是真實(shí)存在于計(jì)算機(jī)外存中的數(shù)據(jù)庫。

\n

67.C“P”是指針變量,指向一個(gè)地址:“*P”為P指針?biāo)赶虻刂返膬?nèi)容“&”是取變量地址。

68.C

\nelse與離它最近的if構(gòu)成if…else語句,而當(dāng)a為2時(shí),第一個(gè)if語句不成立,因此什么也不做,即c的值仍然為2,故選擇C選項(xiàng)。

\n

69.BA選項(xiàng)語句中b變量還沒有定義不能直接用于給a變量賦值。c選項(xiàng)語句中·b、-c表示的是一個(gè)實(shí)句中a=0.0后面應(yīng)該為逗號,不能是分號。

溫馨提示

  • 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

提交評論