2021-2022年安徽省宣城市全國計算機等級考試C語言程序設計知識點匯總卷(含答案)_第1頁
2021-2022年安徽省宣城市全國計算機等級考試C語言程序設計知識點匯總卷(含答案)_第2頁
2021-2022年安徽省宣城市全國計算機等級考試C語言程序設計知識點匯總卷(含答案)_第3頁
2021-2022年安徽省宣城市全國計算機等級考試C語言程序設計知識點匯總卷(含答案)_第4頁
2021-2022年安徽省宣城市全國計算機等級考試C語言程序設計知識點匯總卷(含答案)_第5頁
已閱讀5頁,還剩30頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

2021-2022年安徽省宣城市全國計算機等級考試C語言程序設計知識點匯總卷(含答案)學校:________班級:________姓名:________考號:________

一、單選題(20題)1.下列關(guān)于AOE網(wǎng)的敘述中,不正確的是()。

A.關(guān)鍵活動不按期完成就會影響整個工程的完成時間

B.任何一個關(guān)鍵活動提前完成,那么整個工程將會提前完成

C.所有的關(guān)鍵活動提前完成,那么整個工程將會提前完成

D.某些關(guān)鍵活動提前完成,那么整個工程將會提前完成

2.

3.

4.由兩個棧共享一個向量空間的好處是______。

A.減少存取時間,降低下溢發(fā)生的機率

B.節(jié)省存儲空間,降低上溢發(fā)生的機率

C.減少存取時間,降低上溢發(fā)生的機率

D.節(jié)省存儲空間,降低下溢發(fā)生的機率

5.假定X和Y為double型,則表達式x=2,y=x+3/2的值是()。

A.3.500000B.3C.2.000000D.3.000000

6.數(shù)據(jù)庫設計中,用E—R圖來描述信息結(jié)構(gòu)但不涉及信息在計算機中的表示,它屬于數(shù)據(jù)庫設計的()。

A.需求分析階段B.邏輯設計階段C.概念設計階段D.物理設計階段

7.下列函數(shù)的功能是

set(s,t)

{char*s,*t;

while((*s)&&(*t)&&(*t++==*s++));

return(*s-*t);

}A.A.求字符串的長度

B.比較兩字符串的大小

C.將字符串s復制到字符串t中

D.將字符串s連接到字符串t后

8.設有二維數(shù)組A7×8,每個數(shù)據(jù)元素占8個字節(jié)存儲單元,順序存放,A第一個元素A0,0的存儲地址為1000,則數(shù)組A占用的存儲量為()字節(jié)。

A.448B.56C.56D.64

9.關(guān)于指針,以下說法正確的是()。A.可以直接向指針中寫入數(shù)據(jù)

B.若指針指向變量,則可以向指針所指內(nèi)存單元寫入數(shù)據(jù)

C.指針可以指向內(nèi)存中任何位置,并寫入數(shù)據(jù)

D.兩個指針可以通過加運算求和,形成一個功能更強大的指針

10.

11.在堆棧中存取數(shù)據(jù)的原則是。A.先進先出B.后進先出C.先進后出D.隨意進出

12.有以下程序:fun(intx){intp;if(x=0||x==1)return(3);p=x-fun(x-2);returnp;}main(){printf("%d\n",fun(7));}執(zhí)行后的輸出結(jié)果是()。

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

13.體育課的鈴聲響了,同學們都陸續(xù)地奔向操場,按老師的要求從高到矮站成一排。每個同學按順序來到操場時,都從排尾走向排頭,找到第一個比自己高的同學,并站在他的后面。這種站隊的方法類似于()算法。

A.快速排序B.插入排序C.冒泡排序D.歸并排序

14.設S為C語言的語句,計算機執(zhí)行下面算法時,算法的時間復雜度為()。A.n2B.O(nlgn)C.O(n)D.O(n2)

15.

16.以下敘述中正確的是()。A.A.當對文件的讀(寫)操作完成之后,必須將它關(guān)閉,否則可能導致數(shù)據(jù)丟失

B.打開一個已存在的文件并進行了寫操作后,原有文件中的全部數(shù)據(jù)必定被覆蓋

C.在一個程序中當對文件進行了寫操作后,必須先關(guān)閉該文件然后再打開,才能讀到第1個數(shù)據(jù)

D.c語言中的文件是流式文件,因此只能順序存取數(shù)據(jù)

17.若有定義和語句:int**pp),*P,a=20,b=10;pp=&p;p=&a;p=&b;printf("%d,%d\n",*P,*PP);則輸出結(jié)果是()。A.20,10B.20,20C.10,20D.10,10

