國(guó)家二級(jí)(C語(yǔ)言)筆試模擬試卷20_第1頁(yè)
國(guó)家二級(jí)(C語(yǔ)言)筆試模擬試卷20_第2頁(yè)
國(guó)家二級(jí)(C語(yǔ)言)筆試模擬試卷20_第3頁(yè)
國(guó)家二級(jí)(C語(yǔ)言)筆試模擬試卷20_第4頁(yè)
國(guó)家二級(jí)(C語(yǔ)言)筆試模擬試卷20_第5頁(yè)
已閱讀5頁(yè),還剩119頁(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)介

國(guó)家二級(jí)(C語(yǔ)言)筆試模擬試卷第1

一、公共基礎(chǔ)選擇題(本題共10題,每題7.0分,共

10分。)

1、下列敘述中止確的是()。

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

B、由于汁算機(jī)存儲(chǔ)空間是向量式的存儲(chǔ)結(jié)構(gòu),因此,數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)一定是線性

結(jié)構(gòu)

C、程序設(shè)計(jì)語(yǔ)言中的數(shù)組一般是順序存儲(chǔ)結(jié)構(gòu),因此,利用數(shù)組只能處理線性結(jié)

構(gòu)

D、以上三種說(shuō)法都不對(duì)

標(biāo)準(zhǔn)答案:8

知識(shí)點(diǎn)解析?:一種數(shù)據(jù)的邏輯結(jié)構(gòu)根據(jù)需要可以表示成多種存儲(chǔ)結(jié)構(gòu),因此,數(shù)據(jù)

的邏輯結(jié)構(gòu)與存儲(chǔ)結(jié)構(gòu)不一定是一一對(duì)應(yīng)的,選項(xiàng)A錯(cuò)誤。計(jì)算機(jī)的存儲(chǔ)空間是

向量式的存儲(chǔ)結(jié)構(gòu),但一種數(shù)據(jù)的邏輯結(jié)構(gòu)根據(jù)需要可以表示成多種存儲(chǔ)結(jié)構(gòu),如

線性鏈表是線性表的鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu),數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)不一定是線性結(jié)構(gòu),因此選項(xiàng)

B錯(cuò)誤。數(shù)組一般是順序存儲(chǔ)結(jié)構(gòu),但利用數(shù)組也能處理非線性結(jié)構(gòu),選項(xiàng)C錯(cuò)

誤。由此可知,只有選預(yù)D的說(shuō)法正確。

2、下列數(shù)據(jù)結(jié)構(gòu)中具有記憶功能的是()。

A、隊(duì)列

B、循環(huán)隊(duì)列

C、棧

D、順序表

標(biāo)準(zhǔn)答案:4

知識(shí)點(diǎn)解析:由棧的定義可知,棧是先進(jìn)后出(或后進(jìn)先出)的線性表,因此,戌具

有記憶功能。

3、設(shè)棧S初始狀態(tài)為空。元素a、b、c、d、e、f依次通過(guò)棧S,若出棧的順序?yàn)?/p>

c、f、e、d、b、a,則杖S的容量至少應(yīng)該為()。

A、6

B、5

C、4

D、3

標(biāo)準(zhǔn)答案:2

知識(shí)點(diǎn)解析:根據(jù)題中給定的條件,可做如下模擬操作:①元素a、b、c進(jìn)棧,

棧中有3個(gè)元素,分別為a、b、c;②元素c出棧后,元素d、e、f進(jìn)棧,??谟?/p>

5個(gè)元素,分別為a、b、d、e、f;③元素f、e、d、a、b出棧,棧為空??梢钥?/p>

出,進(jìn)棧的順序?yàn)閍、b、c、d、e、f,出棧的順序?yàn)閏、f、e、d、b、a,滿足題中

所提出的要求。在每一次進(jìn)棧操作后,棧中最多有3個(gè)元素,因此,為了順利完成

這些操作,棧的容量應(yīng)至少為5。

4、下列敘述中正確的是()。

A、測(cè)試工作必須由程序編制者自己完成

13、測(cè)試用例和調(diào)試用例必須一致

C、一個(gè)程序經(jīng)調(diào)試改正錯(cuò)誤后,一般不必再進(jìn)行測(cè)試

D、上述三種說(shuō)法都不對(duì)

標(biāo)準(zhǔn)答案:8

知識(shí)點(diǎn)解析:測(cè)試不是為了證明程序是正確的,而是在設(shè)想程序有錯(cuò)誤的前提下進(jìn)

行的,其目的是設(shè)法暴露程序中的錯(cuò)誤和缺陷,一般應(yīng)當(dāng)避免由開(kāi)發(fā)者測(cè)試自己的

程序,因此,選項(xiàng)A錯(cuò)誤;測(cè)試是為了發(fā)現(xiàn)程序錯(cuò)誤,不能證明程序的正確性,

調(diào)試主要是推斷錯(cuò)誤的原因,從而進(jìn)一步改正錯(cuò)誤,調(diào)試用例與測(cè)試用例可以一

致,也可以不一致,選項(xiàng)B錯(cuò)誤;測(cè)試發(fā)現(xiàn)錯(cuò)誤后,可進(jìn)行調(diào)試并改正錯(cuò)誤:經(jīng)

過(guò)調(diào)試后的程序還需進(jìn)行回歸測(cè)試,以檢查調(diào)試的效果,同時(shí)也可防止在調(diào)試過(guò)程

中引進(jìn)新的錯(cuò)誤,選項(xiàng)C錯(cuò)誤。

5、在面向?qū)ο蠓椒ㄖ校粋€(gè)對(duì)象請(qǐng)求另一對(duì)象為其服務(wù)的方式是通過(guò)發(fā)送()。

A、調(diào)用語(yǔ)句

B、命令

C、口令

D、消息

標(biāo)準(zhǔn)答案:8

知識(shí)點(diǎn)解析:在面向?qū)ο蠓椒ㄖ?一個(gè)對(duì)象請(qǐng)求另一對(duì)象為其服務(wù)的方式是通過(guò)發(fā)

送消息。

6、在軟件生存周期中,能準(zhǔn)確確定軟件系統(tǒng)必須做什么和必須具備哪些功能的階

段是()。

A、概要設(shè)計(jì)

B、詳細(xì)設(shè)計(jì)

C、可行性分析

D、需求分析

標(biāo)準(zhǔn)答案:8

知識(shí)點(diǎn)解析:在需求分析階段,根據(jù)可行性研究階段所提交的文檔,對(duì)1=1標(biāo)系統(tǒng)提

出清晰、準(zhǔn)確和具體的要求。

7、在結(jié)構(gòu)化方法中,軟件功能分解屬于下列軟件開(kāi)發(fā)中的階段是()。

A、概要設(shè)計(jì)

B>需求分析

C、詳細(xì)設(shè)計(jì)

D、編程調(diào)試

標(biāo)準(zhǔn)答案:1

知識(shí)點(diǎn)解析:概要設(shè)計(jì)的任務(wù)是劃分出構(gòu)成系統(tǒng)的各物理元素以及設(shè)計(jì)出軟件的結(jié)

構(gòu)(如確定模塊及模塊間的關(guān)系)。設(shè)計(jì)過(guò)程通常分為以下兒步:提出可選擇方案;

選擇合理方案;推薦最佳方案;功能分解;設(shè)計(jì)軟件結(jié)構(gòu);制定測(cè)試計(jì)劃:最后提

交概要設(shè)計(jì)文檔。軟件功能分解屬于概要設(shè)計(jì)階段。本題的正確答案為選項(xiàng)A。

8、在數(shù)據(jù)管理技術(shù)的發(fā)展過(guò)程中,經(jīng)歷了人工管理階段、文件系統(tǒng)管理階段和數(shù)

據(jù)庫(kù)系統(tǒng)管理階段。其中數(shù)據(jù)獨(dú)立性最高的階段是()。

A、數(shù)據(jù)庫(kù)系統(tǒng)

B、文件系統(tǒng)

C、人工管理

D、數(shù)據(jù)項(xiàng)管理

標(biāo)準(zhǔn)答案:1

知識(shí)點(diǎn)解析:從題干中可知,數(shù)據(jù)項(xiàng)管理不屬于數(shù)據(jù)管理技術(shù)的發(fā)展階段,故可排

除選項(xiàng)D;在人工管理階段,數(shù)據(jù)與應(yīng)用程序是一一對(duì)應(yīng)的,數(shù)據(jù)結(jié)構(gòu)改變時(shí),程

序也必須隨之修改,數(shù)據(jù)與程序不具有獨(dú)立性;在文件系統(tǒng)管理階段,借助于操作

系統(tǒng)中的文件系統(tǒng),數(shù)據(jù)可以用統(tǒng)一格式、以文件形式長(zhǎng)期保存在計(jì)算機(jī)系統(tǒng)中,

數(shù)據(jù)的各種轉(zhuǎn)換以及存儲(chǔ)位置的安排也由文件系統(tǒng)來(lái)統(tǒng)一管理,使程序與數(shù)據(jù)之間

