2022-2023年河南省許昌市全國(guó)計(jì)算機(jī)等級(jí)考試C語(yǔ)言程序設(shè)計(jì)真題(含答案)_第1頁(yè)
2022-2023年河南省許昌市全國(guó)計(jì)算機(jī)等級(jí)考試C語(yǔ)言程序設(shè)計(jì)真題(含答案)_第2頁(yè)
2022-2023年河南省許昌市全國(guó)計(jì)算機(jī)等級(jí)考試C語(yǔ)言程序設(shè)計(jì)真題(含答案)_第3頁(yè)
2022-2023年河南省許昌市全國(guó)計(jì)算機(jī)等級(jí)考試C語(yǔ)言程序設(shè)計(jì)真題(含答案)_第4頁(yè)
2022-2023年河南省許昌市全國(guó)計(jì)算機(jī)等級(jí)考試C語(yǔ)言程序設(shè)計(jì)真題(含答案)_第5頁(yè)
已閱讀5頁(yè),還剩31頁(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)介

2022-2023年河南省許昌市全國(guó)計(jì)算機(jī)等級(jí)考試C語(yǔ)言程序設(shè)計(jì)真題(含答案)學(xué)校:________班級(jí):________姓名:________考號(hào):________

一、單選題(20題)1.有以下程序:#include<stdi0.h>main(){inta=1,b=2;for(;a<8;a++){b+=a;a+=2;)printf("%d,%d\n",a,b);}程序運(yùn)行后的輸出結(jié)果是()。A.9,18B.8,11C.7,11D.10,14

2.已知小寫(xiě)母a的ASCII碼為97,大寫(xiě)字母A的ASCII碼為65,以下程序的結(jié)果是_______。main(){unsignedinta=32,b=66;printf("%c\n",a|B);}

A.66B.98C.bD.B

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

A.關(guān)系中每一個(gè)屬性對(duì)應(yīng)一個(gè)值域

B.關(guān)系中不同的屬性可對(duì)應(yīng)同一值域

C.對(duì)應(yīng)同一值域的屬性為不同的屬性

D.DOM(A)表示屬性A的取值范圍

4.有以下程序:#include<stdio,h>#include<string,h>struetSTU{intnam;floatTotalSeore;};voidf(strnctSTUp){structSTUs[2]={{20044,550},{20045,537}};p.num=s[1].num;p.TotalScore=s[1].TotalScore;main(){structSTUs[2]={{20041,703},{20042,580}};f(s[0]);printf("%d%3.Of\n",s[0].num,s[0].TotalSeore);}程序運(yùn)行后的輸出結(jié)果是()。

A.20045537B.20044550C.20042580D.20041703

5.下列正確的實(shí)型常量是()。

A.E3.4B.-12345C.2.2eO.8D.4

6.有下列程序段:intn,t=1,S=0;scanf("%d",&n);do{s=s+t;t=t-2;while(t!=n);為使此程序段不陷入循環(huán),從鍵盤(pán)輸入的數(shù)據(jù)應(yīng)該是()。A.任意正奇數(shù)B.任意負(fù)偶數(shù)C.任意正偶數(shù)D.任意負(fù)奇數(shù)

7.

8.第

3

已知:intc[3][4];則對(duì)數(shù)組元素引用正確的是

A.c[1][4]B.c[1.5][0]C.c[1+0][0]D.以上表達(dá)都錯(cuò)誤

9.程序流程圖(PFD)中的箭頭代表的是

A.數(shù)據(jù)流B.控制流C.調(diào)用關(guān)系D.組成關(guān)系

10.軟件設(shè)計(jì)中劃分模塊的一個(gè)準(zhǔn)則是()。A.低內(nèi)聚低耦合B.高內(nèi)聚低耦合C.低內(nèi)聚高耦合D.高內(nèi)聚高耦合

11.二維數(shù)組A按行順序存儲(chǔ),其中每個(gè)元素占1個(gè)存儲(chǔ)單元。若A[1][1]的存儲(chǔ)地址為420,A[3][3]的存儲(chǔ)地址為446,則A[5][5]的存儲(chǔ)地址為_(kāi)______

A.470B.471C.472D.473

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

A.循環(huán)隊(duì)列是隊(duì)列的一種鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)

B.循環(huán)隊(duì)列是隊(duì)列的一種順序存儲(chǔ)結(jié)構(gòu)

C.循環(huán)隊(duì)列中的隊(duì)尾指針一定大于隊(duì)頭指針

D.循環(huán)隊(duì)列中的隊(duì)尾指針一定小于隊(duì)頭指針

13.輸入序列為ABC,輸出為CBA時(shí),經(jīng)過(guò)的棧操作為()。

A.push,pop,push,pop,push,pop

B.push,push,push,pop,pop,pop

C.push,push,pop,pop,push,pop

D.push,pop,push,push,pop,pop

14.有以下程序:voidsum(int*a){a[0]=a[1];}main(){intaa[10]={1,2,3,4,5,6,7,8,9,10},i;for(i=1;i>0;i--)sum(&aa[i]);print("%d\n",aa[0]);}程序運(yùn)行后的輸出結(jié)果是______。

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

15.有以下程序:#include<stdio.h>main(){inti,data;scanf(“%d”,&data);for(i=0;i<8;i++){if(i<=data)continue;printf(“%d,”,i);}}程序運(yùn)行時(shí)輸入5并按〈Enter〉鍵,則程序輸出結(jié)果為()。

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

16.有以下程序:#include#definePT3.5;#defineS(x)PT*x*x;Main(){inta=1,b=2;printf("%4.1f\n",S(a+b));程序運(yùn)行后的輸出結(jié)果是()。A.7.5B.31.5C.程序有錯(cuò)無(wú)輸出結(jié)果D.14.0

