2021-2022年湖南省婁底市全國計(jì)算機(jī)等級考試C語言程序設(shè)計(jì)知識(shí)點(diǎn)匯總卷(含答案)_第1頁
2021-2022年湖南省婁底市全國計(jì)算機(jī)等級考試C語言程序設(shè)計(jì)知識(shí)點(diǎn)匯總卷(含答案)_第2頁
2021-2022年湖南省婁底市全國計(jì)算機(jī)等級考試C語言程序設(shè)計(jì)知識(shí)點(diǎn)匯總卷(含答案)_第3頁
2021-2022年湖南省婁底市全國計(jì)算機(jī)等級考試C語言程序設(shè)計(jì)知識(shí)點(diǎn)匯總卷(含答案)_第4頁
2021-2022年湖南省婁底市全國計(jì)算機(jī)等級考試C語言程序設(shè)計(jì)知識(shí)點(diǎn)匯總卷(含答案)_第5頁
已閱讀5頁,還剩34頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

2021-2022年湖南省婁底市全國計(jì)算機(jī)等級考試C語言程序設(shè)計(jì)知識(shí)點(diǎn)匯總卷(含答案)學(xué)校:________班級:________姓名:________考號(hào):________

一、單選題(20題)1.結(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)

2.廣義表((a))的表尾是()。

A.aB.(a)C.((a))D.()

3.若以“a+”方式打開一個(gè)已存在的文件,以下敘述正確的是()。

A.文件打開時(shí),原有文件內(nèi)容不被刪除,可以進(jìn)行添加和讀操作

B.文件打開時(shí),原有文件內(nèi)容不被刪除,位置指針移到文件開頭,可以進(jìn)行重寫和讀操作

C.文件打開時(shí),原有文件內(nèi)容不被刪除,位置指針移到文件中間,可以進(jìn)行重寫和讀操作

D.文件打開時(shí),原有文件內(nèi)容被刪除,只可進(jìn)行寫操作

4.下列數(shù)據(jù)結(jié)構(gòu)中,按先進(jìn)后出原則組織數(shù)據(jù)的是()。

A.循環(huán)隊(duì)列B.棧C.順序表D.循環(huán)鏈表

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

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

6.當(dāng)調(diào)用函數(shù)時(shí),實(shí)參是一個(gè)數(shù)組名,則向函數(shù)傳送的是______。

A.數(shù)組的長度B.數(shù)組的首地址C.數(shù)組每一個(gè)元素的地址D.數(shù)組每個(gè)元素中的值

7.有以下程序: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ù)組右上半三角1234678111216則在程序下劃線處應(yīng)填入的是()。A.i-1B.iC.i+1D.4一i

8.有以下程序#include<stdio.h>intfun(intx;inty){if(x=y(tǒng))reurn(x);elsereturn((x+y)/2);}main(){inta=4,b=5,c=6;printf("%d\n",fun(2*a,fun(b,c)));}程序運(yùn)行后的輸出結(jié)果是______。A.3B.6C.8D.12

9.有下列程序:main{inti,j,x=0;for(i=0,i<2;i++){x++;for(j=0;j<=3;j++){if(j%2)continue;x++:}x++:}printf("x=%d\n",x);}程序執(zhí)行后的輸出結(jié)果是()。A.x=4B.x=8C.x=6D.x=12

10.按照C語言規(guī)定的用戶標(biāo)識(shí)符命名規(guī)則,不能出現(xiàn)在用戶標(biāo)識(shí)符中的是()。

A.大寫字母B.下劃線C.數(shù)字D.連接符

11.當(dāng)執(zhí)行以下程序段時(shí),()。x=-l:do{x=x*X;)while(!x);A.循環(huán)體將執(zhí)行一次B.循環(huán)體將執(zhí)行兩次C.循環(huán)體將執(zhí)行無限次D.系統(tǒng)將提示有語法錯(cuò)誤

12.設(shè)x=011050,則x=x&01252的值是()。A.0000001000101000

B.1111110100011001

C.0000001011100010

D.1100000000101000

13.以下能正確定義且賦初值的語句是______。A.intn1=n2=10;

B.charc=32;

C.floatf=f+1.1;

D.doublex=12.3E2.5;

14.有以下程序:#includeMain(){Intx=1,y=0;if(!x)y++;elseif(x==0)if(x)y+=2;Elsey+=3;print("%d\n",y);}程序運(yùn)行后的輸出結(jié)果是()。A.2B.1C.0D.3

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

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

16.下列程序的運(yùn)行結(jié)果是()。main{intx=1,y=3,a=0;while(x++!=(y-=l)){a+=1;if(y<x)break;}printf("%d,%d,%d\n",x,y,a);}A.2,3,2B.2,3,1C.1,3,3D.3,1,2

17.若有定義floata[15],*p=a;,且數(shù)組a的首地址為300H,則p+13所指向的數(shù)組元素的地址為()。

A.334HB.30DHC.352HD.31AH

18.在下列運(yùn)算符中,優(yōu)先級最低的是()。A.||B.!=C.<D.+