具有一定的獨(dú)立性:在數(shù)據(jù)庫(kù)系統(tǒng)管理階段,通過(guò)系統(tǒng)提供的映像功能,使數(shù)據(jù)具

有兩方面的獨(dú)立性:一是物理獨(dú)立性,二是邏輯獨(dú)立性;保證了數(shù)據(jù)的完整性、安

全性和并發(fā)性。由上所述,數(shù)據(jù)獨(dú)立性最高的階段是數(shù)據(jù)庫(kù)系統(tǒng)管理階段。

9、按條件f對(duì)關(guān)系R進(jìn)行選擇,其關(guān)系代數(shù)表達(dá)式是()。

A、R||R

R|x|R

B、f

C、f(R)

D、f(R)

標(biāo)準(zhǔn)答案:4

知識(shí)點(diǎn)解析:選項(xiàng)A表示關(guān)系R與關(guān)系R進(jìn)行自然連接;選項(xiàng)B表示關(guān)系R與關(guān)

系R按條件f做連接運(yùn)算;選項(xiàng)C表示按條件f對(duì)關(guān)系R做選擇運(yùn)算;選項(xiàng)D表

示在域f上對(duì)關(guān)系R做投影運(yùn)算。

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

A、在數(shù)據(jù)庫(kù)設(shè)計(jì)的過(guò)程中,需求分析階段必須考慮具體的計(jì)算機(jī)系統(tǒng)

B、在數(shù)據(jù)庫(kù)設(shè)計(jì)的過(guò)程中,概念結(jié)構(gòu)設(shè)計(jì)與具體的數(shù)據(jù)庫(kù)管理系統(tǒng)有關(guān)

C、在數(shù)據(jù)庫(kù)設(shè)計(jì)的過(guò)程中,邏輯結(jié)構(gòu)設(shè)計(jì)與具體的數(shù)據(jù)庫(kù)管理系統(tǒng)有關(guān)

D、在數(shù)據(jù)庫(kù)設(shè)計(jì)的過(guò)程中,物理結(jié)構(gòu)設(shè)計(jì)依賴于具體的計(jì)算機(jī)系統(tǒng)

標(biāo)準(zhǔn)答案:2

知識(shí)點(diǎn)解析:數(shù)據(jù)庫(kù)設(shè)計(jì)主要分4個(gè)步驟:需求分析、概念結(jié)構(gòu)設(shè)計(jì)、邏輯結(jié)構(gòu)設(shè)

計(jì)、物理結(jié)構(gòu)設(shè)計(jì)。選項(xiàng)B錯(cuò)誤,應(yīng)為本題的正確答案,因?yàn)楦拍罱Y(jié)構(gòu)設(shè)計(jì)在需

求分析的基礎(chǔ)上對(duì)客觀世界做抽象,獨(dú)立于數(shù)據(jù)庫(kù)的邏輯結(jié)構(gòu),也獨(dú)立于具體的數(shù)

據(jù)庫(kù)管理系統(tǒng),與具體的數(shù)據(jù)庫(kù)管理系統(tǒng)無(wú)關(guān)。

二、選擇題(1分)(本題共70題,每題7.0分,共70

分。)

11、以下敘述中正確的是()。

A、C語(yǔ)言的源程序不必通過(guò)編譯就可以直接運(yùn)行

B、C語(yǔ)言中的每條可執(zhí)行語(yǔ)句最終都將被轉(zhuǎn)換成二進(jìn)制的機(jī)器指令

C、C源程序經(jīng)編譯形成的二進(jìn)制代碼可以直接運(yùn)行

D、C語(yǔ)言中的函數(shù)不可以單獨(dú)進(jìn)行編譯

標(biāo)準(zhǔn)答案:2

知識(shí)點(diǎn)解析:C語(yǔ)言采用編譯方式將源程序轉(zhuǎn)換為二進(jìn)制的目標(biāo)代碼,編寫好一個(gè)

C程序到完成運(yùn)行一般經(jīng)過(guò)以下幾個(gè)步驟。編輯、編譯,就是將已經(jīng)編輯好的源程

序翻譯成二進(jìn)制的目標(biāo)弋碼,經(jīng)編譯后得到的二進(jìn)制代碼還不能直接執(zhí)行,因?yàn)槊?/p>

一個(gè)模塊往往是單獨(dú)編譯的,必須把經(jīng)過(guò)編譯的各個(gè)模塊的目標(biāo)代碼與系統(tǒng)提供

的標(biāo)準(zhǔn)模塊連接后才能運(yùn)行:連接,將各模塊的二進(jìn)制目標(biāo)代碼與系統(tǒng)標(biāo)準(zhǔn)模塊經(jīng)

連接處理后,得到具有絕對(duì)地址的可執(zhí)行文件,它是計(jì)算機(jī)能直接執(zhí)行的文件;執(zhí)

行,執(zhí)行一個(gè)經(jīng)過(guò)編譯和連接的可執(zhí)行的目標(biāo)文件。由以上定義可知,選項(xiàng)A、

C、D均不正確。所以,4個(gè)選項(xiàng)中選項(xiàng)B符合題意。

12、以下符合C語(yǔ)言語(yǔ)法的實(shí)型常量是()。

A、1.2E0.5

B、3.14159E

C、5.OOE-O3

D、E15

標(biāo)準(zhǔn)答案:4

知識(shí)點(diǎn)解析:在C語(yǔ)言中,可以用指數(shù)形式將實(shí)型常量表示為數(shù)值和指數(shù)兩部

分,數(shù)值部分不能為空,指數(shù)部分只能為整數(shù)表示。選項(xiàng)A中1.2和0.5都不

是整數(shù),故選項(xiàng)A不正確;選項(xiàng)B中3.14159也不是整數(shù),故選項(xiàng)B不正確;選

項(xiàng)D中數(shù)值部分不能為空,故選項(xiàng)D也不正確。所以,4介選項(xiàng)中選項(xiàng)C符合題

意。

13、以下4組用戶定義標(biāo)識(shí)符中,全部合法的一組是()。

A、_mainencludesin

B、If-maxturbo

C、txtREAL3COM

D、intk_2_00l

標(biāo)準(zhǔn)答案:1

知識(shí)點(diǎn)解析:標(biāo)識(shí)符是以字母或下劃線開(kāi)頭,由字母、數(shù)字或下劃線組成的字符序

列(例如,-max含非法字符-),并且用戶標(biāo)識(shí)符不能與C語(yǔ)言中的32個(gè)關(guān)鍵字同名

(例如,int是關(guān)鍵字,不是合法的用戶標(biāo)識(shí)符)。選項(xiàng)B中-max不是字母、數(shù)字或

下劃線組成的字符序列,故選項(xiàng)B不正確;選項(xiàng)C中3coM不是由字母或下劃線

開(kāi)頭,故選項(xiàng)C不正確;選項(xiàng)D中int為C語(yǔ)言中的關(guān)鍵字,故選項(xiàng)D不正確;

選項(xiàng)A中全部為合法的標(biāo)識(shí)符,所以,4個(gè)選項(xiàng)中選項(xiàng)A符合題意。

14、以下選項(xiàng)中非法的表達(dá)式是()。

A、0<=x<100

B、i=j==0

C、(char)(65+3)

D、x+l=x+l

標(biāo)準(zhǔn)答案:8

知識(shí)點(diǎn)解析:選項(xiàng)D中將表達(dá)式的值賦給表達(dá)式,在C語(yǔ)言中是不允許給表達(dá)式

賦值的,故選項(xiàng)D是非法的表達(dá)式,所以,4個(gè)選項(xiàng)中選項(xiàng)D符合題意。

15、若變量a、i已正確定義,且i已正確賦值,合法的語(yǔ)句是()。

A、a==l

B、++i;

C、a=int(i);

D、a=a++=5;

標(biāo)準(zhǔn)答案:2

知識(shí)點(diǎn)解析:C語(yǔ)言中的語(yǔ)句都以“;”結(jié)尾,因此選項(xiàng)A不是合法語(yǔ)句。強(qiáng)制類型

轉(zhuǎn)換運(yùn)算符應(yīng)為"(類型名)”,選項(xiàng)C中的瓶⑴不符合規(guī)定;如將血⑴看成函數(shù)調(diào)

用也是不正確的,int是C語(yǔ)言的關(guān)鍵字,不能作為用戶定義的標(biāo)識(shí)符當(dāng)函數(shù)名使

用。賦值表達(dá)式的左側(cè)應(yīng)為變量名,而選項(xiàng)D中的a++=5不符合規(guī)定。

