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

下載本文檔

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

文檔簡介

2022年江蘇省南京市全國計算機(jī)等級考試C語言程序設(shè)計知識點(diǎn)匯總卷(含答案)學(xué)校:________班級:________姓名:________考號:________

一、單選題(20題)1.

2.在n個結(jié)點(diǎn)的線性表的數(shù)組實現(xiàn)中,算法的時間復(fù)雜度是O(1)的操作是()。

A.訪問第i(1<=i<=n)個結(jié)點(diǎn)和求第i個結(jié)點(diǎn)的直接前驅(qū)(1<i<=n)

B.在第i(1<=i<=n)個結(jié)點(diǎn)后插入一個新結(jié)點(diǎn)

C.刪除第i(1<=i<=n)個結(jié)點(diǎn)

D.以上都不對

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

4.將兩個字符串連接起來組成一個字符串時,選用()函數(shù)。A.strlen()B.strcpy()C.strcat()D.strcmp()

5.判斷一個棧ST(最多元素為Maxsize)為空的條件是()。

A.ST->top!==一1

B.ST->top==-1

C.ST->top!==Maxsize-1

D.ST->top==Maxsize-1

6.設(shè)棧S和隊列Q的初始狀態(tài)為空,元素e1,e2,e3,e4,e5和e6依次通過棧S,一個元素出棧后即進(jìn)隊列Q,若6個元素出隊的序列是e2,e4,e3,e6,e5,e1,則棧S的容量至少應(yīng)該是()。

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

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

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

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

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

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

8.有以下程序

#include<stdio.h>

main()

{charc1,c2,c3,c4,c5,c6;

scanf("%c%c%c%c",&c1,&c2,&c3,&c4);

c5=getchar();c6=getchar();

putchar(c1);putchar(c2);

printf("%c%c\n",c5,c6);

}

程序運(yùn)行后,若從鍵盤輸入(從第1列開始)

123<回車>

45678<回車>

則輸出結(jié)果是

A.1267B.1256C.1278D.1245

9.以下不能輸出字符A的語句是(注:字符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);

10.數(shù)據(jù)庫設(shè)計的四個階段是:需求分析、概念設(shè)計、邏輯設(shè)計和______。A.編碼設(shè)計B.測試階段C.運(yùn)行階段D.物理設(shè)計

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

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

12.若有定義“inta=3,*p=&a,**q=&p;”,則以下敘述中錯誤的是()。

A.q是指針變量,*q就是變量a

B.p是指針變量,p指向變量a

C.q指向變量p,所以*q指向變量a

D.*p與**q都代表變量a

13.靜態(tài)鏈表中指針表示的是()。

A.內(nèi)存地址B.數(shù)組下標(biāo)C.下一元素地址D.左、右孩子地址

14.A.A.75310246B.01234567C.76310462D.13570246

15.若有如下程序:#definePI3.1415926#defineA(r)2*PI*rmain(){floata,1;a=3.0;1=A(a);printf("r=%.2f,1=%.2f\n",a,1);}則程序運(yùn)行后的輸出結(jié)果是()

A.r=3.001=18.85

B.3.00,18.85

C.r=3.0000001=18.8495555

D.r=3.01=18.8495555

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

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

17.下面程序的運(yùn)行結(jié)果是()。#include"stdio.h"main(){inti;for(i=1;i<=5;i++){if(i%2)printf("*");elseprintf("#");}}

A.*#*#*B.#*#*#*C.*#*#D.#*#*

18.關(guān)于地址和指針,以下敘述正確的是()。

A.可以通過強(qiáng)制類型轉(zhuǎn)換讓char型指針指向double型變量

B.函數(shù)指針P指向一個同類型的函數(shù)f時,必須寫成“p=&f;”

C.指針P指向一個數(shù)組f時,必須寫成“P=&f;”

D.—個指針變量P可以指向自身

19.棧通常采用的兩種存儲結(jié)構(gòu)是A.A.線性存儲結(jié)構(gòu)和鏈表存儲結(jié)構(gòu)

B.散列方式和索引方式

C.鏈表存儲結(jié)構(gòu)和數(shù)組

D.線性存儲結(jié)構(gòu)和非線性存儲結(jié)構(gòu)

20.采用表結(jié)構(gòu)來表示數(shù)據(jù)和數(shù)據(jù)間聯(lián)系的模型是()。

