一、選擇題(1-10,21-40每題2分,11-20每題1分)
(1)下列數(shù)據(jù)結(jié)構(gòu)中,屬于非線性結(jié)構(gòu)的是
A)循環(huán)隊列B)帶鏈隊列C)二叉樹D)帶鏈棧
(2)下列數(shù)據(jù)結(jié)構(gòu)中,能夠按照“先進后出”原則存取數(shù)據(jù)的是
A)循環(huán)隊列B)棧C)隊列D)二叉樹
(3)對于循環(huán)隊列,下列敘述中正確的是
A)隊頭指針是固定不變的B)隊頭指針一定大于隊尾指針C)隊頭指針一定小于隊尾指針D)隊頭指針可以大于隊尾指針,也可以小于隊尾指針
(4)算法的空間復雜度是指
A)算法在執(zhí)行過程中所需要的計算機存儲空間B)算法所處理的數(shù)據(jù)量C)算法程序中的語句或指令條數(shù)D)算法在執(zhí)行過程中所需要的臨時工作單元數(shù)
(5)軟件設(shè)計中劃分模塊的一個準則是
A)低內(nèi)聚低耦合B)高內(nèi)聚低耦合C)低內(nèi)聚高耦合D)高內(nèi)聚高耦合
(6)下列選項中不屬于結(jié)構(gòu)化程序設(shè)計原則的是
A)可封裝B)自頂向下C)模塊化D)逐步求精
(7)軟件詳細設(shè)計產(chǎn)生的圖如下:
該圖是
A)N-S圖B)PAD圖C)程序流程圖D)E-R圖
(8)數(shù)據(jù)庫管理系統(tǒng)是
A)操作系統(tǒng)的一部分B)在操作系統(tǒng)支持下的系統(tǒng)軟件C)一種編譯系統(tǒng)D)一種操作系統(tǒng)
(9)在E-R圖中,用來表示實體聯(lián)系的圖形是
A)橢圓形B)矩形C)菱形D)三角形
(10)有三個關(guān)系R,S,和T如下:
R #FormatTableID_0# S #FormatTableID_1# T #FormatTableID_2#其中關(guān)系T由關(guān)系R和S通過某種操作得到,該操作為
A)選擇B)投影C)交D)并
(11)已知函數(shù)FA調(diào)用FB,若要把這兩個函數(shù)定義在同一個文件中,則
A)FA必須定義在FB之前
B)FB必須定義在FA之前
C)若FA定義在FB之后,則FA的原型必須出現(xiàn)在FB的定義之前
D)若FB定義在FA之后,則FB的原型必須出現(xiàn)在FA的定義之前
(12)有如下兩個類定義
class AA{};
class BB{ AA v1,*v2; BB v3; int *v4; };
其中有一個成員變量的定義是錯誤的,這個變量是
A)v1 B)v2 C)v3 D)v4
(13)有如下類定義:
class XX{ int xdata;
public: XX(int n=0) : xdata (n) { } };
class YY : public XX{ int ydata; public: YY(int m=0, int n=0) : XX(m), ydata(n) { } };
YY類的對象包含的數(shù)據(jù)成員的個數(shù)是
A)1 B)2 C)3 D)4
(14)下列有關(guān)運算符函數(shù)的描述中,錯誤的是
A)運算符函數(shù)的名稱總是以operator為前綴 B)運算符函數(shù)的參數(shù)可以是對象
C)運算符函數(shù)只能定義為類的成員函數(shù) D)在表達式中使用重載的運算符相當于調(diào)用運算符重載函數(shù)
(15)下列關(guān)于模板形參的描述中,錯誤的是
A)模板形參表必須在關(guān)鍵字template之后 B)模板形參表必須用括弧( )括起來
C)可以用class修飾模板形參 D)可以用typename修飾模板形參
(16)在下列枚舉符號中,用來表示“相對于當前位置”文件定位方式的是
A)ios_base::cur B)ios_base::beg C)ios_base::out D)ios_base::end
(17)下列字符串可以用作C++標識符的是
A)2009var B)goto C)test - 2009 D)_123
(18)下列枚舉類型的定義中,包含枚舉值3的是
A)enum test {RED, YELLOW, BLUE, BLACK}; B)enum test {RED, YELLOW=4, BLUE, BLACK};
C)enum test {RED=-1, YELLOW,BLUE, BLACK}; D)enum test {RED, YELLOW=6, BLUE, BLACK};
(19)有如下程序段:
int i=1;
while (1) { i++; if(i == 10) break; if(i%2 == 0) cout << '*'; }
執(zhí)行這個程序段輸出字符*的個數(shù)是
A)10 B)3 C)4 D)5
(20)已知數(shù)組arr的定義如下:
int arr[5] = {1,2,3,4,5}; 下列語句中輸出結(jié)果不是2的是
A)cout << *arr+1 <
(21)計算斐波那契數(shù)列第n項的函數(shù)定義如下:
Int fib(int n){ if (n == 0) return 1; else if (n == 1) return 2; else return fib(n-1)+fib(n-2); }
若執(zhí)行函數(shù)調(diào)用表達式fib(2),函數(shù)fib被調(diào)用的次數(shù)是
A)1 B)2 C)3 D)4
(22)Sample是一個類,執(zhí)行下面語句后,調(diào)用Sample類的構(gòu)造函數(shù)的次數(shù)是
Sample a[2], *p = new Sample;
A)0 B)1 C)2 D)3
(23)下列關(guān)于虛基類的描述中,錯誤的是
A)使用虛基類可以消除由多繼承產(chǎn)生的二義性 B)構(gòu)造派生類對象時,虛基類的構(gòu)造函數(shù)只被調(diào)用一次
C)聲明“class B : virtual public A”說明類B為虛基類 D)建立派生類對象時,首先調(diào)用虛基類的構(gòu)造函數(shù)
(24)將運算符重載為類成員函數(shù)時,其參數(shù)表中沒有參數(shù),說明該運算是
A)不合法的運算符 B)一元運算符 C)無操作數(shù)的運算符 D)二元運算符
(25)有如下模板聲明:
template
下列聲明中,與上述聲明不等價的是
A)template
C)template
(26)下列關(guān)于C++流的描述中,錯誤的是
A)cout>>'A'表達式可輸出字符A B)eof()函數(shù)可以檢測是否到達文件尾
C)對磁盤文件進行流操作時,必須包含頭文件fstream D)以ios_base::out模式打開的文件不存在時,將自動建立一個新文件
27)有如下程序:
#include
using namespace std;
class Toy{ public: Toy(char* _n) { strcpy (name,_n); count++;} ~Toy(){ count--; } char* GetName(){ return name; } static int getCount(){ return count; }
private:
char name[10];
static int count;
};
int Toy::count=0;
int mail(){
Toy t1(“Snoopy”),t2(“Mickey”),t3(“Barbie”);
cout<
return 0; }
運行時的輸出結(jié)果是
A)1 B)2 C)3 D)運行時出錯
(28)有如下程序
#include
class A { public: A(int i):rl(i) { } void print( ) {cout<<'e'<
int main(){ A al(2); const A a2(4); al.print(); a2.print(); return 0; }
運行時的輸出結(jié)果是
A)運行時出錯 B)E2-C16- C)C4-C16- D)E2-E4-
29)有如下程序:
#include
using namespace std;
class Name{
char name[20];
public:
Name(){
strcpy(name,""); cout<<'?';
}
Name(char *fname)){
strcpy(name,fname); cout<'?';
}
};
int main(){
Name names[3]={Name(“張三”),Name(“李四”)};
Return 0;
}
運行此程序輸出符號?的個數(shù)是
A)0 B)1 C)2 D)3
(30)有如下程序:
#include
using namespace std;
public:
AA(){ cout<<'1'; }
};
class BB: public AA{
int k;
public:
BB():k(0){ cout<<'2'; }
BB(int n):k(n){ cout<<'3';}
}
int main(){
BB b(4), c;
return 0;
}
運行時的輸出結(jié)果是
A)1312 D)132 C)32 D)1412
(31)有如下程序:
#include
using namespace std;
class C1{
public:
~C1(){ cout<<1; }
};
Class C2: public c1{
public:
~c2(){ cout<<2; }
};
int main(){
C2 cb2;
C1 *cb1;
return 0;
}
運行時的輸出結(jié)果是
A)121 B)21 C)211 D)12
(32)有如下程序
#include
using namespace std;
class Publication{ //出版物類
char name[30];
public:
Publication(char *name="未知名稱"){
strcpy(this->name,name);
}