16、有以下程序:main(){inim=0256,n=256:printf("%o%o\n\m,n);}程序運(yùn)彳亍后

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

A、02560400

B、0256256

C、256400

D、400400

標(biāo)準(zhǔn)答案:4

知識(shí)點(diǎn)解析:程序中定義了兩個(gè)整型變量,一個(gè)用八進(jìn)制表示,一個(gè)用十進(jìn)制表

示,輸出語(yǔ)句中要求m、n都為八進(jìn)制輸出,顯然m原樣輸出為256,n的值轉(zhuǎn)換

為八進(jìn)制輸出(256的八進(jìn)制為400),故輸出400。所以,4個(gè)選項(xiàng)中選項(xiàng)C符合題

意。

17、有定義語(yǔ)句:“intx,y;”,若要通過(guò)公2玳(“%4%、,&%&丫);”語(yǔ)句使變量*

得到數(shù)值II,變量y得到數(shù)值12,下面4組輸入形式中錯(cuò)誤的是()。

A、1112V回車〉

B、IL12V回車,

C、11,12V回車〉

D、11,V回車>12V回車〉

標(biāo)準(zhǔn)答案:1

知識(shí)點(diǎn)解析:scanf()函數(shù)有兩個(gè)參數(shù),第一個(gè)參數(shù)為輸入格式字符串,第二個(gè)參數(shù)

為輸入變量地址列表,在scanf()語(yǔ)句中非格式字符可以作為輸入時(shí)數(shù)據(jù)的間隔,

輸入時(shí)必須原樣輸入,在本題中輸入格式串為“%d,%d”其中“,”為非格式字符,所以

輸入時(shí)必須原樣輸入。所以,4個(gè)選項(xiàng)中選項(xiàng)A符合題意。

18、若有以下程序段:intm=Uxabc,n=Uxabc;m-=n;printf("%X\n”,m);執(zhí)行后輸出

結(jié)果是()。

A、0X0

B、0x0

C、0

D、OXABC

標(biāo)準(zhǔn)答案:4

知識(shí)點(diǎn)解析:m-=n相當(dāng)于m=m-n,兩個(gè)相等的數(shù)相減,其值為0。所以,C選項(xiàng)

為所選。

19、設(shè)變量x為noat型且已賦值,則以下語(yǔ)句中能將x中的數(shù)值保留到小數(shù)點(diǎn)后

兩位,并將第3位四舍五入的是()。

A、X=X*100+0.5/100.0:

B、x=(x*100+0.5)/100.0;

C、x=(int)(x*100+0.5)/100.0;

D、x=(x/100+0.5)*100.0;

標(biāo)準(zhǔn)答案:4

知識(shí)點(diǎn)解析:選項(xiàng)A中。.5/100.0將保留小數(shù)點(diǎn)后六位,不滿足題目要求,故選項(xiàng)

A不正確:選項(xiàng)R和選項(xiàng)D也將保留小數(shù)點(diǎn)后六位,不滿足題目要求.故選頊R

不正確;所以,4個(gè)選項(xiàng)中選項(xiàng)C符合題意。

20、執(zhí)行下面的程序時(shí),輸入abc〈CR>(其中CR代表回車),輸出結(jié)果是()。

#include<stdio.h>#inc'ude<string.h>main(){charch;while((cn=getchar())!=,n,)

{switch(ch-,a,){case0:putchar(ch+l);case1:putchar(ch+1);break;case2:

putchar(ch+2);caSe3:putchar(ch+2);break;}))

A、abc

B、bbc

C、abed

D、bbcee

標(biāo)準(zhǔn)答案:8

知識(shí)點(diǎn)解析:當(dāng)ch=,a時(shí),ch-a,=O,進(jìn)入case。分支輸出b,再進(jìn)入easel分支輸

出b,然后結(jié)束本次循環(huán)。當(dāng)ch=b時(shí),進(jìn)入easel分支輸出c,然后結(jié)

束本次循環(huán)。當(dāng)ch=,c,時(shí),,c,/a,=2,進(jìn)入case2分支輸出e,再進(jìn)入case3分支輸

出e,然后結(jié)束次循環(huán)。遇到Ln,結(jié)束循環(huán)。顯示輸出為bbcee。

三、選擇題(2分)(本題共30題,每題1.0分,共30

分。)

21、若有定義:inta=8,b=4,C;執(zhí)行語(yǔ)句“c=a/b+0.4;”后,c的值為()。

A、1.4

B、I

C、2

D、2

標(biāo)準(zhǔn)答案:8

知識(shí)點(diǎn)解析?:a、b、c為整型,賦值運(yùn)算符兩側(cè)的數(shù)據(jù)類型不一致,系統(tǒng)先自動(dòng)將

右側(cè)表達(dá)式求得的數(shù)值,按賦值號(hào)左邊變量的類型進(jìn)行轉(zhuǎn)換,再賦值給左邊的變

量。去掉右側(cè)表達(dá)式值的小數(shù)部分變?yōu)檎麛?shù)賦值給變量c,c的值為2。

22、以下程序的輸出結(jié)果是()。main(){inta=-l,b=4,k;k=(++a<O)&&!(b-<

=0);printf("%d%d%d\n"m,k,a,b);}

A、104

B、103

C、3

D、4

標(biāo)準(zhǔn)答案:8

知識(shí)點(diǎn)解析:&&的優(yōu)先級(jí)高于二,先計(jì)算&&左側(cè)的表達(dá)式++aVO。先對(duì)a加1再

與0比較大小,a=l+l=O,++a<0為假即0,&&左側(cè)的表達(dá)式的值為0,不再計(jì)

算&&右側(cè)的表達(dá)式的值,因此b的值不變?nèi)匀粸?,整個(gè)邏輯表達(dá)式的值為0,

則k被賦值為00輸出的結(jié)果為004°

23、設(shè)有如下定義:ima=4;則計(jì)算表達(dá)式“a+=a-a*a”后的值是()。

A、0

B、-12

C、-24

D、-8

標(biāo)準(zhǔn)答案:8

知識(shí)點(diǎn)解析:a+=a-a*a等價(jià)于a=a+a-a*a=4+4-4*4=-8o

24、以下選項(xiàng)中合法的實(shí)型常數(shù)是()。

A、5E2.0

B、E-3

C、2.00E-01

D、I.3E

標(biāo)準(zhǔn)答案:4

知識(shí)點(diǎn)解析:在C語(yǔ)言中,實(shí)數(shù)有兩種表示形式:小數(shù)形式與指數(shù)形式。小數(shù)形

式的實(shí)數(shù)由整數(shù)部分、小數(shù)點(diǎn)和小數(shù)部分組成(必須要有小數(shù)點(diǎn))。指數(shù)形式字母

e(E)之前必須有數(shù)字,且e或E后的指數(shù)必須為整數(shù)。選項(xiàng)A中,5E2.0中E后面

的2.0不是整數(shù);選項(xiàng)B中,E前面沒(méi)有數(shù)字;選項(xiàng)D中,E后面沒(méi)有數(shù)字,只有

選項(xiàng)C正確。

25、若有以下定義:chara;inlb;floatc;doubled;則表達(dá)式“a*b+d-c”值的類型

為()。

A、float

B、int

C、char

D、double

標(biāo)準(zhǔn)答案:8

知識(shí)點(diǎn)解析:參加運(yùn)算的數(shù)據(jù)類型不同,要轉(zhuǎn)換為統(tǒng)一的數(shù)據(jù)類型,double在數(shù)據(jù)

類型轉(zhuǎn)換中的級(jí)別最高,其他數(shù)據(jù)類型都要轉(zhuǎn)化為double,因此表達(dá)式值的類型為

doubleo

26,若執(zhí)行下述程序時(shí),從鍵盤輸入的數(shù)據(jù)是3和6,則程序的輸出結(jié)果是()。

#include<stdio.h>voidmain()(intx,y,z;scanf("%d%d”,&X,&y);z=y+x;if(x<y)

z=y+x;printf("%d",z);)

A、9

B、3

C、0

D、有語(yǔ)法錯(cuò)誤

標(biāo)準(zhǔn)答案:2

知識(shí)點(diǎn)解析:變量x得到數(shù)據(jù)3,變量y得到數(shù)據(jù)6。z=6+3=9。xVy即3<6關(guān)系

表達(dá)式的值為1,執(zhí)行z=y-x=6-3=3o最后輸出z的值為3。

27、有以下程序:niain(){inta=15,b=21,m=0;switch(a%3){case0:m++;break;case

1:m++;switch(b%2){default:m++;case0;m++;break;))printf("%d\n"jn);}程序運(yùn)

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

A、1

B、2

C、3

D、4

標(biāo)準(zhǔn)答案:1

知識(shí)點(diǎn)解析:在switch語(yǔ)句中break語(yǔ)句的作用是退出分支語(yǔ)句,若沒(méi)有break語(yǔ)

句則一直向下執(zhí)行。本題中首先計(jì)算switch后面括號(hào)里的表達(dá)式a%3,即15%3為

0:執(zhí)行case。:后面的語(yǔ)句”,m自加1,即m為1;遇到break語(yǔ)句;然

后跳出switch語(yǔ)句,所以最后輸出的m值為1。所以選項(xiàng)A正確。