A.層次模型B.概念模型C.網(wǎng)狀模型D.關(guān)系模型

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

#defineMCRA(m)2*m

#defineMCRB(n,m)2*MCRA(n)+m

main()

{

inti=2,j=3;

printf("%d\n",MCRB(j,MCRA(i)));

}

22.在面向?qū)ο蠓椒ㄖ?,信息隱蔽是通過對象的______性來實現(xiàn)的。

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

#include<stdio.h>

f(intA)

{intb=0;

staticc=7;

a=c++;b++;

return(A);

}

main()

{inta=2,i,k;

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

k=f(a++);

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

}

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

25.設(shè)有說明;

structDATE{intyear;intmonth;intday;};

請寫出一條定義語句,該語句定義d為上述結(jié)構(gòu)體類型變量,并同時為其成員year、month、day依次賦初值2006、10、1:【】。

26.對于長度為n的順序存儲的線性表,當(dāng)隨機(jī)插入和刪除一個元素時,需平均移動元素的個數(shù)為【】。

27.填空補(bǔ)充以下程序。

#define【】30

{【】;

total=numPRICE;

printf("total=%d,num=%d\n",【】);

}

28.數(shù)據(jù)庫設(shè)計分為以下6個設(shè)計階段:需求分析階段、______、邏輯設(shè)計階段、物理設(shè)計階段、實施階段、運(yùn)行和維護(hù)階段。

29.在關(guān)系模型中,把數(shù)據(jù)看成一個二維表,每一個二維表稱為一個______。

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

charb[]="ABCD";

main()

{char*chp;

for(chp=b;*chp;chp+=2)printf("%s",chp);

printf("\n");

}

31.閱讀下面程序,則執(zhí)行后的輸出結(jié)果是【】。

#include"stdio.h"

main()

{intx,y,z;

x=1;y=2;z=3;

if(x>y)if(x>z)printf("%d",x);

elseprintf("%d",y);

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

32.若x=3,y=2,z=1,表達(dá)式z-=x<y?x++:++y的值為______。

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

#include<stdio.h>

main()

{charc;intn=100;

floatf=10:doublex:

x=f*=n/=(c=50);

printf("%d%f\n",n,x);

}

34.按照“先進(jìn)先出”的原則組織數(shù)據(jù)的結(jié)構(gòu)是______。

35.以下函數(shù)rotate的功能是:將a所指N行N列的二維數(shù)組中的最后一行放到b所指二維數(shù)組的第0列中,把a(bǔ)所指二維數(shù)組中的第0行放到b所指二維數(shù)組的最后一列中,b所指二維數(shù)組中其他數(shù)據(jù)不變。

#defineN4

voidrotade(inta[][N],intb[][N])

{inti,j;

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

{b[i][N-1]=[9];[10]:a[N-1][i];}}

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

main()

{charc;intn=100;

loatf=10;doublex;

x=f*=n/=(c=50);

printf("%d%f\n",n,x);

}

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

38.軟件是程序、數(shù)據(jù)和【】的集合。

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

main()

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

if(c=A)printf("%d\n",C);

elseprintf("%d\n",B);

}

40.下列軟件系統(tǒng)結(jié)構(gòu)圖的寬度為[]。

三、1.選擇題(20題)41.有下列二叉樹,對此二叉樹前序遍歷的結(jié)果為()。

A.ACBEDGFHB.ABDGCEHFC.HGFEDCBAD.ABCDEFGH

42.在數(shù)據(jù)結(jié)構(gòu)中,從邏輯結(jié)構(gòu)上看可以分成______。

A.動態(tài)結(jié)構(gòu)和靜態(tài)結(jié)構(gòu)B.線性結(jié)構(gòu)和非線性結(jié)構(gòu)C.內(nèi)部結(jié)構(gòu)和外部結(jié)構(gòu)D.緊湊結(jié)構(gòu)和非緊湊結(jié)構(gòu)

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

A.strcpy(str1,"HELLO1");

B.strcpy(str2,"HELLO2");

C.strcpy(str3,"HELLO3");

D.strcpy(str4,"HELLO4")

44.棧和隊列的共同特點(diǎn)是()。

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

45.當(dāng)用“#defineF37.5f”定義后,下列敘述正確的是()。