17.有以下程序:#include<stdio.h>intfun(intx,inty){if(x!=y)return((x+y)/2);elsereturn(x);}main(){inta=4,b=5,c=6;printf(“%d\n”,fun(2*a,fun(b,c)));}程序運(yùn)行后的輸出結(jié)果是()。

A.3B.6C.8D.12

18.在位運(yùn)算中,操作數(shù)左移一位,其結(jié)果相當(dāng)于A.A.操作數(shù)乘以2

B.操作數(shù)除以2

C.操作數(shù)除以4

D.操作數(shù)乘以4

19.以下不能輸出字符A的語(yǔ)句是(注:字符A的ASCII值為65,字符a的ASCII值為97)()。

A.printf(“%c\n”,‘a(chǎn)’-32);

B.printf(“%d\n”,‘A’);

C.printf(“%c\n”,65);

D.printf(“%c\n”,‘B’-1);

20.有以下程序:#include<stdio.h>voidfunl(char*p){char*q;q=p;while(*q!='\0')}(*q)++;q++;}mains(){chara[]={"Program"},*p;p=&a[3];fun1(p);printf("%s\n",a);}程序執(zhí)行后的輸出結(jié)果是()。

A.ProhsbnB.PrphsbnC.ProgsbnD.Program

二、2.填空題(20題)21.數(shù)據(jù)結(jié)構(gòu)分為線性結(jié)構(gòu)和非線性結(jié)構(gòu),線性表、棧和隊(duì)列都屬于【】。

22.解題方案的準(zhǔn)確而完整的描述稱為_(kāi)_____。

23.一個(gè)類(lèi)可以從直接或間接的祖先中繼承所有屬性和方法。采用這個(gè)方法提高了軟件的【】。

24.語(yǔ)句“int(*ptr)();”的含義是______是指向函數(shù)的指針,該函數(shù)返回一個(gè)int型數(shù)據(jù)。

25.按照邏輯結(jié)構(gòu)分類(lèi),數(shù)據(jù)結(jié)構(gòu)可分為線性結(jié)構(gòu)和非線性結(jié)構(gòu),二叉樹(shù)屬于______。

26.在兩種基本測(cè)試方法中,【】測(cè)試的原則之一是保證所測(cè)模塊中每一個(gè)獨(dú)立路徑至少要執(zhí)行一次。

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

28.長(zhǎng)度為n的順序存儲(chǔ)線性表中,當(dāng)在任何位置上插入一個(gè)元素概率都相等時(shí),插入一個(gè)元素所需移動(dòng)元素的平均個(gè)數(shù)為【】。

29.下列語(yǔ)句的輸出結(jié)果是______。

chars[20]="aaaa",*sp=s;

puts(strcat(sp,"AAAAA"));

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

main()

{

inta[]={2,4,6},*ptr=&a[0],x=8,y,z;

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

z=(*(ptr+y)<x)?*(ptr+y):x;

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

}

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

main()

{

chara[]="123456789",*p;

inti=0;

p=a;

while(*p)

{

if(i%2==0)

*p='*';

p++;i++;

}

puts(a);

}

32.表示條件;10<x<100或x<0的C語(yǔ)言表達(dá)式是【】。

33.已有定義如下:

structnode

{intdata;

structnode*next;

}*p;

以下語(yǔ)句調(diào)用malloc函數(shù),使指針p指向一個(gè)具有structnode類(lèi)型的動(dòng)態(tài)存儲(chǔ)空間。請(qǐng)?zhí)羁铡?/p>

p=(structnode*)malloc(【】);

34.下列程序的功能是對(duì)輸入的一行字符中的數(shù)字字符的字面值累加,輸出此累加和,請(qǐng)?zhí)羁铡?/p>

#include<stdio.h>

#include<ctype.h>

main()

{charc;

inta,s=0;

while(______)

if(isdigit(C))

{a=c-'0';s+=a;}

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

}

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

#include<stdio.h>

main()

{chars[20];

scanf("%s",s);

printf("%s",s);

}

運(yùn)行程序,輸入HOWAREYOU。

36.對(duì)長(zhǎng)度為10的線性表進(jìn)行冒泡排序,對(duì)壞情況下需要比較的次數(shù)為_(kāi)_____

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

main()

{chars[]="9876",*p;

for(p=s;p<s+2;p++)printf("%s\n",p);

}

38.在一個(gè)容量為15的循環(huán)隊(duì)列中,若頭指針front=6,尾指針Year=9,則該循環(huán)隊(duì)列中共有【】個(gè)元素。

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

main()

{inta=2,b=4,c=6;

int*p1=&a,*p2,&b,*p;

*(p=&c)=*p1*(*p2);

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

}

40.調(diào)用C語(yǔ)言標(biāo)準(zhǔn)庫(kù)函數(shù)時(shí)要求用【】命令。

三、1.選擇題(20題)41.有以下程序main(){intm[][3]={1,4,7,2,5,8,3,6,9};inti,j,k=2;for(i=0;i<3;i++){printf("%d",m[k][i]);}}執(zhí)行后輸出結(jié)果是

A.456B.258C.369D.789

42.在函數(shù)調(diào)用過(guò)程中,如果函數(shù)funA調(diào)用了函數(shù)funB,函數(shù)funB又調(diào)用了函數(shù)funA,則

A.稱為函數(shù)的直接遞歸調(diào)用B.稱為函數(shù)的間接遞歸調(diào)用C.稱為函數(shù)的循環(huán)調(diào)用D.C語(yǔ)言上不允許這樣的遞歸調(diào)用