19.有以下程序:#include<stdio.h>main(){FILE*fp;inti,a[6]={1,2,3,4,5,6},k;fp=fopen(“data,dat”,“w+”);for(i=0;i<6;i++)fprintf(fp,“%d\n”,a[5-i]);rewind(fp);for(i=0;i<6;i++){fscanf(fp,“%d”,&k);printf(“%d,”,k);}fclose(fp);}程序運(yùn)行后的輸出結(jié)果是()。

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

20.以下選項(xiàng)中,合法的一組C語言數(shù)值常量是()。

A.12.0Xa234.5e0

B.028.5e-3-0xf

C..1774e1.50abc

D.0x8A10,0003.e5

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

#defineP(A)printf("%d",A)

main()

{intj,a[]={1,2,3,4,5,6,7},i=5;

for(j=3;j>1;j--)

{switch(j)

{case1:

case2:P(a[i++]);break;

case3:P(a[--i]);

}

}

}

22.以下程序從終端讀入數(shù)據(jù)到數(shù)組中,統(tǒng)計(jì)其中正數(shù)的個(gè)數(shù),并計(jì)算它們之和。請?zhí)羁铡?/p>

main()

{

inti,a[20],sum,count;

sum=count=0;

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

scanf("%d",(______);

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

{

if(a[i]>0)

{

count++;

sum+=(______);

}

}

printf("sum=%d,count-%dkn",sum,count);

}

23.表達(dá)式pow(2.8,sqrt(float(x)))值的數(shù)據(jù)類型為______型。

24.需求分析的最終結(jié)果是產(chǎn)生【】。

25.若x和y都是double型變量,且x的初值為3.0,y的初值為2.0,則表達(dá)式pow(y,fabs(x))的值為【】。

26.如果兩個(gè)8位二進(jìn)制數(shù)00010101與01000111相加,其結(jié)果用十進(jìn)制表示為【】。

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

main()

{

inta,b,c;

a=25;

b=025;

c=0x25;

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

}

28.設(shè)有下列的程序段;

charstr[]="Hello";

char*ptr;

ptr=str;

執(zhí)行上面的程序段后,*(ptr+5)的值為______。

29.耦合和內(nèi)聚是評價(jià)模塊獨(dú)立性的兩個(gè)主要標(biāo)準(zhǔn),其中______反映了模塊內(nèi)各成分之間的聯(lián)系。

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

main()

{

chara[]="123456789",*p;

inti=0;

p=a;

while(*p)

{

if(i%2==0)

*p='*';

p++;i++;

}

puts(a);

}

31.下述函數(shù)用于統(tǒng)計(jì)一行字符中的單詞個(gè)數(shù),單詞之間用空格分隔。

word_num(str

charstr[];

{inti,num=0,word=0;

for(i=0;str[i]!=【】;i++)

if(【】=")word=0

elseif(word=0)

{

word=1;

【】;

}

return(num);

}

32.閱讀程序:

#include<string.h>

#include<strdio.h>

strle(chara[],charb[])

{intnum=0,n=0;

while(*(a+num)!='0')num++;

while(b[n])

{*(a+num)=b[n];num++;n++;}

return(num);

}

main()

{charstrl[81],str2[81],*p1=strl,*p2=str2;

gets(p1);gets(p2);

prinf("%d\n",strle(p1,p2));

}

運(yùn)行上面的程序,如果從鍵盤上輸入字符串qwerty和字符串a(chǎn)bcd,則程序的輸出結(jié)果是【】。

33.自盒測試方法重視【】的度量。

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

voidfun()

{staticinta=0;

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

}

main()

{intcc;

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

printf("\n");

}

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

#include<stdio.h>

msin()

{inti,n[]={0,0,0,0,0};

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

{n[i]=n[i-1]*2+1;

printf("%d",n[i]);

}

}

36.數(shù)據(jù)結(jié)構(gòu)分為邏輯結(jié)構(gòu)與存儲(chǔ)結(jié)構(gòu),線性鏈表屬于【】。

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

38.表示條件:10<x<100或x<0的C語言表達(dá)式【】。

39.以下程序的功能是調(diào)用函數(shù)fun計(jì)算:m=1-2+3-4+…+9-10,并輸出結(jié)果。請?zhí)羁铡?/p>

#include<stdio.h>

intfun(intn)

{intm=0,f=1,i;

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

{m+=i*f;f=【】;}

returnm;

}

main()

{printf("m=%d\n",【】);}

40.設(shè)有以下變量定義,并已賦確定的值,

charw;intx;floaty;doubleZ;

則表達(dá)式:w*x+z-y所求得的數(shù)據(jù)類型為上【】。

三、1.選擇題(20題)41.請選出可用作C語言用戶標(biāo)識(shí)符的是

A.void,define,WORD

B.a3_b3,_123,IF

C.FOR,--abc,Case

D.2a,Do,Sizeof

42.以下正確的函數(shù)聲明語句是______。

A.intfun(inta,B);

B.floatfun(inta,int

C.doublefun();

D.intfun(chara[][]);

43.執(zhí)行以下程序段()x=-1;do{x=x*x;}while(!x);

A.循環(huán)體將執(zhí)行一次B.循環(huán)體將執(zhí)行兩次C.循環(huán)體將執(zhí)行無限次D.系統(tǒng)將提示有語法錯(cuò)誤

44.下列程序的輸出結(jié)果是()。#include<stdio.h>voidmain(){inta=0,b=1,c=2;if(++a>0‖++b>0)++c;printf("%d,%d,%d",a,b,c);}

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

45.如果進(jìn)棧序列為e1,e2,e3,e4,則可能的出棧序列是()

A.e3,e1,e4,e2B.e2,e4,e3,e1C.e3,e4,e1,e2D.任意順序

46.下列關(guān)于線性鏈表的描述中正確的是()。

A.存儲(chǔ)空間不一定連續(xù),且各元素的存儲(chǔ)順序是任意的

B.存儲(chǔ)空間不一定連續(xù),且前件元素一定存儲(chǔ)在后件元素的前面

C.存儲(chǔ)空間必須連續(xù),且各前件元素一定存儲(chǔ)在后件元素的前面

D.存儲(chǔ)空間必須連續(xù),且各元素的存儲(chǔ)順序是任意的

47.設(shè)有定義:floata=2,b=4,h=3;,以下C語言表達(dá)式中與代數(shù)式計(jì)算結(jié)果不相符的是

A.(a+b)*h/2B.(1/2)*(a+b)*hC.(a+b)*h*1/2D.h/2*(a+b)

48.#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)

49.下列關(guān)于C語言的說法不正確的是

A.C語言既具有高級語言的一切功能,也具有低級語言的一些功能

B.C語言中的每一條執(zhí)行語句都必須用分號(hào)結(jié)束,分號(hào)不是C語言的一部分,是語句之間的分隔符號(hào)

C.注釋可以出現(xiàn)在程序中任意合適的地方

D.命令行后面不能加分號(hào),命令行不是C語言的語句

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

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

51.以下程序運(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

52.下列SQL語句中,用于修改表結(jié)構(gòu)的是()。A.A.ALTERB.CREATEC.UPDATED.INSERT

53.擁有PC機(jī)并以撥號(hào)方式接入網(wǎng)絡(luò)的用戶需要配置()

A.CD-ROMB.ModemC.電話機(jī)D.鼠標(biāo)

54.下列選項(xiàng)可以正確表示字符型常量的是

A.′\r′B.aC.\897D.296

55.下面程序段的運(yùn)行結(jié)果是()。char*p="abcdefgh";p+=3;printf("%d\n",stfien(strcpy(p,"ABCD")));

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

56.設(shè)整型數(shù)i=5,則printf("%d",i+++++i);的輸出為______。

A.10B.11C.12D.語法錯(cuò)誤

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

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

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

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

D.上述3種說法都不對

58.在函數(shù)調(diào)用過程中,如果函數(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語言中不允許這樣的遞歸調(diào)用

59.有以下結(jié)構(gòu)體說明和變量定義,如圖所示,指針p、q、r分別指向此鏈表中的3個(gè)連續(xù)結(jié)點(diǎn)。structnode{intdata;structnode*next;}*p,*q,*r;

現(xiàn)要將q所指結(jié)點(diǎn)從鏈表中刪除,同時(shí)要保持鏈表的連續(xù),以下不能完成指定操作的語句是

A.p->next=q->next;

B.p-next=p->next->next;

C.p->next=r;

D.p=q->enxt;

60.下列字符數(shù)組初始化語句中,不正確的是()。

A.charc[]='goodmoming';

B.charc[20]="goodmorning";

C.charc[]={'a','b','c','d'};

D.charc[]={"goodmoming"};

四、選擇題(20題)61.有以下程序程序運(yùn)行后的輸出結(jié)果是()。

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

62.

63.在一個(gè)C程序中

A.main函數(shù)必須出現(xiàn)在所有的函數(shù)之前B.main函數(shù)可以在任何地方出現(xiàn)

C.main函數(shù)必須出現(xiàn)在所有的函數(shù)之后D.main函數(shù)必須出現(xiàn)在固定位置

64.有以下程序:

若從鍵盤輸入:ijkxyz<回車>,則輸出結(jié)果是()。

A.ijkk

B.ijkxyz

C.xyzxyz

D.jj

65.有以下程序main(){intc=35;printf("%d\n",c&c);}程序運(yùn)行后的輸出結(jié)果是______。

A.0B.70C.35D.1

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

A.對長度為n的有序鏈表進(jìn)行查找,最壞情況下需要的比較次數(shù)為n

B.對長度為n的有序鏈表進(jìn)行對分查找,最壞情況下需要的比較次數(shù)為n/2

C.對長度為n的有序鏈表進(jìn)行對分查找,最壞情況下需要的比較次數(shù)為log2n

D.對長度為n的有序鏈表進(jìn)行對分查找,最壞情況下需要的比較次數(shù)為nlog2n

67.有以下程序

68.

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

#include<stdio.h>

#defineS(X)X*X

voidmain

{inta=9,k=3,m=2;

a/=S(k+m)/S(k+m):

printf("%d",a);

}

A.1B.4C.9D.0

69.

70.

71.

72.

若ch為char型變量,k為int型變量(已知字符a的ASCII碼是97),則執(zhí)行下列語句后輸出的結(jié)果為()。

cb=b;

k=10;

printf("%X,%o,”,ch,ch,k);

printf("k=%%d\n",k);

A.因變量類型與格式描述符的類型不匹配,輸出無定值

B.輸出項(xiàng)與格式描述符個(gè)數(shù)不符,輸出為0值或不定值

C.62,142,k=%d

D.62,142,k=%10

73.

74.下列程序的運(yùn)行結(jié)果是()。main{intx=1,y=3,a=0;while(x++!=(y-=l)){a+=1;if(y<x)break;}printf("%d,%d,%d\n",x,y,a);}A.2,3,2B.2,3,1C.1,3,3D.3,1,2

75.有以下程序:

程序運(yùn)行時(shí),輸入的值在哪個(gè)范圍才會(huì)有輸出結(jié)果()。

A.不等于10的整數(shù)

B.大于3且不等于l0的整數(shù)

C.大于3或等于l0的整數(shù)

D.小于3的整數(shù)

76.已知字母A的ASCII碼為十進(jìn)制的65,下面程序的輸出為()。

voidmain()

{charch1,ch2;

ch1=’A’+’5’-’3’;

ch2=’A’+6-3;

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

}

A.67,DB.B,CC.C,DD.不確定的值

77.若有定義語句:

78.有以下程序:

main

{

unsignedchara=2,b=4,c=5,d;

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

}

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

A.3B.4C.5D.6

79.語句:“printf("%d",(a=)&&(b=-2));”的輸出結(jié)果是()。

A.無輸出B.結(jié)果是不確定C.-1D.1

80.若變量X、y已正確定義并賦值,以下符合c語言語法的表達(dá)式是()。

A.++x,y=x-一B.x+l=yC.x=x+10--x+yD.double(x)/lO

五、程序改錯(cuò)題(1題)81.下列給定程序中,函數(shù)proc()的功能是逐個(gè)比較str1,str2兩個(gè)字符串對應(yīng)位置中的字符,把比ASCⅡ值大或相等的字符依次存放到str數(shù)組中,形成一個(gè)新的字符串。

例如,str1中的字符串為fshADfg,str2中的字符串為sdAEdi,則str中的字符串應(yīng)為sshEdig。

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

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

試題程序:

六、程序設(shè)計(jì)題(1題)82.假定輸入的字符串只包含字母和“#”號(hào),請編寫函數(shù)fun(),它的功能是:刪除字符串中所有的“#”號(hào)。在編寫函數(shù)時(shí),不得使用C語言提供的字符串函數(shù)。例如,若字符串中的內(nèi)容為“##w#e1##come###”,刪除后,字符串中的內(nèi)容則應(yīng)當(dāng)是“welcome”。請勿改動(dòng)main()函數(shù)與其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun()的花括號(hào)中填入所編寫的若干語句。試題程序:

參考答案

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

2.D

3.AC語言中,文件打開方式“a+”表示打開一個(gè)文本文件,從文件開始位置讀,在文件尾部添加數(shù)據(jù),如果指定的文件不存在,系統(tǒng)將使用調(diào)用fopen時(shí)指定的文件名創(chuàng)建一個(gè)新的文件;如果指定的文件存在,那么文件原有內(nèi)容將被保存,新的數(shù)據(jù)追加到原有文件之后。故本題答案為A選項(xiàng)。

4.B解析:循環(huán)隊(duì)列是隊(duì)列的一種順序存儲(chǔ)結(jié)構(gòu),隊(duì)列是以先進(jìn)先出為原則組織數(shù)據(jù)的一種特殊線性表,選項(xiàng)A錯(cuò)誤;棧是以先進(jìn)后出為原則組織數(shù)據(jù)的一種特殊線性表,選項(xiàng)B正確;順序表是線性表的順序存儲(chǔ)結(jié)構(gòu),選項(xiàng)C錯(cuò)誤;循環(huán)鏈表是一般線性表的一種鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu),選項(xiàng)D錯(cuò)誤。

5.D程序(program)是為實(shí)現(xiàn)特定目標(biāo)或解決特定問題而用計(jì)算機(jī)語言編寫的命令序列的集合。設(shè)計(jì)算法時(shí)要考慮到數(shù)據(jù)結(jié)構(gòu)的設(shè)計(jì),但是不僅僅是要考慮到數(shù)據(jù)結(jié)構(gòu)的設(shè)計(jì),還要考慮到其他的程序結(jié)構(gòu)的問題。設(shè)計(jì)算法時(shí)不能只考慮結(jié)果的正確性和可靠性,還需要考慮到程序的時(shí)間冗余度等方面。所以答案選擇D。

6.B解析:當(dāng)調(diào)用函數(shù)時(shí),實(shí)參是一個(gè)數(shù)組名,則向函數(shù)傳送的是數(shù)組的首地址,函數(shù)中的形參可定義成以下三種形式:

①形參定義成數(shù)組;

②形參定義成可變長數(shù)組:

③形參定義為指針變量。

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

8.B解析:在主函數(shù)中,第—次調(diào)用fun函數(shù),將變量b,c的值傳給形參x,y,在fun()函數(shù)中執(zhí)行if語句,判斷b和c的值是否相等,由于在主函數(shù)中賦初值b=5,c=6,所以判斷條件不滿足,執(zhí)行else語句,返回表達(dá)式(x+y)/2的值,即:(5+6)/2,因?yàn)閰?shù)的類型都為int型,所以結(jié)果也為整型:5,第二次調(diào)用時(shí)8和5也不相等,所以返回值為6,因此,選項(xiàng)B是正確的。

9.B在第1次外層for循環(huán)中,首先x++得到x=1。進(jìn)入到內(nèi)層for循環(huán),只有循環(huán)j的值為奇數(shù)時(shí),變量x的值才自加1,所以在內(nèi)層for循環(huán)執(zhí)行過程中,變量x的值自加兩次,當(dāng)退出內(nèi)層for循環(huán)時(shí),x=3,然后執(zhí)行x++,得到x=4。在進(jìn)入執(zhí)行第2次外層for循環(huán)中,首先x++得到x=5。進(jìn)入到內(nèi)層for循環(huán),只有循環(huán)變量j的值為奇數(shù)時(shí),變量x的值才自加1,所以在內(nèi)層for循環(huán)執(zhí)行過程中,變量X的值自加1兩次,當(dāng)退出內(nèi)層for循環(huán)時(shí),x=7,然后執(zhí)行x++,得到x=8,所以打印輸出變量x的值為8。

10.DC語言只符由字母、數(shù)字、下劃線組成,且第1個(gè)字符必須是字母或下劃線,所以D選項(xiàng)中的連接符不合法。故本題答案為D選項(xiàng)。

11.Ado-wlfile的功能是先執(zhí)行一次循環(huán)體,再判斷條件是否成立,當(dāng)x=-1時(shí),執(zhí)行do語句,x=x*x=1,接著執(zhí)行while后的表達(dá)式,其值為0,退出循環(huán),因此循環(huán)體只執(zhí)行了一次。

12.A本題考查按位與運(yùn)算,按位與就是相同為1,不同為0,把x=011050化成二進(jìn)制為0001001000101000,把01252化成二進(jìn)制為0000001010101010,兩者相與得0000001000101000。

13.B解析:本題考查的知識(shí)點(diǎn)是變量賦初值.選項(xiàng)A中的語句只能起定義n1的作用,而n2=10是n1的初始值表達(dá)式,但因前面沒有定義過n2,所以編譯會(huì)報(bào)錯(cuò)“n2未定義”,故不正確。選項(xiàng)B使用一個(gè)整數(shù)初始化一個(gè)字符變量是正確的,因?yàn)樽址兞恐斜4娴谋緛砭褪钦麛?shù)(某字符的ASCII碼值)。選項(xiàng)C定義的初始值表達(dá)式中出現(xiàn)了它自身,某些編譯器能通過編譯,但f在初始化之前是一個(gè)未知的值,用未知值來初始化也還是未知值,這是不可取的。選項(xiàng)D的初始值是一個(gè)非法常量,因?yàn)閷?shí)型常量指數(shù)形式的指數(shù)部分必須為整數(shù),這里的2.5非法。

