全國(guó)計(jì)算機(jī)等級(jí)考試C語(yǔ)言2級(jí)筆試題_第1頁(yè)
全國(guó)計(jì)算機(jī)等級(jí)考試C語(yǔ)言2級(jí)筆試題_第2頁(yè)
全國(guó)計(jì)算機(jī)等級(jí)考試C語(yǔ)言2級(jí)筆試題_第3頁(yè)
全國(guó)計(jì)算機(jī)等級(jí)考試C語(yǔ)言2級(jí)筆試題_第4頁(yè)
全國(guó)計(jì)算機(jī)等級(jí)考試C語(yǔ)言2級(jí)筆試題_第5頁(yè)
已閱讀5頁(yè),還剩111頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

2007年4月全國(guó)等級(jí)考試題目

第25次(已經(jīng)修改)

一、選擇題

下列各題A)、B)、C)、D)四個(gè)選項(xiàng)中,只有一個(gè)選項(xiàng)是正確的。

(1-11題,軟件技術(shù)基礎(chǔ)單向選擇題月)

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

A)算法的效率只與問(wèn)題的規(guī)模有關(guān),而與數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)無(wú)關(guān)

B)算法的時(shí)間復(fù)雜度是指執(zhí)行算法所需要的計(jì)算工作量

C)數(shù)據(jù)的邏輯結(jié)構(gòu)與存儲(chǔ)結(jié)構(gòu)是一一對(duì)應(yīng)的

D)算法的時(shí)間復(fù)雜度與空間復(fù)雜度一定相關(guān)

[解析]根據(jù)時(shí)間復(fù)雜度和空間復(fù)雜度的定義可知,算法的時(shí)間復(fù)雜度與空間復(fù)雜度并不相

關(guān)。數(shù)據(jù)的邏輯結(jié)構(gòu)就是數(shù)據(jù)元素之間的邏輯關(guān)系,它是從邏輯上描述數(shù)據(jù)元素之間關(guān)系的,

是獨(dú)立于計(jì)算機(jī)中的,數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)是研究數(shù)據(jù)元素和數(shù)據(jù)元素之間的關(guān)系如何在計(jì)算機(jī)

中表示,它們并非一一對(duì)應(yīng)。算法的執(zhí)行效率不僅與問(wèn)題的規(guī)模有關(guān),還與數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)

有關(guān)。

2.在結(jié)構(gòu)化程序設(shè)計(jì)中,模塊劃分的原則是()

A)各模塊應(yīng)包括盡量多的功能

B)各模塊的規(guī)模應(yīng)盡量大

C)各模塊之間的聯(lián)系應(yīng)盡量緊密

D)模塊內(nèi)具有高內(nèi)聚度、模塊間具有低耦合度

[解析]在結(jié)構(gòu)化程序設(shè)計(jì)中,一般較優(yōu)秀的軟件設(shè)計(jì)盡量做到高內(nèi)聚、低耦合,這樣有利

于提高軟件模塊的獨(dú)立性,這也是模塊劃分的原則。

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

A)軟件測(cè)試的主要目的是發(fā)現(xiàn)程序中的錯(cuò)誤

B)軟件測(cè)試的主要目的是確定程序中錯(cuò)誤的位置

C)為了提高軟件測(cè)試的效率,最好由程序編制者自己來(lái)完成軟件測(cè)試的工作

D)軟件測(cè)試是證明軟件沒(méi)有錯(cuò)誤

A

[解析]軟件測(cè)試是為了發(fā)現(xiàn)錯(cuò)誤而執(zhí)行程序的過(guò)程,且為了達(dá)到好的測(cè)試效果,應(yīng)該由獨(dú)

立的第三方來(lái)構(gòu)造測(cè)試,程序員應(yīng)盡量避免檢查自己的程序。

4.下面選項(xiàng)中不屬于面向?qū)ο蟪绦蛟O(shè)計(jì)特征的是()

A)繼承性B)多態(tài)性C)類(lèi)比性D)封裝性

c

[解析]面向?qū)ο蟪绦蛟O(shè)計(jì)的3個(gè)主要特征是:封裝性、繼承性和多態(tài)性。

5.下列對(duì)隊(duì)列的敘述正確的是()

A)隊(duì)列屬于非線性表B)隊(duì)列按“先進(jìn)后出”原則組織數(shù)據(jù)

C)隊(duì)列在隊(duì)尾刪除數(shù)據(jù)D)隊(duì)列按“先進(jìn)先出”原則組織數(shù)據(jù)

D

[解析]隊(duì)列是一種操作受限的線性表。它只允許在線性表的一端進(jìn)行插入操作,另一端進(jìn)

行刪除操作。其中,允許插入的一端稱(chēng)為隊(duì)尾(rear),允許刪除的?端稱(chēng)為隊(duì)首(front)。隊(duì)列

具有先進(jìn)先出的特點(diǎn),它是按“先進(jìn)先出”的原則組織數(shù)據(jù)的,故本題答案為D)。

6.對(duì)下列二叉樹(shù)進(jìn)行前序遍歷的結(jié)果為()

A)DYBEAFCZXB)YDEBFZXCAC)ABDYECFXZD)ABCDEFXYZ

C

[解析]二叉樹(shù)前序遍歷的含義是:首先訪問(wèn)根結(jié)點(diǎn),然后按前序遍歷根結(jié)點(diǎn)的左子樹(shù),最

后按前序遍歷根結(jié)點(diǎn)的右子樹(shù),前序遍歷二叉樹(shù)的過(guò)程是一個(gè)遞歸的過(guò)程。根據(jù)題目中給出

的二叉樹(shù)的結(jié)構(gòu)可知前序遍歷的結(jié)果是:ABDYECFXZ。

7.某二叉樹(shù)中有n個(gè)度為2的結(jié)點(diǎn),則該二叉樹(shù)中的葉子結(jié)點(diǎn)數(shù)為()

A)n+1B)n-1C)2nD)n/2

A

[解析]對(duì)于任何一棵二叉樹(shù)T,如果其終端結(jié)點(diǎn)(葉子)數(shù)為nl,度為2的結(jié)點(diǎn)數(shù)為n2,則

nl=n2+l?所以該二叉樹(shù)的葉子結(jié)點(diǎn)數(shù)等于n+1。

8.在下列關(guān)系運(yùn)算中,不改變關(guān)系表中的屬性個(gè)數(shù)但能減少元組個(gè)數(shù)的是()

A)并B)交C)投影D)笛卡兒乘積

B

[解析]在關(guān)系運(yùn)算中,“交”的定義如下:設(shè)R1和R2為參加運(yùn)用算的兩個(gè)關(guān)系,它們具