43.下列程序的執(zhí)行結(jié)果是()。#include<stdio.h>main(){inta,b,c;a=b=2:c=(a++)-1;printf("%d,%d",a,c);c+=(a+=-a+++(++B);printf("%d,%d",a,c);}

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

44.下列程序執(zhí)行后的輸出結(jié)果是______。main(){charx=0xFFFF;printf("%d\n",x--);}

A.-32767B.FFFEC.-1D.-32768

45.有下列程序:main(){inti,j;for(i=1;i<4;i++){for(j=i;j<4;j++)printf("%d*%d=%d",i,j,i*j);printf("\n");}}程序運(yùn)行后的輸出結(jié)果是()。

A.1*1=11*2=21*3=32*1=22*2=43*1=3

B.1*1=11*2=21*3=32*2=42*3=63*3=9

C.1*1=11*2=22*2=41*3=32*3=63*3=9

D.1*1=12*1=22*2=43*1=33*2=63*3=9

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

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

47.下列程序的輸出結(jié)果是()。#include<stdio.h>main(){inti;for(i=1;i<=10;i++){if((i*i>=20)&&(i*i<=100))break;}printf("%d\n",i*i);}

A.49B.36C.25D.64

48.若有說(shuō)明語(yǔ)句:double*p,a;則能通過(guò)scanf語(yǔ)句正確給輸入項(xiàng)讀入數(shù)據(jù)的程序段是()。

A.*p=&a;sCanf("%1f",p);

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

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

D.p=&a;scanf("%1f",p);

49.有以下程序main(){char*s[]={"one","two","three"},*P;p=s[1];printf("%c,%s\n",*(p+1),s[0]);}執(zhí)行后輸出結(jié)果是

A.n,twoB.t,oneC.w,oneD.o,two

50.假定所有變量均已正確說(shuō)明,下列程序段運(yùn)行后x的值是()。a=b=c=0;x=12;if(!a)x--;elsex=5:if(c)x=3:elsex=4:A.11B.4C.12D.3

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

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

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

A.0B.-180C.-100D.-90

53.有以下程序;voidss(char*s,chart){while(*s){if(*s==t)*s=t-'a'+'A';s++;}}main(){charstr1[100]="abcddfefdbd",c='d';ss(str1,c);printf("%s\n",str1);}程序運(yùn)行后的輸出結(jié)果是()。

A.ABCDDEFEDBDB.abeDDfefDbDC.abcAAfefAbAD.Abcddfefdbd

54.C語(yǔ)言程序的基本單位是______。

A.程序行B.語(yǔ)句C.函數(shù)D.字符

55.

A.x/y*zB.x*(1/(y*z))C.x/y*1/zD.x/y/z

56.有以下程序:main(){inta=1,b=3,c=5;int*p1=&a,*p2=&b,*p=&c;*p=*p1*(*p2);printf("%d\n",C);}執(zhí)行后的輸出結(jié)果是()。

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

57.有以下程序:voidfun(inta,intb,intc){a=456,b=567,c=678;}main(){intx=10,y=20,z=30;fun(x,y,z);printf("%d,%d,%d\n",x,y,z);}輸出結(jié)果是

A.30,20,10B.10,20,30C.456,567,678D.678,567,456

58.若有下列定義(設(shè)int類(lèi)型變量占2個(gè)字節(jié)):

inti=8,j=9;

則下列語(yǔ)句:

printf("i=%u,j=%x\n".i,j);

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

A.i=8,j=9B.8.9C.89D.i=8,i=8

59.下列合法的字符型常量是()。

A.'\x13'B.'\081'C.'65'D.\n

60.c語(yǔ)言規(guī)定,在一個(gè)源程序中,main函數(shù)的位置()。

A.必須在最開(kāi)始B.必須在系統(tǒng)調(diào)用的庫(kù)函數(shù)的后面C.可以任意D.必須在最后

四、選擇題(20題)61.有以下程序:

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

A.22B.76C.72D.62

62.

63.有以下程序:

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

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

64.一棵二叉樹(shù)共有25個(gè)結(jié)點(diǎn),其中5個(gè)是葉子結(jié)點(diǎn),則度為l的結(jié)點(diǎn)數(shù)為()。

A.16B.10C.6D.4

65.

66.

67.

68.若有定義floatX=1.5;inta=1,b=3,C=2;,則正確的switch語(yǔ)句是()。

A.

B.

C.

D.

69.有以下程序:

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

A.3B.6C.9D.2

70.下列排序方法中,最壞情況下比較次數(shù)最少的是()。

A.冒泡排序B.簡(jiǎn)單選擇排序C.直接插入排序D.堆排序

71.棧和隊(duì)列的共同點(diǎn)是()。

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

72.n個(gè)頂點(diǎn)的連通圖中邊的條數(shù)至少為_(kāi)_____。A.A.0B.1C.n-1D.n

73.以下關(guān)于C語(yǔ)言的敘述中正確的是()。

A.C語(yǔ)言中的注釋不可以?shī)A在變量名或關(guān)鍵字的中間

B.C語(yǔ)言中的變量可以在使用之前的任何位置進(jìn)行定義

C.在C語(yǔ)言算術(shù)表達(dá)式的書(shū)寫(xiě)中,運(yùn)算符兩側(cè)的運(yùn)算數(shù)類(lèi)型必須一致

D.C語(yǔ)言的數(shù)值常量中夾帶空格不影響常量值的正確表示

74.

75.有以下程序:

voidmain()

{chars[]="159",*p;

p=s;

printf("%c",*p++);printf("%c",*p++);

}

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

A.15B.16C.12D.59

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