14.C在ifelse語句中else,總是與離它最近的配對。本題目中x勸1所以!x為0,所以執(zhí)行else齬句中的內(nèi)容,判斷(x==0)是否成立,因?yàn)閤為1所以條件不成立,所以else部分的近.else語句不再執(zhí)行,所以y的值還是初始值0。

15.C解析:棧和隊(duì)列都是操作受限制的線性表,只允許在端點(diǎn)插入和刪除。不同點(diǎn)是:棧只允許在表的一端進(jìn)行插入和刪除操作,而隊(duì)列允許在表的一端進(jìn)行插入操作,而在另一端進(jìn)行刪除操作。

16.D本題考查"drhile循環(huán)。第一次循環(huán),y=y-1,y=2,循環(huán)條件成立,x=1,X++后值為1,x自加變成2,進(jìn)入循環(huán),a=a+1=1,判斷if語句條件是否成立,y<x不成立,接著執(zhí)行下一次循環(huán)。第二次循環(huán),x=2,y-1=1,循環(huán)條件成立,進(jìn)入循環(huán),a=a+1=2,判斷if語句的控制條件是否成立,y<X成立,執(zhí)行break語句,退出循環(huán)。結(jié)果為D。

17.C解析:解答本題,首先要明白在對指針進(jìn)行加、減運(yùn)算的時(shí)候,數(shù)字“1”不是十進(jìn)制的數(shù)“1”,而是指'1'個(gè)存儲(chǔ)單元長度,而1個(gè)存儲(chǔ)單元長度占多少存儲(chǔ)空間,應(yīng)該視具體情況而定。如果基本類型是int型,移動(dòng)1個(gè)存儲(chǔ)單元的長度就是位移2個(gè)字節(jié),如果基本類型是float型,移動(dòng)1個(gè)存儲(chǔ)單元的長度就是位移4個(gè)字節(jié)。所以p+13所指向的數(shù)組元素的地址:300H+(13*上標(biāo))4)H=352H。