有相同的度n,且相對(duì)應(yīng)的屬性值取自同一個(gè)域,則R1HR2為交運(yùn)算,結(jié)果仍為度等于n

的關(guān)系,其中的元組既屬于R1又屬于R2。

根據(jù)定義可知,不改變關(guān)系表的屬性個(gè)數(shù)但能減少元組個(gè)數(shù)的是交運(yùn)算,故本題答案為

B)。

9.在E-R圖中,用來(lái)表示實(shí)體之間聯(lián)系的圖形是()

A)矩形B)橢圓形C)菱形D)平行四邊形

C

[解析]E-R模型可用E-R圖來(lái)表示,它具有3個(gè)要素:①實(shí)體(型)用矩形框表示,框內(nèi)為實(shí)

體名稱(chēng)。②屬性用橢圓型來(lái)表示,并用線與實(shí)體連接。屬性較多時(shí)也可以將實(shí)體及其屬性單

獨(dú)列表。③實(shí)體間的聯(lián)系用菱形框表示。用線將菱形框與實(shí)體相連,并在線上標(biāo)注聯(lián)系的類(lèi)

型。

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

A)在數(shù)據(jù)庫(kù)系統(tǒng)中,數(shù)據(jù)的物理結(jié)構(gòu)必須與邏輯結(jié)構(gòu)一致

B)數(shù)據(jù)庫(kù)技術(shù)的根本目標(biāo)是要解決數(shù)據(jù)的共享問(wèn)題

C)數(shù)據(jù)庫(kù)設(shè)計(jì)是指在已有數(shù)據(jù)庫(kù)管理系統(tǒng)的基礎(chǔ)上建立數(shù)據(jù)庫(kù)

D)數(shù)據(jù)庫(kù)系統(tǒng)需要操作系統(tǒng)的支持

A

[解析]數(shù)據(jù)庫(kù)設(shè)計(jì)(DatabaseDesign)是指根據(jù)用戶(hù)的需求,在某一具體的數(shù)據(jù)庫(kù)管理系統(tǒng)上

設(shè)計(jì)數(shù)據(jù)庫(kù)的結(jié)構(gòu)并建立數(shù)據(jù)庫(kù)的過(guò)程;數(shù)據(jù)庫(kù)技術(shù)的根本目標(biāo)是要解決數(shù)據(jù)共享的問(wèn)題:

數(shù)據(jù)庫(kù)需要操作系統(tǒng)的支持;數(shù)據(jù)的物理結(jié)構(gòu)又稱(chēng)數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu),就是數(shù)據(jù)元素在計(jì)算機(jī)

存儲(chǔ)器中的表示及其配置。數(shù)據(jù)的邏輯結(jié)構(gòu)是指數(shù)據(jù)元素之間的邏輯關(guān)系,它是數(shù)據(jù)在用戶(hù)

或程序員面前表現(xiàn)的方式,在數(shù)據(jù)庫(kù)系統(tǒng)中,數(shù)據(jù)的物理結(jié)構(gòu)不一定與邏輯結(jié)構(gòu)一致。

11.算法中,對(duì)需要執(zhí)行的每一步操作,必須給出清楚、嚴(yán)格的規(guī)定。這屬于算法的()

A)正當(dāng)性B)可行性C)確定性D)有窮性

C

[解析]一個(gè)算法應(yīng)當(dāng)具有5個(gè)特性,即有窮性、確定性、可行性、有零個(gè)或多個(gè)輸入以及

有一個(gè)或多個(gè)輸出。算法的確定性是指:算法中每一條指令必須有確切的含義,讀者理解時(shí)

不會(huì)產(chǎn)生二義性。并且在任何條件下,算法只有唯一的條執(zhí)行路徑,即對(duì)于相同的輸入只

能得出相同的執(zhí)行結(jié)果。

(12-50),C語(yǔ)言綜合單向選擇題

12.以下敘述中錯(cuò)誤的是()

A)計(jì)算機(jī)不能直接執(zhí)行用C語(yǔ)言編寫(xiě)的源程序

B)C程序經(jīng)C編譯程序編譯后,生成后綴為.obj的文件是一個(gè)二進(jìn)制文件

C)后綴為.obj的文件,經(jīng)連接程序生成后綴為.exe的文件是一個(gè)二進(jìn)制文件

D)后綴為.obj和.exe的二進(jìn)制文件都可以直接運(yùn)行

D

[解析I一個(gè)C語(yǔ)言的源程序(后綴名為.c)在經(jīng)過(guò)編譯器編譯后,先生成一個(gè)匯編語(yǔ)言程序,

然后由編譯程序再將匯編語(yǔ)言程序翻譯成機(jī)器指令程序,即目標(biāo)程序(后綴名為.obj),目標(biāo)

程序不可以直接運(yùn)行,它要和庫(kù)函數(shù)或其它目標(biāo)程序連接成可執(zhí)行文件(后綴名為.exe)后方

可運(yùn)行。故本題答案為D)。

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

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

[解析]在C語(yǔ)言中,用戶(hù)標(biāo)識(shí)符命令規(guī)則規(guī)定:變量名只能由字母、數(shù)字或下劃線3種字

符組成,且第一個(gè)字符必須為字母或下劃線。在C語(yǔ)言中,大寫(xiě)字母和小寫(xiě)字母被認(rèn)為是

兩個(gè)不同的字符。據(jù)此規(guī)定A)、D)、C)三個(gè)選項(xiàng)是正確的,而B(niǎo))選項(xiàng)是連字符,不在C語(yǔ)

言規(guī)定的命名變量標(biāo)識(shí)符的范圍內(nèi)。

14.以下敘述中錯(cuò)誤的是()

A)C語(yǔ)言是一種結(jié)構(gòu)化程序設(shè)計(jì)語(yǔ)言

B)結(jié)構(gòu)化程序由順序、分支、循環(huán)三種基本結(jié)構(gòu)組成

C)使用三種基本結(jié)構(gòu)構(gòu)成的程序只能解決簡(jiǎn)單問(wèn)題

D)結(jié)構(gòu)化程序設(shè)計(jì)提倡模塊化的設(shè)計(jì)方法

C

[解析]結(jié)構(gòu)化程序設(shè)計(jì)是指在程序的構(gòu)成上只使用順序、選擇(即分支)和循環(huán)3種結(jié)構(gòu)組成

的編程方式。它強(qiáng)調(diào)程序設(shè)計(jì)風(fēng)格和程序結(jié)構(gòu)的規(guī)范化,提倡清晰的結(jié)構(gòu)。結(jié)構(gòu)化程序設(shè)計(jì)