A.為了建立一個(gè)關(guān)系,首先要構(gòu)造數(shù)據(jù)的邏輯關(guān)系

B.表示關(guān)系的二維表中各元組的每一個(gè)分量還可以分成若干數(shù)據(jù)項(xiàng)

C.一個(gè)關(guān)系的屬性名表稱為關(guān)系模式

D.一個(gè)關(guān)系可以包括多個(gè)二維表

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

A.循環(huán)隊(duì)列有隊(duì)頭和隊(duì)尾兩個(gè)指針,因此,循環(huán)隊(duì)列是非線性結(jié)構(gòu)

B.在循環(huán)隊(duì)列中,只需要隊(duì)頭指針就能反映隊(duì)列中元素的動(dòng)態(tài)變化情況

C.在循環(huán)隊(duì)列中,只需要隊(duì)尾指針就能反映隊(duì)列中元素的動(dòng)態(tài)變化情況

D.循環(huán)隊(duì)列中元素的個(gè)數(shù)是由隊(duì)頭指針和隊(duì)尾指針共同決定的

78.

79.有以下程序

#include<stdio.h>

intfun(int(*s)[4],intn,intk)

{intm,i;

m=s[0][k];

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

if(s[i][k]>m)m=s[i][k];

returnm;

}

main()

{inta[4][4]={{1,2,3,4},{11,12,13,14},{2l,22,23,24},{31,32,33,34}};

printf("%d\n",fun(a,4,0));

}

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

A.4B.34

C.31D.32

80.有以下程序:main{union{charch[2];intd;}s;d=0x4321;printf("%x,%x\n",S.ch[0],S.ch[l]);}在16位編譯系統(tǒng)上,程序執(zhí)行后的輸出結(jié)果是()A.21,43B.43,21C.43,00D.21,00

五、程序改錯(cuò)題(1題)81.下列給定程序中,函數(shù)ptoc的功能是:利用插入排序法對(duì)字符串中的字符按從小到大的順序進(jìn)行排序。插入法的基本方法是:先對(duì)字符串中的頭兩個(gè)元素進(jìn)行排序,然后把第3個(gè)字符插入前兩個(gè)字符中,插入后前3個(gè)字符依然有序;再把第4個(gè)字符插入前三個(gè)字符中,待排序的字符串已

在主函數(shù)中賦予。

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

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

試題程序:

#include<strin9.h>

#include<stdi0.h>

#defineM80

voidproc(char*arr)

{inti,j,n;charch;

n=strlen(arr):

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

//****found****

{c=arr[i];

j=i-1;

while((j>=o)&&(ch<arr[j]))

{

arr[j+1]=arr[j];

j--;

}

arr[j+1]=ch;

}

}

voidmain

{

chara[M]="QWERTYUIOPASDFGHJKLMNBVCXZ";

printf("Theoriginalstring:%s\n",a);

proc(a);

printf("Thestringaftersortin9:

%s\n\n",a);

}

六、程序設(shè)計(jì)題(1題)82.使用VC++2010打開(kāi)考生文件夾下prog1中的解決方案。此解決方案的項(xiàng)目中包含一個(gè)源程序文件prog1.c。在此程序中,請(qǐng)編寫(xiě)函數(shù)fun(),其功能是將一個(gè)數(shù)字字符串轉(zhuǎn)換成與其面值相同的長(zhǎng)整型整數(shù)??烧{(diào)用strlen函數(shù)求字符串的長(zhǎng)度。例如,在鍵盤(pán)輸入字符串2345210,函數(shù)返回長(zhǎng)整型整數(shù)2345210。注意:部分源程序存放在文件prog1.c中,請(qǐng)勿改動(dòng)主函數(shù)main()和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun()指定的部位填入所編寫(xiě)的若干語(yǔ)句。試題程序:

參考答案

1.D第一次執(zhí)行循環(huán)前,a=1,滿足a<8,執(zhí)行循環(huán)后,b=3,a=3。執(zhí)行完a++操作后,a=4。由于a<8,執(zhí)行第二次循環(huán)后,b=7,a=6,執(zhí)行完a++操作后,a=7。由于a<8,執(zhí)行第三次循環(huán)后,b=14,a=9,執(zhí)行完a++操作后a=10。此時(shí)不滿足a<8,跳出循環(huán)。

2.C解析:位運(yùn)算符“|”的作用是按位或,即兩個(gè)二進(jìn)制數(shù)的相應(yīng)位中只要有一個(gè)為1,該位的結(jié)果值為1。最后以字符型輸出,98對(duì)應(yīng)的字符“b”

3.C解析:關(guān)系中每一個(gè)屬性都有一個(gè)取值范圍,稱為屬性的值域。每—個(gè)屬性對(duì)應(yīng)一個(gè)值域,不同屬性可對(duì)應(yīng)同一個(gè)值域。對(duì)應(yīng)同一值域的卻不一定是不同的屬性。屬性的值域用DOM(A)表示,A表示屬性的名稱。

4.D解析:函數(shù)f中定義了結(jié)構(gòu)體類(lèi)型的變量P作為形參,在main函數(shù)中,將結(jié)構(gòu)體變量s[0]中的值傳給了形參變量P,在函數(shù)f中,雖然改變了p中的內(nèi)容,但其改變對(duì)main函數(shù)中s[0]的值不產(chǎn)生影響,所以main函數(shù)中輸出s[0]的數(shù)據(jù)仍然是main函數(shù)中初始化時(shí)的數(shù)據(jù)。

5.B解析:實(shí)型常量有兩種書(shū)寫(xiě)形式:①小數(shù)形式,它由符號(hào)、整數(shù)部分、小數(shù)點(diǎn)及小數(shù)部分組成;②指數(shù)形式,由十進(jìn)制小數(shù)形式加上指數(shù)部分組成,其形式為十進(jìn)制小數(shù)e指數(shù)或十進(jìn)制小數(shù)E指數(shù)。注:e或E后面的指數(shù)必須是整數(shù),并且在e或E的前面必須有數(shù)字。本題中,選項(xiàng)A)中E的前面沒(méi)有數(shù)字,因此錯(cuò)誤。選項(xiàng)C)中0.8不是整數(shù),因此錯(cuò)誤。選項(xiàng)D)中4是整型常量而不是實(shí)型常量。