A.F是float型數(shù)B.F是Char型數(shù)C.F無類型D.F是字符串

46.下面程序的功能是把316表示為兩個加數(shù)的和,使兩個加數(shù)分別能被13和11整除,請選擇填空。#include<stdio.h>main(){inti=0,j,k;do{i++;k=316-13*i}while(______);j=k/11;printf("316=13*%d+11,%d”,i,j);}

A.k/11B.k%11C.k/11==0D.k%11==0

47.軟件(結(jié)構(gòu))設(shè)計階段產(chǎn)生的文檔是______。

A.程序流程圖B.系統(tǒng)功能說明書C.系統(tǒng)模型說明書D.模塊結(jié)構(gòu)圖和模塊說明書

48.若變量均已正確定義并賦值,以下合法的C語言賦值語句是()。

A.x=y==5;B.X=n%2.5:C.x+n=i;D.x=5=4+1:

49.下面程序的輸出結(jié)果是()#definePI3.1415#defineARE(x)PI*x*xmain(){intr=2;printf("%f",ARE(r+1));}

A.28.26B.28.26C.9.28D.9.28

50.若有以下定義和語句:inta[]={1,2,3,4,5,6,7,8,9,10},*p=a;則值為3的表達(dá)式是______。

A.p+=2,*(p++)B.P+=2,*++pC.P+=3,*p++D.P+=2,++*p

51.使計算機(jī)病毒傳播范圍最廣的媒介是________

A.硬磁盤B.軟磁盤C.內(nèi)部存儲器D.互聯(lián)網(wǎng)

52.下面不屬于軟件設(shè)計原則的是()。

A.抽象B.模塊化C.自底向上D.信息隱蔽

53.若a為int類型,且其值為3,則執(zhí)行完表達(dá)式a+=a-=a*a后,a的值是()。

A.-3B.9C.-12D.6

54.在執(zhí)行下述程序時,若從鍵盤輸入6和8,則結(jié)果為

main()

{inta,b,s;

scanf("%d%d",&a,&b);

s=a

if(a<b)

s=b;

s*=s;

printf("%d",s);}

A.36B.64C.48D.以上都不對

55.以下程序的輸出結(jié)果是______。inti=010,j=10;printf("%d,%d\n",++i,j--);

A.11,10B.9,10C.10,10D.10,9

56.在對下列函數(shù)調(diào)用中,不正確的是()

A.max(a,b);B.max(3,a+b);C.max(3,5)D.intmax(a,b);

57.有以下函數(shù)intaaa(char*s){char*t=s;while(*t++);t--;return(t-s);}以下關(guān)于aaa函數(shù)的功能的敘述正確的是A.求字符串s的長度B.比較兩個串的大小C.將串s復(fù)制到串tD.求字符串s所占字節(jié)數(shù)

58.若有定義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

59.下列關(guān)于隊列的敘述中正確的是______。A.在隊列中只能插入數(shù)據(jù)B.在隊列中只能刪除數(shù)據(jù)C.隊列是先進(jìn)先出的線性表D.隊列是先進(jìn)后出的線性表

60.以下所列的各函數(shù)首部中,正確的是______。

A.voidplay(Var:Integer,varb:Integer)

B.voidplay(inta,b)

C.voidplay(inta,intb)

D.Subplay(aasinteger,basinteger)

四、選擇題(20題)61.(70)需求分析階段的任務(wù)是確定()

A.軟件開發(fā)方法

B.軟件開發(fā)工具

C.軟件開發(fā)費(fèi)用

D.軟件系統(tǒng)功能

62.有以下計算公式:

若程序前面已在命令行中包含math.h文件,不能夠正確計算上述公式的程序段是