方法的基本思路,是把?個(gè)復(fù)雜問(wèn)題的求解過(guò)程分階段進(jìn)行,每個(gè)階段處理的問(wèn)題都控制在

人們?nèi)菀桌斫夂吞幚淼姆秶鷥?nèi)。結(jié)構(gòu)化程序設(shè)計(jì)提倡模塊化的設(shè)計(jì)方法。

15.對(duì)于一個(gè)正常運(yùn)行的C程序,以下敘述中正確的是()

A)程序的執(zhí)行總是從main函數(shù)開(kāi)始,在main函數(shù)結(jié)束

B)程序的執(zhí)行總是從程序的第一個(gè)函數(shù)開(kāi)始,在main函數(shù)結(jié)束

C)程序的執(zhí)行總是從main函數(shù)開(kāi)始,在程序的最后一個(gè)函數(shù)中結(jié)束

D)程序的執(zhí)行總是從程序中的第一個(gè)函數(shù)開(kāi)始,在程序的最后一個(gè)函數(shù)中結(jié)束

A

[解析]一個(gè)C程序總是從main函數(shù)開(kāi)始執(zhí)行,而不論其在程序中的位置。在main函數(shù)中

可以調(diào)用程序中的其他函數(shù),而其他函數(shù)卻不可以調(diào)用main函數(shù)。程序最后再?gòu)膍ain函

數(shù)中結(jié)束。

16.設(shè)變量均己正確定義,若要通過(guò)scanf("%d%c%d%c",&al,&cl,&a2,&c2);語(yǔ)句為

變量al和a2賦數(shù)值10和20,煩量cl和c2賦字符X和Y。以下所示的輸入形式中正確

的是(注:口代表空格字符)()

A)10口X口20口Y<回車(chē)〉

B)10口X20口Y<回車(chē)>

C)10口X<回車(chē)>20口Y<回車(chē)>

D)10X<回車(chē)>20Y<回車(chē)〉

D

[解析]本題中,scanf函數(shù)的格式控制沒(méi)有空格,所以,對(duì)于選項(xiàng)A)、B)、C),輸入的第一

個(gè)空格會(huì)作為字符賦值給變量cl,而不會(huì)被解釋成分隔符。

17.若有代數(shù)式(其中e僅代表自然對(duì)數(shù)的底數(shù),不是變量),則以下能夠正確

表示該代數(shù)式的C語(yǔ)言表達(dá)式是()

A)sqrt(abs(nAx+eAX))B)sqrt(fabs(pow(n,x)+pow(x,e)))

C)sqrt(fabs(pow(n,x)+exp(X)))D)sqrt(fabs(pow(x,n)+exp(x)))

C

[解析]本題主要考查C語(yǔ)言的庫(kù)函數(shù)。abs求整數(shù)的絕對(duì)值,fabs求雙字節(jié)型的絕對(duì)值,

pow函數(shù)的原形是doublepow(doubleX,doubleY),潺x的y次方;exp函數(shù)的原形是double

exp(doubleX),求10的X次方;sqrt函數(shù)的原形是doublesqrt(doublex),為x的平方根。

故本題答案為C)。

18.設(shè)有定義:intk=O;,以下選項(xiàng)的四個(gè)表達(dá)式中與其他三個(gè)表達(dá)式的值不相同的是()

A)k++B)k+=1C)++kD)k+1

A

[解析]因?yàn)椤癷ntk=0;",月以B)、C)、D)三個(gè)選項(xiàng)的表達(dá)式的值都等于1,而A)選項(xiàng)的表

達(dá)式的值等于0。這是因?yàn)椤発++”這個(gè)表達(dá)式先進(jìn)行取k值的運(yùn)算,然后是k值自加1。

故本題答案為A)。

19.有以下程序,其中%u表示按無(wú)符號(hào)整數(shù)輸出

main()

(

unsignedintx=0xFFFF;/*x的初值為+六進(jìn)制數(shù)*/

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

)

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

A)-lB)65535C)32767D)OxFFFF

B

[解析]"%u”格式符用來(lái)以+進(jìn)制形式輸出無(wú)符號(hào)整型變量,其取值范圍是0—65535。本

題中無(wú)符號(hào)整型變量x=0xFFFF(+六進(jìn)制)表示的是無(wú)符號(hào)整型變量的最大值65535。

20.設(shè)變量x和y均已正確定義并賦值。以下if語(yǔ)句中,在編譯時(shí)將產(chǎn)生錯(cuò)誤信息的是()

A)if(x++);B)if(x>y&&y!=0);

C)if(x>0)x-elsey++;D)if(y<0){;)elsex++;

C

[解析]C語(yǔ)言規(guī)定,在“if(表達(dá)式)語(yǔ)句l;else語(yǔ)句2;”這種形式的if語(yǔ)句中,在每一個(gè)else

前面有一個(gè)分號(hào),整個(gè)語(yǔ)句結(jié)束處有一分號(hào)。在本題的C)選項(xiàng)中,else前面少了一個(gè)分號(hào),

這樣程序在編譯時(shí),會(huì)出現(xiàn)語(yǔ)法錯(cuò)誤。

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

A)x%2==lB)x/2C)x%2!=0D)x%2==0

D

[解析]因?yàn)閄的值為大于1的奇數(shù),所以x除以2的余數(shù)等于1,因此,選項(xiàng)A)、C)中表

達(dá)式的結(jié)果為真,不為0;對(duì)于選項(xiàng)B)來(lái)說(shuō),x除以2的商不會(huì)等于0;選項(xiàng)D)中表達(dá)式的

結(jié)果為假,即等于0。

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

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

C

[解析]break語(yǔ)句的功能是跳出正在執(zhí)行的條件語(yǔ)句或循環(huán)語(yǔ)句。它可以出現(xiàn)在switch語(yǔ)句

中,也可以出現(xiàn)在循環(huán)語(yǔ)句中。continue語(yǔ)句只是結(jié)束本次循環(huán),即跳過(guò)本次循環(huán)體中余下

尚未執(zhí)行的語(yǔ)句,接著再一次進(jìn)行循環(huán)的條件判斷。

23.有以下程序

main()

{intk=5,n=0;

do

{switch(k)

{case1:

case3:n+=l;k—;break;

default:n=0;k—;

case2:

case4:n+=2;k-;break;

)

printf(n%du,n);

}while(k>0&&n<5);

)

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

A)235B)0235C)02356D)2356

A

[解析]因?yàn)樽兞康某跏贾捣謩e為“k=5,n=0",所以程序第一次進(jìn)入循環(huán)時(shí),執(zhí)行default