18.A

19.A函數(shù)fopen(“data.dat”,“w+”)中的“w+”表示打開可讀寫文件,若文件存在則文件長度清為零,即該文件內(nèi)容會(huì)消失;若文件不存在則建立該文件?!皉ewind(fp);”使文件fp的位置指針指向文件開始。函數(shù)“fprintf(fp,“%d\\n”,a[5-i]);”將a[i]輸出到fp指向的文件中。函數(shù)“fscanf(fp,“%d”,&k);”將fp讀入變量k中。第1個(gè)for循環(huán)將數(shù)組中元素倒著輸入fp指向的文件中。rewind則指向文件開始,因此輸出的是數(shù)組a的倒敘:6,5,4,3,2,1,。故本題答案為A選項(xiàng)。

20.AC語言中,八進(jìn)制整型常量以0開頭,十六進(jìn)制整型常量以0x或0X開頭。C語言中的實(shí)型常量有兩種表示形式:小數(shù)形式和指數(shù)形式。小數(shù)形式,表示的實(shí)型常量必須要有小數(shù)點(diǎn);指數(shù)形式,在e或E后加一個(gè)整數(shù)來表示以10為底數(shù)的冪數(shù),且規(guī)定字母e或E之前必須要有數(shù)字,且e或E后面的指數(shù)必須為整數(shù)。B選項(xiàng)中“028”不合法,八進(jìn)制中沒有數(shù)字8。C選項(xiàng)中,e后面的指數(shù)不是整數(shù)。D選項(xiàng)中“10,000”數(shù)字之間不能有逗號(hào)。故本題答案為A選項(xiàng)。