([answer]

63.有以下程序:main{intx,i;for(i=l;i<=50;i++){x=i:if(x%2=0)if(x%3=0)if(X%7=0)printf(”%d,i)”;}}輸出結(jié)果是()。A.28B.27C.42D.4l

64.

65.(13)設(shè)一棵完全二叉樹共有699個結(jié)點(diǎn),則在該二叉樹中的葉子結(jié)點(diǎn)數(shù)為()

A.349

B.350

C.255

D.351

66.

67.有以下程序:

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

A.PrphsbnB.ProhsbnC.ProgsbnD.Program

68.鏈表不具有的特點(diǎn)是A.A.不必事先估計存儲空間

B.可隨機(jī)訪問任一元素

C.插入和刪除不需要移動元素

D.所需空間與線性表長度成正比

69.數(shù)據(jù)流圖中帶有箭頭的線段表示的是()。

A.控制流B.事件驅(qū)動C.模塊調(diào)用D.數(shù)據(jù)流

70.以下選項中,當(dāng)x為大于1的奇數(shù)時,值為0的表達(dá)式是()。

A.x%2==0B.x/2C.x%21=0D.x%2==1

71.下列關(guān)于C語言數(shù)據(jù)文件的敘述中正確的是______。

A.文件由ASCII碼字符序列組成,C語言只能讀寫文本文件

B.文件由二進(jìn)制數(shù)據(jù)序列組成,C語言只能讀寫二進(jìn)制文件

C.文件由數(shù)據(jù)流形式組成,可按數(shù)據(jù)的存放形式分為二進(jìn)制文件和文本文件

D.文件由記錄序列組成,可按數(shù)據(jù)的存放形式分為二進(jìn)制文件和文本文件

72.有以下程序:main{inti,n=0:for(i=2;i<5;i++){do{if(i%3)continue:n++:}while(!i);n++:}printf("n=%d\n",n);}程序執(zhí)行后輸出結(jié)果是()。A.n=5B.n=2C.n=3D.n=4

73.設(shè)有下列二叉樹:對此二叉樹前序遍歷的結(jié)果為()

A.ZBTYCPXAB.ATBZXCYPC.ZBTACYXPD.ATBZXCPY

74.

75.在數(shù)據(jù)庫設(shè)計中,用E-R圖來描述信息結(jié)構(gòu),但不涉及信息在計算機(jī)中的表示,它是數(shù)據(jù)庫設(shè)計的()階段。

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

76.設(shè)有定義:charp[]={1,2,3),*q=p;,以下不能計算出一個char型數(shù)據(jù)所占字節(jié)數(shù)的表達(dá)式是()。

A.sizeof(p)B.sizeof(char)C.sizeof(*q)D.sizeof(p[0])

77.(37)下面不屬于軟件設(shè)計原則的是()

A.抽象

B.模塊化

C.自底向上

D.信息隱蔽

78.有如下程序段

#include"stdio.h"

#include"string.h"

#defineN10

#defineM10

char*find(char(*a)[M],intn)

{char*q;inti;

q=a[0];

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

if(strcmp(a[i],q)<0)q=a[i];

returnq;}

main()

{chars[N][M]={"tomeetme","you","and","he","china"};

char*p;

intn=5;

p=find(s,n);

puts(p);}

則執(zhí)行后輸出的結(jié)果為A.A.heB.andC.youD.tomeetme

79.

80.

五、程序改錯題(1題)81.下列給定程序中函數(shù)fun的功能是:將長整型數(shù)中各位上為奇數(shù)的數(shù)依次取出,構(gòu)成一個新數(shù)放在t中。高位仍在高位,低位仍在低位。

例如,當(dāng)s中的數(shù)為87653142時,t中的數(shù)為7531。請改正程序中的錯誤,使它能得出正確的結(jié)果。注意:部分源程序在文件MODll.C中,不得增行或刪行,也不得更改程序的結(jié)構(gòu)!

六、程序設(shè)計題(1題)82.使用VC++2010打開考生文件夾下prog1中的解決方案。此解決方案的項目中包含一個源程序文件prog1.c。在此程序中,規(guī)定輸入的字符串中只包含字母和*號。編寫函數(shù)fun(),其功能是除了字符串前導(dǎo)和尾部的*號外,將字符串中其他的*號全部刪除。形參h指向字符串中第一個字母,形參p指向字符串中最后一個字母。在編寫函數(shù)時,不得使用C語言提供的字符串函數(shù)。例如,若字符串中的內(nèi)容為“****A*BC*DEF*G********”,刪除后,字符串中的內(nèi)容應(yīng)當(dāng)是“****ABCDEFG********”。注意:部分源程序給出如下。請勿改動主函數(shù)main()和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun()的花括號中填入你編寫的若干語句。試題程序:#include<stdio.h>#include<conio.h>#include<string.h>voidfun(char*a,char*h,char*p){}main(){chars[8l],*t,*f;printf(“Enterastring:\n”);gets(s);t=f=s;while(*t)t++;t--;while(*t==‘*’)t--;while(*f==‘*’)f++;fun(s,f,t);printf(“Thestringafterdeleted:\n”);puts(s);}

參考答案

1.B

2.A

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

4.C將兩個字符串連接起來組成一個字符串,選用strcat函數(shù)來連接。

5.B

6.C

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

8.D解析:putchar(c1)輸出1,putchar(c2)輸出2,printf('%c%c\\n',c5,c6)輸出45。

9.BB選項輸出的格式為%d,即整型格式,所以輸出字符‘A’的ASCII值65,而不是字母A。因為大寫字母比其對應(yīng)的小寫字母的ASCII值小32,所以A選項正確。字符‘A’的ASCII值是65,以%c格式輸出可以輸出字母A,所以C選項正確。因為字符‘A’的ASCII值比字符‘B’的小1,所以D選項正確。故本題答案為B選項。

10.DD)【解析】數(shù)據(jù)庫設(shè)計目前一段采用生命周期法.即將整個數(shù)據(jù)庫應(yīng)用系統(tǒng)的開分解成目標(biāo)獨(dú)立的若干階段,它們是:需要分析階段、概念設(shè)計階段、邏輯設(shè)計階段、物理設(shè)計階段、編碼階段、測試階段、運(yùn)行階段、進(jìn)一步修改階段。在數(shù)據(jù)庫設(shè)計中采用上面幾個階段中的前四個階段,并且重點(diǎn)以數(shù)據(jù)結(jié)構(gòu)和模型設(shè)計為主線。