28、定義如下變量:inin=10;則卜.列循環(huán)的輸出結(jié)果是()。while(n>7){-n;

printf("%d\n';n);)

A、1098

B、987

C、10987

D、9876

標(biāo)準(zhǔn)答案:2

知識(shí)點(diǎn)解析:第1次循環(huán),10>7,-n=9,輸出9。第2次循環(huán),9>7,-n=8,輸

出8。第3次循環(huán),8>7,-n=7,輸出7。

29、有以卜.程序:main(){inta=5,b=4,c=3,d=2;if(a>b>c)printf(n%d\nH,d);else

if((c-l>=d)==l)printf("%d\n",d+l);elseprintf("%d\n",d+2)}執(zhí)行后輸出結(jié)果是()。

A、2

B、3

C、4

D、編譯時(shí)有錯(cuò),無(wú)結(jié)果

標(biāo)準(zhǔn)答案:2

知識(shí)點(diǎn)解析:C語(yǔ)言規(guī)定else總是和離它最近的if語(yǔ)句配對(duì)。故第一個(gè)else和第一

個(gè)if配對(duì),第二個(gè)else和第二個(gè)if配對(duì)。首先計(jì)算笫一個(gè)if后面的表達(dá)式a>b>

c,表達(dá)式a>b為1,表達(dá)式l>c為0,所以執(zhí)行else后面的語(yǔ)句。先執(zhí)行if后面

的表達(dá)式,。l>d為真,值為1。1=1為真,執(zhí)行primf語(yǔ)句。所以,B選項(xiàng)為所

選。

30、以下程序的輸出結(jié)果是()。main()char

a[10]={5r,2,'3','4',5,'6',7,'8','9',{inti;i=8;p=a+i;

printf("%s\n",p-3);}

A、6

B、6789

C、6

D、789

標(biāo)準(zhǔn)答案:2

知識(shí)點(diǎn)露析:p被定義為指針型變量,被賦值為數(shù)組a的首地址加8,即指向元

素9。將指針向前移3位,輸出6后的字符串,遇到、(T結(jié)束輸出,即6789。

31、若有如下程序:main(){intx[]={14,32,65,69,78,59},%;t=x+5;primf("%d\n”,*?

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

A、78

B、65

C>32

D、14

標(biāo)準(zhǔn)答案:1

知識(shí)點(diǎn)解析:執(zhí)行l(wèi)=x+5:使指針指向數(shù)組元素59,運(yùn)算符*和?■的優(yōu)先級(jí)相同,

結(jié)合性為自右向左,先計(jì)算-1,對(duì)t減1,使t指向數(shù)組元素78,再計(jì)算*3取該

地址單元的值78。

32、若有如下程序:main(){staticchar*a[3]={,,123,;"456',,,,789");char**b;b=a;

++b;printf(H%s,%s\n",*a*a+l);printf("%s,%s\n",*b,b[l]);)則程序運(yùn)行后的輸出結(jié)果

是()。

A、123,456,456,789

B、123,23456,56

C、123,23436,7X9

D、123,456456,56

標(biāo)準(zhǔn)答案:4

知識(shí)點(diǎn)解析:a為指針數(shù)組,a[O]即數(shù)組a的數(shù)組名指向字符串“123”的首地址,輸

出*a為“123”,*a+l將指針下移1個(gè)存儲(chǔ)單元,輸出字符串為“23"。a[l]指向字符

串“456”的首地址,a⑵指向字符串“789”的首地址。b為指針的指針,它的值為數(shù)組

a的首地址。

33、以下不正確的定義語(yǔ)句是()。

A、doublex[5]={2.0,4.0,6.0,8.0,10.0);

B.inty[5]={0,1,3,57,9);

C、charcl[]={'l','2','3','4','5'};

D、charc2[]={,\xl0,;\xa,,,\x8,);

標(biāo)準(zhǔn)答案:2

知識(shí)點(diǎn)解析:選項(xiàng)B中初值列表中的初值個(gè)數(shù)超過(guò)了數(shù)組包含的元素的個(gè)數(shù)。

34、若有說(shuō)明:int*p,m=5,n;,以下正確的程序段是()。

A、p=&m;scanf("%d",&p)

B、p=&n;scanf("%d",&p)

C>scsnf("%d",&p)p=&n;

D、p=&n;p=&m;

標(biāo)準(zhǔn)答案:8

知識(shí)點(diǎn)解析:p為指針型變量,在輸入函數(shù)的地址列表中不用&,當(dāng)給指針變量賦

值時(shí)是取變量的地址賦給指針變量,&為取地址運(yùn)算符,因此只有選項(xiàng)D正確。

35、執(zhí)行下面程序時(shí),若輸入1、-5、6,則輸出結(jié)果為()。#include<stdio.h>#

include<math.h>#definedisc(a,b,c)b*b-4*a*cmain(){floatxl,x2;inta,b,c;

scanf("%d,%d,%d",&a,&b,&c);x1=(-b+sqrt(disc(a,b,c)))/(2*a);x2=(-b-

sqrt(disc(a,b,c)))/(2*a);}

A、3,2

B、3.0,2.0

C、-3,-2

D、程序出錯(cuò)

標(biāo)準(zhǔn)答案:2

知識(shí)點(diǎn)露析:本題是使用帶參數(shù)的宏來(lái)求解一元二次方程的兩個(gè)根。表達(dá)式xl=(-

b+sqrt(disc(a,b,c)))/(2*a)宏展開(kāi)后為:x1=(-b+sqrt(b*b-4*a*c))/(2*a)=(5+sqrt(25-

24))/2=6/2=3o表達(dá)式x2=(?b?sqrt(disc(a,b,c)))/(2*a)宏展開(kāi)后為:x2=(-b-sqrt(b*b-

4*a*c))/(2*a)=(5-sqrt(25-24))/2=4/2=2o所以程序輸出結(jié)果為3.0,2.0,應(yīng)該選擇

Bo

36、卜.面程序的輸出結(jié)果是()。chars()=',ABCDn,i3:p;main(){for(p=s;p<

s+4;p++)printf("%s\n',,p);)

A、ABCDBCDCDD

B、ABCD

C、DCBA

D、ABCDABCABA

標(biāo)準(zhǔn)答案:1

知識(shí)點(diǎn)解析:p為指針型變量。第一次循環(huán),p=s,p的值為字符數(shù)組s的首地址,

輸出字符串“ABCD"。p++,第二次循環(huán),p的值為字符數(shù)組s的首地址加1,輸出

字符串“BCD”。p++,第三次循環(huán),p的值為字符數(shù)組s的首地址加2,輸出字符串

"CD'op++,第4次循環(huán),p的值為字符數(shù)組s的首地址加3,輸出字符串,D”。

37、程序中頭文件typel.h的內(nèi)容是()。#dcfineN5#defincMlN*3程序如下:

#define"typel.h"#defineM2N*2main(){inti;i=Ml+M2;printf(H%d\nH,i);}程序編

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

A、10

B、20

C、25

D、30

標(biāo)準(zhǔn)答案:4

知識(shí)點(diǎn)解析:仁Ml+M2=N*3+N*2=5*3+5*2=25。

38、下面程序的輸出結(jié)果是()。main(){structm1(inta;intb;)cn[2]={1,3,2,7);

printf("%d\n",en[0].b/en[0].a*en[l].a);

A、6

B、0

C、I

D、3

標(biāo)準(zhǔn)答案:1

知識(shí)點(diǎn)解析:en⑵是結(jié)構(gòu)體類型的數(shù)組,en[0].b/en[0].a*en[1].a=3/1*2=6o

39、語(yǔ)句“a=2;p=&a;b=*p+十>執(zhí)行后的結(jié)果是()。

A、a=3b=3

B、a=2b=2

C、a=2b=1

D、a=2b=3

標(biāo)準(zhǔn)答案:2

知識(shí)之解析:執(zhí)行p=&a;,將變量a的地址賦給指針變量p,運(yùn)算符*和++的優(yōu)先

級(jí)相同,都具有自右向左的結(jié)合性,p++是先使用p的值再對(duì)p加1,則計(jì)算*p,

即取p所指向的存儲(chǔ)單元的值2,賦值給b,再對(duì)p的值加1。輸出結(jié)果為a=2

b=2o

40、設(shè)有如下定義:structss{charname|10|;intage;charsex;}std|3],*p=std;

下面各輸入語(yǔ)句中錯(cuò)誤的是()。

A、scanf("%d",&(*p).age);

scanf("%su,&);

C^scanf("%c",&std[O],sex)

D、scanf("%c",&(p->sex));

標(biāo)準(zhǔn)答案:2

知識(shí)點(diǎn)解析:選項(xiàng)A中&(*p).age代表的是std[0].age的地址,是正確的,選項(xiàng)C也

是正確的,選項(xiàng)D先用指針變量引用結(jié)構(gòu)型的成員sex,然后取它的地址,也是正

確的,選項(xiàng)B中的是錯(cuò)誤的引用,因?yàn)閟td是數(shù)組名,代表的是數(shù)組的首

地址,地址沒(méi)有成員name。所以B選項(xiàng)為所選。

41、若有如下程序:intsub(intm){if(m==1||m==0)return2;elsereturn(sub(m-

l)*sub(m-2));}main(){intn;scanf(H%d",&n);printf("%d”,sub(n));}如果從鍵盤輸入

4V回車>,則程序運(yùn)行后的輸出結(jié)果是()。

A、8

B、16

C、24

D、32

標(biāo)準(zhǔn)答案:8

知識(shí)點(diǎn)解析:本題的“】b()函數(shù)是一個(gè)遞歸函數(shù),當(dāng)參數(shù)m為1或0時(shí)返回2.否

則返回sub(m-l)*sub(m-2)o所以sub(4)遞推卜來(lái)就是

sub(4)=sub(3)*sub(2)=sub(2)*sub(1)*sub(1)*sub(0)=sub(1)*sub(0)*2*2*2=25(Jt

標(biāo))=32。所以正確答案是D。

42、有以下程序:main(intarge?char*argv[]){intn,i=0;vvhile(arv[l][i]!=,\0,

{n=fun();i++;)printf("%d\n",n*argc))intfun(){staticints=0;s+=1;returns;}假設(shè)

程序經(jīng)編譯、連接后生成可執(zhí)行文件exam.exe,若輸入以下命令行exam123V回

車〉則運(yùn)行結(jié)果為()。

A、6

B、8

C、3

D、4

標(biāo)準(zhǔn)答案:1

知識(shí)點(diǎn)解析:主函數(shù)的第一個(gè)參數(shù)argc為整形參數(shù),記下從命令行輸入的參數(shù)的

個(gè)數(shù);第二個(gè)參數(shù)argv是一個(gè)字符型的指針數(shù)組,它的每一個(gè)元素指向命令行輸

入的參數(shù)字符數(shù)。在本例中argc的值為2,argv[O]指向字符串“exam”,argv[l]指向

參數(shù)字符串力23”。在main。函數(shù)中,while循環(huán)執(zhí)行了3次,調(diào)用了3次fun()函

數(shù);第一次調(diào)用了fun()函數(shù)時(shí),定義了一個(gè)靜態(tài)變量s并賦初值0,加1后作為函

數(shù)值返回,n的值為1;第二次調(diào)用fun()函數(shù)時(shí),靜態(tài)變量s的值將保留上一次退

出時(shí)的值1,再加1為2,作為函數(shù)值返回,n的值為2;同理第三次調(diào)用返回后,

n的值為3。輸出心argc的值為6所以,A選項(xiàng)為所選。

43、下列屬于不合法的main函數(shù)命令行參數(shù)表示形式的是()。

A、main(intargv,char*argc[])

B、main(intargv,char*argc)

C、main(intargv,char**arc)

D、main(intargc,char*argv[])

標(biāo)準(zhǔn)答案:2

知識(shí)點(diǎn)解析:main函數(shù)通常可用兩個(gè)參數(shù),參數(shù)名可由用戶自定,但類型是固定

的,第一個(gè)參數(shù)必須是整型,第二個(gè)參數(shù)是一個(gè)指向字符型的指針數(shù)組的指針,可

以表示為**@冠或*&但4]。4個(gè)選項(xiàng)中只有選項(xiàng)B不符合。

44、設(shè)有如下定義:strucksk{inta;floatb;}data;int*p;若要使p指向data中的a

域,正確的賦值語(yǔ)句是()。

A、p=&a;

B、p=data.a;

C、p=&data.a;

D^*p=data.a;

標(biāo)準(zhǔn)答案:4

知識(shí)點(diǎn)解析:dala是一結(jié)構(gòu)體變量,a是它的成員,因此引用a域的正確方法是:

data.a,取它的地址賦值給指針變量p的語(yǔ)句應(yīng)該是:p=&data.an選項(xiàng)A將a的地

址直接賦給了p,而忽略了a為結(jié)構(gòu)體內(nèi)部的一個(gè)成員,不是一單獨(dú)的變量,故選

項(xiàng)A不正確;選項(xiàng)B在p=data.a表達(dá)式中右邊為一個(gè)結(jié)構(gòu)體變量的成員不是地

址,而左邊為一指針應(yīng)該將一地址賦給它,故選項(xiàng)B不正確。選項(xiàng)D表達(dá)式

*p=data.a是將結(jié)構(gòu)體變量中的成員a的值賦給指針p所指向的變量值,而不是使指

肝p指向data中的a域,故選項(xiàng)D不正確。

45、若有如下定義:structstu(charname[9];intage:floatscore:):structstu

class|10]={{”Li”,17,67},「'Song”』9,80},{?110”,18,79},{21^。”,16,69}};根據(jù)上面的

定義,若執(zhí)行"printf("%s:%d%f",class[3].name,class[3].age,class[3].score);”則輸出的

正確結(jié)果是()。

A、Song:19,80.000000

B、Zhao:16,69.000000

C、Li:17,67Song;19,80

D、guo:18,79Zhao;16,69

標(biāo)準(zhǔn)答案:2

知識(shí)點(diǎn)解析:(:屈410]是結(jié)構(gòu)體型的數(shù)組,/§5[3]為{吆1^0”,16,69)。

46、下列描述正確的是()。

A、C語(yǔ)句能嵌套定義函數(shù),但不可以嵌套調(diào)用函數(shù)

B、C語(yǔ)句不能嵌套定義函數(shù),也不可以嵌套調(diào)用函數(shù)

C、C語(yǔ)句能嵌套定義函數(shù),也可以嵌套調(diào)用函數(shù)

D、C語(yǔ)句不能嵌套定義函數(shù),但可以嵌套調(diào)用函數(shù)

標(biāo)準(zhǔn)答案:8

知識(shí)點(diǎn)解析:C語(yǔ)句不能嵌套定義函數(shù),但可以嵌套調(diào)用函數(shù)。

47、有如下程序段:inia=14,b=15,x;charc='A';x=(a&&b)&&(CV'B');執(zhí)行該程

序段后,x的值為()。

A、1

B、0

C、FALSE

D、TRUE

標(biāo)準(zhǔn)答案:1

知識(shí)點(diǎn)解析,a=14,b=15,第一個(gè)&&兩側(cè)均為非零值vc=,A=表達(dá)式eV*'的

值為真即1,第二個(gè)&&兩側(cè)也均為非零值。表達(dá)式(a&&b)&&(cV,B,)的值為1,

賦值給變量X。

48、若有如下程序:intm=l;main(){intt=O,s=O;{intm=4;s+=m;)t+=m;

printf("%d,%d\n';s,t);}則程序運(yùn)行后的輸出結(jié)果是()°

A、1,1

B、1,4

C、4,1

D、4,4

標(biāo)準(zhǔn)答案:4

知識(shí)點(diǎn)解析:{intm=4;s+=m;}是復(fù)合語(yǔ)句,m=4,s+=m等價(jià)于s=s+m=0+4=4。

l+=m等價(jià)于t=t+m,這里m為全局變量,值為1,t=t+m=O+l=lo

49、執(zhí)行下列程序時(shí)輸入:123〈空格>456〈空格>789〈回車〉,輸出結(jié)果是

()omain(){chars[100];intc,i;scanf("%c",&c);scanf("%d,,,&i);scanf("%s",s);

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

A、1,456,789

B、1,23,456

C、1,23,456,789

D、123,456,789

標(biāo)準(zhǔn)答案:2

知識(shí)點(diǎn)解析:第一個(gè)輸入語(yǔ)句只接收一個(gè)字符'1';第二個(gè)輸入語(yǔ)句接收一個(gè)整數(shù)

23,遇到空格停止;第三個(gè)輸入語(yǔ)句接收一個(gè)字符串“456”,遇到空格停止。

50、下面程序段的運(yùn)行結(jié)果是()。chara|]="abcdefgh";char*p=a;p+=3;

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

A、8

B、12

C、4

D、7

標(biāo)準(zhǔn)答案:4

知識(shí)點(diǎn)解析:p被定義為指針型變量,指向字符數(shù)組a的首地址。執(zhí)行p+=3;指針

后移3位,指向dostrcpy(p,”ABCD”)將字符串“ABCD”(連同、0)復(fù)制到p所指向

的地址單元中,strlen。函數(shù)計(jì)算p所指向的字符串的長(zhǎng)度,返回字符串中字符的個(gè)

數(shù)(不計(jì)返回值為字符串“ABCD”中字符的個(gè)數(shù)4o

四、公共基礎(chǔ)填空題(本題共5題,每題7.0分,共5

分。)

51、設(shè)一棵完全二叉樹共有700個(gè)結(jié)點(diǎn),則在該二叉樹中有【】個(gè)葉子結(jié)點(diǎn)。

標(biāo)準(zhǔn)答案:350

知識(shí)點(diǎn)解析:在任意二叉樹中,葉子結(jié)點(diǎn)總比度為2的結(jié)點(diǎn)多一個(gè)。在完全二叉樹

中,最多有一個(gè)度為1的結(jié)點(diǎn)。設(shè)一棵完全二叉樹具有n個(gè)結(jié)點(diǎn),若n為偶數(shù),則

在該二叉樹中有n/2個(gè)葉子結(jié)點(diǎn)以及n/2-l個(gè)度為2的結(jié)點(diǎn),還有一個(gè)是度為1的

結(jié)點(diǎn):若n為奇數(shù),則在該二叉樹中有n/2+l個(gè)葉子結(jié)點(diǎn)以及n/2個(gè)度為2的結(jié)

點(diǎn),沒(méi)有度為1的結(jié)點(diǎn)。根據(jù)題意,完全二叉樹共有700個(gè)結(jié)點(diǎn),700是偶數(shù),所

以,在該二叉樹中有350個(gè)葉子結(jié)點(diǎn)以及349個(gè)度為2的結(jié)點(diǎn),還有一個(gè)是度為1

的結(jié)點(diǎn)。所以,本題的正確答案為350。

52、在面向?qū)ο蠓椒ㄖ?,類之間共享屬性和操作的機(jī)制稱為【】。

標(biāo)準(zhǔn)答案:分類性

知識(shí)點(diǎn)解析:類是關(guān)于對(duì)象性質(zhì)的描述,它包括一組數(shù)據(jù)屬性和在數(shù)據(jù)上的一組合

法操作。類之間這種共享屬性和操作的機(jī)制稱為分類性。

53、源程序文檔化要求程序應(yīng)加注釋。注釋一般分為序言性注釋和【】。

標(biāo)準(zhǔn)答案:功能性注釋

知識(shí)點(diǎn)解析:注釋一般分為序言性注釋和功能性注釋。序言性注釋通常位于每個(gè)程

序的開(kāi)頭部分,它給出程序的整體說(shuō)明;功能性注釋的位置一般嵌在源程序體之中

戶主要描述其后的語(yǔ)句或程序做什么。

54、一般來(lái)說(shuō),數(shù)據(jù)庫(kù)的設(shè)計(jì)過(guò)程要經(jīng)歷3個(gè)大的階段,即可行性分析與研究階

段、系統(tǒng)設(shè)計(jì)階段、設(shè)計(jì)實(shí)施與系統(tǒng)運(yùn)行階段。概念設(shè)計(jì)、邏輯結(jié)構(gòu)設(shè)計(jì)、物理結(jié)

構(gòu)設(shè)計(jì)屬于數(shù)據(jù)庫(kù)設(shè)計(jì)的【】階段。

標(biāo)準(zhǔn)答案:系統(tǒng)設(shè)計(jì)

知識(shí)點(diǎn)解析:系統(tǒng)設(shè)計(jì)階段是系統(tǒng)的具體設(shè)計(jì)過(guò)程,主要包括概念設(shè)計(jì)、邏輯結(jié)構(gòu)

設(shè)計(jì)、物理結(jié)構(gòu)設(shè)計(jì)3個(gè)步驟。這3個(gè)不同層次上的設(shè)計(jì)過(guò)程,是把實(shí)體以及相互

之間的聯(lián)系轉(zhuǎn)換為“數(shù)據(jù)”并落實(shí)于計(jì)算機(jī)中。

55、數(shù)據(jù)流圖有兩種典型的結(jié)構(gòu)形式,它們分別是變換型和【】。

標(biāo)準(zhǔn)答案:事務(wù)型

知識(shí)點(diǎn)解析:數(shù)據(jù)流圖中有眾多的加工,但必有一個(gè)加工是起核心作用的,即中心

加工。由數(shù)據(jù)流圖導(dǎo)出結(jié)構(gòu)圖的關(guān)鍵是找出中心加工。一般來(lái)說(shuō),中心加工有兩種

存在形態(tài),即數(shù)據(jù)流圖的兩種典型結(jié)構(gòu)形式:變換型和事務(wù)型。

五、填空題(本題共12題,每題1.0分,共12分。)

56、若有語(yǔ)句:inti=-19,j=i%4;printf("%d\n”,j);則輸出結(jié)果是[】。

標(biāo)準(zhǔn)答案:-3

知識(shí)點(diǎn)解析:%運(yùn)算符是求兩個(gè)數(shù)相除的余數(shù),其結(jié)果與被除數(shù)的符號(hào)一致,本題

中“-19%4”的值為“-3”。

57、若有如下程序:#include"stdio.h"main(){chars[30];Strcpy(&S[0],"adc");

Strcpy(&S[l];'def);strcpy(&S[2],"gh,');;printf("%S\n",s);則程序運(yùn)行后的輸出結(jié)果

是【】。

標(biāo)準(zhǔn)答案:adgh

知識(shí)點(diǎn)解析:函數(shù)sircpy是字符串復(fù)制函數(shù)。第一次將“adc”復(fù)制到以&s[0]為起始

地址的存儲(chǔ)空間中,第二次將”deF復(fù)制到以&s[l]為起始地址的存儲(chǔ)空間中,“de”

將被覆蓋,變?yōu)椤癮dc『,第三次將“gh”復(fù)制到以&s[2]為起始地址的存儲(chǔ)空間中,

將被覆蓋,變?yōu)椤癮dgh”。

58、以下程序運(yùn)行后的輸出結(jié)果是[1。main()(intp[7]{11,13,14,15,16,17,18);

inti=0,j=0;while。V7&&p[i]%2=l)j+=p[i++];printf("%d\nM,j);)

標(biāo)準(zhǔn)答案:24

知識(shí)點(diǎn)解析:本題主函數(shù)中首先定義了一個(gè)長(zhǎng)度為7的數(shù)組,然后用一個(gè)whHe循

環(huán)引用數(shù)組的元素,當(dāng)i大于7或者p[i]為偶數(shù)時(shí),循環(huán)結(jié)束。顯然當(dāng)i=2時(shí),

p[2]=14為偶數(shù)時(shí),循環(huán)結(jié)束,此時(shí)j的值為j=p[0]+p[l]=24。

59、有以下程序main(){intn=0,m+l,X=2;if(!n)X-=l;if(m)X-=2;if(X)X-=3;

printf("%d\n",x);)執(zhí)行后輸出的結(jié)果是[]。

標(biāo)準(zhǔn)答案:-4

知識(shí)點(diǎn)解析:if-else構(gòu)造了一種二路分支選擇,是一種最基本的選擇結(jié)構(gòu),if(條件)

Sl(if分結(jié)構(gòu))elseS2(else分結(jié)構(gòu)),它的工作過(guò)程是:先對(duì)條件表達(dá)式進(jìn)行判斷,

若為真(成立,值為非零),就執(zhí)行if分結(jié)構(gòu)(S1);否則(不成立,值為0),就執(zhí)行

else分結(jié)構(gòu)(S2)。本題中,n=O,可以判斷(!n)為真,執(zhí)行“x=x-l=2-l=l;m=l",可

以判斷(m)為真,執(zhí)行、=乂-2=1?2=-1;”進(jìn)而可以判斷(乂)為真,執(zhí)行x=x-3=-l?3=

40所以,最后輸出為-4。

60、執(zhí)行以卜程序后,輸出#號(hào)的個(gè)數(shù)是[】。#include<studio.h>main(){inti,j;

for(i=l;iV5;i++)for(j=2;jV=i;j++)putchar('#');}

標(biāo)準(zhǔn)答案:6

知識(shí)點(diǎn)解析:本題中,i、j分別為外循環(huán)和內(nèi)循環(huán)的循環(huán)控制變量,外層循環(huán)共執(zhí)

行了4次。當(dāng)i=l時(shí),曰于內(nèi)層循環(huán)判斷條件(2<=1)為假不執(zhí)行內(nèi)層循環(huán)。當(dāng)i=2

時(shí),執(zhí)行內(nèi)層循環(huán),輸出一個(gè)#;當(dāng)i=3時(shí)、內(nèi)層循環(huán)循環(huán)兩次,輸出兩個(gè)#:當(dāng)

i=4時(shí),內(nèi)層循環(huán)循環(huán)3次,輸出3個(gè)#。當(dāng)i=5時(shí),循環(huán)判斷條件不成立,退出外

層循環(huán)。所以一共輸出6個(gè)#。

61、函數(shù)sub的功能是根據(jù)下面近似分式求兀的值。

(兀*兀)/6=1+1/(2*2)+1/(3*3)+…+l/(n*n)現(xiàn)在請(qǐng)?jiān)谙旅娴暮瘮?shù)中填空,完成求兀值的

功能。#include"math.h"doublesub(longm){doublesum=0.0,t;longn;for(n=l;n<

=m;n++)sum+=[];t=sqrt(6*sum);rcturn(t);}

標(biāo)準(zhǔn)答案:1.0/(n*n)

知識(shí)點(diǎn)解析:sam中累加的值是l+l/(2*2)+l/(3*3)+…+1//(n*n),如果寫為

l/(n*n),則會(huì)因?yàn)?和n都為整型,結(jié)果則為實(shí)型,將1變?yōu)?.0,結(jié)果則為實(shí)

型。

62,執(zhí)行以下程序后sum的值是[]vmain(){inti,sum;for(i=l;i<6;i++)sum+=i;

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

標(biāo)準(zhǔn)答案:15

知識(shí)點(diǎn)解析:程序的功能是求1、2、3、4、5的和即15。

63、下列程序的輸出結(jié)果是[]ovoidfun(int*n)Iwhile((*n)-);printf("%d'\

++(*n));}main(){inta=1000;fun(&a);}

標(biāo)準(zhǔn)答案:0

知識(shí)點(diǎn)解析:while循環(huán)的條件為即當(dāng)*n非零時(shí)執(zhí)行循環(huán),(河)一是先使用*n的值

再對(duì)*n減1,結(jié)束while循環(huán)后*n的值為-1。++(*n)是先對(duì)*n加1再使用*n的

值,-1+1=0,輸出*n的值即輸出0。

64、下面程序用來(lái)輸出結(jié)構(gòu)體變量a所占存儲(chǔ)單元的字節(jié)數(shù),請(qǐng)?zhí)羁?。main()

{structstu{charx[20|;floaty;)a;printf("asize:%d\n",sizeof([]));}

標(biāo)準(zhǔn)答案:d

知識(shí)點(diǎn)解析:d被定義為一個(gè)結(jié)構(gòu)體類型變量,求結(jié)構(gòu)體變量a所占存儲(chǔ)單元的字

節(jié)數(shù)即sizeof(d)o

65、若有如下程序:main(){inta[][2]={1,2,6,9,11},(*t)[2];t=a;

printf("%d,%d\nH,*(t[l]+l),(*t)[1]);}則程序運(yùn)行后輸出的結(jié)果是【】。

標(biāo)準(zhǔn)答案:9,2

知識(shí)點(diǎn)解析:本題開(kāi)始定義了一個(gè)int型二維數(shù)組a,并賦以5個(gè)初值,系統(tǒng)使數(shù)

組的最高維為3,并讓a[0][0]=l,a[0][l]=2,a[l][0]=6,a[l][l]=9,a[2][0]=ll,

a[2|⑴因?yàn)槌踔挡粔蚨跏蓟癁?。然后定義一個(gè)行指針I(yè)指向數(shù)組a的首地址,

因?yàn)楸磉_(dá)式1[1]表示指向元素aUHOl的血型指針,U1]+1表示指向a[l]⑴的int型

指針,故返回的是的值9。而*t表示指向元素a[0]⑼的int型指針,

故(*。川返回的是的值2。所以正確答案應(yīng)該為9,20

66、下面程序的功能是將字符串a(chǎn)下標(biāo)值為偶數(shù)的元素由小到大排序,其他元素不

變,請(qǐng)?zhí)羁铡?include<stdio.h>main(){chara[]=,,labchmfye,,,t;inti,j;for(i=0;i<

7;i+=2)for(j=i+2;j<9;[])if([]){t=a[i];a[i]=a|j];a[j]=t;j++;)puts(a);

,,

printf("\n);)

標(biāo)準(zhǔn)答案:j++a[i]>a[j]^a[j]<a[i]

知識(shí)點(diǎn)解析:題目要求排序的元素是下標(biāo)值為偶數(shù)的元素,外循環(huán)循環(huán)4次,1的

值分別為0、2、4、6,所以內(nèi)循環(huán)也循環(huán)4次,i的值就應(yīng)為2、4、6、8,在循環(huán)

體中已經(jīng)有了對(duì)j加1的操作,因此for后括號(hào)中的語(yǔ)句應(yīng)再對(duì)j加1,保證下標(biāo)為

偶數(shù)。if語(yǔ)句的功能是如果后一個(gè)數(shù)比前一個(gè)數(shù)小則交換位置。

67、以下程序中,函數(shù)SumColumMin的功能是:求出M行N列二維數(shù)組每列元

素中的最小值,并計(jì)算它們的和值。和值通過(guò)形參傳回主函數(shù)輸出。請(qǐng)?zhí)羁铡?/p>

#defineM2#defineN4voidSumColumMin(inta[M][N],int*Sum){inti,j,k,s=O

for(i=0;i<N;i++){k=0;for(j=l;j<M;j++)if(a[k][i]>a[j][i])k=j;s+=[J;)[]

=s;)main(){intx[M][N]={3,2,5,l,4J?8,3)?s;SumColumMin([]);

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

標(biāo)準(zhǔn)答案:a[k][i]*sumx,&s

知識(shí)點(diǎn)解析:本題中定義了一個(gè)函數(shù)SumColumMin。,該函數(shù)有兩個(gè)參數(shù),第一

個(gè)參數(shù)為數(shù)組名,第二個(gè)參數(shù)為一個(gè)指針,用來(lái)訪問(wèn)存放數(shù)組中每列元素中最小值

的存儲(chǔ)空間的變量。所以在主函數(shù)中調(diào)用SumColumMin。函數(shù),應(yīng)該將數(shù)組x和

sam作為實(shí)參傳給SumColumMin。中的形參,故第19個(gè)空格處應(yīng)該填x,&so在

SumColumMin。函數(shù)中用了兩重循環(huán),用N記錄數(shù)組的列,M記錄數(shù)組的行。內(nèi)

循環(huán)共循環(huán)了M次,每循環(huán)一次將比較(當(dāng)k=O時(shí),a[k][i|第一行第一

列的值,然后將該值依次和第一列中的每個(gè)值比較,讓ak][i]表示較小的值,那么

比較到最后一個(gè)元素后就是改列中最小元素的值),讓k記錄較小值元素的

行下標(biāo),這樣通過(guò)M次循環(huán)得到每列中的最小元素,然后退出內(nèi)循環(huán),繼續(xù)執(zhí)行

該次外循環(huán)里的其他語(yǔ)句,即將剛求得第i列的最小值累加到s中,故第17

個(gè)空格處應(yīng)該填最后外循環(huán)共循環(huán)N次,將每列的最小值累加到s中,退

出循環(huán),然后讓指針sum所指向的存儲(chǔ)空間的值為s,故第18個(gè)空格處應(yīng)該填

*SUIYlo

國(guó)家二級(jí)(C語(yǔ)言)筆試模擬試卷第2

一、公共基礎(chǔ)選擇題(本題共10題,每題7.0分,共

10分。)

1、對(duì)建立良好的程序設(shè)計(jì)風(fēng)格,下列描述正確的是()。

A、程序應(yīng)該簡(jiǎn)單、清晰、可讀性好

B、符號(hào)名的命名只需要符合語(yǔ)法

C、充分考慮程序的執(zhí)行效率

D、程序的注釋可有可無(wú)

標(biāo)準(zhǔn)答案:A

知識(shí)點(diǎn)解析:“清晰第一,效率第二”,在考慮到程序的執(zhí)行效率的同時(shí),一定要保

證程序清晰、可讀;對(duì)符號(hào)名的命名,除了要符合語(yǔ)法要求外,還要具有一定的含

義:程序的注釋可以幫助程序員理解程序,不是可有可無(wú)的。

2、在以下術(shù)語(yǔ)中,與數(shù)據(jù)的邏輯結(jié)構(gòu)無(wú)關(guān)的是_____。

A、線性結(jié)構(gòu)

B、鏈?zhǔn)浇Y(jié)構(gòu)

C、樹型結(jié)構(gòu)

D、網(wǎng)狀結(jié)構(gòu)

標(biāo)準(zhǔn)答案:2

知識(shí)點(diǎn)露析:暫無(wú)解析

3、編碼是指。

A、總體設(shè)計(jì)到詳細(xì)設(shè)計(jì)的過(guò)程

B、用0、1代碼改寫詳細(xì)設(shè)計(jì)的結(jié)果

C、用編程語(yǔ)言改寫詳細(xì)設(shè)計(jì)的結(jié)果

D、上述都不對(duì)

標(biāo)準(zhǔn)答案:4

知識(shí)點(diǎn)解析:所謂“編碼”,是指把軟件設(shè)計(jì)的結(jié)果用計(jì)算機(jī)系統(tǒng)可以理解的形式表

示出來(lái)。用于編碼的程序設(shè)計(jì)語(yǔ)言可以是計(jì)算機(jī)系統(tǒng)能夠直接理解的機(jī)器語(yǔ)言,也

可以是必須通過(guò)匯編、編譯(或解釋)才能為計(jì)算機(jī)系統(tǒng)所理解的匯編語(yǔ)言或高級(jí)語(yǔ)

言。

4、下列有關(guān)數(shù)據(jù)庫(kù)的描述,正確的是()

A、數(shù)據(jù)庫(kù)是一個(gè)DBF文件

B數(shù)據(jù)庫(kù)是一個(gè)關(guān)系

C:數(shù)據(jù)庫(kù)是一個(gè)結(jié)百化的數(shù)據(jù)集合

D、數(shù)據(jù)庫(kù)是一組文件

標(biāo)準(zhǔn)答案:4

知識(shí)點(diǎn)解析:暫無(wú)解析

5、非空的循環(huán)單鏈表head的尾結(jié)點(diǎn)(由p所指向),滿足()

A、p—>next==NULl

B、p==NULL

C、p->next=head

D、p=head

標(biāo)準(zhǔn)牝塞.4

知識(shí)之解析:暫無(wú)解析

6、索引屬于o

A、模式

B、內(nèi)模式

C、外模式

D、概念模式

標(biāo)準(zhǔn)答案:2

知識(shí)點(diǎn)解析:內(nèi)模式(ImernalSchema)又稱物理模式(PhysicalSchema),它給出了

數(shù)據(jù)庫(kù)物理存儲(chǔ)結(jié)構(gòu)與物理存取方法,如數(shù)據(jù)存儲(chǔ)的文件結(jié)構(gòu)、索引、集簇及

hash等存取方式與存取路徑。

7、在計(jì)算機(jī)中,算法是指o

A、查詢方法

B、加工方法

C、解題方案的準(zhǔn)確而完整的描述

D、排序方法

標(biāo)準(zhǔn)答案:4

知識(shí)點(diǎn)解析:計(jì)算機(jī)算法是指解題方案的準(zhǔn)確而完整的描述,它有以下幾個(gè)基本特

征:可行性、確定性、有窮性和擁有足夠的情報(bào)。

8、下列敘述中,不屬于結(jié)構(gòu)化分析方法的是o

A、面向數(shù)據(jù)流的結(jié)構(gòu)化分析方法

B、面向數(shù)據(jù)結(jié)構(gòu)的Jackson方法

C、面向數(shù)據(jù)結(jié)構(gòu)的結(jié)構(gòu)化數(shù)據(jù)系統(tǒng)開(kāi)發(fā)方法

D、面向?qū)ο蟮姆治龇椒?/p>

標(biāo)準(zhǔn)答案:8

知識(shí)點(diǎn)解析:常見(jiàn)的需求分析方法有結(jié)構(gòu)化分析方法和面向?qū)ο蟮姆治龇椒▋深悺?/p>

其中結(jié)構(gòu)化分析方法又包括面向數(shù)據(jù)流的結(jié)構(gòu)化分析方法(SA,Structured

analysis)>面向數(shù)據(jù)結(jié)構(gòu)的Jackson方法(JSD,Jacksonsystemdevelopmentmethod)

和面向數(shù)據(jù)結(jié)構(gòu)的結(jié)構(gòu)叱數(shù)據(jù)系統(tǒng)開(kāi)發(fā)方法(DSSD,Datastructuredsystem

developmentmethod)。

9、設(shè)計(jì)程序時(shí),應(yīng)采納的原則之一是()。

A、程序的結(jié)構(gòu)應(yīng)有助于讀者的理解

B、限制GOTO語(yǔ)句的使用

C、減少或取消注釋行

D、程序越短越好

標(biāo)準(zhǔn)答案:

知識(shí)之解析:1程序設(shè)計(jì)的風(fēng)格主要強(qiáng)調(diào)程序的簡(jiǎn)單、清晰和可理解性,以便讀者理

解。程序?yàn)E用GOTO語(yǔ)句將使程序流程無(wú)規(guī)律,可讀性差:添加注釋行有利于對(duì)

程序的理解,不應(yīng)減少或取消,程序的長(zhǎng)短要依據(jù)實(shí)際的需要而定,并不是越短越

好。

10、算法的空間復(fù)雜度是指0。

A、算法程序的長(zhǎng)度

8、算法程序中的指令條數(shù)

C、算法程序所占的存儲(chǔ)空間

D、算法執(zhí)行過(guò)程中所需要的存儲(chǔ)空間

標(biāo)準(zhǔn)答案:8

知識(shí)點(diǎn)解析:一個(gè)算法的空間復(fù)雜度,一般是指執(zhí)行這個(gè)算法所需的存儲(chǔ)空間。

個(gè)算法所占用的存儲(chǔ)空間包括算法程序所占用的空間、輸入的初始數(shù)據(jù)所占用的存

儲(chǔ)空間及算法執(zhí)行過(guò)程中所需要的額外空間。

二、選擇題(1分)(本題共〃題,每題1.0分,共〃

分。)

II、線性表常采用的兩種存儲(chǔ)結(jié)構(gòu)是()。

A、散列方法和索引方式

B、鏈表存儲(chǔ)結(jié)構(gòu)和數(shù)組

C、順序存儲(chǔ)結(jié)構(gòu)和鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)

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