18.有以下程序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",r);}程序運行后的輸出結(jié)果是A.2B.1C.3D.0

19.在軟件設計中,不屬于過程設計工具的是()。

A.PDLB.DFD圖C.PAD圖D.N—S圖

20.若有定義“chars1[100]=“name”,s2[50]=“address”,s3[80]=“person”;”,要將它們連接成新串“personnameaddress”,正確的函數(shù)調(diào)用語句是()。

A.strcat(strcat(s1,s2),s3);

B.strcat(s3,strcat(s1,s2);

C.strcat(s3,strcat(s2,s1);

D.strcat(strcat(s2,s1),s3);

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

intf(inta[],intn)

{if(n>=1)returnf(a,n-1)+a[n-1];

elsereturn0;

}

main()

{intaa[5]=(1,2,3,4,5),s;

s=f(aa,5);printf("%d\n",s);

}

22.x、y、x均為int型變量,描述"x、y和z中至少有兩個為正數(shù)"的表達式是______。

23.若有如下程序:

sub(int*y)

{while(--(*y));

printf("%d",(*y)--);}

main()

{intx=10;

sub(&x);

}

則程序運行后的輸出結(jié)果是【】。

24.若a=1,b=2,則表達式!(x=A)‖(y=B)&&0的值是______。

25.下面程序的輸出走【】。

main()

{enumem{em1=3,em2=1,em3};

char*aa[]={"AA","BB","CC","DD"};

printf("%s%s%s\n",aa[em1],aa[em2],aa[em3]);

}

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

#include<stdio.h>

main0

{intx=1,y=1,a=1,b=1;

switch(x)

{case1:

switch(y)

{case0:a++;break;

case1:b++;break;

}

case2:

a++;b++;break;

}

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

}

27.若有以下定義,則不移動指針p,且通過指針p引用值為98的數(shù)組元素的表達式是______。

intw[10]={23,54,10,33,47,98,72,80,61},*p=w;

28.按"先進后出"原則組織數(shù)據(jù)的數(shù)據(jù)結(jié)構(gòu)是【】。

29.有以下結(jié)構(gòu)體說明和變量的定義,且指針p指向變量a,指針q指向變量b,則不能把結(jié)點b連接到結(jié)點a之后的語句是【】。

structnode

{chardata;

structnode*next;}a,b

30.C語言中用______表示邏輯值為“真”,用數(shù)字“0”表示邏輯值為“假”。

31.以下程序運行后的輸出結(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);

}

32.有以下程序

main()

{intt=1,i=5;

for(;i>=0;i--)t*=i;

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

}

執(zhí)行后輸出結(jié)果是______。

33.軟件工程研究的內(nèi)容主要包括:【】技術(shù)和軟件工程管理。

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

main()

{inti=0,a=0;

while(i<20)

{for(;;)

{if((i%10)==0)break;

elsei--;}

i+=11;

a+=i;

}

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

}

35.下面程序的運行結(jié)果是()。

#defineEXCH(a,B){intt;t=a;a=b;b=t;}

main()

{intx=1,y=2;

EXCH(x,y);

printf("x=%d,y=%d\n",x,y);

}

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

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

#definePRINT(A)P(A);printf("theend")

main()

{inti,a=0;

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

PRINT(a+i);

printf("\n");

}

37.下列程序?qū)⒍S數(shù)組a的行和列元素互換后存放到另一個二維數(shù)組b中。請?zhí)羁铡?/p>

main()

{inta[2][3]={{1,2,3},{4,5}},b[3][2],i,j;

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

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

}

}

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

#defineJFT(x)x*x

main()

{inta,k=3;

a=++JFT(k+1);

printf("%d",a);

}

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

#include<string.h>

main()

{printf("%d\n",strlen("IBM\n012\1\\"));}

40.若有以下程序:

main()

{inta=4,b=3,c=5,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);

}

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

三、1.選擇題(20題)41.以下選項中可作為C語言合法常量的是

A.-80B.-080C.-8e1.0D.-80.0e

42.下列所述中,是軟件調(diào)試技術(shù)的是()。

A.錯誤推斷B.集成測試C.回溯法D.邊界值分析

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

A.用E—R圖能夠表示實體集間一對一的聯(lián)系、一對多的聯(lián)系和多對多的聯(lián)系

B.用E—R圖只能表示實體集之間一對一的聯(lián)系

C.用E—R圖只能表示實體集之間一對多的聯(lián)系