11.B

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

\n

12.A由題意可知:指針變量p指向變量a,p的值是a的地址;指針變量q指向變量p,q的值是P的地址。q是指針變量,q指向p,*q是變量P,選項A錯誤;p是指針變量,p指向變量a,選項B正確;由于q指向P,因此*q指向a,選項C正確;*p和**q都代表變量a,選項D正確。故本題答案為A選項。

13.C

14.A本題的考點(diǎn)是C語言的數(shù)組及其排序。本題的程序中分為2個循環(huán)體,第一個循環(huán)體將數(shù)組中1,3,5,7,2,4,6,0的前4個元素從大到小排序,這個循環(huán)體結(jié)束后數(shù)組中的值為7,5,3,1,2,4,6,0。第二個循環(huán)體將數(shù)組中7,5,3,1,2,4,6,0從第5個開始的4個元素從小到大排序,這個循環(huán)體結(jié)束后數(shù)組中的值為7,5,3,1,0,2,4,6。所以正確答案是選項A。

15.A

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

17.A解析:分析程序呵知.程序循環(huán)5次,然后利用if語句決定每次循環(huán)時輸出的字符。當(dāng)i為奇數(shù)時,i%2=1,if(i%2)為真,輸出“*”;當(dāng)i為偶數(shù)時,i%2=0,if(i%2)為假,執(zhí)行else語句,輸出“#”,所以當(dāng)i取1、3、5值時輸出“*”,當(dāng)i取2、4值時輸出“#”。

18.A函數(shù)名代表函數(shù)的入口地址,函數(shù)指針P指向一個同類型的函數(shù)f時,可以寫成“p=f;”,而不能寫成“P=&f;”,選項B錯誤。指針p指向一個數(shù)組f時,可以寫成“p=f;”,數(shù)組名f代表數(shù)組的首地址,選項C錯誤。指針變量指向的是變量的地址,選項D錯誤。char型根據(jù)轉(zhuǎn)化原則可以轉(zhuǎn)化為double類型。故本題答案為A選項。

19.A解析:和線性表類似,棧也有兩種存儲方法,一是順序棧,二是鏈?zhǔn)綏?。棧的順序存儲結(jié)構(gòu)是利用一組地址連續(xù)的存儲單元一次存儲自棧底到棧頂?shù)臄?shù)據(jù)元素,同時附設(shè)指針top指示棧頂元素的位置,由于棧的操作是線性表操作的特例,相對而言,鏈?zhǔn)綏5牟僮鞲子趯崿F(xiàn)。注意:這3種運(yùn)算方法在各種存儲結(jié)構(gòu)中的應(yīng)用。

20.D關(guān)系模型采用二維表來表示,簡稱表。本題答案為D選項。