6.D本題主要考查do—while循環(huán),因?yàn)樽兞縯的初始值等于1,經(jīng)過(guò)第一次do-while循環(huán)后,執(zhí)行t=t-1這條語(yǔ)句一次,所以變量t的值為-1,判斷關(guān)系表達(dá)式t!=n是否成立,如果關(guān)系表達(dá)式成立,則執(zhí)行第二次循環(huán),如果關(guān)系表達(dá)式不成立,退出循環(huán)。由此可見(jiàn),只要輸入變量n的值為負(fù)奇數(shù),則一定會(huì)使t==n成立,故退出do-while循環(huán)。

7.A

8.C

9.B解析:程序流程圖(PFD)是一種傳統(tǒng)的、應(yīng)用廣泛的軟件過(guò)程設(shè)計(jì)表示工具,通常也稱為程序框圖,其箭頭代表的是控制流。

10.B一般較優(yōu)秀的軟件設(shè)計(jì),應(yīng)盡量做到高內(nèi)聚、低耦合,即減弱模塊之間的耦合性和提高模塊內(nèi)的內(nèi)聚性,有利于提高模塊的獨(dú)立性。

11.C

12.B在實(shí)際應(yīng)用中,隊(duì)列的順序存儲(chǔ)結(jié)構(gòu)一般采用循環(huán)隊(duì)列的形式。當(dāng)循環(huán)隊(duì)列為滿或者為空時(shí),隊(duì)尾指針=隊(duì)頭指針。本題答案為B選項(xiàng)。

13.B

14.D解析:C語(yǔ)言覿定,實(shí)參變量對(duì)形參變量的數(shù)據(jù)傳遞是“值傳遞”,只由實(shí)參傳給形參,而不能由形參傳回來(lái)給實(shí)參。函數(shù)調(diào)用結(jié)束后,形參單元被釋放,實(shí)參單元仍保留并維持原值。本題要求輸出aa[0]的值,結(jié)果應(yīng)為1。

15.Cmain函數(shù)首先定義一個(gè)整型變量data,使用scanf函數(shù)輸入一個(gè)整數(shù)賦給data。接著執(zhí)行for循環(huán),i的值為0~7。當(dāng)i的值不大于data的值時(shí),使用continue語(yǔ)句跳過(guò)當(dāng)前循環(huán),進(jìn)入下一輪循環(huán)。若從鍵盤(pán)輸入5,data的值為5,i取值為0~5時(shí),都不執(zhí)行printf語(yǔ)句。當(dāng)i取值為6、7時(shí),執(zhí)行printf語(yǔ)句,輸出6,7。故本題答案為C選項(xiàng)。

16.C宏定義不是C語(yǔ)句,末尾不需要有分號(hào)。所以語(yǔ)句Printf("%4.1f\\n",,S(a+b));展開(kāi)后為printf("%4.1f\\n",3.5;*a+b*a+b;);所以程序會(huì)出現(xiàn)語(yǔ)法錯(cuò)誤。

17.Bfun函數(shù)的功能是獲取2個(gè)數(shù)的平均值,注意平均值是整型數(shù),小數(shù)會(huì)被截?cái)唷U{(diào)用函數(shù)“fun(2*4,fun(5,6))”相當(dāng)于調(diào)用函數(shù)“fun(8,5)”,平均值是6。故本題答案為B選項(xiàng)。

18.A左移運(yùn)算符“<<”是雙目運(yùn)算符,其功能是把“<<”左邊的運(yùn)算數(shù)的各二進(jìn)位全部左移若干位,由“<<”右邊的數(shù)指定移動(dòng)的位數(shù),高位丟棄,低位補(bǔ)0。例如,a<<4是把a(bǔ)的各二進(jìn)位向左移動(dòng)4位。如a=00000011(十進(jìn)制3),左移4位后為00110000(十進(jìn)制48)。

19.BB選項(xiàng)輸出的格式為%d,即整型格式,所以輸出字符‘A’的ASCII值65,而不是字母A。因?yàn)榇髮?xiě)字母比其對(duì)應(yīng)的小寫(xiě)字母的ASCII值小32,所以A選項(xiàng)正確。字符‘A’的ASCII值是65,以%c格式輸出可以輸出字母A,所以C選項(xiàng)正確。因?yàn)樽址瓵’的ASCII值比字符‘B’的小1,所以D選項(xiàng)正確。故本題答案為B選項(xiàng)。

20.A解析:在main函數(shù)中,p=&a[3]說(shuō)明指針p指向a數(shù)組的第4個(gè)字符(即字符\'g\');fun1中的q=p意味著指針q也指向了a數(shù)組的第4個(gè)字符。執(zhí)行while語(yǔ)句,表達(dá)式(*q)++使\'g\'+1,使\'g\'變成了\'h\';表達(dá)式q++使q指向a[4]的起始地址。繼續(xù)執(zhí)行while語(yǔ)句,直到遇到\'\\0\'結(jié)束循環(huán),返回形參。最終得到的結(jié)果是從字符串'Program\'的第4個(gè)字符開(kāi)始,每個(gè)字符加1。

21.線性結(jié)構(gòu)線性結(jié)構(gòu)解析:本題考查了數(shù)據(jù)結(jié)構(gòu)的基本概念。與棧類(lèi)似,隊(duì)列也是線性表,可以采用鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu),所以帶鏈的隊(duì)列屬于線性結(jié)構(gòu)。