D.用E—R圖表示的概念數(shù)據(jù)模型只能轉(zhuǎn)換為關(guān)系數(shù)據(jù)模型

44.在數(shù)據(jù)庫設計中,將E-R圖轉(zhuǎn)換成關(guān)系數(shù)據(jù)模型的過程屬于()。A.需求分析階段B.概念設計階段C.邏輯設計階段D.物理設計階段

45.若有說明:inta[][3]={0,0};則不正確的敘述是()。

A.數(shù)組a的每個元素的初值都是0

B.數(shù)組a的第一維大小為1

C.數(shù)組a的行數(shù)為1

D.只有元素a[0][0]和a[0][1]可得到初值0,其余元素均得不到初值0

46.若x=10010111,則表達式(3+(int)(x))&(~3)的運算結(jié)果是()。

A.10011000B.10001100C.10101000D.10110000

47.有如下程序main(){inty=3,x=3,z=1;printf("%d%d\n",(++x,y++),z+2);}運行該程序的輸出結(jié)果是______。

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

48.有以下程序:intx=1,y=2;voidfunl(){x=3;y=4;}voidfun2(intx,inty){printf("%d,%d,\n",x,y);}main(){funl();printf("%d,%d,"x,y);fun2(5,6);}程序的運行結(jié)果是()

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

49.在C語言中,char型數(shù)據(jù)在內(nèi)存中的存儲形式是()。

A.補碼B.反碼C.原碼D.ASCII碼

50.下面程序段中,輸出*的個數(shù)是char*s="\ta\018bc";for(;*s!='\0';s++)printf("*");

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

51.程序設計方法要求在程序設計過程中,()。

A.先編制出程序,經(jīng)調(diào)試使程序運行結(jié)果正確后再畫出程序的流程圖

B.先編制出程序,經(jīng)調(diào)試使程序運行結(jié)果正確后再在程序中的適當位置處加注釋

C.先畫出流程圖,再根據(jù)流程圖編制出程序,最后經(jīng)調(diào)試使程序運行結(jié)果正確后再在程序中的適當位置處加注釋

D.以上3種說法都不對

52.以下的for循環(huán)()for(x=0,y=0;(y!=123)&&(x<4);x++)

A.是無限循環(huán)B.循環(huán)次數(shù)不定C.執(zhí)行4次D.執(zhí)行3次

53.有以下程序:#include<studio.h>#defmeF(X,Y)(X)*(Y)main(){inta=3,b=4;printf("%d\n",F(a++,b++));}程序運行后的輸出結(jié)果是()。

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

54.設有:inta=1,b=2,c=3,d=4,m=2,n=2;執(zhí)行(m=a>b)&&(n=c>d)后n的值是

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

55.為了提高軟件模塊的獨立性,模塊之間最好是()。

A.控制耦合B.公共耦合C.內(nèi)容耦合D.數(shù)據(jù)耦合

56.設已定義i和k為int類型變量,則以下for循環(huán)語句______。for(i=0;k=-1,k=1;i++,k++)printf("****\n");

A.判斷循環(huán)結(jié)束的條件不合法B.是無限循環(huán)C.循環(huán)一次也不執(zhí)行D.循環(huán)只執(zhí)行一次

57.若x=3,y=z=4,則下列表達式的值分別為()(1)(z>=y(tǒng)>=x)?1:0(2)y+=z,x*=y(tǒng)

A.024B.18C.08D.112

58.下列對于軟件測試的描述中正確的是()。

A.軟件測試的目的是證明程序是否正確

B.軟件測試的目的是使程序運行結(jié)果正確

C.軟件測試的目的是盡可能多地發(fā)現(xiàn)程序中的錯誤

D.軟件測試的目的是使程序符合結(jié)構(gòu)化原則

59.若w、x、y、z、m均為int型變量,則執(zhí)行下列的語句后m的值是()。w=2,x=3,y=4,z=5;m=(w<x)?w:x;m=(m<z)?m:z;m=(m<y)?m:y;

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

60.以下對結(jié)構(gòu)體類型變量的定義中,不正確的是______。

A.typedefstructaa{intn;floatm;}AA;AAtd1;

B.#defineAAstructaaAA{intn;floatm;}td1;

C.struct{intn;floatm;}aa;srtuctaatd1:

D.struct{intn;floatm;}tdl;

四、選擇題(20題)61.下列關(guān)系表達式中,結(jié)果為“假”的是()。

A.(3+4)>6

B.(3!=4)>2

C.3<=4

D.

E.3

F.(3<4)=1