21.1616解析:首先用j和MCRA(i)替換MCRB(n,m)中的參數(shù)n和m,變成2*MCRA(j)+MCRA(i),再用j和i替換MCRA(m)中的參數(shù)m,變成2*2*j+2*i=2*2*3+2*2=16。

22.封裝封裝

23.88解析:第1次for循環(huán),i=0,調(diào)用函數(shù)f(2),然后將a的值加1,在f()函數(shù)中,變量c為static類型,所以c=8:第2次for循環(huán),i=1,調(diào)用函數(shù)f(3),然后將a的值加1,調(diào)用函數(shù)f(3)時,a=c++=8,所以k=8。

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

25.structDATEd={2006101};structDATEd={2006,10,1};解析:在C語言中,結(jié)構(gòu)體變量定義語句的一般形式如下:

struct<結(jié)構(gòu)體名><結(jié)構(gòu)體對象名>[=<初始化列表>];

在本題中,<結(jié)構(gòu)體名>是DATE,<結(jié)構(gòu)體對象名>題目要求為d,而可有可無的<初始化列表>本題要求為{2006,10,1}。故應(yīng)該填structDATEd={2006,10,1};。

26.n/2n/2解析:刪除一個元素,平均移動的元素個數(shù)為(n-1+n-2+…+0)/n=(n-1)/2;插入一個元素,平均移動元素個數(shù)為(n+n-1+n-2+…+1)/n=(n+1)/2;所以總體平均移動元素個數(shù)為n/2。

27.PRICEintnumtotaltotalnum

28.概念設(shè)計階段(數(shù)據(jù)庫概念設(shè)計階段)概念設(shè)計階段(數(shù)據(jù)庫概念設(shè)計階段)

29.關(guān)系關(guān)系解析:關(guān)系模型用;維表表示,則每個;維表代表一種關(guān)系。

30.ABCDCD

31.33解析:C語言的語法規(guī)定:else子句總是與前面最近的不帶else的if相結(jié)合。因為x不大于y,所以執(zhí)行printf('%d\\n',z);語句。

32.-2。-2。解析:表達(dá)式z-=x<y?x++:++y相當(dāng)于先執(zhí)行++y,再執(zhí)行z-=x<y?x:y,最后執(zhí)行x++,其中z-=x<y?x:y等價于z=z-(x<y?x:y),由于x值為3,y值為3,x<y不成立,返回y的值,z-y的值為-2,賦給z。

33.220220解析:根據(jù)賦值運(yùn)算符“自右至左”的結(jié)合順序,程序中賦值表達(dá)式x=f*=n/=(c=50)的求解步驟為:首先計算n/=(c=50),即n=n/c=100/50=2;然后計算f*=n,即f=f*n=10*2=20.000000,由此得到x的值為20.000000。

34.隊列隊列解析:隊列是一種特殊的線性表,只允許在表的一端插入元素,在表的另一端刪除元素,插入元素的一端叫做“隊尾”,刪除元素的一端叫做“隊頭”,先插入的元素先被刪除,是按先進(jìn)先出的原則組織數(shù)據(jù)的。

35.b[i][N-1];s[0][i]實現(xiàn)把a(bǔ)所指二維數(shù)組中的第0行放到b所指二維數(shù)組的最后一列中,b[i][0]=a[N-1][i]門實現(xiàn)將a所指N行N列的二維數(shù)組中的最后一行放到b所指二維數(shù)組中的第0列。\r\n\r\n

36.0

37.程序設(shè)計的任務(wù)是診斷和改正程序中的錯誤。程序調(diào)試活動由兩部分組成,其一是根據(jù)錯誤的跡象確定程序中錯誤的確切性、原因和位置;其二是對程序進(jìn)行修改,排除這個錯誤。\r\n\r\n

38.文檔文檔解析:計算機(jī)軟件是計算機(jī)系統(tǒng)中與硬件相互依存的另一部分,是包括程序、數(shù)據(jù)以及相關(guān)文檔的完整集合。

39.11解析:本題是一個陷阱題。在if語句的判斷表達(dá)式中,使用的不是邏輯運(yùn)算符==而是賦值運(yùn)算符=,使該表達(dá)式返回的結(jié)果正好相反。如果是c==a,則結(jié)果為假。但是c=a則是將a賦給c,且表達(dá)式的結(jié)果是賦值之后的c的值,因此結(jié)果為1是真.故最后輸出c的值1。