22.算法算法解析:算法是指對(duì)解題方案的準(zhǔn)確而完整的描述。

23.可重用性繼承的優(yōu)點(diǎn):相似的對(duì)象可以共享程序代碼和數(shù)據(jù)結(jié)構(gòu),從而大大減少了程序中的冗余,提高軟件的可重用性。

24.ptrptr解析:本題考查函數(shù)指針的概念。函數(shù)指針的定義格式是:類(lèi)型標(biāo)識(shí)符(*指針變量名)()。注:“類(lèi)型標(biāo)識(shí)符”為函數(shù)返回值的類(lèi)型。

25.非線性結(jié)構(gòu)非線性結(jié)構(gòu)解析:對(duì)于一個(gè)非空的數(shù)據(jù)結(jié)構(gòu),如果同時(shí)滿足下列兩個(gè)條件,即1)有且只有一個(gè)根結(jié)點(diǎn);2)每一個(gè)結(jié)點(diǎn)最多有一個(gè)前件,也最多有一個(gè)后件;即為線性結(jié)構(gòu),而二叉樹(shù)的結(jié)點(diǎn)可能存在兩個(gè)后件,所以是非線性結(jié)構(gòu)。

26.白盒或白箱或白盒子或WhiteBox白盒或白箱或白盒子或WhiteBox解析:本題考查軟件工程的測(cè)試。測(cè)試一般有兩種方法:黑盒測(cè)試和白盒測(cè)試。黑盒測(cè)試不考慮程序的內(nèi)部邏輯結(jié)構(gòu)和處理過(guò)程,只著眼于程序的外部特性。用黑盒測(cè)試來(lái)發(fā)現(xiàn)程序中的錯(cuò)誤,必須用所有可能的輸入數(shù)據(jù)來(lái)檢查程序能否都能產(chǎn)生正確的輸出。白盒測(cè)試是在了解程序內(nèi)部結(jié)構(gòu)和處理過(guò)程的基礎(chǔ)上,對(duì)程序的所有路徑進(jìn)行測(cè)試,檢查路徑是否都能按預(yù)定要求正確工作。因此,劃線處應(yīng)填入“白盒(箱)”或“WhiteBox”。

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

28.n/2性表的任何位置插入一個(gè)元素的概率相等,即概率為p=1/(n+1),則插入一個(gè)元素時(shí)所需移動(dòng)元素的平均次數(shù)為E=1/(n+1)(n-i+1)=n/2。

29.aaaaAAAAAaaaaAAAAA解析:函數(shù)strcat(sp,'AAAAA')的作用是將字符中“AAAAA”連接到字符串sp的末尾,并自動(dòng)覆蓋字符數(shù)組sp末尾的\'\\0\'。

30.66解析:條件運(yùn)算符的優(yōu)先級(jí)高于賦值運(yùn)算符,因此本題先計(jì)算關(guān)系表達(dá)式(*ptr+y)<x)?*(ptr+y):x的值,再賦給變量z。當(dāng)y=0時(shí),*(ptr+y)=2,而x=8,(*(ptr+y)<x)條件為真,則整個(gè)條件表達(dá)式的值為*(ptr+y)=2,所以z=2;當(dāng)y-1時(shí),*(ptr+y)=4,(*(ptr+y)<x)條件為真,則整個(gè)條件表達(dá)式的值為*(ptr+y)=4,所以z=4;當(dāng)y=2時(shí),*(ptr+y)=6,(*(ptr+y)<x)條件為真,則整個(gè)條件表達(dá)式的值為*(ptr+y)=6,所以z=6;循環(huán)結(jié)束。因此輸出z的結(jié)果為6。

31.*2*4*6*8**2*4*6*8*解析:程序中定義了一個(gè)字符數(shù)組a,并初始化為123456789,接著定義了一個(gè)指針p并讓它指向數(shù)組a,緊接著執(zhí)行了一個(gè)while循環(huán),此循環(huán)的作用是:當(dāng)i為偶數(shù)時(shí),將“*”賦給a[i],p指向數(shù)組末尾,循環(huán)結(jié)束,此時(shí)數(shù)組中a[0]、a[2]、a[4]、a[6]和a[8]的值都為“*”,所以最后調(diào)用puts()函數(shù)輸出的a的值為*2*4*6*8*

32.(x>10&&x<100)||x<0

33.sizeof(structnode)或4sizeof(structnode)或4解析:malloc(sizeof(struetnode))的作用是開(kāi)辟一個(gè)長(zhǎng)度為sizeof(struetnode)的內(nèi)存區(qū)。(structnode*)的作用是使malloc返回的指針轉(zhuǎn)換為指向structnode類(lèi)型數(shù)據(jù)的指針。

34.(c=getchar())!='\n'(c=getchar())!='\\n'解析:分析題目可知,程序中運(yùn)用函數(shù)c=getchar()從標(biāo)準(zhǔn)輸入設(shè)備讀取下一個(gè)字符,而且是一行的字符(即沒(méi)有換行),所以條件為(c=getchar())!='\\n'。

35.HOWHOW解析:在scanf()函數(shù)中,使用空格作為分隔符,如果輸入含有空格的字符中,則不能使用scanf()數(shù),所以本題中輸入空格就返回了'\\0\\,s數(shù)組也就確定了,后面的輸入就不再讀入數(shù)組s中。