62.定義如下變量和數(shù)組:

則下面語句的輸出結(jié)果是()。

A.951B.741C.753D.963

63.若二維數(shù)組a有m列,則在a[i][j]前的元素個數(shù)為()。

A.i*m+j-1B.i*m+jC.J*m+iD.i*m+j+1

64.下列關(guān)于C語言文件的敘述中正確的是()。

A.文件由一系列數(shù)據(jù)依次排列組成,只能構(gòu)成二進制文件

B.文件由結(jié)構(gòu)序列組成,可以構(gòu)成二進制文件或文本文件

C.文件由數(shù)據(jù)序列組成,可以構(gòu)成二進制文件或文本文件

D.文件由字符序列組成,其類型只能是文本文件

65.若函數(shù)中有定義語句:inta;,則()。

A.系統(tǒng)將自動給a賦初值為0B.系統(tǒng)將自動給a賦初值一lC.這時a中的值無意義D.這時a中無任何值

66.設變量x為float型且已賦值,則以下語句能將x中的數(shù)值保留到小數(shù)點后兩位,并將第3位四舍五入的是()。

A.

B.

C.

D.

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

A.

B.

C.

D.

68.設有以下定義:

inta[4][3]={1,2,3,4,5,6,7,8,9,10,11,12};

int(*ptr)[3]=a,*p=a[0];

則下列能夠正確表示數(shù)組元素a【1】【2】的表達式是()。

A.*((*ptr+1)[2])

B.*(*(p+5))

C.(*ptr+1)+2

D.*(*(a+1)+2)

69.

70.

71.有以下程序

72.有以下程序

main()

{

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

for(p=a;p<a+10;p++)

printf("%d,",*p);

}

程序運行后的輸出結(jié)果是

A.1,2,3,4,5,6,7,8,9,0,B.2,3,4,5,6,7,8,9,10,1,

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

73.

74.設有二元關(guān)系R和三元關(guān)系s,下列運算合法的是()。

A.R∩SB.R∪SC.R-SD.R×S

75.

76.

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

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

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

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

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

78.若變量已正確定義,有以下程序段:

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

A.程序段有語法錯誤B.3,5,3C.3,5,5D.3,5,7

79.某二叉樹共有7個結(jié)點,其中葉子結(jié)點只有l(wèi)個,則該二叉樹的深度為(假設根結(jié)點在第1層)()。

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

80.有三個關(guān)系R、S和t如下:由關(guān)系R和s通過運算得到關(guān)系T,則所使用的運算為()。

A.笛卡兒積B.交C.并D.自然連接

五、程序改錯題(1題)81.下列給定的程序中,函數(shù)proc的功能是:用選擇法對數(shù)組中的m個元素按從小到大的順序進行排序。例如,排序前的數(shù)據(jù)為:1132-5214則排序后的數(shù)據(jù)為:-52111432請修改程序中的錯誤,使它能得到正確結(jié)果。注意:不要改動main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。試題程序:#include<stdio.h>#defineM20voidproc(inta[],intn){inti,j,t,P;//****found****for(j=0;j<n-1;j++);{p=j;for(i=j;i<n;i++)if(a[[i]<a[p])p=i;t=a[p];a[p]=aEj3;//****found****a[p]=t;}}voidmain{intarr[M]={11,32,-5,2,14},i,m=5;printf("排序前的數(shù)據(jù):");for(i=0;i<m;i++)printf("%d",arr[i]);printf("\n");proc(arr,m);printf("排序后的順序:");for(i=0;i<m;i++)printf("%d",arr[i]);printf("\n");}

六、程序設計題(1題)82.規(guī)定輸入的字符串中只包含字母和*號。編寫函數(shù)fun,其功能是:刪除字符串中所有的*號。編寫函數(shù)時,不得使用C語言提供的字符串函數(shù)。

例如,字符串中的內(nèi)容為“****A*BC*DEF*G****”,刪除后,字符串中的內(nèi)容應當是“ABCDEFG”。

注意:部分源程序給出如下。

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

試題程序:

#include<conio.h>

#include<stdio.h>

voidfun(chara)

