




版權(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年掛燙機(jī)合作協(xié)議書
- 2025年地球化學(xué)元素野外現(xiàn)場快速分析儀項(xiàng)目建議書
- 煤制合成氣電商平臺企業(yè)制定與實(shí)施新質(zhì)生產(chǎn)力戰(zhàn)略研究報(bào)告
- 科學(xué)魔術(shù)與實(shí)驗(yàn)設(shè)計(jì)班行業(yè)深度調(diào)研及發(fā)展戰(zhàn)略咨詢報(bào)告
- 煤礦土壤生態(tài)修復(fù)企業(yè)制定與實(shí)施新質(zhì)生產(chǎn)力戰(zhàn)略研究報(bào)告
- 高效滅鼠劑生產(chǎn)工藝行業(yè)跨境出海戰(zhàn)略研究報(bào)告
- 氯丁橡膠膠管制造行業(yè)跨境出海戰(zhàn)略研究報(bào)告
- 2025年聚醚多元醇項(xiàng)目建議書
- 清潔能源供暖系統(tǒng)企業(yè)制定與實(shí)施新質(zhì)生產(chǎn)力戰(zhàn)略研究報(bào)告
- 游泳池水生態(tài)循環(huán)系統(tǒng)企業(yè)制定與實(shí)施新質(zhì)生產(chǎn)力戰(zhàn)略研究報(bào)告
- 森林區(qū)劃 組織森林經(jīng)營類型(森林資源經(jīng)營管理)
- 國家司法考試行政法歷年真題(含參考答案)
- 歐盟農(nóng)殘標(biāo)準(zhǔn)
- 《藝術(shù)鑒賞》第五章 中西方傳統(tǒng)建筑系列
- YY/T 0935-2014CT造影注射裝置專用技術(shù)條件
- 第19課《蘇州園林》課件 【備課精研】部編版語文八年級上冊
- GB/T 1836-2017集裝箱代碼、識別和標(biāo)記
- GB/T 13869-2017用電安全導(dǎo)則
- GB 21521-2014復(fù)印機(jī)、打印機(jī)和傳真機(jī)能效限定值及能效等級
- 中醫(yī)給藥護(hù)理-課件
- 供水管道的查漏驗(yàn)漏及案例分析課件
評論
0/150
提交評論