36.在最壞情況下冒泡排序法需要比較的次數(shù)為n(n-1)/2。

37.98768769876\r\n876解析:指針是一種數(shù)據(jù)類(lèi)型,這種數(shù)據(jù)類(lèi)型的變量用來(lái)存放內(nèi)存中分配的存儲(chǔ)單元的首地址。指針的定義:

類(lèi)型說(shuō)明符*指針變量名;

38.3

39.本程序定義了3個(gè)指針變量p1、p2、p,并且將a、b的地址分別賦給p1、p2,則*p1=a=2,*p2=b=4,所以表達(dá)式*p1*(*p2)的值是8。在賦值語(yǔ)句的左邊是*(p=&c),即使指針p指向了變量c,因而*(p)代表了c的存儲(chǔ)單元,賦值語(yǔ)句“*(p=&c)=*p1*(*p2);”是把整數(shù)8賦給了變量c。\r\n\r\n

40.includeinclude解析:include命令可調(diào)用標(biāo)準(zhǔn)的C語(yǔ)言庫(kù)函數(shù),可以用一對(duì)尖括號(hào)或一對(duì)雙引號(hào)將“.h”文件括起來(lái),在include前面要加“#”。

41.C解析:本題考核的知識(shí)點(diǎn)是二維數(shù)組的定義,賦值及數(shù)組元素的引用。變量k的初值為2,循環(huán)執(zhí)行了3次,分別輸出m[2][0]、m[2][1]和m[2][2],其值分別為3,6,9。所以,C選項(xiàng)為所選。

42.B解析:本題考核的知識(shí)點(diǎn)是函數(shù)遞歸調(diào)用的基本概念。在C語(yǔ)言中所謂函數(shù)的遞歸是在指在調(diào)用一個(gè)函數(shù)的過(guò)程中,又出現(xiàn)了直接或間接地調(diào)用該函數(shù)本身,直接調(diào)用該函數(shù)本身的稱為函數(shù)遞歸,而間接調(diào)用該函數(shù)稱為函數(shù)的間接遞歸調(diào)用.顯然題目中所說(shuō)得函數(shù)調(diào)用為函數(shù)的間接遞歸調(diào)用。所以,4個(gè)選項(xiàng)中選項(xiàng)B符合題意。

43.A解析:本題主要考查自加運(yùn)算符(++、--)的使用。①前綴變量“++i、-i”,在使用i之前,先使i的值加1或者減1,再使用此時(shí)的表達(dá)式的值參與運(yùn)算:②后綴變量“i++、i--”,先使用此時(shí)的表達(dá)式的值參與運(yùn)算,在使用i之后,再使i的值加1或者減1。本題中計(jì)算表達(dá)式c=(a++)-1時(shí)先使用a的值進(jìn)行計(jì)算,結(jié)果為c=2-1=1,然后將a的值加1,即執(zhí)行完此語(yǔ)句后,的值是3;表達(dá)式c+=-a+++(++b)等價(jià)于c=c+(-a++)+(++b),c=1+(-3)+3=1,此時(shí)a=4,b=3。

44.C

45.B解析:外層for循環(huán)的自變量i從1開(kāi)始,每次循環(huán)后增1,直到i等于3結(jié)束.對(duì)于外層循環(huán)自變量i的每一個(gè)值,內(nèi)層循環(huán)的自變量j每次從i開(kāi)始,每次循環(huán)后增1,直到j(luò)等于3結(jié)束。所以在每次外循環(huán)開(kāi)始后,內(nèi)層循環(huán)在一行先打印i*j=兩個(gè)乘數(shù)的積,然后回車(chē)換行,下次循環(huán)從下一行開(kāi)始打印輸出結(jié)果。

46.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)體。

47.C解析:本題考查if語(yǔ)句.當(dāng)執(zhí)行到第一個(gè)滿足(i*i>=20)&&(i*i<=100)這個(gè)條件的i出現(xiàn)時(shí),通過(guò)break語(yǔ)句跳出循環(huán),執(zhí)行下列的printf語(yǔ)句。

48.D解析:double*p,a;語(yǔ)句表示定義了一個(gè)指向雙精度型的指針變量p和雙精度型變量a,而語(yǔ)句p=&a表示將變量a的地址賦給指針變量p;scanf'('%1f',p)表示用鍵盤(pán)輸入的數(shù)賦給指針變量p所指向的地址單元中。scanf()函數(shù)要求在輸入double型數(shù)據(jù),格式控制符必須用%1f(或%1e)。否則,數(shù)據(jù)不能正確輸入。所以選項(xiàng)D)為正確答案。

49.C解析:本題考核的知識(shí)點(diǎn)是指針數(shù)組。本崽首先定義了一個(gè)有3個(gè)元素的指針數(shù)組s,并遭過(guò)賦值使s[0]指向字符串“one”s[1]指向字符串“two”,s[2]指向字符串“three”,然后通過(guò)賦值語(yǔ)句“p=s[1]”,使p指向了字符串“two”,故”(p+1)”就是字符“w”。所以,C選項(xiàng)為所選。

50.B解析:本題考查ifelse語(yǔ)句。第一個(gè)if語(yǔ)句,先判斷條件,發(fā)現(xiàn)a=0,則!a成立,執(zhí)行下列的語(yǔ)句,x--,得x=11:第二個(gè)if語(yǔ)句,判斷條件,發(fā)現(xiàn)c=o,則條件不成立,執(zhí)行下列的else語(yǔ)句,得x=4。

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