語(yǔ)句,這時(shí)k=4,執(zhí)行"case4:”這個(gè)分支,結(jié)果是“n=2,k=3",持|J出2:程序然后進(jìn)行

第二次循環(huán),這時(shí)“n=2,k=3”,執(zhí)行"case3:”這個(gè)分支,結(jié)果是“n=3,k=2”,打印出3;

程序進(jìn)行第三次循環(huán),這時(shí)“n=3,k=2”,執(zhí)行“case2:case4:”這兩個(gè)分支,結(jié)果是“n=5,

k=l”,抒[1出5,這時(shí)因?yàn)閚=5不滿(mǎn)足n<5的循環(huán)條件,因此退出循環(huán),程序運(yùn)行結(jié)束。因

此輸出結(jié)果是235。

24.有以下程序

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)rM=11*2=21*3=32*1=22*2=43*1=3

B)Psl=l1*2=21*3=32*2=42*3=63*3=9

C)Psl=l1*2=22*2=41*3=32*3=63*3=9

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

B

[解析]本題主要考查了for循環(huán)的嵌套。外層for循環(huán)的自變量i從1開(kāi)始,每次循環(huán)后增1,

至到i等于3結(jié)束。內(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ù)的積”,然后換行,下次循

環(huán)從下一行開(kāi)始打印。

25.以下合法的字符型常量是()

A)^xl3,B),081'C)'65'D)"\n"

A

[解析]C語(yǔ)言的字符常量是用單引號(hào)(即撇號(hào))括起來(lái)的一個(gè)字符。除此之外,在C語(yǔ)言中還

允許用以一個(gè)“\”開(kāi)頭的字符序列來(lái)表示字符常量。其中,形式“\ddd”表示1到3位8

進(jìn)制數(shù)所代表的字符;形式“\xhh”礪1到2位16進(jìn)制數(shù)所代表的字符。在本題中‘\xl3'

表示回車(chē)符,是一個(gè)字符常量;\081'用8進(jìn)制數(shù)所代表的字符,但形式不正確,因?yàn)?

進(jìn)制數(shù)所表示的字符中不會(huì)出現(xiàn)數(shù)字“8";'65'不是一個(gè)字符,而是一個(gè)+進(jìn)制數(shù)字;“\n”

是用雙引號(hào)括起來(lái)的一個(gè)字符,表示一個(gè)字符串,而不是字符常量。

26.在C語(yǔ)言中,函數(shù)返回值的類(lèi)型最終取決于()

A)函數(shù)定義時(shí)在函數(shù)首部所說(shuō)明的函數(shù)類(lèi)型

B)return語(yǔ)句中表達(dá)式值的類(lèi)型

C)調(diào)用函數(shù)時(shí)主調(diào)函數(shù)所傳遞的實(shí)參類(lèi)型

D)函數(shù)定義時(shí)形參的類(lèi)型

A

[解析]在C語(yǔ)言中,應(yīng)當(dāng)在定義函數(shù)時(shí)指定函數(shù)值的類(lèi)型,凡不加類(lèi)型說(shuō)明的函數(shù),一律

自動(dòng)按整型處理。在定義函數(shù)時(shí)對(duì)函數(shù)值說(shuō)明的類(lèi)型一般應(yīng)該和return語(yǔ)句中的表達(dá)式類(lèi)型

一致。如果函數(shù)值的類(lèi)型和return語(yǔ)句中的表達(dá)式類(lèi)型不一致,則以函數(shù)類(lèi)型為主。即函數(shù)

類(lèi)型決定返回值的類(lèi)型。

27.已知大寫(xiě)字母A的ASCII碼是65,小寫(xiě)字母a的ASCII碼是97。以下不能將變量c中

的大寫(xiě)字母轉(zhuǎn)換為對(duì)應(yīng)小寫(xiě)字母的語(yǔ)句是()

A)c=(c-'A')%26+'a'B)c=c+32C)c=c-'A'+'a'D)c=('A'+c)%26-'a'

D

[解析]C語(yǔ)言中,字符數(shù)據(jù)參加運(yùn)算時(shí),實(shí)際上是其ASCII碼參與計(jì)算。大寫(xiě)字母的ASCII

碼比其對(duì)應(yīng)的小寫(xiě)字母的ASCII碼小31。因此要將大寫(xiě)字母轉(zhuǎn)化為小寫(xiě)字母只需將其加上

32即可。所以選項(xiàng)B)、C)都符合條件,因?yàn)樽兞緾中存儲(chǔ)的是大寫(xiě)字母,所以"c」A"’的

值一定小于26,故選項(xiàng)A)與選項(xiàng)C)的含義相同。故本題答案為D)。

28.有以下函數(shù)

intfun(char*s)

{char*t=s;

while(*t++);

return(t-s);

)

該函數(shù)的功能是

A)比較兩個(gè)字符串的大小

B)計(jì)算s所指字符串占用內(nèi)存字節(jié)的個(gè)數(shù)

C)計(jì)算s所指字符串的長(zhǎng)度

D)將s所指字符串復(fù)制到字符串t中

[解析]循環(huán)語(yǔ)句while(*t++);執(zhí)行完時(shí),指針變量t就指向了字符中結(jié)束符'\o'之后的位

置,所以語(yǔ)句return(t-s);返回的就是字符串s所用內(nèi)存的字節(jié)個(gè)數(shù)。

29.設(shè)已有定義:floatX;,則以下對(duì)指針變量p進(jìn)行定義且貝武初值的語(yǔ)句中正確的是()

A)float*p=1024;B)int*p=(float)x;C)floatp=&x;D)float*p=&x;

D

[解析]指針變量只能存儲(chǔ)地址,選項(xiàng)A)錯(cuò)誤。只有浮點(diǎn)型指針才能指向浮點(diǎn)型數(shù)據(jù),選項(xiàng)

B)錯(cuò)誤。在定義指針變量時(shí)必須加上星號(hào)"二遜C)錯(cuò)誤。故本題答案為D)。

30.有以下程序

#include<stdio.h>

main()

{intn,*p=NULL;

*p=&n;

printf("Inputn:n);

scanf("%d",&p);

printf("outputn:”);

printf("%d\nn,p);

)

該程序試圖通過(guò)指針p為變量n讀入數(shù)據(jù)并輸出,但程序有多處錯(cuò)誤,以卜語(yǔ)句正確的是()

A)intn,*p=NULL;B)*p=&n;C)scanf("%dn,&p)D)printf(n%d\nn,p);

A

[解析]指針變量在定義時(shí)需要加星號(hào),而在賦值時(shí)則不用,故選項(xiàng)B)錯(cuò)誤。本題中,scanf()

