國家二級(C語言)筆試模擬試卷9(共557題)_第1頁
國家二級(C語言)筆試模擬試卷9(共557題)_第2頁
國家二級(C語言)筆試模擬試卷9(共557題)_第3頁
國家二級(C語言)筆試模擬試卷9(共557題)_第4頁
國家二級(C語言)筆試模擬試卷9(共557題)_第5頁
已閱讀5頁,還剩137頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

國家二級(C語言)筆試模擬試卷9(共

9套)

(共557題)

國家二級(C語言)筆試模擬試卷第1

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

70分。)

1、算法的空間復(fù)雜度是指

A、算法程序的長度

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

C、算法程序所占的存儲空間

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

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

知識點(diǎn)解析:算法的空間復(fù)雜度一般是指這個(gè)算法執(zhí)行時(shí)所需要的內(nèi)存空間,其中

包括算法程序所占的空間、輸入的初始數(shù)據(jù)所占的存儲空間以及算法執(zhí)行過程中所

需要的額外空間,其中額外空間還包括算法程序執(zhí)行過程的工作單元以及某種數(shù)據(jù)

結(jié)構(gòu)所需要的附加存儲空間。

2、數(shù)據(jù)的存儲結(jié)構(gòu)是指

A、數(shù)據(jù)所占的存儲空間量

B、數(shù)據(jù)的邏輯結(jié)構(gòu)在汁算機(jī)中的表示

C、數(shù)據(jù)在計(jì)算機(jī)中的順序存儲方式

D、存儲在外存中的數(shù)據(jù)

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

知識點(diǎn)解析:數(shù)據(jù)的存儲結(jié)構(gòu)是數(shù)據(jù)元素在計(jì)算機(jī)存儲器內(nèi)的次示。數(shù)據(jù)的存儲結(jié)

構(gòu)是邏輯結(jié)構(gòu)用計(jì)算機(jī)語言的實(shí)現(xiàn),即建立數(shù)據(jù)的機(jī)內(nèi)表示。

A

3、設(shè)有下列二叉樹:對此二叉樹后序遍歷的結(jié)果為

A、ABCDEF

B、BDAECF

C、ABDCEF

D、DBEFCA

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

知識點(diǎn)解析:二叉樹的遍歷分為先序、中序、后序三種不同方式.本題要求后序遍

歷,其遍歷順序應(yīng)該為:后序遍歷左子樹,后序遍歷右子樹,訪問根結(jié)點(diǎn)。按照定

義,后序遍歷序列是DBEPCA,故答案為D。

4、源程序中應(yīng)包含一些內(nèi)部文檔,以幫助閱讀和理解程序,源程序的內(nèi)部文檔通

常包括選擇合適的標(biāo)識符、注釋和

A、程序的視覺組織

B、盡量不用或少用GOTO語句

C、檢查輸入數(shù)據(jù)的有效性

D、設(shè)計(jì)良好的輸出報(bào)表

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

知識點(diǎn)解析:源程序文檔化主要包括三個(gè)方面的內(nèi)容:標(biāo)識符的命名、程序中添加

注釋以及程序的視覺組織。

5、對于長度為n的線性表,在最壞情況下,下列各排序法所對應(yīng)的比較次數(shù)中正

確的是

A、冒泡排序?yàn)閚/2

B、冒泡排序?yàn)閚

C、快速排序?yàn)閚

D、快速排序?yàn)閚(n-l)/2

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

知識點(diǎn)解析:假設(shè)線性表的長度為n,在最壞情況下,冒泡排序和快速排序需要的

比較次數(shù)為n(n-4)/2。由此可見,選項(xiàng)D正確。

6、下面不屬于軟件設(shè)計(jì)原則的是

A、抽象

B、模塊化

C、自底向上

D、信息隱藏

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

知識點(diǎn)解析:軟件設(shè)計(jì)的原則包括:抽象、模塊化,信息隱蔽和模塊獨(dú)立性。所以

自底向上不是軟件設(shè)計(jì)原則。答案為C。

7、在數(shù)據(jù)庫管理系統(tǒng)提供的數(shù)據(jù)語言中,負(fù)責(zé)數(shù)據(jù)的完整性、安全性的定義與檢

查以及并發(fā)控制、故障恢復(fù)等功能的是

A、數(shù)據(jù)定義語言

B、數(shù)據(jù)轉(zhuǎn)換語言

C、數(shù)據(jù)操縱語言

D、數(shù)據(jù)控制語言

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

知識點(diǎn)解析:在數(shù)據(jù)庫管理系統(tǒng)提供的數(shù)據(jù)語言中,數(shù)據(jù)控制語言負(fù)責(zé)數(shù)據(jù)的完整

性、安全性的定義與檢查以及并發(fā)控制、故障恢復(fù)等功能。

8、下列對于線性鏈表的描述中正確的是

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

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

C、存儲空間必須連續(xù),旦前件元素一定存儲在后件元素的前面

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

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

知識點(diǎn)解析:在鏈?zhǔn)酱鎯Y(jié)構(gòu)中,存儲數(shù)據(jù)的存儲空間可以不連續(xù),各數(shù)據(jù)結(jié)點(diǎn)的

存儲順序與數(shù)據(jù)元素之間的邏輯關(guān)系可以不一致,數(shù)據(jù)元素之間的邏輯關(guān)系,是由

指針域來確定的。由此可見,選項(xiàng)A的描述正確。

9、以下敘述中正確的是

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

B、花括號“{”和“}”只能作為函數(shù)體的定界符

C、構(gòu)成C程序的基本單位是函數(shù),所有函數(shù)名都可以由用戶命名

D、分號是C語句之間的分隔符,不是語句的一部分

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

知識點(diǎn)解析:"/*”與"*尸之間的信息稱為注釋信息,在C語言中,允許在任何能夠

插入空格符的位置插入注釋,但C語言的注釋不能進(jìn)行嵌套,故選項(xiàng)A正確;在

C語言中,函數(shù)體是從花括號?“廣開始,到花括號“}”結(jié)束.但沒有規(guī)定花括號飛”和

只能作為函數(shù)體定界符,故選項(xiàng)B錯(cuò)誤;選項(xiàng)C中前半句是正確的,在C程序

中由有一個(gè)或多個(gè)函數(shù)所組成,但不是所有的函數(shù)都由用戶自己命名,有些函數(shù)比

如庫函數(shù),主函數(shù)main。就不能由用戶來命名,故選C不正確;在C語言中明確

規(guī)定每條語句以分號“;”結(jié)束,分號是語句不可缺少的一部分,故選項(xiàng)D不正

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

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

A、5E2.0

B、E-3

C、2E0

D、1.3E

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

知識之解析:在C語言中,實(shí)數(shù)有兩種表示形式:十進(jìn)制數(shù)形式與指數(shù)形式。一

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

數(shù)點(diǎn)),指數(shù)形式的小數(shù);指數(shù)形式的實(shí)數(shù)由尾數(shù)部分、e(E)和指數(shù)部分組成(字母

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

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

最終可以判斷選項(xiàng)C正確。

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

分。)

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

A、構(gòu)成C程序的基本單位是函數(shù)

B、可以在一個(gè)函數(shù)中定義另一個(gè)函數(shù)

C、main函數(shù)必須放在其他函數(shù)之前

D、C函數(shù)定義的格式是K&R格式

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

知識點(diǎn)解析:構(gòu)成C程序的基本單位是函數(shù),A)正確;函數(shù)的定義是互相平行、