{

voidmain

{

chars[81];

print{("Enterastring:\n");

gets(s):

fun(S);

printf("Thestringafterdeleted:\n");

puts(s);

}

參考答案

1.B

2.B

3.B

4.B

5.D本題考查C語言中變量類型的轉(zhuǎn)換。

C語言中若參與運算的變量的數(shù)據(jù)類型不同,則先轉(zhuǎn)換成同一類型,然后進行運算。轉(zhuǎn)換數(shù)據(jù)始終往長度增加的方向進行,以確保精確度,如int和long運算,則將int轉(zhuǎn)換為long再運算,所有的浮點運算都是以雙精度(double)進行的。

題目中x、y都為double型數(shù)據(jù),而表達式3/2為兩個整型變量之間的計算,計算結(jié)果只保留整數(shù)部分,小數(shù)部分省略掉。3/2的結(jié)果為1。后面變?yōu)橛嬎銀=x+1,這時都需要變?yōu)閐ouble型數(shù)據(jù),結(jié)果為3.000000。

6.CC?!窘馕觥縀—R(Entity—Relationship)圖為實體一聯(lián)系圖,提供了表示實體型、屬性和聯(lián)系的方法,用來描述現(xiàn)實世界的概念模型。

7.B在本題中,從題目給出的四個選項我們就可以知道,程序是對兩個字符串進行操作。下面將具體分析程序。

程序首先定義兩個字符型的指針變量s和t,從后面的程序中不難看出這兩個指針變量應該用來對兩個字符串進行操作處理。用循環(huán)來對字符串進行處理時,循環(huán)繼續(xù)的條件是指針變量s和指針變量t所指向的結(jié)果值不為0,且兩結(jié)果值相等。很顯然,指針變量s和指針變量t所指向的結(jié)果值不為0,說明兩字符串沒有結(jié)束,只有結(jié)束時才為0,而結(jié)果值相等說明兩字符相等,如果不等,循環(huán)則結(jié)束,此時程序?qū)⒁蠓祷夭坏仍刂g的差值,從差值的正負關(guān)系我們可以判斷出哪個元素更大。綜上所述,程序段的作用是用來比較兩字符串的大小。因此,本題正確的答案選B。

8.A

9.BC語言中指針就是變量的地址,它必須有確定的基類型。當指針指向某個變量時,才能向其中寫入數(shù)據(jù),選項A錯誤,選項B正確;指針除了指向變量外,還可以賦值為NULL,表示未指向任何地址,此時不能寫入數(shù)據(jù),另外指針必須有基類型,只能指向基類型相同的變量,選項C錯誤;指針只能與一個整數(shù)進行運算,即移動指針,兩個指針不能運算,選項D錯誤。本題答案為B選項。

10.B

11.C

12.C解析:x=7,通過遞歸調(diào)用fun函數(shù)后得到結(jié)果。

13.B

14.D

15.D

16.AB)選項中打開一個已存在的文件并進行了寫操作后,原有文件中的全部數(shù)據(jù)不一定被覆蓋,也可以對源文件進行追加操作等。c)選項中在一個程序中當對文件進行了寫操作后,不用先關(guān)閉該文件然后再打開,才能讀到第1個數(shù)據(jù),可以用fseek()函數(shù)進行重新定位即可。D)選項中,C語言中的文件可以進行隨機讀寫。故本題答案為A)。

17.D本題考查指針變量的賦值。**PP是定義一個指針變量,語句pp=&p是將pp指向指針P,*P和**PP都是指針P所指的內(nèi)存空間的內(nèi)容,即b的值。

18.A解析:本題考查了函數(shù)的遞歸調(diào)用。在f函數(shù)中,當m=7時,程序執(zhí)行“f(--n,&r1);”語句,遞歸調(diào)用f(6,&r1),程序執(zhí)行“r1=n/3;”語句,即r1=\u30006/3=2,然后執(zhí)行“*r=r1;”語句,所以輸出結(jié)果為2。

19.B常見的過程設計工具有圖形土具(程序流程圖、N—S圖、PAD圖、HIP0圖)、表格工具(判定表)和語言工具(PDL)。DFD是數(shù)據(jù)流圖,是描述數(shù)據(jù)處理過程的工具。

20.Bstrcat函數(shù)是字符串連接函數(shù),調(diào)用形式為strcat(s1,s2)。其功能是將s2指向的字符串的內(nèi)容連接到s1指向的存儲空間中,并返回s1的地址。由題意可知,新串首地址為s3,所以s3應該是第一參數(shù),選項A、D錯誤。同理,新串中除了S3所指的字符串,剩下的字符串為“nameaddress”,即首地址為s1,所以調(diào)用strcat函數(shù),s1是第一參數(shù)。所以正確的函數(shù)調(diào)用語句為“strcat(s3,strcat(s1,s2))”。故本題答案為B選項。

21.1515解析:s=f(aa,5)=f(aa,4)+a[4]=f(aa,3)+a[3]+a[4]=f(aa,2)+a[2]+a[3]+a[4]