函數(shù)和printf()函數(shù)都是要對(duì)指針變量p指向的地址處的數(shù)據(jù)進(jìn)行訪問(wèn),不是變量本身。選

項(xiàng)C)中多了取地址運(yùn)算符,選項(xiàng)D)中少了指針運(yùn)算符。

31.以下程序中函數(shù)f的功能是:當(dāng)flag為1時(shí),進(jìn)行由小到大排序;當(dāng)flag為0時(shí),進(jìn)行

由大到小排序。

voidf(intb|],intn,intflag)

{inti,j,t;

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

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

if(flag?b[i]>b|j]:b[i]<b[j])

(t=b[i];b[i]=bU];b[j]=t;}

)

main()

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

f(&a[2],5,0);

f(a,5,1);

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

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

)

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

A)1,2,3,4,5,6,7,8,9,10,

B)3,4,5,6,7,2,1,8,9,10,

C)5,4,3,2,1,6,7,8,9,10,

D)10,9,8,7,6,5,4,3,2,1,

B

[解析]在main。中“f(&a⑵,5,0);”語(yǔ)句的功能是對(duì)數(shù)組a[10]中從a⑵到a[6]的數(shù)宇(即

3,2,1,6,7)進(jìn)行從大到小排序,這時(shí)數(shù)組a[10]中的數(shù)字序列變?yōu)閧5,4,7,6,3,2,1,

8,9,10)oaf(a,5,1);”語(yǔ)句的功能是對(duì)數(shù)字序列{5,4,7,6,3,2,1,8,9,10}中的

5,4,7,6,3進(jìn)行從小到大的排序,所以數(shù)組a|10]中的數(shù)字序列最終變?yōu)閧3,4,5,6,7,

2,1,8,9,10}o

32.有以下程序

voidf(intb[])

{inti;

fbr(i=2;i<6;i++)

b[i]*=2;

)

main()

{inta[10]={l,2,3,4,5,6,7,8,9,10),i;

f(a);

for(i=0;i<10,i++)

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

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

A)1,2,3,4,5,6,7,8,9,10,

B)1,2,6,8,10,12,7,8,9,10,

C)1,2,3,4,10,12,14,16,9,10,

D)1,2,6,8,10,12,14,16,9,10,

B

[解析]在main。中,f(a)語(yǔ)句的作用是對(duì)數(shù)組a[10]中從a⑵到a[5]的各個(gè)數(shù)字乘以2所以

數(shù)組或10]中的數(shù)字就變成了{(lán)1,2,6,8,10,12,7,8,9,10),最后在屏幕上輸出。

33.有以下程序

typedefstruct}intb,p;}A;

voidf(Ac)/*注意:c是結(jié)構(gòu)變量名*/

{intj;

cb+=l;

c.p+=2;

)

main()

{inti;

Aa={l,2};

f(a);

printf(u%d,%d\n",a.b,a.p);

)

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

A)2,3B)2,4C)1,4D)1,2

D

[解析]本題考查的是函數(shù)調(diào)用時(shí)的數(shù)據(jù)傳遞問(wèn)題。因?yàn)樵谡{(diào)用函數(shù)f()時(shí)只是進(jìn)行的值傳遞,

即單向傳遞,函數(shù)的調(diào)用及對(duì)形參的處理過(guò)程并不會(huì)引起實(shí)參數(shù)值的變化。故本題答案為

D)o

34.有以下程序

main()

{inta[4][4]={{L4,3,2},{8,6,5,7},{3,7,2,5},{4,8,6,1}},i,j,k,t;

for(i=0;<4:i++)

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

for(k=j+1;k<4;k++)

if(aU][i]>a[kJ[i]

{t=a[j][i];a[j][i]=a[k][i]=a[k][i]=t;}/*按列排序*/

for(i=0;i<4;i++)printf("%d,",a[i][i]);

)

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

A)1,6,5,7,B)8,7,3,1,

C)4,7,5,2,D)1,6,2,1,

A

[解析]本題利用多重for循環(huán)的嵌套來(lái)實(shí)現(xiàn)對(duì)二維數(shù)組元素的按列排序。利用最外層循環(huán)來(lái)

實(shí)現(xiàn)對(duì)列的控制。內(nèi)部循環(huán)利用選擇法對(duì)數(shù)組元素按照從小到大的順序進(jìn)行排列。最后輸出

對(duì)角線上的元素值。故本題答案為A)。

35.有以下程序

main()

{inta[4][4]={{l,4,3,2},{8,6,5,7},{3,7,2,5},{4,8,6,1}},i,k,t;

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

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

if(a[i][i]<a[k][k])

{t=a[i][i];a[i][i]=a[k][k];a[k][k]=t;}

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

printf(H%d,M,a[0][i]);

)

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

A)6,2,1,1,B)6,4,3,2,

C)1,1,2,6,D)2,3,4,6,

B

[解析]本題使用選擇法對(duì)二維數(shù)組對(duì)角線上的元素按從大到小的順序進(jìn)行排列。最后輸出

數(shù)組第?行的數(shù)據(jù)。故本題答案為B)。

36.有以下程序

voidf(int*q)

{inti=0:

fbr(;i<5;i++)

(*q)++;

)

main()

{inta[5]={l,2,3,4,5},i;

f(a);

fdr(i=O;i<5;i++)

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

)

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

A)2,2,3,4,5,B)6,2,3,4,5,

C)1,2,3,4,5,D)2,3,4,5,6,

B

[解析]調(diào)用函數(shù)f()時(shí),將數(shù)組a的地址傳遞給了指針q,此時(shí)q指向的就是數(shù)組a的第一

個(gè)元素a[0]。在5次循環(huán)過(guò)程中,q始終指向a[0],因此a[0]的值增加了5。最后的輸出結(jié)

果為“6,2,3,4,5”。

37.有以下程序

#inciude<string.h>

main()

{charp[20]={'a',K,'c\*d'},q[]=Mabc",r|]=,,abcden;

strcpy(p+strlen(q),r);

strcat(p,q);

printf(',%d%d\nu,sizeof(p),strlen(p));

)

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

A)209B)99C)2011D)1111

C

[解析]函數(shù)strlen()返回的是數(shù)組的實(shí)際長(zhǎng)度,而sizeof返回的是數(shù)組定義的總長(zhǎng)度。因?yàn)?/p>

字符數(shù)組p[20]定義為20字節(jié)長(zhǎng)度,所以sizeof(p)的值為20?!皊trcpy(p+strien(q),r);”語(yǔ)

句的功能把字符數(shù)組r拷貝到字符數(shù)組p從p[3]開(kāi)始到p[7]的位置中,這時(shí)字符數(shù)組p的有