21.5555解析:分析程序執(zhí)行過程,第一次循環(huán)時(shí),i=3,i=5,因?yàn)閟witch(3),所以執(zhí)行case3,調(diào)用P(a[--i])=P(a[4])=P(5),輸出5:第二次循環(huán)時(shí),j=2,i=4,因?yàn)閟witch(2),所以執(zhí)行case2,調(diào)用P(a[i++]):P(a[4])=P(5),輸出5,之后i自加等于5。

22.&a[i]或a+ia[i]或*(a+i)&a[i]或a+ia[i]或*(a+i)解析:主函數(shù)中一開始定義了一個(gè)長度為20得整形數(shù)組,然后通過—個(gè)循環(huán),循環(huán)20次給它的每個(gè)元素賦初值,所以在第一個(gè)空格處應(yīng)填各個(gè)元素的地址,即填&a[1]或a+i,然后在通過一個(gè)循環(huán)執(zhí)行20次,每循環(huán)一次,先判斷該循環(huán)是否大于0,如果大于。將其累加到變量sum中,所以第二個(gè)空格處應(yīng)該填入數(shù)組元素,所以應(yīng)該填a[i]或*(a+i)。

23.floatfloat解析:在此表達(dá)式中x是float類型的變量,經(jīng)過開方所得到的結(jié)果仍是float類型,再和2.8進(jìn)行運(yùn)算時(shí),應(yīng)該先將2.8轉(zhuǎn)換成float類型再運(yùn)算,最后結(jié)果仍是float型。