=f(aa,1)+a[1]+a[2]+a[3]|a[4]=0+a[0]+a[1]+a[2]+a[3]+a[4]=15。

22.((x>0)&&(y>0))||((x>0)&&(z>0)||((y>0)&&(z>0))((x>0)&&(y>0))||((x>0)&&(z>0)||((y>0)&&(z>0))解析:題目要求“x、y和z中至少有兩個為正數(shù)”,即x、y和z這3個數(shù)中必須有兩個是正數(shù),且這3個數(shù)中的哪兩個數(shù)都有可能是正數(shù),所以它們之間是或的關(guān)系。

23.00解析:while循環(huán)的條件為即當*y非零時執(zhí)行循環(huán),-(*y)先對*y的值減1,再使用*y的值,不再執(zhí)行while循環(huán)時最后*y的值為0,輸出函數(shù)中的(*y)--,是先使用*y的值再對*y減1,就是先輸出0。

24.00解析:根據(jù)運算符的運算順序可知,該表達式最后運算的是與(&&)運算,而任何表達式與“0”進行“與”運算,結(jié)果都為0。

25.DDBBCCDDBBCC解析:C語言對枚舉的定義規(guī)定:在枚舉中聲明的各個枚舉元素,如果沒有明確指出某個枚舉元素的值,它的上一個元素存在并有明確值的情況下,這個枚舉元素的值為其上一個元素的值+1。在本題中,沒有明確說明枚舉元素em3的值,則em3=em2+1=1+1=2,進而可知,在printf()打印函數(shù)中,要打印的數(shù)組元素是aa[3]、aa[1]、aa[2],因此最后的打印結(jié)果應當為“DDBBCC”。

26.a=2b=3a=2,b=3解析:分析程序,程序從x=l語句開始執(zhí)行,之后執(zhí)行第一個switch語句,switch(x)=switch(1),所以執(zhí)行case1,casel語句中包含一個復合switch語句;這時執(zhí)行第二個switch語句,此時y=1,所以switch(y)=switch(1),因此執(zhí)行case1,將b加1,得到b=2,遇到break語句,退出第二個switch語句,則整個case1的復合語句執(zhí)行完畢,由于在這個case1的后面沒有break語句使其退出第一個switch語句,所以接著執(zhí)行下列的case2后面的語句,即將a、b各加1,得到a=2,b=3。

27.*(p+5)或p[5]*(p+5)或p[5]

28.棧棧解析:考查考生對棧和隊列概念的掌握。按'先進后出'原則組織數(shù)據(jù)的數(shù)據(jù)結(jié)構(gòu)是棧;按'先進先出'原則組織數(shù)據(jù)的數(shù)據(jù)結(jié)構(gòu)是隊列。

29.a.next=aba.next=ab解析:選項A)中,指針變量q保存的就是變量b的地址,選項B)中的p是指針變量,應該是p->next=&b;在選項D)中,用*運算符取出結(jié)構(gòu)體變量,并且保存的就是b的地址。

30.非0非0解析:邏輯運算中,非0表示邏輯“真”,用。表示邏輯“假”。