效字符長(zhǎng)度為8。然后再執(zhí)行"strcat(p,q);”語(yǔ)句(字符串連接),即把字符數(shù)組q連接到字

符數(shù)組p后面,這時(shí)字符數(shù)組p的有效長(zhǎng)度為11o

38.有以下程序

#include<string.h>

main()

{charp[20]={'a',V,'c',d},q[]="abcH,r[]=nabcde";

strcat(p,r);

strcpy(p+strlen(q),q);

printf(u%d\n",strlen(p));

)

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

A)9B)6C)11D)7

B

[解析]strcpy()函數(shù)的功能是將字符串q復(fù)制到從p[3]位置開(kāi)始的存儲(chǔ)單元,同時(shí)復(fù)制字符串

結(jié)束標(biāo)志‘\0'到p[6]中。函數(shù)strlen()返回的是字符串中不包括<\0,在內(nèi)的實(shí)際長(zhǎng)度,故

本題答案為B)。

39.有以下程序

#include<string.h>

voidf(charp[][10],intn)/*字符串從小到大排序*/

{chart[10];inti,j;

fbr(i=O;i<n-l;i++)

fbr(j=i+l;j<n;j++)

if(strcmp(p[i],p[j])>0)

{strcpy(t,p[i]);

strcpy(p[i],p[j]);

strcpy(p[j],t);

)

)

main()

{charp[5][10]={Mabc%naabdfg:,nabbdM,"dcdbe'1,“cd”};

f(P,5);

printf("%d\n",strlen(p[O]));

)

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

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

C

[解析]本題中函數(shù)f()利用選擇法對(duì)字符串?dāng)?shù)組p中的字符中按從小到大排序,字符串比較

的方法是:依次對(duì)S1和S2所指字符串對(duì)應(yīng)位置上的字符兩兩進(jìn)行比較,當(dāng)出現(xiàn)第一對(duì)不

相同的字符時(shí),即由這兩個(gè)字符(ASCII碼值)決定所在串的大小,因此最后在p[0]中存儲(chǔ)的

是最小的字符串是“aabdfg"。最后用strlenO函數(shù)求得該字符串的長(zhǎng)度為6。

40.有以下程序

voidf(intn,int*r)

{intrl=0;

if(n%3==0)rl=n/3;

elseif(n%5==0)rl=n/5;

elsef(-n,&rl);

*r=rl;

)

main()

{intm=7,r;

f(m,&r);

printf(u%dM,r);

)

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

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

A

[解析]本題考查了函數(shù)的遞歸調(diào)用。在f函數(shù)中,當(dāng)m=7時(shí);程序執(zhí)行&H);”語(yǔ)

句,遞歸調(diào)用f(6,&rl),程序執(zhí)行,l=n/3;”語(yǔ)句,BPrl=6/3=2,然后執(zhí)行“*=rl;"語(yǔ)

句,所以輸出結(jié)果為2。

41.有以下程序

main(intargc,char*argv[])

{intn=0,i;

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

n=n*10+*argv[i]-'O';

printf(n%d\nn,n);

)

編譯連接后生成可執(zhí)行文件tt.exe。若運(yùn)行時(shí)輸入以下命令行tt12345678。程序運(yùn)行

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

A)12B)12345C)12345678D)136

D

[解析]運(yùn)行時(shí)輸入該命令后,參數(shù)argc的值為4,字符串?dāng)?shù)組argv[l]、argv[2]>argv[3]分

別為“12”、“345”、“678”,然后取這3個(gè)參數(shù)的第一個(gè)字符,將其轉(zhuǎn)化成原來(lái)的數(shù)字并組

合成一個(gè)新的三位數(shù)。

42.有以下程序

inta=4;

intf(intn)

{intt=0;staticinta=5;

if(n%2)

{inta=6;t+=a++;}

else

{inta=7;t+=a++;}

returnt+a++;

)

main()

{ints=a,i=0;

fbr(;i<2;i++)s+=f(i);

printf(n%d\nH,s);

)

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

A)24B)28C)32D)36

B

[解析]本題考查的是變量的作用域問(wèn)題。程序中定義了多個(gè)變量a,全局變量、靜態(tài)變量和

局部變量分別在自己的作用域中參與運(yùn)算。在main()函數(shù)中首先執(zhí)行“s+=f(0);”語(yǔ)句,而

f(0)返回值為12,所以第一次循環(huán)結(jié)束s的值等于4+12=16;第二次開(kāi)始時(shí),當(dāng)執(zhí)行f(l)時(shí),

在f⑴中執(zhí)行uif(n%2){inta=6;t+=a++;}”和"returnt+a++;”這兩條語(yǔ)句,所以f⑴的

返回值等于12。再在主函數(shù)中執(zhí)行"s+=f(l)「語(yǔ)句,也就是16+12=28。

43.有一個(gè)名為init.txt的文件,內(nèi)容如下:

#defineHDY(A,B)A/B

#definePRINT(Y)printf(ny=%d\nn,Y)

有以下程序

#include"init.txt,,

main()

{inta=l,b=2,c—3,d=4,k;

k=HDY(a+c,b+d);

PRINT(k);

)

下面針對(duì)該程序的敘述正確的是()

A)編譯出錯(cuò)B)運(yùn)行出錯(cuò)C)運(yùn)行結(jié)果為y=0D)運(yùn)行結(jié)果為y=6

D

[解析]本題考查的是帶參數(shù)的宏定義。不僅要進(jìn)行簡(jiǎn)單的字符替換,還要進(jìn)行參數(shù)替換。

根據(jù)宏替換的規(guī)則,本題在進(jìn)行替換宏HDY時(shí),沒(méi)有像所希望的那樣將HDY(a+c,b+d)

替換成(a+c)/(b+d),而是替換成了“a+c/b+d”,因此結(jié)果k為6。

44.有以下程序

main()

(

charch[]=MuvwxyzM,*pc;

pc=ch;

printf(*'%c\n”,*(pc+5));

)

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

A)zB)0C)元素ch[5]的地址D)字符y的地址

A

[解析]將字符串的地址賦值給字符指針變量后,指針就指向了該字符串的第一個(gè)字符,即

所以*(p+5)指向的字符是30

45.有以下程序

structS{intn;inta[20];};

voidf(structS*p)

{inti,j,t;

fbr(i=O;i<p->n-l;i++)

fbr(j=i+l;j<p->n;j++)

if(p->a|i|>p->a|j])

{t=p->a[i];p->a[i]=p->a[j];p->a|j]=t;}

)

main()

{inti;

structSs={10,{2,3,1,6,8,7,5,4,10,9}};

f(&s);

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

printf(n%d,n,s.a[i]);

)

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