52.B解析:算術(shù)運(yùn)算符的運(yùn)算規(guī)則是:從右到左的原則。所以表達(dá)式中先計(jì)算a=a-a*(上標(biāo))a的值是-90,再計(jì)算a=a+a的值是-180。

53.B解析:本題中的函數(shù)ss()有兩個(gè)參數(shù),一個(gè)是字符型指針變量s,另一個(gè)是字符型變量t。在函數(shù)中通過(guò)一個(gè)while循環(huán),在循環(huán)中一次取出s指向的字符串并判斷它是否和t中存放的字符相同,若相等,則執(zhí)行“*s=t-'a'+'A';”(若是小寫(xiě)字母,則把它轉(zhuǎn)換成大寫(xiě)字母)語(yǔ)句。在主函數(shù)中執(zhí)行函數(shù)調(diào)用ss(str1,c),很顯然是把str1數(shù)組中所有字符“d”變成大寫(xiě)字母,其他字符不變。所以4個(gè)選項(xiàng)中B正確。

54.C解析:C語(yǔ)言是一個(gè)函數(shù)語(yǔ)言,C語(yǔ)言的主體就是一個(gè)主函數(shù),然后有庫(kù)函數(shù)和用戶自定義的函數(shù)來(lái)配合主函數(shù)完成一系列的任務(wù),所以說(shuō),C語(yǔ)言的基本單位是函數(shù)。

55.A解析:

56.C解析:*p1=1,*p2=3,*p=3,指針p指向變量c,故正確選項(xiàng)為C。

57.B解析:本題考查函數(shù)中變量的作用范圍,在主函數(shù)中給變量x,y,z賦值,然后將其作為實(shí)參傳遞給了函數(shù)fun(),雖然在函數(shù)fun()中改變了這3個(gè)變量的值,但只是同名的局部變量,不影響函數(shù)中變量的值,所以在調(diào)用函數(shù)fun()結(jié)束后,主函數(shù)3個(gè)變量的值未改變,即形參值的改變不能影響實(shí)參的值。注意:順序程序結(jié)構(gòu)的執(zhí)行過(guò)程。

58.A解析:本題考查函數(shù)printf()的格式?!?x”表示以十六進(jìn)制輸出整型數(shù)據(jù);“%u”表示以十進(jìn)制無(wú)符號(hào)型輸出整型數(shù)據(jù)。printf函數(shù)中格式說(shuō)明符之前插入的任何字符都原樣輸出。

59.A解析:C語(yǔ)言的字符常量是用單引號(hào)(\')括起來(lái)的一個(gè)字符,也可以用以一個(gè)“\\”開(kāi)頭的字符序列來(lái)表示字符常量。其中形式\\ddd表示1到3位8進(jìn)制數(shù)所代表的字符;形式\\xhh表示1到2位16進(jìn)制數(shù)所代表的字符。在本題中\(zhòng)'\\x13\'表示回車(chē)符,是一個(gè)字符常量;而\'\\081\'用8進(jìn)制數(shù)所代表的字符形式不正確,因?yàn)?進(jìn)制數(shù)所表示的字符中不會(huì)出現(xiàn)數(shù)字“8”;\'65\'單引號(hào)(即撇號(hào))括起來(lái)的不是一個(gè)字符,而是一個(gè)十進(jìn)制數(shù)字;'\\n'是用雙引號(hào)括起來(lái)的一個(gè)字符,表示一個(gè)字符串,而不是字符常量。

60.C解析:不論main函數(shù)在整個(gè)過(guò)程中的位置如何,一個(gè)C程序總是從main函數(shù)開(kāi)始執(zhí)行的。

61.C字符數(shù)組的元素?cái)?shù)量在定義時(shí)已經(jīng)確定,與其存儲(chǔ)的內(nèi)容無(wú)關(guān),本題中語(yǔ)句chara[7]定義了由7個(gè)字符元素組成的字符數(shù)組,其sizeof(a)=7。字符數(shù)組常常存儲(chǔ)字符串,但其存儲(chǔ)的字符串長(zhǎng)度與數(shù)組長(zhǎng)度沒(méi)有直接關(guān)聯(lián)。c語(yǔ)言規(guī)定,字符串從首字符開(kāi)始,以第一個(gè)值為ASCIl碼0的字符結(jié)尾,其中的非0字符數(shù)量就是字符串的長(zhǎng)度。在本題

62.C

63.DmaUoc函數(shù)動(dòng)態(tài)分配一個(gè)整型的內(nèi)存空間,然后把函數(shù)返回的地址用(int{)強(qiáng)制類(lèi)型轉(zhuǎn)換為整型指針,再把它賦給a,b,c,即讓指針變量a,b,c都指向剛申請(qǐng)的內(nèi)存空間。所以只有最后一個(gè)賦值語(yǔ)句+C=3的值保留在了該空間內(nèi),因?yàn)閍、b、C三個(gè)指針變量均指向該空間,所以打印該空間內(nèi)的數(shù)值為3。

64.A根據(jù)二叉樹(shù)的性質(zhì),n=n0+n1+n2(n表示總結(jié)點(diǎn)數(shù),n0表示葉子結(jié)點(diǎn)數(shù),nl表示度數(shù)為1的結(jié)點(diǎn)數(shù),n2表示度數(shù)為2的結(jié)點(diǎn)數(shù)),而葉子結(jié)點(diǎn)數(shù)總是比度數(shù)為2的結(jié)點(diǎn)數(shù)多1,所以n2=n1-1=5-1=4,而n=25,所以nl=n-n0-n2=25-5-4=16。

65.C

66.A

67.D

68.Bc語(yǔ)言中,switch語(yǔ)

溫馨提示

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