標(biāo)準(zhǔn)答案:C

知識(shí)點(diǎn)解析:線性表的存儲(chǔ)通常要用兩種存儲(chǔ)結(jié)構(gòu):順序存儲(chǔ)結(jié)構(gòu)和鏈?zhǔn)酱鎯?chǔ)結(jié)

構(gòu)。

12、以下關(guān)于long、int和short類型數(shù)據(jù)占用內(nèi)存大小的敘述中正確的是

A、均占4個(gè)字節(jié)

B、根據(jù)數(shù)據(jù)的大小來(lái)決定所占內(nèi)存的字節(jié)數(shù)

C、由用戶自己定義

D、由C語(yǔ)言編譯系統(tǒng)決定

標(biāo)準(zhǔn)答案:D

知識(shí)點(diǎn)解析:在ANSI標(biāo)準(zhǔn)中Jong、int和short分別占用4、2和2個(gè)字節(jié)。但實(shí)際

上對(duì)于某些C編譯系統(tǒng)、int和short都占用4個(gè)字節(jié),所以說(shuō)各種類型數(shù)據(jù)占用內(nèi)存

大小是由選擇何種C編譯系統(tǒng)決定的。

13、下列程序的輸出結(jié)果是()。#includemain(){inta=2,b=3,p;P=f(a,b):