獨(dú)立的,一個(gè)函數(shù)內(nèi)不能定義另一個(gè)函數(shù),B)錯(cuò)誤;main函數(shù)可以在其他函數(shù)之

前定義,也可以在其他函數(shù)之后定義,C)錯(cuò)誤;C函數(shù)定義的一般格式分為傳統(tǒng)

格式和現(xiàn)代格式,傳統(tǒng)格式也稱K&R格式,是早期編譯系統(tǒng)使用的格式,現(xiàn)代格

式又稱ANSI格式,是現(xiàn)代編譯系統(tǒng)使用的格式。

12、結(jié)構(gòu)化程序所規(guī)定的三種最基本控制結(jié)構(gòu)是(),

A、輸入、處理、輸出

B、樹形、網(wǎng)形、環(huán)形

C、順序、選擇、循環(huán)

D、主程序、子程序、函數(shù)

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

知識點(diǎn)解析:結(jié)構(gòu)化程序設(shè)計(jì)方法采用順序、選擇和循環(huán)三種基本程序控制結(jié)構(gòu)編

寫程序,從而使程序具有好的結(jié)構(gòu)。

13、一個(gè)C語言程序是由()。

A、一個(gè)主程序和若干子程序組成

B、函數(shù)組成

C、若干過程組成

D、若干子程序組成

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

知識點(diǎn)解析:一個(gè)C源程序是由一個(gè)main函數(shù)和若干個(gè)其他函數(shù)組成的。函數(shù)是

C程序的基本單位,被調(diào)用的函數(shù)可以是系統(tǒng)提供的庫函數(shù),也可以是用戶根據(jù)需

要自己定義的函數(shù)。

14、請選出可用作C語言用戶標(biāo)識符的是()。

A、void,define,WORD

B、a3_b3,_123,IF

C、FOR,-abc,Case

D、2a,Do,Sizeof

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

知識點(diǎn)解析:C語言規(guī)定用戶標(biāo)識符由字母、數(shù)字和下劃線組成,且第一個(gè)字符必

須是字母或下劃線,可見選項(xiàng)C),D)是錯(cuò)誤的;此外,C語言不允許用戶將關(guān)鍵

字作為標(biāo)識符,而選項(xiàng)A)中的void是C語言的關(guān)鍵字。

15、下列各數(shù)據(jù)類型不屬于構(gòu)造類型的是()。

A、枚舉型

B、共用型

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

D、數(shù)組型

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

知識點(diǎn)解析:本題考查高級語言的數(shù)據(jù)類型。

16、在16位C編譯系統(tǒng)中,若定義longa:則能給a賦值40000的正確語句是

()。

A、a=2000p+20000;

B、a=4000*10;

C、a=30000+10000;

D、a=4000L*10L;

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

知識點(diǎn)解析:40000已經(jīng)超過了C語言規(guī)定的短整型的范圍。要將這樣的數(shù)賦值給

一個(gè)長整型變量,需要在整型常量后面加字母L。

17、以下不正確的敘述是()。

A、在C程序中,逗號運(yùn)算符的優(yōu)先級坡低

B、在C程序中,APH和aph是兩個(gè)不同的變量

C、若變量a和b類型相同,執(zhí)行了賦值表達(dá)式a=b后b中的值將放入a中,用b

中的值不變

D、當(dāng)從鍵盤輸入數(shù)據(jù)時(shí),對于整型變量只能輸入整型數(shù)值,而實(shí)型變量只能輸入

實(shí)型數(shù)值

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

知識點(diǎn)解析:在C語言的所有運(yùn)算符中,逗號運(yùn)算符的優(yōu)先級最低;C語言中的字

母區(qū)分大小寫,所以APH和aph是兩個(gè)不同的變量;賦值表達(dá)式a=b表示將b的

值賦給a,而b本身的值保持不變;當(dāng)從鍵盤輸入數(shù)據(jù)時(shí),對于整型變量可以輸入

整型數(shù)值和字符,對于實(shí)型變量可以輸入實(shí)型數(shù)和整型數(shù)值等,選項(xiàng)D)錯(cuò)。

18>sizeof(float)是()。

A、一個(gè)雙精度型表達(dá)式

B、一個(gè)整型表達(dá)式

C、一種函數(shù)調(diào)用

D、一個(gè)不合法的表達(dá)式

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

知識點(diǎn)解析:sizeof是長度運(yùn)算符,或稱字節(jié)數(shù)運(yùn)算符,用于計(jì)算數(shù)據(jù)類型和變量

的長度。

19、若x,i,j和k都是int型變量,則計(jì)算表達(dá)式x=(i=4,j=16,k=32)后,x的值

為()。

A、4

B、16

C、32

D、52

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

知識點(diǎn)解析:逗號表達(dá)式的形式如下:表達(dá)式1,表達(dá)式2,表達(dá)式3,……,表

達(dá)式n逗號表達(dá)式作為一個(gè)整體,其運(yùn)算過程是從左往右逐個(gè)計(jì)算表達(dá)式,它的值

為最后一個(gè)表達(dá)式(也即表達(dá)式n)的值。逗號運(yùn)算符的優(yōu)先級別在所有運(yùn)算符口最

低。

20、下面程序的功能是花316表示為兩個(gè)加數(shù)的和,使兩個(gè)加數(shù)分別能被13和11

整除,請選擇填空。#include<stdio.h>main()(inti=0,j,k:do{i++;k=316-

13*i}while();j=k/ll;printfC'316=13*%d+ll,%dM,i,j);)

A、k/ll

B、k%ll

C、k/ll==0

D、k%ll==0

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

知識點(diǎn)解析:本題的關(guān)鍵是兩個(gè)加數(shù)分別能被13和II整除。當(dāng)k%ll的值為0

時(shí),則退出循環(huán),將執(zhí)行語句,輸出結(jié)果,所以該表達(dá)式合理的條件是

k%llo

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

分。)

21、以下選項(xiàng)中可以作為C語言合法常旱的是

A、-80

B、-80

C、-8el.O

D、-80.0e

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

知識點(diǎn)解析:本題考查的是C語言中整型常量與實(shí)型常量的部分表示方法。選項(xiàng)

A用的是整型常量的十進(jìn)制表示法,是正確的。以?;?0開頭的整數(shù)是八進(jìn)制數(shù)表

示法,八進(jìn)制數(shù)的原則是“逢八進(jìn)一”它只可能包含0?7這8個(gè)符號,故選項(xiàng)B是

錯(cuò)誤的。選項(xiàng)C和D椰是實(shí)型常量的指數(shù)表示法,其規(guī)則是用字母。(或E)將一個(gè)

實(shí)數(shù)的小數(shù)部分和指數(shù)部分分隔開。字母e(或E)之前是小數(shù)部分,之后是指數(shù)部

分,這兩部分都不能省略,且指數(shù)部分必須為整數(shù)。故選項(xiàng)C和D都不正確。所

以,4個(gè)選項(xiàng)中選項(xiàng)A符合題意。

22、下列條件語句中,功能與其他語句不同的是