24.需求規(guī)格說明書需求規(guī)格說明書解析:軟件需求規(guī)格說明書是需求分析階段的最后成果,是軟件開發(fā)中的重要文檔之一。需求規(guī)格說明書包括正確性、無歧義性、完整性、可驗(yàn)證性、一致性、可理解性、可修改性和可追蹤性等。

25.88解析:fabs函數(shù)功能是求x的絕對值,計(jì)算結(jié)果為double型。pow功能是計(jì)算x的y次方的值,計(jì)算結(jié)果同樣為double型。所以本題表達(dá)式相當(dāng)于2.0的3.0次方,結(jié)果為8.000000。

26.92

27.252137252137解析:本題中先定義了整型變量a、b和c,然后分別給賦值a為25,b為八進(jìn)制的025,c為十六進(jìn)制0x25。然后調(diào)用pruntf()函數(shù)將a、b和c分別用十進(jìn)制輸出,且中間用空格隔開,八進(jìn)制025轉(zhuǎn)換為十進(jìn)制的值為21,十六進(jìn)制的0x25轉(zhuǎn)換為十進(jìn)制的值為37,故最后的輸出結(jié)果為252137。

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

29.內(nèi)聚內(nèi)聚

30.*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*

31.\0'或0或NULLstr[i]num++或num=num+1或num+=1\\0'或0或NULL\r\nstr[i]\r\nnum++或num=num+1或num+=1解析:觀察題目要求,可以知道以下幾點(diǎn):

①for循環(huán)的結(jié)束條件應(yīng)當(dāng)是:str[i]已是字符串的最后一個(gè)字符;

②str[i]代表字符串str中的第i+1個(gè)字符;

③整型變量num的值是要記錄的單詞的個(gè)數(shù)。