printf("%d",p);)intf(a,b){intc;if(a>b)c=l;elseif(a==b)c=O:elsec=-l;

return(c);)

A、-1

B、0

C、1

D、2

標(biāo)準(zhǔn)答案:A

知識(shí)點(diǎn)解析:本題考查if-clse語(yǔ)句。if為真則執(zhí)行c=l,if為假則執(zhí)行else中的條

件,不符合繼續(xù)執(zhí)行else。

14、avg函數(shù)的功能是求整型數(shù)組中的前若干個(gè)元素的平均值,設(shè)數(shù)組元素個(gè)數(shù)最多

不超過(guò)10,則下列函數(shù)說(shuō)明語(yǔ)句錯(cuò)誤的是

A、intavg(int*a,intn);

intavg(inta[10],intn);

CNintavg(inta[],intn);

D、intavg(inta,intn);

標(biāo)準(zhǔn)答案:D

知識(shí)點(diǎn)解析:根據(jù)題意,函數(shù)的形參是整型數(shù)組和實(shí)參數(shù)組的元素個(gè)數(shù),選項(xiàng)A的形

參是指向一維數(shù)組的指針和整型變量,符合要求;選項(xiàng)B的形參是整型數(shù)組和整型變

量,符合要求:選項(xiàng)C的形參整型數(shù)組省略了長(zhǎng)度,也是允許的,實(shí)際上C語(yǔ)言編譯器