A、if(a)printf("%d\n",x);elseprinff(',%d\n",y);

B、if(a==0)printf("%d\n,\y);elseprintf("%d\nH,x);

C、fi(a!=0)prinff(,,%d\n"x);elseprintf("%d\n”,y);

D、if(a==0)prinff(',%d\n,\x);elseprintf("%d\n",y);

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

知識點(diǎn)解析:本題考核的知識點(diǎn)是if語句的用法。選項(xiàng)A、選項(xiàng)B和選項(xiàng)C都是

在a的值為。的時(shí)候輸出y,a不為。的時(shí)候輸出x,而選項(xiàng)D是在a為0的時(shí)候

輸出x,a不為0的時(shí)候輸出y,所以,4個(gè)選項(xiàng)中選項(xiàng)D符合題意。

23、以下不能定義為用戶標(biāo)識符是

A、Main

B、_0

C>_int

D、sizeof

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

知識點(diǎn)解析:本題考查的是C語言中的標(biāo)識符與關(guān)鍵字。合法的標(biāo)識符由字母,

數(shù)字和下劃線組成,并且第一個(gè)字符必須為字母或下劃線。另外,C語言規(guī)定了一

批關(guān)鍵字,它們在程序中都代表著固定的含義,不能另作它用,所以合法的標(biāo)識符

也不能是C語言的任一關(guān)鍵字。本題中,選項(xiàng)A、B、C都符合上述條件,只有選

項(xiàng)Dsizeof是C語言中的關(guān)鍵字,所以,4個(gè)選項(xiàng)中選項(xiàng)D符合題意。

24、有以下程序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=5

B、n=2

C、n=3

D、n=4

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

知識點(diǎn)解析:本題考核的知識點(diǎn)是do…while結(jié)構(gòu)和算術(shù)運(yùn)算符%的應(yīng)用。

do...while的結(jié)構(gòu)形式為:do循環(huán)體while(條件表達(dá)式),當(dāng)程序執(zhí)行到do后,先

執(zhí)行循環(huán)體一次,然后才對條件表達(dá)式進(jìn)行計(jì)算、判斷。若條件表達(dá)式的值為真,

則重復(fù)執(zhí)行一次循環(huán)體;否則退出,與while結(jié)構(gòu)相比,do…while結(jié)構(gòu)至少要執(zhí)

行一次循環(huán)體;運(yùn)算符%是求模運(yùn)算,即求兩個(gè)數(shù)相除的余數(shù)。continue語句的作

用時(shí)結(jié)束本次循環(huán),即跳過本次循環(huán)中余下尚未執(zhí)行的語句,接著再一次進(jìn)行循環(huán)

的條件判定。本題中,當(dāng)i=2時(shí),執(zhí)行如循環(huán)。由于if表達(dá)式的條件為真,執(zhí)行

continue語句,結(jié)束本次循環(huán),判斷while循環(huán)條件為假,故退出while循環(huán),執(zhí)行

n++,此時(shí)n的值為1,當(dāng)i=3時(shí),執(zhí)行do循環(huán).曰于if(3%3)為假,執(zhí)行下面的

n++語句,此時(shí)n的值為2,結(jié)束本次循環(huán),繼續(xù)判斷while循環(huán)條件為假,故退

出while循環(huán),執(zhí)行n++語句,此時(shí)n的值為3;當(dāng)i=4時(shí),執(zhí)行如循環(huán)。由于

if(4%3)為真,執(zhí)行continue語句,結(jié)束本次循環(huán),繼續(xù)判斷while循環(huán)條件為假,

故退出while循環(huán),執(zhí)行n++,此時(shí)n的值為4;當(dāng)i=5時(shí),退出for循環(huán),因此最

后輸出的n的值為4,所以,4個(gè)選項(xiàng)中選項(xiàng)D符合題意。

25、有以下程序main(){inta=15,b=21,m=0;switch(a%3){case0:m++;brcak;

casel:m++;switch(b%2)(default:m++;case0:m++;break;})printf("%d\n",m);

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

A、1

B、2

C、3

D、4

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

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

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

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

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

26>以下程序的輸出結(jié)果是main(){inta=4,b=5,c=0,d;d=!a&&!b||!c;printf

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

A、1

B、0

C、非0的數(shù)

D、-1

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

知識點(diǎn)解析:本題考核的知識點(diǎn)是邏輯運(yùn)算符的運(yùn)用。由于單目運(yùn)算符優(yōu)先級高

于“&&”和“II”、運(yùn)算,所以先計(jì)算!a、!b和!c分別為“假”、“假真”,然后是

&&運(yùn)算和“II”運(yùn)算,原表達(dá)式就等價(jià)于“假”&&“假F“真”又由于“&&、'的優(yōu)先級

高于“卜'運(yùn)算符,所以先計(jì)算“假”&&“假先還是為假,最后是“假”11,“真”為

真。因此最后d被賦值為1,故最后輸出為I。所以,4個(gè)選項(xiàng)中A為所選。

27、若有說有:intn=2,*p=&n,*q=p;,則以下非法的賦值語句是

A、P=q;

*p=*q;

C^n=*q;

D、p=n;

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

知識點(diǎn)解析:本越考查的知識點(diǎn)是指針的賦值。本題中首先定義了一整型變量n并

賦初值為2,接著定義了一個(gè)整型指針變量p并讓它指向n,接著又定義了一指向

指針的指針變量q,選項(xiàng)A中給指針變量p賦值小故這個(gè)賦值語句正確;選項(xiàng)B中

*p=*q就是將*q的值賦給指針變量p所指向的變量n,故這個(gè)賦值語句不是非法的

賦值語句;選項(xiàng)C中是將*q的值賦給變量n,故這個(gè)表達(dá)式不是非法的賦值語

句:選項(xiàng)D中p為一指針變量應(yīng)該杵一地址賦給它,而在此選項(xiàng)的表達(dá)式中將變

量n而不是n的地址賦給它,故這個(gè)表達(dá)式不合法,

28、以卜程序的輸出結(jié)果是charcchar(charch){if(ch>=,A,&&chV=,Z')

ch二ch-'A'+'a';returnch;}main(){chars[]=*,ABC+abc=defDEF,*,*p=s;while(*p)

{*p=cchar(*p);p++;}printf{n%$\n'*,s);}

A、abc+ABC=DEFdef

B、abc+abc=defdef

C、abcABCDEFdef

D^abcabcdcfdcf

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

知識點(diǎn)點(diǎn)析:本題考核的知識點(diǎn)是字符型指針變量與函數(shù)的綜合應(yīng)用。本題首先定

義了一個(gè)函數(shù)cchar(),有一個(gè)字符型參數(shù)ch。在函數(shù)中首先判斷該字符是否為大

寫字母,如果是則把它轉(zhuǎn)換成小寫字符再賦值給cb,把ch作為函數(shù)值返回。在主

函數(shù)中定義了一個(gè)字符數(shù)組s并初始化,然后定義了一個(gè)指針變量并使它指向數(shù)組

so接著通過一個(gè)wh"e循環(huán)利用指針變量p,依次取出字符數(shù)組的字符(直到遇到

字符串結(jié)束標(biāo)志「\0'為止),并調(diào)用cchar()函數(shù),把大寫字母轉(zhuǎn)換成小寫字母,其

他字符不變「最后輸出字符數(shù)組為*中的內(nèi)容,結(jié)果為“ahc十a(chǎn)hc=defdeF。所以,4

個(gè)選項(xiàng)中B為所選。

29、有以下程序main(){inta=7,b=8,*p,*q,*r;p-&a;q=&b;r=p;p=q;q=r;printf

("%d,%d,%d,%d\n",*p,*q,a,b);程序運(yùn)行后的輸出結(jié)果是

A、8,7,8,7

B、7,878

C、8,778

D、7,8,8,7

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

知識點(diǎn)解析:本題考核的知識點(diǎn)是指針變量的基本應(yīng)用。程序中定義了兩個(gè)變量a

和b,并分別賦初值為7和8,定義了三個(gè)指針變量p、q、r,并讓指針p指向變

量a,讓Q指向變量b,然后通過一個(gè)中間指針變量r,使指針變量p和q互換,

互換后p指向q所指的內(nèi)容即b,Q指向開始p所指向的內(nèi)容即a,因此最后輸出

的*p,*q的值為8,7,a,b的值沒有改變?nèi)詾?,8,所以,4個(gè)選項(xiàng)中選項(xiàng)C符

合題意。

30、以下程序的功能是:給r輸入數(shù)據(jù)后計(jì)算半徑r圓面積s。程序在編譯時(shí)出錯(cuò)。

main()/*Beginning*/{intr;floats;scanf(n%du,&r);s=*n*r*r;printf("s=%t\n".s);

出錯(cuò)的原因是

A、注釋語句書寫位置錯(cuò)誤

B、存放圓半徑的變量r不應(yīng)該定義為整型

C、輸出語句中格式描達(dá)符非法

D、計(jì)算圓面積的賦值語句中使用了非法變量

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

知識點(diǎn)解析:在C語言源程序中了注釋部分、字符串常量部分可以使用任意字符

外,其余部分只能由52個(gè)大小寫:字母、10個(gè)阿拉伯?dāng)?shù)字以及+-*/=,._:;?\心?

|!#%&(2人<>“空格”30個(gè)特殊符號組成。所以在計(jì)算圓面積的賦值語句中出現(xiàn)的

兀是非法字符,將引起編譯出錯(cuò).應(yīng)該選擇D。

31、有以下程序main(){intx[8]={8,7,6,5,0.0),*s;s=x+3;printf(n%d\n",s[2]);)

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

A、隨機(jī)值

B、0

C、5

D、6

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

知識點(diǎn)解析:本題考核的知識點(diǎn)是指向一維數(shù)組的指針變量,通過賦值語句

“s=x+3”,使指針變量s指向數(shù)組元素x[3],輸出語句中的s[2]等價(jià)于*(s+2),即

x[5]僖為0。所以,B選項(xiàng)為所選。

32、有以下程序main(){chara['b',inti,j;i=sizcof

(a);j=strlen(a);print%d,%d\n"i,j);)程序運(yùn)行后的輸出結(jié)果是

A、9,9

B、8,9

C、1,8

D、9,8

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

知識點(diǎn)解析:本題中首先定義了字符數(shù)組a,由于它的長度省略,所以其長度由初

值個(gè)數(shù)確定,為9。接著將sizeof()函數(shù)返回的值賦給i(SIZeof()函數(shù)的作用是返回

運(yùn)算對象占用的字符數(shù)),所以i值為9。然后將strlen。函數(shù)的返回值賦給j(strlen()

函數(shù)的作用是返回字符串的長度,不包拈字符串的結(jié)束標(biāo)記所以j值為

所以最后輸出的i,j的值為9,8。所以4個(gè)選項(xiàng)中D正確。

33、有以卜程序main(){chara|7]="a0\0a0\0";inti.j;i=sizeof(a);j=strlen(a);printf

("%d%d\n",i,j);)程序運(yùn)行后的輸出結(jié)果是

A、22

B、76

C、72

D、62

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

知識點(diǎn)解析:本題主要考查的是C語言中的數(shù)組長度和字符串長度。數(shù)組長度指

的是一個(gè)數(shù)組所占內(nèi)存空間的字節(jié)數(shù),數(shù)組長度可以通過sizeof(〈數(shù)組名〉)來求

得:字符串長度是指從市定內(nèi)存地址開始直到碰到第一個(gè)‘\0'字符為止所經(jīng)過的字

符數(shù)(不包括'\0'字符),字符串長度可以通過字符串函數(shù)strlcn(V字符串首地址值

》)來求得。所以本題程序運(yùn)行后,變量i中是數(shù)組a的長度7,變量j中是數(shù)組a

中第一個(gè)'(T字符之前的字符數(shù)2:選項(xiàng)C符合題意。

34、有以下定義:#includc<stdio.h>chara[10],*b=a;不能給數(shù)組a輸入字符串的語

句是

gets(a)

B、gcts(a[0])

C、gets(&a|0]);

D、gets(b);

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

知識點(diǎn)解析:本題考核的知識點(diǎn)是函數(shù)gels。的應(yīng)用。函數(shù)gels。的調(diào)用形式為

gets(str_adr);stjadr是存放字符串的起始地址。可以是字符數(shù)組名、字符指針或

字符數(shù)組元素的地址。gets函數(shù)用來從終端鍵盤讀入字符串(包括空格符),直到讀

入一個(gè)換行符為止。換行符讀入后,不作為字符串的內(nèi)容。本題中定義一個(gè)長度為

10的字符數(shù)組,和一個(gè)指針變量b,并且通過賦值讓它指向數(shù)組a;選項(xiàng)A。選項(xiàng)

Bo選項(xiàng)C和選項(xiàng)D中只有選項(xiàng)B中g(shù)ets函數(shù)的參數(shù)a[0]不能表示數(shù)組a的首地

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

35、有以下程序:main(){char*p[10]={''ahc","aahdfg",,,dcdheu,"ahhdn,"cd"};

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

A、2

B、3

C、4

D、5

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

知識點(diǎn)解析:本題考核的知識點(diǎn)是指針數(shù)組的定義和strlcn。函數(shù)的應(yīng)用。本題中

首先定義了一個(gè)長度為10的指針數(shù)組,并賦初值,因此執(zhí)行strlen(p[4]后的返回值

為字符串“cd”的長度為2。所以,4個(gè)選項(xiàng)中選項(xiàng)A符合題意。

36、下列函數(shù)定義中,會(huì)出現(xiàn)編譯錯(cuò)誤的是

A、max(intx,inty,int*z){*z=x>y?x:y;}

B>intmax(intx,y){intz;z=x>y?x:y;returnz;}

C、max(intx,inty){intz;z=x>y?x:y;return(z);

D、intmax(intx,inty){return(x>y?x:y);)

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

知識之解析:本題考核的知識點(diǎn)是函數(shù)的定義方法。選項(xiàng)B中在說明形參時(shí),省

略了第二個(gè)參數(shù)的類型,故選項(xiàng)B編譯不能通過。所以,4個(gè)選項(xiàng)中選項(xiàng)B符合

題意。

37、設(shè)有定義:intnl=0.n2,*p=&n2,*q=&nl;,以下賦值語句中與n2=nl;語

句等價(jià)的是

A、*p;*q;

B、p=q;

C、*p=&n1;

D、p=*q;

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

知識點(diǎn)解析:本題考查的是指針的運(yùn)算。題目中定義了兩個(gè)變量nl和n2,又定義

了兩個(gè)指針p和q分別指向變量n2和nl。要通過指針實(shí)現(xiàn)n2=nl,就是要將q所

指內(nèi)容賦給p所密內(nèi)容,即*p*q。所以應(yīng)該選擇A。

38、以下敘述中正確的是

A、局部變量說明為staiic存儲類,其生存期將得到延長

B、全局變量說明為stoic存儲類,其作用域?qū)⒈粩U(kuò)大

C、任何存儲類的變量在未賦初值時(shí),其值都是不確定的

D、形參可以使用的存儲類說明符與局部變量完全相同

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

知識點(diǎn)解析:靜態(tài)局部變量在整個(gè)程序運(yùn)行期間,靜態(tài)局部變量在內(nèi)存的靜態(tài)存儲

區(qū)中占據(jù)著永久性的存儲單元。由此可知靜態(tài)局部變量的生存期將一直延長到程序

運(yùn)行結(jié)束。故選項(xiàng)A正確;而全局變量的只有一種靜態(tài)存儲類別,故全局變量說

明為stallc存儲類,和沒有說明為stalic存儲類其生存期都是一直延長到程序運(yùn)行

結(jié)束,故選項(xiàng)R不正確:未賦初值的由讓。型變量的初值是隨機(jī)的,未賦初值的

static型變量的初值是0(故選項(xiàng)C和選項(xiàng)D不正確)。所以;4個(gè)選項(xiàng)中選項(xiàng)A符合

題意。

39、設(shè)函數(shù)fun的定義形式為voidfun(charch,floatx){...}則以下對函九fun的調(diào)

節(jié)器用語句中,正確是

A、fun("abc'\3.0);

B、t=fun(,D\16.5);

C、fun(,65\2.8):

D、fun(32,32);

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

知識點(diǎn)解析:本題考查了函數(shù)的定義。題目中定義的函數(shù)fun()有兩個(gè)參數(shù),一個(gè)

是字符型變量ch,另一個(gè)是浮點(diǎn)型變量x,函數(shù)類型是void即無返回值。選項(xiàng)A

調(diào)用fun的第1個(gè)參數(shù)是字符串常量與字符變量不匹配,所以不正確。選項(xiàng)B是有

返回值函數(shù)的調(diào)用形式,不正確。選項(xiàng)C的第I個(gè)參數(shù)是錯(cuò)誤的字符常量,字符

常量是用單引號括起來的一個(gè)字符(是轉(zhuǎn)義字符可能有多個(gè)字符),故也不正確。選

項(xiàng)D使用兩個(gè)整型常量調(diào)用fun這在C語言中是允許的。因?yàn)檎偷阶址涂梢?/p>

自動(dòng)轉(zhuǎn)換,整型到浮點(diǎn)型也可以自動(dòng)轉(zhuǎn)換。故應(yīng)該選擇D。

40、有以4程序main()inta[10]={l,2,3A5,6,7,8,9,10},*p=.&a[3],*q=p+2;printf

("%d\nn,*p+*q);程序運(yùn)行后輸出結(jié)查是

A、16

B、10

C、8

D、6

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

知識點(diǎn)標(biāo)析:本題考查的是指針的簡單應(yīng)用。題目中首先定義了一個(gè)int型數(shù)組a

并初始化了,然后定義了兩個(gè)指針變量p和q,并分別初始化p為指向數(shù)組元素

a[3]、q指向p后面的第2個(gè)元素即指向a[5]0所以最終輸出的值為a[3]+a[5]的值

10o應(yīng)該選B。

41、有以下程序main(){charp[]={'a','b','c},q[]="abc”;printf(*'%d%d\n",sizcof

(p),sizeof(q));}程序運(yùn)行后輸電結(jié)果是

A、44

B、33

C、34

D、43

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

知識點(diǎn)解析:本題考查的是字符數(shù)組的初始化。字符數(shù)組即可以用{初始化列裹}來

初始化,也可以用一個(gè)字符串常量來初始化。但字符串常量系統(tǒng)會(huì)自動(dòng)為其添加結(jié)

束標(biāo)記、(T,故比實(shí)際長度要多一位,所以本題輸出為34,應(yīng)該選擇C。

42、有以卜程序^defineRx)(x,x)main(){intil,i2;il=f(8)/f(4);i2=f(4+4)/f(2+2);

printf("%d,%d\n",il,i2);)程序運(yùn)行后的輸出結(jié)果是

A、64,28

B、4,4

C、4,3

D、64,64

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

知識點(diǎn)解析:本題考查的是帶參數(shù)的宏。宏替換與函數(shù)調(diào)用不同,前者是字面上

的,在編譯期間完成,后者是內(nèi)容上的,在運(yùn)行期間才進(jìn)行。題目中第I條要替換

的語句il=(8)/f(4);展開后是i"(8*)/(4*4);結(jié)果使il=4.而第2條語句

i2=f(4+4)/f(2+2);展開后為i2=(4+4*4+4)/(2+2*2+2];結(jié)果使i2=24/8=3。故應(yīng)該選

擇C。

43、有以下程序main(){charal=,a2=,m,;printf(',%c\nu,(al,a2));)以F敘述

中正確的是

A、程序輸出大寫字母M

B、程序輸出小寫字母in

C、格式說明符不足,編譯出錯(cuò)

D、程序運(yùn)行時(shí)產(chǎn)生錯(cuò)信息

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

知識點(diǎn)解析:本題考查的是逗號表達(dá)式。因?yàn)檎麄€(gè)逗號表達(dá)式的值為逗號表達(dá)式最

后一個(gè)于表達(dá)式的值,所以本題輸出的是a2的值,m,。故應(yīng)該選擇B。

44、有以下程序main(){unsignedinta;intb=-l;a=b;printf(H%u,,,a);}程序運(yùn)行后的

輸出結(jié)果是

A、-1

B、65535

C、32767

D、-32768

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

知識點(diǎn)解析:本題考核的知識點(diǎn)是無符號整型數(shù)據(jù)的簡單運(yùn)用。程序中定義了一個(gè)

無符號整型變量a和一個(gè)整型變量b,并且給它賦初值為整型在計(jì)算機(jī)中都以

二進(jìn)制表示的,-1在二進(jìn)制表示為1000000000000001,所以當(dāng)表示為無符號整

數(shù)時(shí)轉(zhuǎn)換為十進(jìn)制為32767,故最后輸出的無符號型a的值為32767。所以,4個(gè)

選項(xiàng)中選項(xiàng)B符合題意

45有以下程序:#include<string.h>main(){char

str[][20]={"Hcllo";,Beijing"r;p=str;printf("%\n'\strlcn(p+20));}程序運(yùn)行后的輸出結(jié)

果是

A、0

B、5

C、7

D、20

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

知識點(diǎn)解析:本題考核的知識點(diǎn)是二維數(shù)組的初始化及庫函數(shù)strlen()的應(yīng)用。主

函數(shù)中定義了一個(gè)二維字符數(shù)組并初始化,初始化后的結(jié)果為str[0]="Hello'\

str[l]="Bcijing",然后定義一個(gè)字符指針變量p并讓它指向數(shù)組的首地址,即指向

str[O],而在C語言中無論是一維還是多維數(shù)組,其元素在內(nèi)存中都是順序存放

的,故p+20后指針指向所以strlen(P+20);返回的是中的字符串的長

度,即Beijing的長度為7,所以最后輸出的值為7,所以,4個(gè)選項(xiàng)中選項(xiàng)C符合

題意。

46、有以下程序:#include<string.h>main(intargc,char*argv[])(inti,len-0;

for(i=l;i<argc;i+=2)len+=strlen(argv[i]);printf("%d\n",len);)經(jīng)編譯鏈接后生成的可

執(zhí)行文件是ex.exe,若運(yùn)行時(shí)輸入以卜小參數(shù)的命令行exabedefgh3k44執(zhí)行后輸

出的結(jié)果是

A、14

B、12

C、8

D、6

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

知識點(diǎn)解析:本題考核的知識點(diǎn)是帶寥數(shù)的主函數(shù)的應(yīng)用。主函數(shù)的第一個(gè)參數(shù)

argc為整形參數(shù),記下從命令行輸入的參數(shù)的個(gè)數(shù);第二個(gè)參數(shù)argv是一個(gè)字符

型的指針數(shù)組,它的每一個(gè)元素指向命令行輸入的參數(shù)字符數(shù)。在本例中argc的

值為5,argv[O]指向字符串“ex”,argv[l]指向參數(shù)字符串“abed",argv[2]指向字符

串“cfg”,argv[3]指向參數(shù)字符串“h3”,argv[4]指向參數(shù)字符串“K44”。在main。函

數(shù)中,for循環(huán)執(zhí)行了2次,當(dāng)i?l時(shí),len=O+strlen(argv[1]),而其中

argv[l]=uabcd,\故此時(shí)len的值為4;當(dāng)i=3時(shí),len=4+strlen(argv[3]),而其中

argv[3]="h3”,故此時(shí)len的值為6;當(dāng)i=5時(shí),退出循環(huán),故最后輸出的len的住

為6。所以,4個(gè)選項(xiàng)中選項(xiàng)D符合題意。

47、在說明語句:中,標(biāo)識符f代表的是

A、一個(gè)用于指向整型數(shù)據(jù)的指針變量

B、一個(gè)用于指向一維數(shù)組的行指針

C、一個(gè)用于指向函數(shù)的指針變量

D、一個(gè)返回值為指針型的函數(shù)名

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

知識點(diǎn)解析:本題考核的知識點(diǎn)是指針作為函數(shù)返回值的定義方式。定義指向整型

元素的指針變量形式為:hat*指針變量名。定義指向整型一維數(shù)組的行指針形式

為:im(*指針變量名[長度],定義指向返回值為整型的函數(shù)的指針變量的形式為:

int(*函數(shù)名)(),定義返回值為指向整型的指針型函數(shù)的形式為:int*函數(shù)名0,本

題定義的是一個(gè)返回值為指針型的函數(shù)f()0所以,4個(gè)選項(xiàng)中D為所選。

48、有如卜.程序#includeVstdio.h>main。{FILE*fpl;fpl;fopen("ftxl","w,');

fprintf(fpl,nabc")fclose(fpl);)若文本文件fltxt中原有內(nèi)容為:good,則運(yùn)行以

上:程序后文件fl.Mt中的內(nèi)容為

A、goodabc

B、abed

C、abc

D、abegood

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

知識點(diǎn)解析:本題考核的知識點(diǎn)是操作文件的幾個(gè)基本函數(shù)。主函數(shù)中定義了一個(gè)

文件指針中1,然后通過fopen()函數(shù),以寫的方式打開文件“fl.txt1并讓指針印

1指向它,接著調(diào)用fptind()函數(shù)將“abc”寫到文件fpl所指的文件里,由于開始fpl

指向文件的“fl.txt”的開始位置,因此“abc”將把文件“fl.txt”里原來的內(nèi)容“good,覆

蓋掉,故文件“fl.txt”里最后的內(nèi)容為“abc”,所以,4個(gè)選項(xiàng)中選項(xiàng)C符合題意。

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

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

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

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

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

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

知識點(diǎn)解析:本題考核的知識點(diǎn)是文件的基本概念。C語言可以讀寫二進(jìn)制文件和

文本文件兩種,故選項(xiàng)A和選項(xiàng)B不正確;文件按數(shù)據(jù)的存放格式可分為二進(jìn)制

文件和文本文件兩種,其中二進(jìn)制文件中數(shù)據(jù)都是以二進(jìn)制的形式存放,故選項(xiàng)C

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

5。、以下敘述中不正確的是

A、C語言中的文本文件以ASCII碼形式存儲數(shù)據(jù)

B、C語言中對二進(jìn)制位的防問速度比文本文件快

C、C語言中,隨機(jī)讀寫方式不使用于文本文件

D、C語言中,順序讀寫方式不使用于二進(jìn)制文件

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

知識點(diǎn)解析:本題考核的知識點(diǎn)是文件的讀寫方式。在C語言中文本文件是以

ASCII碼形式存放的,每個(gè)字符占一個(gè)字節(jié)。由于數(shù)據(jù)在計(jì)算機(jī)中是以;進(jìn)制形式

存放的,因此二進(jìn)制文件中的數(shù)據(jù)可以直接讀出,而不需要像文本文件那樣把

ASCH礙轉(zhuǎn)換成二進(jìn)制,囚此速度較快。在文本文件中,數(shù)據(jù)以ASCH碼形式存放

的,用戶很難判定一個(gè)數(shù)據(jù)到底占幾個(gè)字節(jié),所以不適合使用隨機(jī)讀寫方式。數(shù)據(jù)

以二進(jìn)制形式存放,占有的字節(jié)數(shù)是固定的,所以可以進(jìn)行隨機(jī)讀寫,當(dāng)然也可以

順序讀寫。所以,D選項(xiàng)為所選。

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

分。)

51、算法執(zhí)行過程中所需要的基本運(yùn)算次數(shù)稱為算法的

標(biāo)準(zhǔn)答案:時(shí)間復(fù)雜度

知識點(diǎn)解析:算法在執(zhí)行過程中所執(zhí)行的基木運(yùn)算的次數(shù),也就是執(zhí)行算法所需要

的計(jì)算工作量,稱為算法的時(shí)間復(fù)雜度。

52、數(shù)據(jù)的結(jié)構(gòu)在計(jì)算機(jī)存儲空問中的存放形式稱為數(shù)據(jù)的存儲結(jié)構(gòu)或物理

結(jié)構(gòu)。

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

知識點(diǎn)解析:數(shù)據(jù)的邏輯結(jié)構(gòu)在計(jì)算機(jī)存儲空間中的存放形式稱為數(shù)據(jù)的存儲結(jié)構(gòu)

或物理結(jié)構(gòu)。

53、數(shù)據(jù)流圖的類型有和事務(wù)型。

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

知識點(diǎn)解析:典型的數(shù)據(jù)流田有兩種,印變換型和事務(wù)型。

54、在關(guān)系數(shù)據(jù)庫中,將數(shù)據(jù)表示成二維表,每一個(gè)二維表稱為o

標(biāo)準(zhǔn)答案:關(guān)系或關(guān)系表

知識點(diǎn)解析:在關(guān)系模型中,把數(shù)據(jù)看成一個(gè)二維表,每一個(gè)二維表稱為一個(gè)關(guān)

系.表中的每一列稱為一個(gè)屬性,相當(dāng)于記錄中的一個(gè)數(shù)據(jù)項(xiàng),對屬性的命名稱為

屬性名,表中的一行稱為一個(gè)元組,相當(dāng)于記錄值。

55、在數(shù)據(jù)庫理論中,數(shù)據(jù)庫總體邏輯結(jié)構(gòu)的改變,如修改數(shù)據(jù)模式、增加新的數(shù)

據(jù)類型、改變數(shù)據(jù)間聯(lián)系等,不需要相應(yīng)修改應(yīng)用程序,稱為o

標(biāo)準(zhǔn)答案:邏輯獨(dú)立性

知識點(diǎn)解析:數(shù)據(jù)庫總體邏輯結(jié)構(gòu)改變,而不需要相應(yīng)修改應(yīng)用程序叫做邏輯獨(dú)立

性。

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

56、以下程序運(yùn)行后的輸出結(jié)果是[]omain(){intx=0210;

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

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

知識點(diǎn)解析:C語言規(guī)定,以0開頭的整型常量為八進(jìn)制。另外,在primf()函數(shù)

中,%*表示以十六進(jìn)制無符號形式輸出一個(gè)整數(shù),且十六進(jìn)制中的ABCDEF為

大寫字母。本題的輸出應(yīng)該是八進(jìn)制210的十六進(jìn)制形式。將八進(jìn)制轉(zhuǎn)換為十六進(jìn)

制,可以先將其轉(zhuǎn)換為二進(jìn)制。因?yàn)?位八進(jìn)制表示3位二進(jìn)制,4位二進(jìn)制表示

1位十六進(jìn)制。(210)8=(10001000)2=(88)16,故本題輸出為880

57、若有程序:main(){intij;scanq("i=%dj=%d',,&i?&j);printf("i=%d,j=%d\n",

ij);)要求給i賦10,給j賦20,則應(yīng)該從鍵盤輸入【】。

標(biāo)準(zhǔn)答案:i=0,j=20

知識點(diǎn)解析:該函數(shù)的第一個(gè)參數(shù)是格式字符串,主要由兩類字符組成,一類是非

格式符要求原樣輸入,一類是格式符對應(yīng)要輸入的變量,所以說本題中應(yīng)該原樣輸

入i=,j=,后面分別給變量。和20,所以說空格處應(yīng)該填入i=0,戶20。

58、若有以下程序:main(){int,p,a=5;if(P=a!=O)printf("%d\n",p);else

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

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

知識點(diǎn)解析:首先計(jì)算if語句后面的表達(dá)式,根據(jù)運(yùn)算符的優(yōu)先級可知,先算

“a!=0",該值為1,再把1賦值給p,結(jié)果為1(真),執(zhí)行其后的prinlf語句,輸出

的值為1。

59^當(dāng)運(yùn)行以下程序時(shí),輸入abed,程序的輸出結(jié)果是:[]。insert(charstr[J)

{intii=strlen(str);while(i>0){str[2*i]=str[i];str[2*-l]=**>;i—;)printf("%s\n",

str):)main(){charstr[40];scanf("%s",sB);insert(str):(

標(biāo)準(zhǔn)答案:a*b*c*d,

知識點(diǎn)解析:在insert)函數(shù),因?yàn)轭}目要求輸入的字符串為abed,所以執(zhí)行完“i=

strlen(str);”后,i中存放的是字符串a(chǎn)bed的長度值4。所以接F來的while循環(huán)會(huì)

循環(huán)4次,每次讓i減1,故4次循環(huán)中i的值依次為4、3、2、1。每次循環(huán)會(huì)執(zhí)

行兩條語句slr[2*i]=slr[i];slr[2*i-l]='*',當(dāng)i=4時(shí)為:str|8|=str|4];

str[7==+;。執(zhí)行結(jié)果是將字符串a(chǎn)bed末尾的結(jié)束符、(T復(fù)制到其下標(biāo)值2倍的位

置,并在其前1位插入一個(gè)哼符。接下來i=3,執(zhí)行str[6]=str[3];str[5]=,*\執(zhí)

行后會(huì)將字符串a(chǎn)bed最后一個(gè)字符,d復(fù)制到其下標(biāo)值2倍的位置,并在其前1位

插入一個(gè),*,字符。依次類推,直到i=L執(zhí)行str[2]=s宇1];str[l]=,*\將字符

tb,往后移動(dòng)了1位,并在原位置插入,字符。所以,循環(huán)結(jié)束后,字符串st「會(huì)

變?yōu)閍*b*c*d*。這就是程序的輸出結(jié)果。

60、以下程序運(yùn)行后的輸出結(jié)果是[]。main(){inta[4][4]={{1,2,3,4},{5,6,

7,8),{11,12,13,14),{15,16,17,18)};inti=0,j=0,s=0;while(i++<4)

{if(i==2||==4)continue;j=0;do{s+=a[i]|j];j++;)while(j<4);}

Printf(H%d\n",s);}

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

知識點(diǎn)解析:主函數(shù)中首先定義了一個(gè)4行4列的二維數(shù)組,然后執(zhí)行一個(gè)while

循環(huán),該循環(huán)中乂嵌套了一個(gè)do-while循環(huán)。現(xiàn)看while循環(huán),該循環(huán)通過i++的

值來判斷是否結(jié)束循環(huán)當(dāng)i十十的值為4的時(shí)候結(jié)束循環(huán),當(dāng)i=0時(shí),執(zhí)行while的

循環(huán)體,顯然if語句條件不滿足不執(zhí)行,接著讓i=0,然后執(zhí)行do-while循環(huán)體,

我們不難看出do-whilo循環(huán)的功能是將第i+1行的所有元素加起來,所以這時(shí)s的

值為s=a5⑼+a[l][l]+a[l][2]+a[l][3)=26,當(dāng)i=l時(shí),i+l=2,uf后面括號里的表達(dá)

式的值為真執(zhí)行后面的continue語句,結(jié)束該次循環(huán);當(dāng)i=2時(shí),i加1變?yōu)?,把

第3+1行的所有元素的加到s上,此時(shí)s=s+a⑵⑼-a⑵⑴+a⑵⑵+a⑵[3]=92,當(dāng)

i=3時(shí),3+1=4,if后面括號里的表達(dá)式的值為真執(zhí)行后面的continue語句,結(jié)束該

次循環(huán),當(dāng)i=3時(shí),if后面括號里的表達(dá)式的值為真執(zhí)行后面的conlinue語句,結(jié)

束該次循環(huán)當(dāng)i=4時(shí)while循環(huán)結(jié)束,所以最后輸出的s的值為92。

61己定義charch='$';inti=lj;,執(zhí)行j=!ch&&ii++以后,i的值為[】。

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

知識點(diǎn)解析:本題中的ch是一個(gè)字符變量,其初始值為,$,(非0值即為真),所

以!ch的結(jié)果為假,此時(shí)&&右邊的i++被“短路”,即不會(huì)被計(jì)算。由此可見,i的

值不會(huì)改變,故本題應(yīng)該填1。

62、以下程序運(yùn)行后的輸出結(jié)果是。mam(){chara[]="l23456789”,*p:int

i=0;p=a;while(*p){if(i%2=0)*p='*';p++;i++;}puts(A);}

標(biāo)準(zhǔn)答案:*2*4*6*8*

知識點(diǎn)解析:程序中定義了一個(gè)字符數(shù)組a,并初始化為123456789,接著定義了

一個(gè)指針p并讓它指向數(shù)組a,緊接著執(zhí)行了一個(gè)while循環(huán),此循環(huán)的作用是:

當(dāng)i為偶數(shù)時(shí),將“*”賦給a[i],p指向數(shù)組末尾,循環(huán)結(jié)束,此時(shí)數(shù)組中a[0]、

a⑵、a[4]>a[6]和a[8]的值都為…,所以最后調(diào)用puts。函數(shù)輸出的a的值為

*2*4*6*8*

63、以下程序運(yùn)行后的輸出結(jié)果是1)。main(){inti,n[]={0,0,0,0,0);

for(i=l;i<=4;i++){n[i]=n[M]*2+l;printfi["%dH,n[i]);})

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

知識點(diǎn)解析:本題中,定義了個(gè)整型數(shù)組n并初始化,在for循環(huán)語句中,再對數(shù)

組中各元素重新賦值。循環(huán)執(zhí)行第一次時(shí),n[l]=n[0]*2+l=0+l=l,printf函數(shù)輸出

1,然后i的值加1,比較iV=4成立,繼續(xù)執(zhí)行循環(huán)體語句,相應(yīng)輸出3、7、

15,直至i<=4不成立,退出循環(huán)。所以最后輸出為I、3、7、15?

64、以下程序運(yùn)行后的輸出結(jié)果是【】。structNODE{intnum;stmctNODE

率next;);main(){structNODEs[3J=({1,(2,(3,'\0'}),本p,p,

*r;intsum=0;s|0|.next=s+l;s(l].next=s+2;s[2|.next=s;p=sq=p->

next;r=q->next;sum+=q->next->num:sum+=r->next->next->num:

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

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

知識點(diǎn).析:主函數(shù)首先聲明了一個(gè)結(jié)點(diǎn)數(shù)組s[3],并分別初始化其成員num為

1、2、3,而成員next全部被初始化為'(T也就是0,下面又用三條語句

s[O].next=s+l;s[l].next=s+2;s[2].next=s;分別將三個(gè)結(jié)點(diǎn)指向其后面一個(gè)結(jié)點(diǎn),

而最后一個(gè)結(jié)點(diǎn)指向第1個(gè)結(jié)點(diǎn),構(gòu)造出一條單向循環(huán)鏈表。接下來用結(jié)點(diǎn)指針

p=s即讓其指向s[0],然后ILq=p->ncxi,即指向了s[l],r=q?>next即讓I■指向

s[2],然后讓一個(gè)累計(jì)變量sum累加q->next->num和r->next->next->nm,因

為q指向s[l]所以它的next指針指向的是s[2],故第1次累加的是s[2].num=3,而

r指向的是s⑵所以它的next是s[0],s⑼的next指向s[l],故第2次累加的是

s[l].num=2o所以程序最終輸出結(jié)果為5。

65、下面程序的運(yùn)行結(jié)果是[]ointf(inta[],intn){if(n>l)returna[0]+f(&a[l],n-

I);elsereturna[OJ;)main(){intaa[3]={1,2,3)?s;s=f(&aa[O],3);

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

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

知識點(diǎn)解析:經(jīng)過分析將遞歸函數(shù)寫成其數(shù)學(xué)表達(dá)式如下:

£(&?,0)=8(0)本題中定義了一個(gè)長度為3的數(shù)組aa并初始化。接著

調(diào)用遞歸函數(shù)f,由上面的數(shù)學(xué)表達(dá)式以計(jì)算其返回值s=l+2+3=6,所以空格處應(yīng)

該填6。

66、以下程序中函數(shù)f的功能是在數(shù)組x的n個(gè)數(shù)(假定n個(gè)數(shù)互不相同)小找出最

大最小數(shù),將其中最小的數(shù)與第一個(gè)數(shù)對換,把最大的數(shù)與最后一個(gè)數(shù)對換。請?zhí)?/p>

空。#include<stdio.h>voidf(intx[],intn){intpO,pl,i,j,t,m;i=j=x[O];

pO=pl=O;for(m=O:m<n;m++){if(x[m]>i){i=x[m];p0=m;}elseif(x[m]<j)

jj=x(m];pl=m;))t=x|pO];x[pO]=x[n-l];x[n-l]=t;t=x[pl];x|pl]=【】;〔】二1}

main(){inta[10],u:for(u=0;u<10;u++)scamp(n%d",&a[u]);f(a,10);

for(u=0:u<10;u++)printf("%d",a[u]);ptintf("\n");)

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

知識點(diǎn)解析:根據(jù)題意,2函數(shù)要“將其中最小的數(shù)與第一個(gè)數(shù)對換,把最大的數(shù)

與最后一個(gè)數(shù)對換”,而填空處的上一行語句正是使用交換算法,將下標(biāo)為pO的元

素與數(shù)組x的最后一個(gè)元素(n個(gè)元素的數(shù)組,其最后一個(gè)元素的下標(biāo)為n-1)交換。

所以不難得知,填空所在行的語句是要將下標(biāo)為pl的元素與數(shù)組x的第1個(gè)元素

交換。故兩個(gè)空都應(yīng)該二真x[0]。

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

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

#defineM2#defineN4voidSumColumMm(inta[M][N],int*sum){intij,k,s=O;

tor(i=0;iVN;i++){k=0;for(j=ly<M;j++)if(alkJLiJ>a|jJliJ)k=j;s+=[1:)

[]=s;}main(){intx[M][n])={3;,5,1,4,1,8,3},s;

SumC01umMm([]);ptintf("%d\nu,s);)

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

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

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

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

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

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

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

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

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

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

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

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

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

*sumo

國家二級(C語言)筆試模擬試卷第2

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

10分。)

1、在深度為5的滿二叉樹中,結(jié)點(diǎn)的個(gè)數(shù)為()。

A、32

B、31

C、16

D、15

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

知識之解析:根據(jù)二義樹的定義,深度為m的二叉樹最多有2m-l個(gè)結(jié)點(diǎn)。由此可

知答案為B項(xiàng)。注意,滿二叉樹中葉子結(jié)點(diǎn)的個(gè)數(shù)為2m-l個(gè)。

2、在數(shù)據(jù)結(jié)構(gòu)中,從邏輯上可以把數(shù)據(jù)結(jié)構(gòu)分成()。

A、動(dòng)態(tài)結(jié)構(gòu)和靜態(tài)結(jié)構(gòu)

B、線性結(jié)構(gòu)和非線性結(jié)構(gòu)

C、集合結(jié)構(gòu)和非集合結(jié)構(gòu)

D、樹形結(jié)構(gòu)和圖狀結(jié)構(gòu),

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

知識點(diǎn)3析:邏輯結(jié)構(gòu)即數(shù)據(jù)元素之間的邏輯關(guān)系,是從邏輯關(guān)系上描述數(shù)據(jù),與

數(shù)據(jù)的存儲無關(guān)。因此艱據(jù)數(shù)據(jù)元素與數(shù)據(jù)元素之間的關(guān)系,邏輯結(jié)構(gòu)被分為兩大

類:線性結(jié)構(gòu)和非線性結(jié)構(gòu)。

3、下面這個(gè)程序段的時(shí)間復(fù)雜度是()。for(i=l;i<n;i++){y=y+3;for(j=0;j<

=(2*n);j++)x++;)

A、O(log2n)

B、O(n)

C>O(nlog2n)

D、0(n2)

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

知識點(diǎn)解析?:語句的頻度指的是該語句重復(fù)執(zhí)行的次數(shù)。一個(gè)算法中所有語句的頻

度之和構(gòu)成了該算法的運(yùn)行時(shí)間。在本例算法中,語句①的頻度是n-1,語句②的

頻度是(n-1)(2n+l)-2n2-n-lo則該程序段的時(shí)間復(fù)雜度是T(n)=n-1+2n2-n-l=O(n2)。

4、程序流程圖(PFD)中的箭頭代表的是()。

A、組成關(guān)系

B、控制流

C、調(diào)用關(guān)系

D、數(shù)據(jù)流

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

知識點(diǎn)解析:在程序流程圖(PFD)中,箭頭代表的是控制流,用以指明程序的動(dòng)態(tài)

執(zhí)行順序。

5、在面向?qū)ο蠓椒ㄖ?,如果“雞”是一類對象,“公雞”、“母雞”等都繼承了“雞”類

的性質(zhì),因而是“雞”的()。

A、子類

B、實(shí)例

C、對象

D、父類

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

溫馨提示

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

最新文檔

評論

0/150

提交評論