40.33解析:軟件系統(tǒng)結(jié)構(gòu)圖的寬度:整體控制跨度(最大模塊數(shù)的層)的表示。

41.B解析:對二叉樹的前序遍歷是指:先訪問根結(jié)點(diǎn),然后訪問左子樹,最后訪問右子樹,并且,在訪問左、右子樹時,先訪問根結(jié)點(diǎn),再依次訪問其左,右子樹。

42.B

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

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

45.D解析:字符替換定義格式為:#define標(biāo)識符(形參表)形參表達(dá)式。題中F是代表形參表達(dá)式的標(biāo)識符(字符串)。

46.B解析:本題的關(guān)鍵是兩個加數(shù)分別能被13和11整除。當(dāng)k%11的值為0時,則退出循環(huán),將執(zhí)行j=k/11;語句,輸出結(jié)果,所以該表達(dá)式合理的條件是k%11。

47.D

48.AB選項中運(yùn)算符“%”的運(yùn)算對象為整數(shù)。C選項中不能將變量賦給表達(dá)式“x+n”。D選項中不能將表達(dá)式“4+1”賦給常量5。故本題答案為A選項。

49.D

50.A解析:引用一個數(shù)組元素,可以用:(1)下標(biāo)法,如a[i]形式;(2)指針法,如*(a+i)或*(p+i)。數(shù)組的下標(biāo)從0開始,值為3的數(shù)組元素是a[2]。B、C的內(nèi)容為a[3],D將a[2]前自加,結(jié)果為4。

51.D

52.C解析:軟件設(shè)計遵循軟件工程的基本目標(biāo)和原則,建立了適用于在軟件設(shè)計中應(yīng)該遵循的基本原理和與軟件設(shè)計有關(guān)的概念。①抽象是一種思維工具,就是把事物本質(zhì)的共同特性抽出來而不考慮其他細(xì)節(jié)。②模塊是指可以單獨(dú)命名且可編址的元素。如高級語言中的過程、函數(shù)、子程序等。③信息隱蔽是指在一個模塊內(nèi)包含的信息(過程或數(shù)據(jù)),對于不需要這些信息的其他模塊來說是不能訪問的。④模塊獨(dú)立性是指每個模塊只完成系統(tǒng)要求的獨(dú)立的子功能,并且與其他模塊的聯(lián)系最少且接口簡單。因此,本題的正確答案是C。

53.C解析:本題中首先定義一個整型變量a并給它賦初值為3,在表達(dá)式中,從右開始執(zhí)行,即先執(zhí)行“a-=a*a;”等價于a=a-a*a即a=3-3*3=-6,此時a的值為-6,接著執(zhí)行“a+=a-;”相當(dāng)于執(zhí)行a=a+a即a=-6+(-6)=-12,此時a的值為-12。所以,4個選項中選項C符合題意。

54.B解析:本題中a的值為6,b的值為8,最后s的值為8,s*=s等價于s=s*s。

55.B解析:在C語言中,以0開頭表示八進(jìn)制數(shù),所以本題程序中010表示八進(jìn)制數(shù)10,相當(dāng)于十進(jìn)制數(shù)8。因此i的初值為8,經(jīng)++i后,i的值為9。變量j經(jīng)j--后,變?yōu)?0,由于自減運(yùn)算符在j的右側(cè),所以是先輸出j的值10后,再自減1。

56.D

57.A解析:aaa()函數(shù)中,首先定義了一個字符指針t指向形參s,然后通過一個while循環(huán)讓指針\u3000t不斷遞增,直到t指向字符串結(jié)束標(biāo)志處。當(dāng)t指向結(jié)束標(biāo)志處時,由于后綴++運(yùn)算符的原因,它還會被再遞增1,所以接卜來的t--;語句讓它回到結(jié)束標(biāo)志處。最后返回t-s,因此s還是指向字符串第1個字符處,而t指向了字符串結(jié)尾,故返回值為字符串的長度值。

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

59.C隊列是指允許在一端進(jìn)行插入、而在另一端進(jìn)行刪除的線性表,選項A和選項B錯誤。允許插入的一端稱為隊尾,允許刪除的一端稱為隊頭。在隊列中,最先插入的元素將最先能夠被刪除,反之,最后插入的元素將最后才能被刪除。所以,隊列又稱為“先進(jìn)先出”或“后進(jìn)后出”的線性表,它體現(xiàn)了“先來先服務(wù)”的原則,選項C正確,選項D錯誤。