31.abcfgabcfg解析:本題考查的是字符數(shù)組用作函數(shù)參數(shù)。C語言中數(shù)組名可以看作該數(shù)組首地址的常量指針、因此可以直接傳遞給指針類型的參數(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的長度-2位置,循環(huán)中讓s[i]=s[i+2],所以函數(shù)fun()實現(xiàn)的功能簡單來說就是將字符串s下標為p+2~k范圍的字符整體復制到字符串s下標為p~k-2的位置上。在本題中strlen(s)返回s的長度7,所以復制的字符為s[5]~s[7],即'f'、'g','\\0'三個字符,復制到s[3]~s[5],故最終輸出的字符串為abcfg(因為s[5]為'\\0',所以后面的字符不會輸出)。

32.00解析:本題中的for循環(huán)共執(zhí)行了6次,每執(zhí)行一次將相應i的值相乘,最后當i=-1時停止循環(huán).該for循環(huán)執(zhí)行完后t的值為5*4*3*2*1*0=0,故最后輸出I的值為0。

33.軟件開發(fā)

34.3232解析:while(表達式)的功能是:首先計算表達式的值,若為真,則執(zhí)行循環(huán)體語句,執(zhí)行完畢,再計算表達式的值,若仍為真,則重復執(zhí)行循環(huán)體語句,直到表達式的值為假時,結(jié)束while語句的執(zhí)行,繼續(xù)執(zhí)行while語句后面的語句:i=0時滿足循環(huán)條件,也滿足if的條件,執(zhí)行語句得i=11,a=11,第2次循環(huán)不滿足if的條件,執(zhí)行i--,i=10,執(zhí)行i+=11;a+=i后,得i=21,a=32,不滿足i<20,循環(huán)結(jié)束。

35.x=2y=1

36.1234theend1,2,3,4,theend解析:本題考查帶參數(shù)的宏的定義。第1次循環(huán),i=1時,調(diào)用PRINT(1),P(1)輸出1;第2次循環(huán),i=2時,調(diào)用PRINT(2),P(2)輸出2;第3次循環(huán),i=3時,調(diào)用PRINT(3),P(3)輸出3;第4次循環(huán),i=4時,調(diào)用PRINT(4),P(4)輸出4,theend。

37.b[j][i]=a[i][j]b[j][i]=a[i][j]解析:本題考查二維數(shù)組的基本知識。它是要將一個二維數(shù)組,的行和列元素互換后存放到另一個二維數(shù)組b中,只要將數(shù)組a的行標和列標互換,然后賦給數(shù)組b即可。

38.99解析:本題中首先將宏替換掉,則表達式為a=++k+1*k+1=4+1*4+1=9,故最后輸出a的值為9。

39.99解析:本題的字符串中共有9個字符,它們分別是\'I\'、\'B\'、\'M\'、\'\\n\'、\'0\'、\'1\'、\'2\'、\'\\1\'、\'\\\\\',其中,'\\n'表示換行,'\\\\'表示反斜杠字符'\\',所以本題的最后輸出結(jié)果為9。

40.503503解析:本題考查的是C語言中if語句的語句體。第一個if語句的語句體為t=a,第二個if語句的語句體為t=a。執(zhí)行第一個if語句時,條件a<b不成立,所以不執(zhí)行t=a,直接執(zhí)行語句a=b和b=t得a=3、b=0,然后判斷第二個if語句的條件a<c是否成立,即判斷3<5是否成立,顯然條件成立,執(zhí)行語句t=a得t=3,接著執(zhí)行a=c;c=t得a=5、c=3,所以a=5、c=3、b=0。

41.A解析:C語言的常量分為整型常量、實型常量和字符型常量。本題中包含整型常量和實型常量。選項B)以0打頭,應該屬于八進制整數(shù),而八進制整數(shù)只能用數(shù)字0~7表示,所以選項B)不合法;選項C)和D)從形式上看屬于實型常量,但對于指數(shù)形式的實型常量,e(或E)之前必須有數(shù)字,且e后面的指數(shù)必須為整數(shù),所以選項C)和D)都不合法;選項A)屬于實型常量中正確的十進制小數(shù)形式。

42.C解析:軟件調(diào)試技術(shù)包括強行排錯法、回溯法和原因排除法。邊界值分析、錯誤推斷都是黑盒測試的方法。

43.A\n兩個實體之間的聯(lián)系實際上是實體集問的函數(shù)關(guān)系,這種函數(shù)關(guān)系可以有下面幾種,即一對一的聯(lián)系、一對多(或多對一)的聯(lián)系和多對多的聯(lián)系;概念模型便于向各種模型轉(zhuǎn)換。由于概念模型不依賴于具體的數(shù)據(jù)庫管理系統(tǒng),因此,容易向關(guān)系模型、網(wǎng)狀模型和層次模型等各種模型轉(zhuǎn)換。

\n

44.CE-R圖轉(zhuǎn)換成關(guān)系模型數(shù)據(jù)則是把圖形分析出來的聯(lián)系反映到數(shù)據(jù)庫中,即設計出表,所以屬于邏輯設計階段。

45.D解析:本題考查給二維數(shù)組元素賦值。給二維數(shù)組元素賦值時應注意下列兩點:①在對二維數(shù)組元素賦初值時,可以只對部分元素賦初值,未賦初值的元素自動取0。②二維數(shù)組第一維的大小由下列規(guī)則確定;當初值的個數(shù)能被第二維的常量表達式的值除盡時,所得商數(shù)就是第一維的大?。划敵踔档膫€數(shù)不能被第二維的常量表達式的值除盡時,第一維的大小等于所得商數(shù)加1。

46.A解析:本題主要考查運算表達式的運算。3+(int)(x)的結(jié)果是10011010,~3的結(jié)果是11111100,二者邏輯與得10011000。

47.D解析:逗號表達式(++x,y++)的值應該是y++的值,由于y++是先引用后自增,所以y++的值是3。

