單項選擇題 (1*45)
1.下面關(guān)于編譯系統(tǒng)和解釋系統(tǒng)的觀點(diǎn)中,錯誤的是:
A.解釋程序不產(chǎn)生目標(biāo)代碼,它直接執(zhí)行源程序或源程序的內(nèi)部形式
B.使用編譯系統(tǒng)時會區(qū)分編譯階段和運(yùn)行階段
C.一般來說,解釋系統(tǒng)比編譯系統(tǒng)復(fù)雜,但是可移植性好
D.一般來說,建立在編譯系統(tǒng)基礎(chǔ)上的系統(tǒng)在運(yùn)行速度上要優(yōu)于建立在解釋系統(tǒng)基礎(chǔ)上的系統(tǒng)
2.對于#include和#include “filename,h”的說法錯誤的是:
A.#include只搜索標(biāo)準(zhǔn)庫路徑
B.#include “filename,h”只搜索用戶工作路徑
C.#include搜索范圍比#include “filename,h”小
D.兩者可能等價
3.一下關(guān)于C++中析構(gòu)函數(shù)的說法不正確的是:
A.析構(gòu)函數(shù)一定是函數(shù)體為空的成員函數(shù)
B.一個類中只能定義一個析構(gòu)函數(shù)
C.析構(gòu)函數(shù)不能帶參數(shù)
D.析構(gòu)函數(shù)不能指定返回類型
4.聲明一個指向含有10個元素的數(shù)組的指針,其中每個元素是一個函數(shù)指針,該函數(shù)的返回值是int,參數(shù)是int*,以下正確的是:
A.(int *p[10])(int *) B.int[10]*p(int *)
C.int(*(p)[10])( int *) D.int(int*)[10]) *p
5.在()進(jìn)制下,567 * 456 = 150216這個等式成立
A. 9 B.10 C.12 D.18
6.假設(shè)x, y是兩個int值,下面()方法能夠返回它們的最小值
A.y ^ ((x ^y )& - (x < y)) B. y ^ (x ^ y)
C.x ^ (x ^ y) D.(x ^y ) ^ (y ^ x)
7.編譯運(yùn)行以下程序段的輸出是:
int main(){
int i= 2012;
int const *p= &i;
p++;
printf(“%d”, *p);
return 0;
}
A.2013 B.無意義的數(shù)字
C.編譯錯誤 D.以上均不正確
8.對于下述求冪遞歸定義,隨著x的不斷變大,調(diào)用power函數(shù)次數(shù)的變化趨勢是:
int power(int e, int x){
if (x == 0) return 1;
if( x%2 == 0) return power (e*e, x/2);
return e*power (e*e, x/2);
}
A.線性增長 B.對數(shù)增長
C.指數(shù)增長 D.二次函數(shù)增長
9.下述C++程序的輸出是:
(程序略) 程序的大概意思是鏈表的就地逆置
A. cbad B.badc C.dbca D.dcba
10下屬代碼的輸出結(jié)果是:
(程序略)
A. 65535,0 B.65536,1
C.65536,65535 D.65536,0
11.設(shè)有一個用數(shù)組Q[1,……表示的環(huán)形隊列,約定f為當(dāng)前隊頭元素在數(shù)組中的位置,r為對尾元素的后一位置(按順時針方向),若隊列非空,則計算隊列中元素個數(shù)的公式應(yīng)為:
A.r-f B.(m+r-f) mod m
B.(m-r+f) mod m D.(m-r-f) mod m
12.判斷一個單向鏈表中是否存在環(huán)的方法是:
A.兩重遍歷 B.快慢指針 C.路徑記錄 D.哈希表輔助
13.在下列排序方法中,不穩(wěn)定的方法有:
A.歸并排序和基數(shù)排序 B.插入排序和希爾排序
C.堆排序和快速排序 D.選擇排序和冒泡排序
14.假設(shè)一棵二叉樹的后序遍歷序列為DGJHEBIFCA,中序遍歷序列為DBGEHJACIF,則其前序遍歷序列為:
A.ABCDEFGHIJ B.ABDEGHJCFI
C.ABDEGHJFIC D.ABDEGJHCFI
15.已知一個線性表{38,25,74,63,52,48}, 假定采用散列函數(shù)h(key) = key%7 計算算列地址,并散列存儲在散列表A[0,1……中,若采用線性探測方法解決沖突,則在該散列表上進(jìn)行等概率成功查找的平均長度為:
A. 1.5 B. 1.7 C. 2.0 D 2.3
16.一棵3階B樹有2047個關(guān)鍵碼,則此樹的高度是:
A 11 B. 12 C. 13 D. 14
1.下面關(guān)于編譯系統(tǒng)和解釋系統(tǒng)的觀點(diǎn)中,錯誤的是:
A.解釋程序不產(chǎn)生目標(biāo)代碼,它直接執(zhí)行源程序或源程序的內(nèi)部形式
B.使用編譯系統(tǒng)時會區(qū)分編譯階段和運(yùn)行階段
C.一般來說,解釋系統(tǒng)比編譯系統(tǒng)復(fù)雜,但是可移植性好
D.一般來說,建立在編譯系統(tǒng)基礎(chǔ)上的系統(tǒng)在運(yùn)行速度上要優(yōu)于建立在解釋系統(tǒng)基礎(chǔ)上的系統(tǒng)
2.對于#include
A.#include
B.#include “filename,h”只搜索用戶工作路徑
C.#include
D.兩者可能等價
3.一下關(guān)于C++中析構(gòu)函數(shù)的說法不正確的是:
A.析構(gòu)函數(shù)一定是函數(shù)體為空的成員函數(shù)
B.一個類中只能定義一個析構(gòu)函數(shù)
C.析構(gòu)函數(shù)不能帶參數(shù)
D.析構(gòu)函數(shù)不能指定返回類型
4.聲明一個指向含有10個元素的數(shù)組的指針,其中每個元素是一個函數(shù)指針,該函數(shù)的返回值是int,參數(shù)是int*,以下正確的是:
A.(int *p[10])(int *) B.int[10]*p(int *)
C.int(*(p)[10])( int *) D.int(int*)[10]) *p
5.在()進(jìn)制下,567 * 456 = 150216這個等式成立
A. 9 B.10 C.12 D.18
6.假設(shè)x, y是兩個int值,下面()方法能夠返回它們的最小值
A.y ^ ((x ^y )& - (x < y)) B. y ^ (x ^ y)
C.x ^ (x ^ y) D.(x ^y ) ^ (y ^ x)
7.編譯運(yùn)行以下程序段的輸出是:
int main(){
int i= 2012;
int const *p= &i;
p++;
printf(“%d”, *p);
return 0;
}
A.2013 B.無意義的數(shù)字
C.編譯錯誤 D.以上均不正確
8.對于下述求冪遞歸定義,隨著x的不斷變大,調(diào)用power函數(shù)次數(shù)的變化趨勢是:
int power(int e, int x){
if (x == 0) return 1;
if( x%2 == 0) return power (e*e, x/2);
return e*power (e*e, x/2);
}
A.線性增長 B.對數(shù)增長
C.指數(shù)增長 D.二次函數(shù)增長
9.下述C++程序的輸出是:
(程序略) 程序的大概意思是鏈表的就地逆置
A. cbad B.badc C.dbca D.dcba
10下屬代碼的輸出結(jié)果是:
(程序略)
A. 65535,0 B.65536,1
C.65536,65535 D.65536,0
11.設(shè)有一個用數(shù)組Q[1,……表示的環(huán)形隊列,約定f為當(dāng)前隊頭元素在數(shù)組中的位置,r為對尾元素的后一位置(按順時針方向),若隊列非空,則計算隊列中元素個數(shù)的公式應(yīng)為:
A.r-f B.(m+r-f) mod m
B.(m-r+f) mod m D.(m-r-f) mod m
12.判斷一個單向鏈表中是否存在環(huán)的方法是:
A.兩重遍歷 B.快慢指針 C.路徑記錄 D.哈希表輔助
13.在下列排序方法中,不穩(wěn)定的方法有:
A.歸并排序和基數(shù)排序 B.插入排序和希爾排序
C.堆排序和快速排序 D.選擇排序和冒泡排序
14.假設(shè)一棵二叉樹的后序遍歷序列為DGJHEBIFCA,中序遍歷序列為DBGEHJACIF,則其前序遍歷序列為:
A.ABCDEFGHIJ B.ABDEGHJCFI
C.ABDEGHJFIC D.ABDEGJHCFI
15.已知一個線性表{38,25,74,63,52,48}, 假定采用散列函數(shù)h(key) = key%7 計算算列地址,并散列存儲在散列表A[0,1……中,若采用線性探測方法解決沖突,則在該散列表上進(jìn)行等概率成功查找的平均長度為:
A. 1.5 B. 1.7 C. 2.0 D 2.3
16.一棵3階B樹有2047個關(guān)鍵碼,則此樹的高度是:
A 11 B. 12 C. 13 D. 14