在參數(shù)傳遞時(shí)并不會(huì)檢查行參數(shù)組的長(zhǎng)度,只是將實(shí)參數(shù)組的首元素地址傳遞給形

參數(shù)組名;選項(xiàng)D的形參沒(méi)有數(shù)組,是錯(cuò)誤的。

15、若變量a、i已正確定義,且i已正確賦值,合法的語(yǔ)句是o

A、a==l

B、++i;

C、a=a++=5:

D、a=int(i);

標(biāo)準(zhǔn)答案:2

知識(shí)點(diǎn)解析:選項(xiàng)D顯然是錯(cuò)的,而選項(xiàng)A沒(méi)有分號(hào)結(jié)束,不是C語(yǔ)句:a++=5

違反了賦值表達(dá)式左側(cè)必須為一個(gè)變量(不能是常量或表達(dá)式)的規(guī)定。

16、下列說(shuō)法錯(cuò)誤的是

A、函數(shù)調(diào)用時(shí),函數(shù)名必須與所調(diào)用的函數(shù)名字完全相同

B、實(shí)參的個(gè)數(shù)必須與形式參數(shù)的個(gè)數(shù)一致

C、實(shí)參可以是表達(dá)式,在類型上必須與形參一一對(duì)應(yīng)匹配

D、C語(yǔ)言規(guī)定,函數(shù)必須先定義,后調(diào)用(函數(shù)的返回值類型為int或char時(shí)除外)

標(biāo)準(zhǔn)答案:4

知識(shí)點(diǎn)解析:實(shí)參可以是表達(dá)式,在類型上應(yīng)按位置與形參一一對(duì)應(yīng)匹配。如果類

型不匹配,C編譯程序按賦值兼容的規(guī)則進(jìn)行轉(zhuǎn)換。

17、下列if語(yǔ)句非法的是()

A^if(a=B)x=1;

B、if(!3.9)

C、if('a'&&x==y)y++;

D、if(x>y)scanf(n%f',&y)elsescanf("%f,&x);

標(biāo)準(zhǔn)答案:8

知識(shí)點(diǎn)解析:暫無(wú)解析

18、C語(yǔ)言中最簡(jiǎn)單的數(shù)據(jù)類型包括()

A、整型、實(shí)型、

溫馨提示

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