C語言中規(guī)定字符串的最后一個(gè)字符是一個(gè)隱含的字符串結(jié)束符“\\0”,所以在題中第一個(gè)空中應(yīng)填寫“\\0”;題中第二個(gè)空應(yīng)填寫“str[i]”,以判斷當(dāng)前位置的字符是否為空格;題中第三個(gè)空中應(yīng)當(dāng)填寫“num++”,通過變量num的加1累加得到字符串中的單詞個(gè)數(shù)。

32.10

33.測試覆蓋率測試覆蓋率解析:白盒測試又稱為結(jié)構(gòu)測試。白盒測試作為對結(jié)構(gòu)的測試,要求對被測程序的各種結(jié)構(gòu)特性進(jìn)行測試,這種情況被稱為覆蓋,故白盒測試又稱為“基于覆蓋的測試”。白盒測試方法重視測試覆蓋率的度量,力求提高覆蓋率,從而找出被測程序的錯(cuò)誤。

34.246

35.1371513715解析:程序中n是一個(gè)有5個(gè)元素,且元素值全為0的數(shù)組。在for循環(huán)中,當(dāng)i=1時(shí),n[1]=n[0]*2+1,此時(shí)n[1]=1;i=2時(shí),n[2]=n[1]*2+1,此時(shí)n[2]=3;i=3時(shí),n[3]=n[2]*2+1,此時(shí)n[3]=7;i=4時(shí),n[4]=n[3]*2+1,此時(shí)n[4]=15,循環(huán)結(jié)束。輸出函數(shù)中%d后有空格,因此輸出結(jié)果為13715。

36.存儲(chǔ)結(jié)構(gòu)

37.x+=1;

38.(X>10&&x<100)||x<0或(10<x&&x<100)||x<0或x<0||(x>10&&x<100)或0>x||(10<x&&x<100)或(括號(hào)有無都可以)(X>10&&x<100)||x<0\r\n\u3000\u3000或(10<x&&x<100)||x<0或x<0||(x>10&&x<100)\r\n\u3000\u3000或0>x||(10<x&&x<100)或(括號(hào)有無都可以)

39.(-1)*ffun(10)(-1)*f\r\nfun(10)解析:本題利用一個(gè)fun函數(shù)來完成題目要求的計(jì)算。程序中變量f起的作用是控制i*f的符號(hào),偶數(shù)位都為負(fù)值,第一處填(-1)*f。在main函數(shù)中要輸出fun函數(shù)返回的m值,因此第二處填fun(10),實(shí)參10傳給形參n。

40.double型或雙精度型double型或雙精度型解析:①先進(jìn)行w*x的運(yùn)算,先將字符型w轉(zhuǎn)換成整型,運(yùn)算結(jié)果為整型;②再將w*x的結(jié)果與z相加,要先將第一步的整型轉(zhuǎn)換為double型,運(yùn)算結(jié)果為double型;③最后將w*x+z的結(jié)果與y相減,要先將float型y轉(zhuǎn)換成double型,結(jié)果為double型。

41.B解析:C語言規(guī)定用戶標(biāo)識(shí)符由字母、數(shù)字和下畫線組成,且第一個(gè)字符必須是字母或下畫線,可見選項(xiàng)C),D)是錯(cuò)誤的;此外,C語言不允許用戶將關(guān)鍵字作為標(biāo)識(shí)符,而選項(xiàng)A)中的void正是C語言的關(guān)鍵字。

42.C解析:函數(shù)聲明語句必須以分號(hào)結(jié)束,形參要分別說明,若二維數(shù)組作為函數(shù)的形參,則第二維的大小不能缺省。

43.A

44.C解析:本題考查if語句。先判斷if語句的條件是否成立,++a=1>0,此條件成立,又因?yàn)槭沁M(jìn)行邏輯或運(yùn)算,在已知其中一個(gè)運(yùn)算對象為真的情況下,不必判斷另外一個(gè)運(yùn)算符的真假,即不進(jìn)行++b操作,就可以直接得出整個(gè)表達(dá)式的值為邏輯1,執(zhí)行下列的++c。

45.B解析:由?!昂筮M(jìn)先出”的特點(diǎn)可知:A中e1不可能比e2先出,C中e3不可能比e4先出,且e1不可能比e2先出,D中棧是先進(jìn)后出的,所以不可能是任意順序。所以B是正確的。它執(zhí)行的順序是:e1進(jìn)棧→e2進(jìn)?!鷈2出?!鷈3進(jìn)?!鷈4進(jìn)?!鷈4出?!鷈3出?!鷈1出棧,所以只看出棧序列應(yīng)為e2,e4,e3,e1。

46.A解析:線性表的鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)中的結(jié)點(diǎn)空間是動(dòng)態(tài)生成的,它們在內(nèi)存中的地址可能是連續(xù)的,也可能是不連續(xù)的。

47.B解析:選項(xiàng)B中由于1和2都是整型,其1/2的運(yùn)算結(jié)果為0,故整個(gè)表達(dá)式的值為0,所以它的結(jié)果和題目中要求的代數(shù)式的計(jì)算結(jié)果不相符,所以,4個(gè)選項(xiàng)中選項(xiàng)B符合題意。

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