A)1,2,3,4,5,6,7,8,9,10,

B)10,9,8,7,6,5,4,3,2,1,

C)2,3,1,6,8,7,5,4,10,9,

D)10,9,8,7,6,1,2,3,4,5,

A

[解析]本題中,在調(diào)用函數(shù)f()時(shí),實(shí)參是結(jié)構(gòu)體變量s的地址,所以在函數(shù)中對(duì)形參的改

變會(huì)影響到實(shí)參的數(shù)值。函數(shù)f()實(shí)現(xiàn)的功能是把結(jié)構(gòu)體的成員數(shù)組中的值按從小到大順序

進(jìn)行排列。

46.有以下程序

structS{intn;inta[20];};

voidf(int*a,intn)

{inti;

fbr(i=O;i<n-l;i++)a[i]+=i;

main()

{inti;

structSs={10,{2,3,1,6,8,7,5,4,10,9});

f(s.a,s.n);

fbr(i=O;i<s.n;i++)

printf(n%d,n,s.a[i]);

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

A)2,4,3,9,11,11,18,9,

B)3,4,2,7,9,8,5,11,10,

C)2,3,1,6,8,7,5,4,10,9,

D)1,3,6,8,7,5,4,10,9,

[解析]本題中,在調(diào)用函數(shù)時(shí)將結(jié)構(gòu)體變量的兩個(gè)成員作為實(shí)參,其中的成員數(shù)組a實(shí)際

向函數(shù)f()傳遞的是該數(shù)組的地址,因此在函數(shù)f()中所對(duì)應(yīng)的形參發(fā)生改變時(shí),該數(shù)組內(nèi)的

數(shù)據(jù)也會(huì)發(fā)生改變。函數(shù)f()實(shí)現(xiàn)的功能是將成員數(shù)組中的前9個(gè)元素分別加上該元素的下

標(biāo),作為新的元素。

47.有以下程序段

typedefstructnode{intdata:structnode*next:}*NODE;

NODEp;

以下敘述中正確的是()

A)p是指向structnode結(jié)構(gòu)變量的指針的指針

B)NODEp;語(yǔ)句出錯(cuò)

C)p是指向structnode結(jié)構(gòu)變量的指針

D)p是structnode結(jié)構(gòu)變量

C

[解析]在C語(yǔ)言中,typedef用于說(shuō)明一種新的類(lèi)型名,本題中的node被定義為一種結(jié)構(gòu)體

類(lèi)型名,NODE被定義為指向這種結(jié)構(gòu)體變量的指針,我們可以用它來(lái)定義一個(gè)指向該類(lèi)型

結(jié)構(gòu)體變量的指針。

48.有以下程序

main()

(

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

d=alb;

d&=c;

printf(',%d\nu,d);

)

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

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

[解析]本題考查的內(nèi)容是按位與和按位或運(yùn)算符的使用,由運(yùn)算規(guī)則可知,d的最終結(jié)果為

49.有以下程序

#include<stdio.h>

main()

{FILE*fp;

intk,n,a[6]={1,2,3,4,5,6};

fp二fopen("d2.dat",”w");

fprintf(fp,H%d%d%d\nn,a[0],a[l],a[2]);

fprintf(fp,"%d%d%d\nM,a[3],a[4],a[5]);

fclose(fp);

fp=fopen("d2.dafH,"rn);

fscanf(fp,n%d%dn,&k,&n);

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

fclose(fp);

)

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

A)12B)14C)1234D)123456

D

[解析]將有6個(gè)元素的整型數(shù)組分兩行輸出到一個(gè)文件中,因?yàn)檩敵龅亩际菙?shù)字并且每行

都沒(méi)有分隔符,所以當(dāng)再對(duì)其進(jìn)行讀取操作時(shí),每?行都會(huì)被認(rèn)為是一個(gè)完整的數(shù),而換行

符則作為它們的分隔符。故本題答案為D)。

50.有以下程序

#include<stdio.h>

main()

{FILE*fp;

inti,a[6]={l,2,3,4,5,6};

fp=fopen(,'d3.datM,"w+b");

fwrite(a.sizeof(int),6,fp);

fseek(fp,sizeof(int)*3,SEEK_SET);

/*該語(yǔ)句使讀文件的位置指針從文件頭向后移動(dòng)3個(gè)int型數(shù)據(jù)*/

fread(a,sizeof(int),3,fp):

fclose(fp);

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

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

}

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

A)4,5,6,4,5,6,B)1,2,3,4,5,6,

C)4,5,6,1,2,3,D)6,5,4,3,2,1,

A

[解析]首先利用fwrite函數(shù)將數(shù)組a中的數(shù)據(jù)寫(xiě)到文件中,接著fseek函數(shù)的功能是讀文件

的位置,指針從文件頭向后移動(dòng)3個(gè)int型數(shù)據(jù),這時(shí)文件位置指針指向的是文件中的第4

個(gè)int數(shù)據(jù)“4”。然后fread函數(shù)將文件fp中的后3個(gè)數(shù)據(jù)4,5,6讀到數(shù)組a中,這樣就

覆蓋了數(shù)組中原來(lái)的前3項(xiàng)數(shù)據(jù)。最后數(shù)組中的數(shù)據(jù)就成了{(lán)4,5,6,4,5,6),故本題答

案為A)o

二、填空題

請(qǐng)將每一個(gè)空的正確答案寫(xiě)在【1】至【20】序號(hào)的橫線上。

(1-5,軟件技術(shù)基礎(chǔ)填空題)

1.在深度為7的滿(mǎn)二叉樹(shù)中,度為2的結(jié)點(diǎn)個(gè)數(shù)為【1】.

63

[解析]根據(jù)二叉樹(shù)的性質(zhì),一棵深度為k的滿(mǎn)二叉樹(shù)有2k-l個(gè)結(jié)點(diǎn),所以深度為7的滿(mǎn)二

叉樹(shù)有27-1=127個(gè)節(jié)點(diǎn);又因?yàn)樵谌我庖豢枚鏄?shù)中,若終端結(jié)點(diǎn)的個(gè)數(shù)為n0,度為2的

結(jié)點(diǎn)數(shù)為n2,貝iJnO=n2+l,即所以總節(jié)點(diǎn)數(shù)為n0+n2=2n2+l=127,所以n2=63,即度為2

的結(jié)點(diǎn)個(gè)數(shù)為63,所以⑴應(yīng)填入63。

2.軟件測(cè)試分為白箱(盒)測(cè)試和黑箱(盒)測(cè)試。等價(jià)類(lèi)劃分法屬于【2】測(cè)試。

黑箱或黑盒