48.C

49.D解析:在C語言中,將一個字符常量放到一個字符變量中,實際并不是把該字符本身放到內(nèi)存單元中,而是將與該字符相對應的ASCII碼放到存儲單元中。

50.C解析:本題中,格式符。表示的是八進制無符號形式輸出整型數(shù)(不帶前導0),字符常量在內(nèi)存中占一個字節(jié),存放的是ACSII碼代碼值。C語言規(guī)定,所有字符常量都作為整型量來處理,在計算機內(nèi)部,其對應的整數(shù)值就是ACSII字符集中該字符的序號,即&*s中有幾個字符就輸出幾個*。

51.D解析:程序設計的過程應是先畫出流程圖,然后根據(jù)流程圖編制出程序,所以選項A錯誤。程序中的注釋是為了提高程序的可讀性,注釋必須在編制程序的同時加入,所以,選項B和選項C錯誤。綜上所述,本題的正確答案為選項D。

52.C

53.A解析:在程序中先用表達式將宏替換掉,則輸出語句中的表達式為(a++)*(b++),而a++的值為3,b++的值為4。因此最后的值為3*4=12。所以,4個選項中選項A符合題意。

54.B解析:本題考查邏輯與運算的運算規(guī)則。其規(guī)則是:當運算符前后兩個條件表達式都滿足時,其最終結(jié)果才為真。當發(fā)現(xiàn)第一個表達式的值為假后,計算機將不再執(zhí)行后面表達式的運算。

本題中,由于前一個表達式的值為“假”,所以,后面的表達式不再進行運算,因而n的值保持不變,仍為2。

55.D解析:耦合性與內(nèi)聚性是模塊獨立性的兩個定性標準,是互相關(guān)聯(lián)的。在程序設計中,各模塊間的內(nèi)聚性越強,則耦合性越弱。一般較優(yōu)秀的軟件設計,應盡量做到高內(nèi)聚、低耦合,有利于提高模塊的獨立性。

56.B解析:本題定義了一個for循環(huán),循環(huán)變量是i,但由于本題并沒有設置循環(huán)條件,所以循環(huán)的條件永遠默認為真,即無限次執(zhí)行循環(huán)。

57.A

58.C解析:關(guān)于軟件測試的目的,GrenfordJ.Myers在《TheArtofSoftwareTesting》一書中給出了深刻的闡述:軟件測試是為了發(fā)現(xiàn)錯誤而執(zhí)行程序的過程;一個好的測試用例是指很可能找到迄今為止尚未發(fā)現(xiàn)的錯誤的用例;一個成功的測試是發(fā)現(xiàn)了至今尚未發(fā)現(xiàn)的錯誤的測試。整體來說,軟件測試的目的就是盡可能多地發(fā)現(xiàn)程序中的錯誤。本題答案為C。

59.A解析:條件表達式“a?b:c”的含義是:當a為真時,其值等于表達式b的值;當a為假時,其值等于表達式c的值。

表達式運算過程:第1個表達式:w=2<x=3為真,所以返回w的值,即m=w=2;第2個表達式:m=2<z=5為真,所以返回m的值,即m=2;第3個表達式:w=2<y=4為真,所以返回m的值,即m=2。

60.C解析:選項A是先定義一個結(jié)構(gòu)體類型,然后再定義結(jié)構(gòu)體變量。選項B是通過宏替換來定義結(jié)構(gòu)變量的。選項D則是直接定義結(jié)構(gòu)變量。

61.B\n在一個表達式中,括號的優(yōu)先級高,先計算3!=4,為真即是l,1>2為假。

\n

62.C考查二維數(shù)組元素的引用方法。題中通過二維數(shù)組的行、列下標來定位元素的位置,從而實現(xiàn)元素的引用。

63.B解析:二維數(shù)組的元素可以看成是按矩陣形式存放的,總是先存放第一行的元素,再存放第二行的元素。數(shù)組第一維的下標是i,說明它前面還有i行,有i*m個元素,數(shù)組第二維的下標是j,說明它前面還有j列,有j個元素,所以共有i*m+j個元素。

64.C文件由數(shù)據(jù)序列組成,可以構(gòu)成二進制文件或文本文件。故本題答案為C選項。

65.C用int方法定義變量時,編譯器僅為變量開辟存儲單元,并沒有在存儲單元中放任何值,此時變量中的值是無確定的,稱變量值”無意義”。因此,本題正確答案為c。

66.B(int)(x*100+0.5)把float型數(shù)據(jù)(x*100+0.5

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論