49.B解析:分號(hào)是C語言的一部分,不是語句之間的分隔符號(hào)。C語言中的每一條執(zhí)行語句都必須用分號(hào)“;”結(jié)束,分號(hào)是C語言的一部分,不是語句之間的分隔符號(hào)。

50.C

51.A解析:宏替換用“#define宏名宏體”的形式來定義。在進(jìn)行編譯預(yù)處理時(shí),將把程序中宏定義之后的所有宏名用宏體替換。宏雖然可以帶參數(shù),但宏替換過程中不像函數(shù)那樣要進(jìn)行參數(shù)值的計(jì)算、傳遞及結(jié)果返回等操作;宏替換只是簡單的字符替換,不進(jìn)行計(jì)算。因而本題中的S(a+b)進(jìn)行宏替換后為PT*1+2*1+2=5.5*1+2*1+2=9.5。注意:帶參數(shù)的宏定義。

52.A解析:在SQL語句中,凡是創(chuàng)建都用CREATE,刪除都用DROP,改變用ALTER,后面跟類型和名字,附加子句。

53.B

54.A解析:C語言中,一個(gè)字符常量代表ASCII字符集中的一個(gè)字符,在程序中用單引號(hào)括起來作為字符常量,字符常量的的范圍是0~127。由于字符常量用單引號(hào)括起來,所以選項(xiàng)B),C)錯(cuò)誤,選項(xiàng)D)超過了字符常量的表示范圍。

55.C解析:p+=3使指針p指向字符'd',函數(shù)strcpy的功能是把后面的字符串復(fù)制到p指針指向的空間;strlen函數(shù)的功能是求字符串的長度,并返回字符個(gè)數(shù),不計(jì)最后的'\\0'。本題結(jié)果為4,即字符串“ABCD”的長度。

56.D解析:C語言中有基本的算術(shù)運(yùn)算符(+、-、*、/)還包括自增自減運(yùn)算符(++、-),在C語言解析表達(dá)式時(shí),它總是進(jìn)行貪婪咀嚼,這佯,該表達(dá)式就被解析為i+++++i,顯然該表達(dá)式不合C語言語法。

57.C本題考查對面向?qū)ο蟮睦斫?。面向?qū)ο蟮某绦蛟O(shè)計(jì)是對象模擬問題領(lǐng)域中的實(shí)體,各對象之間相對獨(dú)立,相互依賴性小,通過消息來實(shí)現(xiàn)對象之間的相互聯(lián)系。

58.B解析:在C語言中所謂函數(shù)的遞歸是指在調(diào)用一個(gè)函數(shù)的過程中,又出現(xiàn)了直接或間接調(diào)用該函數(shù)本身,直接調(diào)用該函數(shù)本身的稱為函數(shù)遞歸,而間接調(diào)用該函數(shù)稱為函數(shù)的間接遞歸調(diào)用。顯然題目中所說得函數(shù)調(diào)用為函數(shù)的間接遞歸調(diào)用。所以,4個(gè)選項(xiàng)中選項(xiàng)B符合題意。

59.D解析:本題考查鏈表結(jié)點(diǎn)的刪除。q->next中存放的是r所指結(jié)點(diǎn)的首地址,將r所指結(jié)點(diǎn)的首地址存于p->next中,則實(shí)現(xiàn)刪除q所指結(jié)點(diǎn)的功能,并保持鏈表連續(xù),p所指結(jié)點(diǎn)與r所指結(jié)點(diǎn)相連。

60.A解析:本題考查兩個(gè)概念:①用單引號(hào)括起來的一個(gè)字符常量只能存放一個(gè)字符;②C語言中沒有字符串變量,只能用字符數(shù)組來存儲(chǔ)字符串。

選項(xiàng)A)中一個(gè)單引號(hào)內(nèi)放了若干個(gè)字符是錯(cuò)誤的:選項(xiàng)B)和選項(xiàng)D)選項(xiàng)中將一個(gè)字符串賦值給一個(gè)字符數(shù)組是允許的。

61.A在ifelse語句中else總是與離它最近的if酉己對。本題目中x為1,因此“!x”為0,所以執(zhí)行elseif語句中的內(nèi)容,判斷(x==0)是否成立,因?yàn)閤為1,所以條件不成立,因此elseif內(nèi)部的if.一else語句不再執(zhí)行,所以y的值還是初始值0。

62.A

63.B在C語言中,函數(shù)是C程序的基本組成部分,用來完成子程序的功能。一個(gè)完整的C程序至少應(yīng)該包括一個(gè)main()函數(shù),其他函數(shù)可以沒有,可以有一個(gè),也可以有多個(gè)。C程序的執(zhí)行過程是:從main()函數(shù)開始執(zhí)行,然后在main()函數(shù)中調(diào)用其他函數(shù),當(dāng)main()函數(shù)執(zhí)行完畢時(shí),整個(gè)程序就結(jié)束了。main()函數(shù)出現(xiàn)

溫馨提示

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

提交評論