[解析]黑箱測(cè)試是根據(jù)程序規(guī)格說(shuō)明所規(guī)定的功能來(lái)設(shè)計(jì)測(cè)試用例,它不考慮程序的內(nèi)部

結(jié)構(gòu)和處理過(guò)程。常用的黑箱測(cè)試技術(shù)分為等價(jià)類(lèi)劃分、邊界分析、錯(cuò)誤猜測(cè)以及因果圖等。

3.在數(shù)據(jù)庫(kù)系統(tǒng)中,實(shí)現(xiàn)各種數(shù)據(jù)管理功能的核心軟件稱(chēng)為[31o

數(shù)據(jù)庫(kù)管理系統(tǒng)(DBMS)

[解析]數(shù)據(jù)庫(kù)管理系統(tǒng)(DatabaseManagementSystem)簡(jiǎn)稱(chēng)DBMS,對(duì)數(shù)據(jù)庫(kù)進(jìn)行統(tǒng)??的管理

和控制,以保證數(shù)據(jù)庫(kù)的安全性和完整性。它是數(shù)據(jù)庫(kù)系統(tǒng)的核心軟件。

4.軟件生命周期可分為多個(gè)階段,一般分為定義階段、開(kāi)發(fā)階段和維護(hù)階段。編碼和測(cè)試

屬于【4】階段。

開(kāi)發(fā)

[解析]軟件生命周期(SDLC,軟件生存周期)是軟件的產(chǎn)生直到報(bào)廢的生命周期,周期內(nèi)有

問(wèn)題定義、可行性分析、總體描述、系統(tǒng)設(shè)計(jì)、編碼、調(diào)試和測(cè)試、驗(yàn)收與運(yùn)行、維護(hù)升級(jí)

到廢棄等階段,其中的編碼和測(cè)試屬于開(kāi)發(fā)階段。

5.在結(jié)構(gòu)化分析使用的數(shù)據(jù)流圖(DFD)中,利用【在對(duì)其中的圖形元素進(jìn)行確切解釋。

數(shù)據(jù)字典

[解析]數(shù)據(jù)字典(DataDictionary,簡(jiǎn)稱(chēng)DD)就是用來(lái)定義數(shù)據(jù)流圖中的各個(gè)成分的具體含

義。數(shù)據(jù)字典的任務(wù)是對(duì)于數(shù)據(jù)流圖中出現(xiàn)的所有被命名的圖形元素在數(shù)據(jù)字典中作為一個(gè)

詞條加以定義,使得每一個(gè)圖形元素的名字都有一?個(gè)確切的解釋。

6.執(zhí)行以下程序后的輸出結(jié)果是[6】。

main()

{inta=10;

a=(3*5,a+4);printf("a=%d\n",a);

a=14

[解析]本題考查的是的表達(dá)式的優(yōu)先級(jí)問(wèn)題。先計(jì)算表達(dá)式3*5=15,再計(jì)算a+4=14,將數(shù)

據(jù)14賦值給a,根據(jù)printf()函數(shù)內(nèi)的輸出格式控制串,最后的輸出結(jié)果應(yīng)為“a=14”。

7.當(dāng)執(zhí)行以下程序時(shí),輸入1234567890〈回車(chē),,則其中while循環(huán)體將執(zhí)行【7】次。

#include<stdio.h>

main()

{charch:

while((ch=getchar())=='O')prinft(,'#M);

0

[解析]通過(guò)getchar。函數(shù)來(lái)取得從鍵盤(pán)輸入的數(shù)據(jù),再判斷其是否是字符'0',如果是,則

執(zhí)行一次循環(huán),因?yàn)閺逆I盤(pán)輸入的1234567890都是整型數(shù),不是字符.所以while循環(huán)執(zhí)

行的條件始終不成立,循環(huán)體執(zhí)行的次數(shù)為0。

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

intk=0;

voidfun(intm)

{m+=k;

k+=m;

printf(Mm=%dk=%dn,m,k++);

)

main()

{inti=4;

fun(i++);

printf(ui=%dk=%d\nM,i,k);

)

m=4k=4i=5k=5

[解析]由于在main。函數(shù)中,變量i=4,所以就調(diào)用fun(4)則輸出“m=4k=4"。然后變量k

增1等于5,變量i增1等于5,所以main。函數(shù)的<<printf("i=%dk=%d\n”,i,k);”語(yǔ)句輸出

“i=5k=5'5

9.以下程序的運(yùn)行結(jié)果是[9】。

main()

{inta=2,b=7,c=5;

switch(a>0)

{case1:switch(b<0)

{case1:printf("@H);break;

case2:printf(“!“);break;

}

case0:switch(c==5)

{case0:printf("*");break;

case1:printf('1#");break;

case2:printf("$");break;

)

default:printf(n&n);

)

printf(n\nn);

#&

[解析]表試"c==5”的值為真,所以表達(dá)式的值等于1,因此輸出符號(hào)‘#、懶行,bleak”,

繼而去執(zhí)行""default:printf("&");"語(yǔ)句,輸出符號(hào)“&”。

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

#include<string.h>

main()

{printf(n%d\nH,strlen(nIBM\nO12\l\\M));}

9

[解析]本題的字符串中共有9個(gè)字符,它們分別是T,\n',T,T,",W,

其中“\n”表示換行,“\\”表示反斜杠字符所以本題的最后輸出結(jié)果為9。

II.已定義charch=芍,;inti=l,j;,執(zhí)行j!=ch&&i++以后,i的徜為【11】。

[解析]在執(zhí)行邏輯表達(dá)式“j=!ch&&i++”時(shí),首先判斷j=!ch的值,因?yàn)椤?=F'"不為0,

所以"j=!ch=0",

編譯系統(tǒng)便不再計(jì)算表達(dá)式“i++”的值,i的值不變,仍為lo

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

#include<string.h>

main()

{chara[]={'\r,^2',\3',M',AO');

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

)

54

[解析]字符串處理函數(shù)strlen。返回的是字符數(shù)組的實(shí)際長(zhǎng)度,不包括字符申結(jié)束標(biāo)志'\0'。

而sizeof運(yùn)算符則計(jì)算的是字符數(shù)組的總長(zhǎng)度,包括串末尾的結(jié)束標(biāo)志。

13.設(shè)有定義語(yǔ)句:inta[][3]={{0},{1}{2}};,則數(shù)組元素a[ll⑵的值是【13】。

0

[解析]本題考查的是二維數(shù)組初始化問(wèn)題。題中對(duì)數(shù)組的a[0][0],a⑴⑼,a⑵⑼3個(gè)元素

分別賦值為0,1,2,其余的元素都自動(dòng)貝武0

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論