60.C解析:C語言中函數(shù)首部中的各參數(shù)必須分開單獨(dú)定義,因此選項C才是正確的。而選項A和D是其他語言的函數(shù)定義方式。

61.D

62.B從本題給出的計算公式我們可以看出,這個公式的作用是:無論變量x的值是大于零或小于零,都取其絕對值。知道公式的作用后,再分析選項。

在選項A中,當(dāng)變量x的值小于0時,對其取絕對值操作,而當(dāng)變量x的值大于0時,取其本身,與公式描述的內(nèi)容完全一致。

在選項B中,首先對變量x進(jìn)行取絕對值操作,將結(jié)果賦值給變量y,然后當(dāng)x小于0時,將小于0的x重新賦值給變量y,使變量y中含有賦值,與公式描述的內(nèi)容不一致。

在選項C中,如果變量x的值大于等于0,則將其值賦給變量y,否則,當(dāng)x的值小于0時,取反再賦值給變量y,這也相當(dāng)于取絕對值,能正確表示公式的內(nèi)容。

在選項D中,與選項C所表述的意思完全一樣,能正確表示公式的內(nèi)容。

63.C只有當(dāng)3個if條件同時成立,即能夠同時被2、3、7整除時,才輸出i的值,而從0到50能夠同時被2、3、7整除的數(shù)只有42,故選擇C選項。

64.A

65.B注:利用公式n=n0+n1+n2、n0=n2+1和完全二叉數(shù)的特點(diǎn)可求出

66.A

67.B(*q)++是q所指的字符加l,q++就是指針移到下一個字符。因此B選項正確。

68.B鏈表是一種特殊的線性表,鏈表的存儲結(jié)構(gòu)與順序存儲結(jié)構(gòu)不同,它的存儲區(qū)域可以是任意的存儲單元,對存儲系統(tǒng)中零碎的存儲部分具有更好的應(yīng)用,在給其分配存儲單元時,不必事先估計整個存儲單元的空間大?。挥捎阪湵淼脑厥峭ㄟ^指針域的指針相連的,用鏈表存儲數(shù)據(jù)時,對其進(jìn)行插入和刪除操作時,不需要移動其他元素,只需改變其直接前驅(qū)指針域,使其指向該結(jié)點(diǎn),并將該結(jié)點(diǎn)的指針域修改為指向其直接后繼結(jié)點(diǎn)即可。當(dāng)然,不管是鏈表還是順序存儲,所需空間與線性表長度都成正比。在鏈?zhǔn)酱鎯Φ逆湵斫Y(jié)構(gòu)中,由于后一結(jié)點(diǎn)數(shù)據(jù)被存儲在哪里,只有通過前一結(jié)點(diǎn)的指針域才知道,因此,訪問時只能是逐個訪問,而不能實現(xiàn)隨機(jī)訪問。

69.D解析:數(shù)據(jù)流圖是描述數(shù)據(jù)處理過程的工具,是需求理解的邏輯模型的圖形表示,它直接支持系統(tǒng)的功能建模。數(shù)據(jù)流圖從數(shù)據(jù)傳遞和加工的角度,來刻畫數(shù)據(jù)流從輸入到輸出的移動變換過程。數(shù)據(jù)流圖中的主要的圖形元素與說明如下:

加工(轉(zhuǎn)換):輸入數(shù)據(jù)經(jīng)加工變換產(chǎn)生輸出。

數(shù)據(jù)流:沿箭頭方向傳送數(shù)據(jù)的通道,一般在旁邊標(biāo)注數(shù)據(jù)流名。

存儲文件(數(shù)據(jù)源):表示處理過程中存放各種數(shù)據(jù)的文件。

源,潭:表示系統(tǒng)和環(huán)境的接口,屬系統(tǒng)之外的實體。

70.A算術(shù)運(yùn)算符的優(yōu)先級高于關(guān)系運(yùn)算符的優(yōu)先級,所以當(dāng)x為大于1的奇數(shù)時,A選項的值為假,即0。B選項的值為不定值,但絕對

溫馨提示

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

最新文檔

評論

0/150

提交評論