第 1 頁:選擇題 |
第 3 頁:程序填空題 |
第 4 頁:程序修改題 |
第 5 頁:程序設(shè)計題 |
11[單選題] 下列數(shù)據(jù)結(jié)構(gòu)中,屬于非線性結(jié)構(gòu)的是( )。
A.循環(huán)隊列
B.帶鏈隊列
C.二叉樹
D.帶鏈棧
參考答案:C
參考解析:樹是簡單的非線性結(jié)構(gòu),所以二叉樹作為樹的一種也是一種非線性結(jié)構(gòu)。
12[單選題] 若有以下程序段:
程序運行后的輸出結(jié)果是( )。
A.16
B.8
C.4
D.2
參考答案:C
參考解析:本題考查位運算,屬于基礎(chǔ)知識,題目中將整型變量8,二進制表達為00001000,右移一位為00000100,即4,選項C正確。
13[單選題] 對于循環(huán)隊列,下列敘述中正確的是( )。
A.隊頭指針是固定不變的
B.隊頭指針一定大于隊尾指針
C.隊頭指針一定小于隊尾指針
D.隊頭指針可以大于隊尾指針,也可以小于隊尾指針
參考答案:D
參考解析:循環(huán)隊列的隊頭指針與隊尾指針都不是固定的,隨著入隊與出隊操作要進行變化。因為是循環(huán)利用的隊列結(jié)構(gòu),所以隊頭指針有時可能大于隊尾指針,有時也可能小于隊尾指針。
14[單選題] 設(shè)有定義:
char*c;
以下選項中能夠使c正確指向一個字符串的是( )。
ABCD參考答案:A
參考解析:A選項為正確用法,先將字符串存于字符數(shù)組中,然后將數(shù)組名賦給字符指針(數(shù)組名代表數(shù)組首地址,定義數(shù)組時為其分配確定地址)。C選項錯誤,getchar()函數(shù)只能輸入一個字符給字符型變量,而不是字符指針。B選項和D選項有類似的錯誤,兩個選項并無語法錯誤,但運行時可能會出現(xiàn)問題。因為在B選項和D選項中,字符指針沒有被賦值,是個不確定的值,指向一個不確定的內(nèi)存區(qū)域。這個區(qū)域可能存放有用的指令或致?lián)。在這個不確定的區(qū)域重新存放字符串,可能會發(fā)生無法預(yù)知的錯誤。因此A選項正確。
15[單選題] 若變量已正確定義,在if(W)printf(”%d\n”,k);中,以下不可替代w的是( )。
A.a<>b+c
B.ch=getchar()
C.a==b+c
D.a++
參考答案:A
參考解析:選項A是非法的表達式,C語言中沒有<>運算符。
16[單選題] 下列排序方法中,最壞情況下比較次數(shù)最少的是( )。
A.冒泡排序
B.簡單選擇排序
C.直接插入排序
D.堆排序
參考答案:D
參考解析:冒泡排序與筒單插入排序與簡單選擇排序法在最壞情況下均需要比較n(n-1)/2次,而堆排序在最壞情況下需要比較的次數(shù)是nlog2n。
17[單選題] 有以下程序:
程序運行后的輸出結(jié)果是( )。
A.500
B.401
C.503
D.1404
參考答案:C
參考解析:本題重點考察函數(shù)的定義和調(diào)用,第一次循環(huán),a=0,i=0,返回值a=0*0+1+0=1;第二次循環(huán),a=1,i=10,返回值a=10*10+1+1=102;第三次循環(huán),a=102,i=20,返回值a=20*20+1+102=503;第四次循環(huán),a=503,i=30;不符合i<30,跳出循環(huán),最后結(jié)果輸出a=503。
18[單選題] 數(shù)據(jù)庫管理系統(tǒng)是( )。
A.操作系統(tǒng)的一部分
B.在操作系統(tǒng)支持下的系統(tǒng)軟件
C.一種編譯系統(tǒng)
D.一種操作系統(tǒng)
參考答案:B
參考解析:數(shù)據(jù)庫管理系統(tǒng)是數(shù)據(jù)庫的機構(gòu),它是一種系統(tǒng)軟件,負責(zé)數(shù)據(jù)庫中數(shù)據(jù)組織、數(shù)據(jù)操縱、數(shù)據(jù)維護、控制及保護和數(shù)據(jù)服務(wù)等。是一種在操作系統(tǒng)之上的系統(tǒng)軟件。
19[單選題] 有以下函數(shù):
該函數(shù)的功能是( )。
A.計算s所指字符串的長度
B.比較兩個字符串的大小
C.計算s所指字符串占用內(nèi)存字節(jié)的個數(shù)
D.將s所指字符串復(fù)制到字符串t中
參考答案:A
考解析:首先char*s接受一個字符型數(shù)組的首地址并將這個首地址賦給另一個字符型指針char*t,while(*t++)不斷循環(huán)直到*t為'\0',再將t-1,這時字符指針t指向字符串的最后一個字符,又因為s指向字符數(shù)組的首地址即字符串的首地址所以return(t-s)便是返回字符數(shù)組中字符串的長度。
20[單選題] 以下選項中,能用作用戶標識符的是( )。
A._0_
B.8_8
C.void
D.unsigned
參考答案:A
參考解析:C語言中標識符由字母、下劃線、數(shù)字組成,且開頭必須是字母或下劃線。另外,關(guān)鍵字不能作為標識符。B中以數(shù)字8開頭,所以錯誤。C與D中用的是關(guān)鍵字void與unsigned,所以錯誤。
21[單選題] 以下敘述中錯誤的是( )。
A.使用三種基本結(jié)構(gòu)構(gòu)成的程序只能解決簡單問題
B.結(jié)構(gòu)化程序由順序、分支、循環(huán)三種基本結(jié)構(gòu)組成
C.C語言是一種結(jié)構(gòu)化程序設(shè)計語言
D.結(jié)構(gòu)化程序設(shè)計提倡模塊化的設(shè)計方法
參考答案:A
參考解析:使用順序,選擇(分支),循環(huán)三種基本結(jié)構(gòu)構(gòu)成的程序可以解決所有問題,而不只是解決簡單問題,所以A錯誤。
22[單選題] 下列敘述中正確的是( )。
A.棧是“先進先出”的線性表
B.隊列是“先進后出”的線性表
C.循環(huán)隊列是非線性結(jié)構(gòu)
D.有序線性表既可以采用順序存儲結(jié)構(gòu),也可以采用鏈式存儲結(jié)構(gòu)
參考答案:D
參考解析:棧是先進后出的線性表,所以A錯誤;隊列是先進先出的線性表,所以B錯誤;循環(huán)隊列是線性結(jié)構(gòu)的線性表,所以C錯誤。
23[單選題] 有以下程序:
程序運行后的輸出結(jié)果是( )。
A.2,1,1,2
B.1,2,1,2
C.2,1,2,1
D.1,2,2,1
參考答案:D
參考解析:int m=1,n=2,*P=&m,*q=&n,*r;即指針變量p指向m,指針變量q指向n,r=p;p=q;q=r;即通過指針變量r,將指針p和指針q的指向交換。因此最后輸出1,2,2,1。
24[單選題] 有以下程序:
若想通過鍵盤輸入,使得a1的值為12,a2的值為34,cl的值為字符a,c2的值為字符b,程序運行后的輸出結(jié)果是:l2,a,34,b。則正確的輸入格式是(以下︺代表空格,代表回車)( )。
ABCD參考答案:D
參考解析:在輸入多個數(shù)據(jù)時,若格式控制串中無非格式字符,則認為所有輸人的字符均為有效字符。所以應(yīng)按選項D的順序輸入數(shù)據(jù)。
25[單選題] 以下不構(gòu)成無限循環(huán)的語句或語句組是( )。
A.n=0:
do{++n;}while(n<=0);
B.n=0;
while(1){n++;}
C.n=10;
while(n);{n--;}
D.for(n=0,i=1;;i++)n+=i;
參考答案:A
參考解析:選項A中do后面的語句只執(zhí)行了一次便結(jié)束了循環(huán);B選項中條件while(1)永遠成立,所以是死循環(huán);C選項中n的值為10,而循環(huán)體為空語句,所以wilile(n)永遠為真,進入死循環(huán);D選項中for語句第二個表達式為空,所以沒有判別條件,進入死循環(huán)。
26[單選題] 若a是數(shù)值類型,則邏輯表達式(a==1)||(a!=1)的值是( )。
A.1
B.0
C.2
D.不知道a的值,不能確定
參考答案:A
參考解析:邏輯或”||”要求只要兩邊的運算對象有一個非零,結(jié)果就為真。雖然不知道a的值,但是若a為l,則左邊運算對象為1;若a的值不是1,則右邊運算對象的值為1,所以總能保證一邊非零,所以結(jié)果為真,即1。
27[單選題] 有以下程序:
程序運行后的輸出結(jié)果是( )。
A.9
B.8
C.7
D.10
參考答案:A
參考解析:題目中靜態(tài)局部變量a,在靜態(tài)存儲區(qū)內(nèi)分配存儲單元,在程序整個運行期間都不釋放。所以第一次調(diào)用函數(shù)執(zhí)行n+=a++;時a先與n相加在再進行自增。n的值為4,a的值為2,且a變量執(zhí)行完后空間沒有釋放。再執(zhí)行s=s+f
28[單選題] 程序中已構(gòu)成如下圖所示的不帶頭結(jié)點的單向鏈表結(jié)構(gòu),指針變量s、p、q均已正確定義,并用于指向鏈表結(jié)點,指針變量s總是作為指針指向鏈表的第一個結(jié)點。
若有以下程序段:
該程序段實現(xiàn)的功能是( )。
A.刪除尾結(jié)點
B.尾結(jié)點成為首結(jié)點
C.刪除首結(jié)點
D.首結(jié)點成為尾結(jié)點
參考答案:D
參考解析:本題考查鏈表的操作,本題中首先是s指向了它的下個結(jié)點,題目中說明了s總是指向鏈表的第一個結(jié)點,然后while循環(huán)找到鏈表的最后一個元素,然后最后一個元素指向了之前鏈表的頭結(jié)點,之前頭結(jié)點指向了空結(jié)點,所以本題實現(xiàn)的功能是使首結(jié)點成為尾結(jié)點。選項D正確。
29[單選題] 有以下程序(說明:字母A的ASCIl碼值是65):
程序運行后的輸出結(jié)果是( )。
A.BT
B.YE
C.YT
D.BY
參考答案:B
參考解析:本題中執(zhí)行fun(a)時,會取字符串a(chǎn)的第一個字母B,因為字母B的ASCII碼值為66,所以不會輸出字母8,函數(shù)只會輸出ASCII碼值為奇數(shù)的字母,字母Y的ASCIl碼值為89,字母T的ASCII碼值為84,字母E的ASCII碼值為69。因此B選項正確。
30[單選題] 下列選項中不屬于結(jié)構(gòu)化程序設(shè)計原則的是( )。
A.可封裝
B.自頂向下
C.模塊化
D.逐步求精
參考答案:A
參考解析:結(jié)構(gòu)化程序設(shè)計的思想包括:自頂向下、逐步求精、模塊化、限制使用goto語句,所以選擇A。
31[單選題] 某二叉樹有5個度為2的結(jié)點,則該二叉樹中的葉子結(jié)點數(shù)是( )。
A.10
B.8
C.6
D.4
參考答案:C
參考解析:根據(jù)二叉樹的基本性質(zhì)3:在任意一棵二叉樹中,度為0的葉子結(jié)點總是比度為2的結(jié)點多一個,所以本題中是5+1=6個。
32[單選題] 有以下程序:
程序運行后的輸出結(jié)果是( )。
A.1*1=11*2=21*3=3
2*2:42*3=6
3*3=9
B.1*1=11*2=21*3=3
2*1=22*2=4
3*1=3
C.1*1=1 .
1*2=22*2=4
1*3=32*3=63*3=9
D.1*1=1
2*1=22*2=4
3*1=33*2=63*3=9
參考答案:A
參考解析:外循環(huán)第一次i的值為1,內(nèi)循環(huán)第一次j的初值為1,打印1*1=1;內(nèi)循環(huán)第二次j的值為2,打印1+2=2;內(nèi)循環(huán)第三次j的值為3,打印l*3=3,打印回車換行,退出內(nèi)循環(huán)。外循環(huán)第二次i的值為2,內(nèi)循環(huán)第一次j的初值為2,打印2*2=4;內(nèi)循環(huán)第二次j的值為3,打印2*3=6,打印回車換行.退出內(nèi)循環(huán)。外循環(huán)第三次i的值為3,內(nèi)循環(huán)第一次j的初值為3.打印3*3=9,打印回車換行,退出內(nèi)循環(huán)。
33[單選題] 以下關(guān)于宏的敘述中正確的是( )。
A.宏替換沒有數(shù)據(jù)類型限制
B.宏定義必須位于源程序中所有語句之前
C.宏名必須用大寫字母表示
D.宏調(diào)用比函數(shù)調(diào)用耗費時間
參考答案:A
參考解析:宏定義寫在函數(shù)的花括號外邊,作用域為其后的程序,通常在文件的最開頭,所以B選項中宏定義必須位于源程序中所有語句之前是錯誤的:宏名一般用大寫.但不是必須用大寫,所以C選項錯誤。宏展開不占運行時間,只占編譯時間,函數(shù)調(diào)用占運行時間(分配內(nèi)存、保留現(xiàn)場、值傳遞、返回值),所以D選項錯誤。
34[單選題] 有以下程序:
程序運行后的輸出結(jié)果是( )。
A.11
B.9
C.6
D.7
參考答案:C
參考解析:strepy:字符串拷貝函數(shù);strlen:求字符串長度函數(shù)(注意:不包含字符串結(jié)束標識符‘\0’);strcat:字符串連接函數(shù)。執(zhí)行完語句strcat(p,r);后,p數(shù)組中存儲的元素為a,b,c,d,a,b,c,d,e;執(zhí)行語句strcpy(p+strlen(q),q);得到的結(jié)果是將q所指向的字符串拷貝至p+strlen(q)開始的存儲位置,因為strlen的值為3,即從p+3開始存儲q中的元素。所以執(zhí)行完strepy(p+strhn(q),q)語句后,字符數(shù)組p[20]的存儲元素為a b,e,a,b,c;所以strlen(p)的結(jié)果為6。因此C選項正確。
35[單選題] 支持子程序調(diào)用的數(shù)據(jù)結(jié)構(gòu)是( )。
A.棧
B.樹
C.隊列
D.二叉樹
參考答案:A
參考解析:棧支持子程序調(diào)用。棧是一種只能在一端進行插入或刪除的線性表,在主程序調(diào)用子函數(shù)時要首先保存主程序當前的狀態(tài),然后轉(zhuǎn)去執(zhí)行子程序,最終把子程序的執(zhí)行結(jié)果返回到主程序中調(diào)用子程序的位置,繼續(xù)向下執(zhí)行,這種調(diào)用符合棧的特點,因此本題的答案為A。
36[單選題] 有以下程序:
程序運行后的輸出結(jié)果是( )。
A.*2*6
B.*3*5
C.*5
D.*7
參考答案:D
參考解析:d0...while語句是先執(zhí)行后判斷,所以第一次先執(zhí)行循環(huán)體,判斷i%3==1的條件,由于i為5,所以余數(shù)為2.條件不成立,執(zhí)行i++,i的值為6,判斷while條件為真;第二次執(zhí)行循環(huán)體,同第一次循環(huán)的執(zhí)行過程一樣,i的值變?yōu)?,判斷while條件為真;第三次執(zhí)行循環(huán)體,此時i%3==1,條件成立,再判斷i%5==2也成立,打印t與i的值,即*7,然后執(zhí)行break語句,跳出循環(huán)。所以選擇D選項。
37[單選題] 有以下程序:
以上程序執(zhí)行后abc.dat文件的內(nèi)容是( )。
A.China
B.Chinang
C.ChinaBeijing
D.BeijingChina
參考答案:B
參考解析:本題考查文件操作函數(shù),fwrite和rewind函數(shù),題目中先是將a2字符串寫入adc.dat中,然后將寫指針回到文件開頭,然后寫入sl字符串,那么s1字符串就將前5個字符覆蓋,所以最終結(jié)果為Chinang,選項B正確。
38[單選題] 軟件詳細設(shè)計生產(chǎn)的圖如右圖:
該圖是( )。
A.N-S圖
B.PAD圖
C.程序流程圖
D.E-R圖
參考答案:C
參考解析:N-S圖提出了用方框圖來代替?zhèn)鹘y(tǒng)的程序流程圖,所以A不對。PAD圖是問題分析圖,它是繼承程序流程圖和方框圖之后提出的又一種主要用于描述軟件詳細設(shè)計的圖形表示工具,所以B不對。E-R圖是數(shù)據(jù)庫中的用于表示E-R模型的圖示工具,所以D不對。根據(jù)圖中所示表示方法是進行軟件詳細設(shè)計時使用的程序流程圖。
39[單選題] 將E-R圖轉(zhuǎn)換為關(guān)系模式時,實體和聯(lián)系都可以表示為( )。
A.屬性
B.鍵
C.關(guān)系
D.域
參考答案:C
參考解析:從E-R圖到關(guān)系模式的轉(zhuǎn)換是比較直接的,實體與聯(lián)系都可以表示成關(guān)系,E—R圖中屬性也可以轉(zhuǎn)換成關(guān)系的屬性。記
40[單選題] 設(shè)有定義:
struct complex
{ int real,unreal;}data1={1,8},data2;
則以下賦值語句中錯誤的是( )。
A.data2=(2,6);
B.data2=data1;
C.data2.real=data1.real;
D.data2.real=data1.unreal;
參考答案:A
參考解析:A選項中可以在聲明變量的同事為data2賦值,但是data2=(2,6);應(yīng)寫作data2={2,6}。所以選擇A。
相關(guān)推薦:
【考試吧整理】計算機等級考試各科目歷年真題北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內(nèi)蒙古 |