一、選擇題
1在E—R圖中,用來表示實(shí)體聯(lián)系的圖形是( )。
A.橢圓形B.矩形C.菱形D.三角形
參考答案:C
參考解析:在E—R圖中實(shí)體集用矩形.屬性用橢圓,聯(lián)系用菱形。
2有如下程序:
#jnClude
using namespaCe std; Class Part{
publiC:
Part(int x=0):val(X){Cout<
private:
int val; t };
Class Whole{ publiC:
Whole(int x,int Y,int z=0):p2(x),pl(y),val(z){Cout<
private:
Part pl,p2; int val;
};
int main() {
Whole obj(1,2,3); return 0;
}
執(zhí)行這個(gè)程序的輸出結(jié)果是( )。
A.123321B.213312C.213D.123123
參考答案:B
參考解析:本題考查帶參數(shù)的構(gòu)造函數(shù)。本題中定義了一個(gè)對(duì)象obj,那么執(zhí)行其構(gòu)造函數(shù),初始化p1,p2的順序是由聲明這兩個(gè)成員的順序決定的,而不是由參數(shù)化列表順序決定,所以本題中,會(huì)先執(zhí)行p1,輸出2,然后執(zhí)行p2輸出1,然后輸出3,后輸出312。所以本題答案為8。
3沒有定義int x;float Y;,則10+x+y值的數(shù)據(jù)類型是( )。
A.intB.doubleC.floatD.不確定
參考答案:C
參考解析:由算術(shù)運(yùn)算符組成的表達(dá)式中,若含有不同類型的操作數(shù),則系統(tǒng)隱含地將低類型轉(zhuǎn)化為高類型,由低至高的順序?yàn)閕nt→float→double。
4有如下類定義:
class Point{
private:
static int how_many;
};
___________how_many=0;
要初始化Point類的靜態(tài)成員how_many,下畫線處應(yīng)填入的內(nèi)容是( )。
A.intB.static intC.int Point::D.static int Point::
參考答案:C
參考解析:本題考查靜態(tài)數(shù)據(jù)成員,靜態(tài)數(shù)據(jù)成員可以初始化,但只能在類體外進(jìn)行初始化,其一般形式為:數(shù)據(jù)類型類名::靜態(tài)數(shù)據(jù)成員名=初值。所以本題答案為C。
5有如下類定義:
class Test
{
public:
Test(){a=0;c=0;}//①
int f(im A.const{this->a=a;}//②
static int g(){return a;f//③
void h(int B.{Test:.b=b;};//④
private:
int a;
static int b;
const int C;
};
int Test::b=0:
在標(biāo)注號(hào)碼的行中,能被正確編譯的是( )。
A.①B.②C.③D.④
參考答案:D
參考解析:只能通過構(gòu)造函數(shù)的參數(shù)初始化列表對(duì)常數(shù)據(jù)成員進(jìn)行初始化,本題中常數(shù)據(jù)成員為C。①通過默認(rèn)構(gòu)造函數(shù)初始化c,所以不正確。常成員函數(shù)只能引用本類中數(shù)據(jù)成員,而不能修改它,所以②不正確。靜態(tài)成員函數(shù)由于沒有this指針,所以不能訪問本類中的非靜態(tài)成員,所以
③錯(cuò)誤。
6某系統(tǒng)總體結(jié)構(gòu)圖如下圖所示:
該系統(tǒng)總體結(jié)構(gòu)圖的深度是( )。
A.7B.6C.3D.2
參考答案:C
參考解析:根據(jù)總體結(jié)構(gòu)圖可以看出陔樹的深度為3,比如:XY系統(tǒng)——功能2——功能2.1,就是深的度數(shù)的一個(gè)表現(xiàn)。
7有如下類定義:
Class AA{ int a; publiC: AA(int n=0):a(n){}
};
Class BB:publiC AA{ publiC:
BB(int n)—— };
其中橫線處缺失的部分是( )。
A.:a(n){}B.:AA(n)|}C.{a(n);}D.{a=n;}
參考答案:B
參考解析:本題考查公用繼承對(duì)基類成員訪問屬性。公用繼承中,基類的公用成員和保護(hù)成員在派生類中保持原有訪問屬性,其私有成員仍為基類私有,本題中若要給派生類繼承下來基類的私有成員賦值,那么只能調(diào)用基類的成員函數(shù)來對(duì)它賦值,所以本題答案為B。
8有如下類定義:
class MyClass{
int value;
public:
MyClass(int n):value(n){}
int getValue()const{retum value;}
};
則類MyClass的構(gòu)造函數(shù)的個(gè)數(shù)是( )。
A.1個(gè)B.2個(gè)C.3個(gè)D.4個(gè)
參考答案:B
參考解析:本題考查類的默認(rèn)構(gòu)造函數(shù)和自定義的構(gòu)造函數(shù)、本題中MyClass(int n):value(n){}為自定義的構(gòu)造函數(shù),加上默認(rèn)構(gòu)造函數(shù),一共有2個(gè)構(gòu)造函數(shù)。
9下列關(guān)于派生類構(gòu)造函數(shù)和析構(gòu)函數(shù)的說法中,錯(cuò)誤的是( )。
A.派生類的構(gòu)造函數(shù)會(huì)隱含調(diào)用基類的構(gòu)造函數(shù)
B.如果基類中沒有缺省構(gòu)造函數(shù),那么派生類必須定義構(gòu)造函數(shù)
C.在建立派生類對(duì)象時(shí),先調(diào)用基類的構(gòu)造函數(shù),再調(diào)用派生類的構(gòu)造函數(shù)
D.在銷毀派生類對(duì)象時(shí),先調(diào)用基類的析構(gòu)函數(shù),再調(diào)用派生類的析構(gòu)函數(shù)
參考答案:D
參考解析:在銷毀派生類對(duì)象時(shí),先調(diào)用派生類的析構(gòu)函數(shù),再調(diào)用基類的析構(gòu)函數(shù)。
10下列敘述中正確的是( )。
A.棧是一種先進(jìn)先出的線性表
B.隊(duì)列是一種后進(jìn)先出的線性表
C.棧與隊(duì)列都是非線性結(jié)構(gòu)
D.以上三種說法都不對(duì)
參考答案:D
參考解析:棧是一種先進(jìn)后出的線性表,隊(duì)列是一種先進(jìn)先出的線性表,棧與隊(duì)列都是線性結(jié)構(gòu)。
11關(guān)于關(guān)鍵字class和typename,下列表述中正確的是( )。
A. 程序中的typename都可以替換為class
B.程序中的class都可以替換為typename
C.在模板形參表中只能用{ypename來聲明參數(shù)的類型
D.在模板形參表中只能用class或typenanle來聲明參數(shù)的類型
參考答案:A
參考解析:程序中的typename都可以替換為class,但程序中的class不可以全部替換為typename。在模板類型形參中除了 typename和class以外,也可以用常規(guī)類型來聲明參數(shù)的類型,所以C、D選項(xiàng)錯(cuò)誤。
12數(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ù)庫的機(jī)構(gòu),它是一種系統(tǒng)軟件,負(fù)責(zé)數(shù)據(jù)庫中數(shù)據(jù)組織、數(shù)據(jù)操縱、數(shù)據(jù)維護(hù)、控制及保護(hù)和數(shù)據(jù)服務(wù)等。是一種在操作系統(tǒng)之上的系統(tǒng)軟件。
13軟件生命周期是指( )。
A.軟件產(chǎn)品從提出、實(shí)現(xiàn)、使用維護(hù)到停止使用退役的過程
B.軟件從需求分析、設(shè)計(jì)、實(shí)現(xiàn)到測(cè)試完成的過程
C.軟件的開發(fā)過程
D.軟件的運(yùn)行維護(hù)過程
參考答案:A
參考解析:通常,將軟件產(chǎn)品從提出、實(shí)現(xiàn)、使用維護(hù)到停止使用退役的過程稱為軟件生命周期。也就是說,軟件產(chǎn)品從考慮其概念開始,到該軟件產(chǎn)品不能使用為止的整個(gè)時(shí)期都屬于軟件生命周期。
14下列符號(hào)中不屬于C++關(guān)鍵字的是( )。
A.friendB.namespaeeC.ContinueD.byte
參考答案:D
參考解析:本題考查C++關(guān)鍵字,屬于基本常識(shí),顯然D選項(xiàng)不正確。
15下面關(guān)于數(shù)組的初始化正確的是( )。
A.char str[]={’a’,’b’,’C’}
B.char str[2]={’a’,’b’,’c’}
C.char str[2][3]={{’a’,’b’},{’C’,’d’},{’e’,’f’}}
D.char str()={~a,~b,~C}
參考答案:A
參考解析:本題考查的是字符數(shù)組的初始化。選項(xiàng)B中用3個(gè)庀素初始化大小為2的數(shù)組,越界了;選項(xiàng)c中應(yīng)該是2行3列的數(shù)組,題中使用3行2列初始化;選項(xiàng)D中數(shù)組合后應(yīng)用方括號(hào)。
16下列敘述中正確的是( )。
A.順序存儲(chǔ)結(jié)構(gòu)的存儲(chǔ)一定是連續(xù)的,鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)的存儲(chǔ)空間不一定是連續(xù)的
B.順序存儲(chǔ)結(jié)構(gòu)只針對(duì)線性結(jié)構(gòu),鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)只針對(duì)非線性結(jié)構(gòu)
C.順序存儲(chǔ)結(jié)構(gòu)能存儲(chǔ)有序表,鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)不能存儲(chǔ)有序表
D.鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)比順序存儲(chǔ)結(jié)構(gòu)節(jié)省存儲(chǔ)空間
參考答案:A
參考解析:鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)既可以針對(duì)線性結(jié)構(gòu)也可以針對(duì)非線性結(jié)構(gòu),所以B與C錯(cuò)誤。鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)中每個(gè)結(jié)點(diǎn)都由數(shù)據(jù)域與指針域兩部分組成,增加了存儲(chǔ)空間,所以D錯(cuò)誤。
17下列各組類型聲明符中,含義相同的一組是( )。
A.unsigned long int和long
B.signed short int和short
C.unsigned short和short
D.short int和int
參考答案:B
參考解析:本題考查整型變量的類型,A、c選項(xiàng)中前者為無符號(hào)的,后者為有符號(hào)的,D選項(xiàng)中short int為2個(gè)字節(jié),int為4個(gè)字節(jié)。
18下面程序的運(yùn)行結(jié)果是( )。
#include class base{
protected: int a; public:
base(){cout<<”0”;}
}; class basel:virtual base{
public:
basel(){cout<<”1”;}
};
class base2:virtual base i public: base2(){cout<<”2”;}
};
class derived:public basel,public base2{ public:
derived(){cout<<”3”;}
};
void main()
derived obj;
cout<
A.0123B.3120C.0312D.3012
參考答案:A
參考解析:本題考查的是含有虛基類的繼承中構(gòu)造函數(shù)的調(diào)用順序,應(yīng)該先調(diào)用基類的構(gòu)造函數(shù),接著是按照派生類繼承列表的順序依次調(diào)用虛基類的構(gòu)造函數(shù),后調(diào)用派生類自己的構(gòu)造函數(shù)。
19下列描述正確的是( )。
A.表示m>n為true或mn&&m
參考答案:D
參考解析:本題主要考查c++語言的基本語法,選項(xiàng)A中應(yīng)該為m>n|j m
20下列運(yùn)算符函數(shù)中肯定不屬于類FunNumber的成員函數(shù)的是( )。
A.int operator一(FunNumber);
B.FunNumber operator一();
C.FunNumber operator一(int);
D.int operator一(FunNumber,F(xiàn)unNumber);
參考答案:D
參考解析:本題考查運(yùn)算符重載的一些規(guī)則:①一般情況下,單目運(yùn)算符好重載為類的成員函數(shù),雙目運(yùn)算符則好重載為類的友元函數(shù);②雙目運(yùn)算符=、()、[]、->不能重載為類的友元函數(shù);③類型轉(zhuǎn)換函數(shù)只能定義為一個(gè)類的成員函數(shù),而不能定義為類的友元函數(shù);④若一個(gè)運(yùn)算符的操作需要修改對(duì)象的狀態(tài),選擇重載為成員函數(shù)較好;⑤若運(yùn)算符所需的操作數(shù)(尤其是第一個(gè)操作數(shù))希望有隱式類型轉(zhuǎn)換,則只能選用友元函數(shù);⑥當(dāng)運(yùn)算符函數(shù)是一個(gè)成員函數(shù)時(shí),左邊的操作數(shù)(或者只有左邊的操作數(shù))必須是運(yùn)算符類的一個(gè)類對(duì)象(或者是對(duì)該類對(duì)象的引用);如果左邊的操作數(shù)必須是一個(gè)不同類的對(duì)象,或者是一個(gè)內(nèi)部類型的對(duì)象,該運(yùn)算符函數(shù)必須作為一個(gè)友元函數(shù)來實(shí)現(xiàn)。所以答案為D。
21下列程序的運(yùn)行結(jié)果是( )。
#include
class A
{
int a;
public:
A(){a=0;}
A(int aA.
{
a=aa;
cout<
}
};
void main()
{
A X,Y(2),z(3);
cout<
}
A.00B.23C.34D.25
參考答案:B
參考解析:本題考查的是對(duì)構(gòu)造函數(shù)的掌握,另外“++”運(yùn)算符是右結(jié)合的,所以在進(jìn)行輸出的時(shí)候都是先把原來的輸出后再自加l。
22關(guān)于函數(shù)重載,下列敘述中錯(cuò)誤的是( )。
A.重載函數(shù)的函數(shù)名必須相同
B.重載函數(shù)必須在參數(shù)個(gè)數(shù)或類型上有所不同
C.重載函數(shù)的返回值類型必須相同
D.重載函數(shù)的函數(shù)體可以有所不同
參考答案:C
參考解析:所謂函數(shù)重載是指同一個(gè)函數(shù)名可以對(duì)應(yīng)多個(gè)函數(shù)的實(shí)現(xiàn)。每種實(shí)現(xiàn)對(duì)應(yīng)…個(gè)函數(shù)體,這些函數(shù)的名字相同,其參數(shù)類型或個(gè)數(shù)不同,但不能出現(xiàn)函數(shù)返回值類型不同而參數(shù)類型和個(gè)數(shù)完全相同的重載。所以本題答案為c。
23在c++語言中,數(shù)據(jù)封裝要解決的問題是( )。
A.數(shù)據(jù)的規(guī)范化
B.便于數(shù)據(jù)轉(zhuǎn)換
C.避免數(shù)據(jù)丟失
D.防止不同模塊之間數(shù)據(jù)的非法訪問
參考答案:D
參考解析:數(shù)據(jù)封裝為了防止不同模塊間數(shù)據(jù)的非法訪問及修改。
24在C++中,Cin是一個(gè)( )。
A.類B.對(duì)象C.模板D.函數(shù)
參考答案:B
參考解析:本題考查流對(duì)象cin,屬于基礎(chǔ)知識(shí),cin是輸人流對(duì)象,負(fù)責(zé)從鍵盤獲取數(shù)據(jù),然后送到內(nèi)存。本題答 案為B。
25在公有派生情況下,有關(guān)派生類對(duì)象和基類對(duì)象的關(guān)系,下列敘述不正確的是( )。
A.派生類的對(duì)象可以賦給基類的對(duì)象
B.派生類的對(duì)象可以初始化基類的引用
C.派生類的對(duì)象可以直接訪問基類中的成員
D.派生類的對(duì)象的地址可以賦給指向基類的指針
參考答案:C
參考解析:公有繼承的派生類和基類是子類型的關(guān)系,所謂子類型是類型間一般和特殊的關(guān)系,即派生類是基類的子類型或者說基類的操作可以被用于操作派生類的對(duì)象。
26要建立文件流并打開當(dāng)前目錄下的文件6le.dat用于輸入,下列語句中錯(cuò)誤的是( )。
A.ifstream fin=ffstream.open(”file.dat”);
B.ifstream*fin=new ifstream(”file.dat”);
C.ifstream fin;fin.open(”file.dat”);
D.ifstream*fin=new ifstream();fin->open(”file.dat”);
參考答案:A
參考解析:本題考查對(duì)文件流輸入的操作,可以調(diào)用文件流的成員函數(shù)pen,一般形式如下:文件流對(duì)象.0pen(磁盤文件名,輸入/輸出方式)。根據(jù)以上格式,可以判斷A選項(xiàng)錯(cuò)誤。
27某二叉樹有5個(gè)度為2的結(jié)點(diǎn),則該二叉樹中的葉子結(jié)點(diǎn)數(shù)是( )。
A.10B.8C.6D.4
參考答案:C
參考解析:根據(jù)二叉樹的基本性質(zhì)3:在任意一顆二叉樹中,度為0的葉子結(jié)點(diǎn)總是比度為2的結(jié)點(diǎn)多一一個(gè),所以本題中是5+1=6個(gè)。
28下面的語句中錯(cuò)誤的是( )。
A.int a=5;int x[a];B.eonst int a=5;int x[a];C.int n=5;int *P=new int[a];D.const int n=5;int *p=new int[a];
參考答案:A
參考解析:在c++中定義數(shù)組時(shí),數(shù)組的范圍參數(shù)在靜態(tài)定義時(shí)必須是一個(gè)常數(shù),而在動(dòng)態(tài)分配內(nèi)存定義時(shí)可以是常數(shù),也可以是一個(gè)賦了值的參數(shù)故選項(xiàng)A是錯(cuò)誤的定義方法。
29if語句的語法格式可描述為:
格式l:if(<條件>)<語句>
或
格式2:if(<條件>)<語句l>
else<語句2>
關(guān)于上面的語法格式,下列表述中錯(cuò)誤的是( )。
A.<條件>部分可以是一個(gè)if語句,例如if(if(a==0)…)…
B.<語句>部分可以是一個(gè)if語句,例如if(…)if(…)…
C.如果在<條件>前加上邏輯非運(yùn)算符!并交換<語句l>和<語句2>的位置,語句功能不變
D.<語句>部分可以是一個(gè)循環(huán)語句,例如if(…)while(…)…
參考答案:A
參考解析:本題考查if語句,if語句的條件部分不能嵌套if語句,所以A選項(xiàng)錯(cuò)誤;B選項(xiàng)就是if語句嵌套;C選項(xiàng)其實(shí)就是將判斷條件顛倒,然后執(zhí)行語句也顛倒,所以效果一樣;D選項(xiàng)也正確。
30結(jié)構(gòu)化程序設(shè)計(jì)的基本原則不包括( )。
A.多態(tài)性B.自頂向下C.模塊化D.逐步求精
參考答案:A
參考解析:結(jié)構(gòu)化程序設(shè)計(jì)的思想包括:自頂向下、逐步求精、模塊化、限制使用goto語句,所以選擇A。
31下列有關(guān)繼承和派生的敘述中,正確的是( )。
A.派生類不彘訪問基類的保護(hù)成員
B.作為虛基類的類不能被實(shí)例化
C.派生類應(yīng)當(dāng)向基類的構(gòu)造函數(shù)傳遞參數(shù)
D.虛函數(shù)必須在派生類中重新實(shí)現(xiàn)
參考答案:C
參考解析:派生類可以訪問基類的保護(hù)成員,而不能訪問基類的私有成員。作為虛基類的類可以被實(shí)例化。虛函數(shù)如果沒有派生類中重新實(shí)現(xiàn),那么仍然使用基類的成員函數(shù)。
32下列關(guān)于this指針的描述中,正確的是( )。
A.類的成員函數(shù)都有this指針
B.類的友元函數(shù)都有this指針
C.任何與類相關(guān)的函數(shù)都有this指針
D.類的非靜態(tài)成員函數(shù)都有this指針
參考答案:D
參考解析:this作用域是在類內(nèi)部,當(dāng)在類的非靜態(tài)成員函數(shù)中訪問類的非靜態(tài)成員時(shí),編譯器會(huì)自動(dòng)將對(duì)象本身的地址作為一個(gè)隱含參數(shù)傳遞給函數(shù)。另外,全局函數(shù)和靜態(tài)函數(shù)都不能使用this指針。所以答案為D。
33已知函數(shù)f的原型是void f(int*a,long&B.;,變量v1、v2的定義是:
int v1;long:v2;
下列調(diào)用語句中正確的是( )。
A.f(v1,&v2);B.f(v1,v2);C.f(&v1,&v2);D.f(&v1,v2);
參考答案:D
參考解析:函數(shù)參數(shù)的3種傳遞方式:①將變量名作為形參和實(shí)參,即傳值方式;②傳遞變量指針;③引用形參,本題中函數(shù)f的第一個(gè)形參為指針,那么調(diào)用f函數(shù)時(shí),第一一個(gè)參數(shù)必須是地址,所以必須是&v1.第二個(gè)形參為引用,所以對(duì)應(yīng)實(shí)參為v2即可。故本題答案為D。
34設(shè)有表示學(xué)生選課的三張表,學(xué)生s(學(xué)號(hào),姓名,性別,年齡,身份證號(hào)),課程c(課號(hào),課名),選課Sc(學(xué)號(hào),課號(hào),成績(jī)),則表Sc的關(guān)鍵字(鍵或碼)為( )。
A.課號(hào),成績(jī)
B.學(xué)號(hào),成績(jī)
C.學(xué)號(hào),課號(hào)
D.學(xué)號(hào),姓名,成績(jī)
參考答案:C
參考解析:學(xué)號(hào)是學(xué)生表s的主鍵,課號(hào)是課程表c 的主鍵,所以選課表sc的關(guān)鍵字就應(yīng)該是與前兩個(gè)表能夠直接聯(lián)系且能定義的學(xué)號(hào)和課號(hào),所以選擇c。
35有如下程序:
#inClude using namespaCe耐: Class MyClass{
publiC:
MyClass(){++Count;}
~MyClass(){--Count;}
statiC int getCount(){retum Count;} private:
statiC int Count;
}; ‘ int MyClass::Count=0;
int main() {
MyClass obj;
Cout<
MyClass+ptr=new MyClass: Cout<
Cout<
}
執(zhí)行這個(gè)程序的輸出結(jié)果是( )。
A.121B.232C.221D.122
參考答案:A
參考解析:本題考查靜態(tài)數(shù)據(jù)成員。靜態(tài)數(shù)據(jù)成員在內(nèi)存中只占一份空間,靜態(tài)數(shù)據(jù)成員屬于類,即使不定義對(duì)象,也會(huì)給靜態(tài)數(shù)據(jù)成員分配空間,可以被引用。本題中先是定義了一個(gè)對(duì)象obj,執(zhí)行構(gòu)造函數(shù)使得靜態(tài)數(shù)據(jù)成員count變?yōu)榱薼,然后又定義了指針對(duì)象,執(zhí)行構(gòu)造函數(shù)后,count變?yōu)榱?,釋放指針后,執(zhí)行析構(gòu)函數(shù),使得count變?yōu)榱?。所以本題答案為A。
36數(shù)據(jù)流圖中帶有箭頭的線段表示的是( )。
A.控制流B.事件驅(qū)動(dòng)C.模塊調(diào)用D.數(shù)據(jù)流
參考答案:D
參考解析:數(shù)據(jù)流圖中帶箭頭的線段表示的是數(shù)據(jù)流,即沿箭頭方向傳送數(shù)據(jù)的通道,一般在旁邊標(biāo)注數(shù)據(jù)流名。
37下列程序的運(yùn)行結(jié)果為( )。
#include template
class FF
{TT al,a2,a3; public:
FF(TT bl,TT b2,TT b3){al=bl;a2=b2;a3=b3;} TT Sum(){return al+a2+a3;};
}
void main()
{ FFx(int(1.1),2,3),Y(int(4.2),5,6); cout<
A.6.1 15.2B.6 15C.6 15.2D.6.1 15
參考答案:B
參考解析:本題考查模板函數(shù)的應(yīng)用,表達(dá)式int(1.1)和int(4.2)足將1.1和4.2強(qiáng)制轉(zhuǎn)換為整型。
38下列選項(xiàng)中不屬于結(jié)構(gòu)化程序設(shè)計(jì)原則的是( )。
A.可封裝B.自頂向下C.模塊化D.逐步求精
參考答案:A
參考解析:結(jié)構(gòu)化程序設(shè)計(jì)的思想包括:自頂向下、逐步求精、模塊化、限制使用goto語句,所以選擇A。
39有三個(gè)關(guān)系R,S和T如下:
其中關(guān)系T由關(guān)系R和s通過某種操作得到,該操作為( )。
A.選擇B.投影C.交D.并
參考答案:D
參考解析:并關(guān)系T中包含了關(guān)系R與s中的所有元組,所以進(jìn)行的是并的運(yùn)算。
40下列控制格式輸入/輸出的操作符中,能夠設(shè)置浮點(diǎn)數(shù)精度的是( )。
A.setpreCisionB.setwC.setfillD.showpoint
參考答案:A
參考解析:iomanip中定義的操縱符包括:setfill(ch) 用ch填充空白、setprecision(n)將浮點(diǎn)精度置為n、setw(w)、讀寫w個(gè)字符的值showpoint沒置小數(shù)點(diǎn)。
1在E—R圖中,用來表示實(shí)體聯(lián)系的圖形是( )。
A.橢圓形B.矩形C.菱形D.三角形
參考答案:C
參考解析:在E—R圖中實(shí)體集用矩形.屬性用橢圓,聯(lián)系用菱形。
2有如下程序:
#jnClude
using namespaCe std; Class Part{
publiC:
Part(int x=0):val(X){Cout<
private:
int val; t };
Class Whole{ publiC:
Whole(int x,int Y,int z=0):p2(x),pl(y),val(z){Cout<
private:
Part pl,p2; int val;
};
int main() {
Whole obj(1,2,3); return 0;
}
執(zhí)行這個(gè)程序的輸出結(jié)果是( )。
A.123321B.213312C.213D.123123
參考答案:B
參考解析:本題考查帶參數(shù)的構(gòu)造函數(shù)。本題中定義了一個(gè)對(duì)象obj,那么執(zhí)行其構(gòu)造函數(shù),初始化p1,p2的順序是由聲明這兩個(gè)成員的順序決定的,而不是由參數(shù)化列表順序決定,所以本題中,會(huì)先執(zhí)行p1,輸出2,然后執(zhí)行p2輸出1,然后輸出3,后輸出312。所以本題答案為8。
3沒有定義int x;float Y;,則10+x+y值的數(shù)據(jù)類型是( )。
A.intB.doubleC.floatD.不確定
參考答案:C
參考解析:由算術(shù)運(yùn)算符組成的表達(dá)式中,若含有不同類型的操作數(shù),則系統(tǒng)隱含地將低類型轉(zhuǎn)化為高類型,由低至高的順序?yàn)閕nt→float→double。
4有如下類定義:
class Point{
private:
static int how_many;
};
___________how_many=0;
要初始化Point類的靜態(tài)成員how_many,下畫線處應(yīng)填入的內(nèi)容是( )。
A.intB.static intC.int Point::D.static int Point::
參考答案:C
參考解析:本題考查靜態(tài)數(shù)據(jù)成員,靜態(tài)數(shù)據(jù)成員可以初始化,但只能在類體外進(jìn)行初始化,其一般形式為:數(shù)據(jù)類型類名::靜態(tài)數(shù)據(jù)成員名=初值。所以本題答案為C。
5有如下類定義:
class Test
{
public:
Test(){a=0;c=0;}//①
int f(im A.const{this->a=a;}//②
static int g(){return a;f//③
void h(int B.{Test:.b=b;};//④
private:
int a;
static int b;
const int C;
};
int Test::b=0:
在標(biāo)注號(hào)碼的行中,能被正確編譯的是( )。
A.①B.②C.③D.④
參考答案:D
參考解析:只能通過構(gòu)造函數(shù)的參數(shù)初始化列表對(duì)常數(shù)據(jù)成員進(jìn)行初始化,本題中常數(shù)據(jù)成員為C。①通過默認(rèn)構(gòu)造函數(shù)初始化c,所以不正確。常成員函數(shù)只能引用本類中數(shù)據(jù)成員,而不能修改它,所以②不正確。靜態(tài)成員函數(shù)由于沒有this指針,所以不能訪問本類中的非靜態(tài)成員,所以
③錯(cuò)誤。
6某系統(tǒng)總體結(jié)構(gòu)圖如下圖所示:
該系統(tǒng)總體結(jié)構(gòu)圖的深度是( )。
A.7B.6C.3D.2
參考答案:C
參考解析:根據(jù)總體結(jié)構(gòu)圖可以看出陔樹的深度為3,比如:XY系統(tǒng)——功能2——功能2.1,就是深的度數(shù)的一個(gè)表現(xiàn)。
7有如下類定義:
Class AA{ int a; publiC: AA(int n=0):a(n){}
};
Class BB:publiC AA{ publiC:
BB(int n)—— };
其中橫線處缺失的部分是( )。
A.:a(n){}B.:AA(n)|}C.{a(n);}D.{a=n;}
參考答案:B
參考解析:本題考查公用繼承對(duì)基類成員訪問屬性。公用繼承中,基類的公用成員和保護(hù)成員在派生類中保持原有訪問屬性,其私有成員仍為基類私有,本題中若要給派生類繼承下來基類的私有成員賦值,那么只能調(diào)用基類的成員函數(shù)來對(duì)它賦值,所以本題答案為B。
8有如下類定義:
class MyClass{
int value;
public:
MyClass(int n):value(n){}
int getValue()const{retum value;}
};
則類MyClass的構(gòu)造函數(shù)的個(gè)數(shù)是( )。
A.1個(gè)B.2個(gè)C.3個(gè)D.4個(gè)
參考答案:B
參考解析:本題考查類的默認(rèn)構(gòu)造函數(shù)和自定義的構(gòu)造函數(shù)、本題中MyClass(int n):value(n){}為自定義的構(gòu)造函數(shù),加上默認(rèn)構(gòu)造函數(shù),一共有2個(gè)構(gòu)造函數(shù)。
9下列關(guān)于派生類構(gòu)造函數(shù)和析構(gòu)函數(shù)的說法中,錯(cuò)誤的是( )。
A.派生類的構(gòu)造函數(shù)會(huì)隱含調(diào)用基類的構(gòu)造函數(shù)
B.如果基類中沒有缺省構(gòu)造函數(shù),那么派生類必須定義構(gòu)造函數(shù)
C.在建立派生類對(duì)象時(shí),先調(diào)用基類的構(gòu)造函數(shù),再調(diào)用派生類的構(gòu)造函數(shù)
D.在銷毀派生類對(duì)象時(shí),先調(diào)用基類的析構(gòu)函數(shù),再調(diào)用派生類的析構(gòu)函數(shù)
參考答案:D
參考解析:在銷毀派生類對(duì)象時(shí),先調(diào)用派生類的析構(gòu)函數(shù),再調(diào)用基類的析構(gòu)函數(shù)。
10下列敘述中正確的是( )。
A.棧是一種先進(jìn)先出的線性表
B.隊(duì)列是一種后進(jìn)先出的線性表
C.棧與隊(duì)列都是非線性結(jié)構(gòu)
D.以上三種說法都不對(duì)
參考答案:D
參考解析:棧是一種先進(jìn)后出的線性表,隊(duì)列是一種先進(jìn)先出的線性表,棧與隊(duì)列都是線性結(jié)構(gòu)。
11關(guān)于關(guān)鍵字class和typename,下列表述中正確的是( )。
A. 程序中的typename都可以替換為class
B.程序中的class都可以替換為typename
C.在模板形參表中只能用{ypename來聲明參數(shù)的類型
D.在模板形參表中只能用class或typenanle來聲明參數(shù)的類型
參考答案:A
參考解析:程序中的typename都可以替換為class,但程序中的class不可以全部替換為typename。在模板類型形參中除了 typename和class以外,也可以用常規(guī)類型來聲明參數(shù)的類型,所以C、D選項(xiàng)錯(cuò)誤。
12數(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ù)庫的機(jī)構(gòu),它是一種系統(tǒng)軟件,負(fù)責(zé)數(shù)據(jù)庫中數(shù)據(jù)組織、數(shù)據(jù)操縱、數(shù)據(jù)維護(hù)、控制及保護(hù)和數(shù)據(jù)服務(wù)等。是一種在操作系統(tǒng)之上的系統(tǒng)軟件。
13軟件生命周期是指( )。
A.軟件產(chǎn)品從提出、實(shí)現(xiàn)、使用維護(hù)到停止使用退役的過程
B.軟件從需求分析、設(shè)計(jì)、實(shí)現(xiàn)到測(cè)試完成的過程
C.軟件的開發(fā)過程
D.軟件的運(yùn)行維護(hù)過程
參考答案:A
參考解析:通常,將軟件產(chǎn)品從提出、實(shí)現(xiàn)、使用維護(hù)到停止使用退役的過程稱為軟件生命周期。也就是說,軟件產(chǎn)品從考慮其概念開始,到該軟件產(chǎn)品不能使用為止的整個(gè)時(shí)期都屬于軟件生命周期。
14下列符號(hào)中不屬于C++關(guān)鍵字的是( )。
A.friendB.namespaeeC.ContinueD.byte
參考答案:D
參考解析:本題考查C++關(guān)鍵字,屬于基本常識(shí),顯然D選項(xiàng)不正確。
15下面關(guān)于數(shù)組的初始化正確的是( )。
A.char str[]={’a’,’b’,’C’}
B.char str[2]={’a’,’b’,’c’}
C.char str[2][3]={{’a’,’b’},{’C’,’d’},{’e’,’f’}}
D.char str()={~a,~b,~C}
參考答案:A
參考解析:本題考查的是字符數(shù)組的初始化。選項(xiàng)B中用3個(gè)庀素初始化大小為2的數(shù)組,越界了;選項(xiàng)c中應(yīng)該是2行3列的數(shù)組,題中使用3行2列初始化;選項(xiàng)D中數(shù)組合后應(yīng)用方括號(hào)。
16下列敘述中正確的是( )。
A.順序存儲(chǔ)結(jié)構(gòu)的存儲(chǔ)一定是連續(xù)的,鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)的存儲(chǔ)空間不一定是連續(xù)的
B.順序存儲(chǔ)結(jié)構(gòu)只針對(duì)線性結(jié)構(gòu),鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)只針對(duì)非線性結(jié)構(gòu)
C.順序存儲(chǔ)結(jié)構(gòu)能存儲(chǔ)有序表,鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)不能存儲(chǔ)有序表
D.鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)比順序存儲(chǔ)結(jié)構(gòu)節(jié)省存儲(chǔ)空間
參考答案:A
參考解析:鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)既可以針對(duì)線性結(jié)構(gòu)也可以針對(duì)非線性結(jié)構(gòu),所以B與C錯(cuò)誤。鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)中每個(gè)結(jié)點(diǎn)都由數(shù)據(jù)域與指針域兩部分組成,增加了存儲(chǔ)空間,所以D錯(cuò)誤。
17下列各組類型聲明符中,含義相同的一組是( )。
A.unsigned long int和long
B.signed short int和short
C.unsigned short和short
D.short int和int
參考答案:B
參考解析:本題考查整型變量的類型,A、c選項(xiàng)中前者為無符號(hào)的,后者為有符號(hào)的,D選項(xiàng)中short int為2個(gè)字節(jié),int為4個(gè)字節(jié)。
18下面程序的運(yùn)行結(jié)果是( )。
#include class base{
protected: int a; public:
base(){cout<<”0”;}
}; class basel:virtual base{
public:
basel(){cout<<”1”;}
};
class base2:virtual base i public: base2(){cout<<”2”;}
};
class derived:public basel,public base2{ public:
derived(){cout<<”3”;}
};
void main()
derived obj;
cout<
A.0123B.3120C.0312D.3012
參考答案:A
參考解析:本題考查的是含有虛基類的繼承中構(gòu)造函數(shù)的調(diào)用順序,應(yīng)該先調(diào)用基類的構(gòu)造函數(shù),接著是按照派生類繼承列表的順序依次調(diào)用虛基類的構(gòu)造函數(shù),后調(diào)用派生類自己的構(gòu)造函數(shù)。
19下列描述正確的是( )。
A.表示m>n為true或mn&&m
參考答案:D
參考解析:本題主要考查c++語言的基本語法,選項(xiàng)A中應(yīng)該為m>n|j m
20下列運(yùn)算符函數(shù)中肯定不屬于類FunNumber的成員函數(shù)的是( )。
A.int operator一(FunNumber);
B.FunNumber operator一();
C.FunNumber operator一(int);
D.int operator一(FunNumber,F(xiàn)unNumber);
參考答案:D
參考解析:本題考查運(yùn)算符重載的一些規(guī)則:①一般情況下,單目運(yùn)算符好重載為類的成員函數(shù),雙目運(yùn)算符則好重載為類的友元函數(shù);②雙目運(yùn)算符=、()、[]、->不能重載為類的友元函數(shù);③類型轉(zhuǎn)換函數(shù)只能定義為一個(gè)類的成員函數(shù),而不能定義為類的友元函數(shù);④若一個(gè)運(yùn)算符的操作需要修改對(duì)象的狀態(tài),選擇重載為成員函數(shù)較好;⑤若運(yùn)算符所需的操作數(shù)(尤其是第一個(gè)操作數(shù))希望有隱式類型轉(zhuǎn)換,則只能選用友元函數(shù);⑥當(dāng)運(yùn)算符函數(shù)是一個(gè)成員函數(shù)時(shí),左邊的操作數(shù)(或者只有左邊的操作數(shù))必須是運(yùn)算符類的一個(gè)類對(duì)象(或者是對(duì)該類對(duì)象的引用);如果左邊的操作數(shù)必須是一個(gè)不同類的對(duì)象,或者是一個(gè)內(nèi)部類型的對(duì)象,該運(yùn)算符函數(shù)必須作為一個(gè)友元函數(shù)來實(shí)現(xiàn)。所以答案為D。
21下列程序的運(yùn)行結(jié)果是( )。
#include
class A
{
int a;
public:
A(){a=0;}
A(int aA.
{
a=aa;
cout<
}
};
void main()
{
A X,Y(2),z(3);
cout<
}
A.00B.23C.34D.25
參考答案:B
參考解析:本題考查的是對(duì)構(gòu)造函數(shù)的掌握,另外“++”運(yùn)算符是右結(jié)合的,所以在進(jìn)行輸出的時(shí)候都是先把原來的輸出后再自加l。
22關(guān)于函數(shù)重載,下列敘述中錯(cuò)誤的是( )。
A.重載函數(shù)的函數(shù)名必須相同
B.重載函數(shù)必須在參數(shù)個(gè)數(shù)或類型上有所不同
C.重載函數(shù)的返回值類型必須相同
D.重載函數(shù)的函數(shù)體可以有所不同
參考答案:C
參考解析:所謂函數(shù)重載是指同一個(gè)函數(shù)名可以對(duì)應(yīng)多個(gè)函數(shù)的實(shí)現(xiàn)。每種實(shí)現(xiàn)對(duì)應(yīng)…個(gè)函數(shù)體,這些函數(shù)的名字相同,其參數(shù)類型或個(gè)數(shù)不同,但不能出現(xiàn)函數(shù)返回值類型不同而參數(shù)類型和個(gè)數(shù)完全相同的重載。所以本題答案為c。
23在c++語言中,數(shù)據(jù)封裝要解決的問題是( )。
A.數(shù)據(jù)的規(guī)范化
B.便于數(shù)據(jù)轉(zhuǎn)換
C.避免數(shù)據(jù)丟失
D.防止不同模塊之間數(shù)據(jù)的非法訪問
參考答案:D
參考解析:數(shù)據(jù)封裝為了防止不同模塊間數(shù)據(jù)的非法訪問及修改。
24在C++中,Cin是一個(gè)( )。
A.類B.對(duì)象C.模板D.函數(shù)
參考答案:B
參考解析:本題考查流對(duì)象cin,屬于基礎(chǔ)知識(shí),cin是輸人流對(duì)象,負(fù)責(zé)從鍵盤獲取數(shù)據(jù),然后送到內(nèi)存。本題答 案為B。
25在公有派生情況下,有關(guān)派生類對(duì)象和基類對(duì)象的關(guān)系,下列敘述不正確的是( )。
A.派生類的對(duì)象可以賦給基類的對(duì)象
B.派生類的對(duì)象可以初始化基類的引用
C.派生類的對(duì)象可以直接訪問基類中的成員
D.派生類的對(duì)象的地址可以賦給指向基類的指針
參考答案:C
參考解析:公有繼承的派生類和基類是子類型的關(guān)系,所謂子類型是類型間一般和特殊的關(guān)系,即派生類是基類的子類型或者說基類的操作可以被用于操作派生類的對(duì)象。
26要建立文件流并打開當(dāng)前目錄下的文件6le.dat用于輸入,下列語句中錯(cuò)誤的是( )。
A.ifstream fin=ffstream.open(”file.dat”);
B.ifstream*fin=new ifstream(”file.dat”);
C.ifstream fin;fin.open(”file.dat”);
D.ifstream*fin=new ifstream();fin->open(”file.dat”);
參考答案:A
參考解析:本題考查對(duì)文件流輸入的操作,可以調(diào)用文件流的成員函數(shù)pen,一般形式如下:文件流對(duì)象.0pen(磁盤文件名,輸入/輸出方式)。根據(jù)以上格式,可以判斷A選項(xiàng)錯(cuò)誤。
27某二叉樹有5個(gè)度為2的結(jié)點(diǎn),則該二叉樹中的葉子結(jié)點(diǎn)數(shù)是( )。
A.10B.8C.6D.4
參考答案:C
參考解析:根據(jù)二叉樹的基本性質(zhì)3:在任意一顆二叉樹中,度為0的葉子結(jié)點(diǎn)總是比度為2的結(jié)點(diǎn)多一一個(gè),所以本題中是5+1=6個(gè)。
28下面的語句中錯(cuò)誤的是( )。
A.int a=5;int x[a];B.eonst int a=5;int x[a];C.int n=5;int *P=new int[a];D.const int n=5;int *p=new int[a];
參考答案:A
參考解析:在c++中定義數(shù)組時(shí),數(shù)組的范圍參數(shù)在靜態(tài)定義時(shí)必須是一個(gè)常數(shù),而在動(dòng)態(tài)分配內(nèi)存定義時(shí)可以是常數(shù),也可以是一個(gè)賦了值的參數(shù)故選項(xiàng)A是錯(cuò)誤的定義方法。
29if語句的語法格式可描述為:
格式l:if(<條件>)<語句>
或
格式2:if(<條件>)<語句l>
else<語句2>
關(guān)于上面的語法格式,下列表述中錯(cuò)誤的是( )。
A.<條件>部分可以是一個(gè)if語句,例如if(if(a==0)…)…
B.<語句>部分可以是一個(gè)if語句,例如if(…)if(…)…
C.如果在<條件>前加上邏輯非運(yùn)算符!并交換<語句l>和<語句2>的位置,語句功能不變
D.<語句>部分可以是一個(gè)循環(huán)語句,例如if(…)while(…)…
參考答案:A
參考解析:本題考查if語句,if語句的條件部分不能嵌套if語句,所以A選項(xiàng)錯(cuò)誤;B選項(xiàng)就是if語句嵌套;C選項(xiàng)其實(shí)就是將判斷條件顛倒,然后執(zhí)行語句也顛倒,所以效果一樣;D選項(xiàng)也正確。
30結(jié)構(gòu)化程序設(shè)計(jì)的基本原則不包括( )。
A.多態(tài)性B.自頂向下C.模塊化D.逐步求精
參考答案:A
參考解析:結(jié)構(gòu)化程序設(shè)計(jì)的思想包括:自頂向下、逐步求精、模塊化、限制使用goto語句,所以選擇A。
31下列有關(guān)繼承和派生的敘述中,正確的是( )。
A.派生類不彘訪問基類的保護(hù)成員
B.作為虛基類的類不能被實(shí)例化
C.派生類應(yīng)當(dāng)向基類的構(gòu)造函數(shù)傳遞參數(shù)
D.虛函數(shù)必須在派生類中重新實(shí)現(xiàn)
參考答案:C
參考解析:派生類可以訪問基類的保護(hù)成員,而不能訪問基類的私有成員。作為虛基類的類可以被實(shí)例化。虛函數(shù)如果沒有派生類中重新實(shí)現(xiàn),那么仍然使用基類的成員函數(shù)。
32下列關(guān)于this指針的描述中,正確的是( )。
A.類的成員函數(shù)都有this指針
B.類的友元函數(shù)都有this指針
C.任何與類相關(guān)的函數(shù)都有this指針
D.類的非靜態(tài)成員函數(shù)都有this指針
參考答案:D
參考解析:this作用域是在類內(nèi)部,當(dāng)在類的非靜態(tài)成員函數(shù)中訪問類的非靜態(tài)成員時(shí),編譯器會(huì)自動(dòng)將對(duì)象本身的地址作為一個(gè)隱含參數(shù)傳遞給函數(shù)。另外,全局函數(shù)和靜態(tài)函數(shù)都不能使用this指針。所以答案為D。
33已知函數(shù)f的原型是void f(int*a,long&B.;,變量v1、v2的定義是:
int v1;long:v2;
下列調(diào)用語句中正確的是( )。
A.f(v1,&v2);B.f(v1,v2);C.f(&v1,&v2);D.f(&v1,v2);
參考答案:D
參考解析:函數(shù)參數(shù)的3種傳遞方式:①將變量名作為形參和實(shí)參,即傳值方式;②傳遞變量指針;③引用形參,本題中函數(shù)f的第一個(gè)形參為指針,那么調(diào)用f函數(shù)時(shí),第一一個(gè)參數(shù)必須是地址,所以必須是&v1.第二個(gè)形參為引用,所以對(duì)應(yīng)實(shí)參為v2即可。故本題答案為D。
34設(shè)有表示學(xué)生選課的三張表,學(xué)生s(學(xué)號(hào),姓名,性別,年齡,身份證號(hào)),課程c(課號(hào),課名),選課Sc(學(xué)號(hào),課號(hào),成績(jī)),則表Sc的關(guān)鍵字(鍵或碼)為( )。
A.課號(hào),成績(jī)
B.學(xué)號(hào),成績(jī)
C.學(xué)號(hào),課號(hào)
D.學(xué)號(hào),姓名,成績(jī)
參考答案:C
參考解析:學(xué)號(hào)是學(xué)生表s的主鍵,課號(hào)是課程表c 的主鍵,所以選課表sc的關(guān)鍵字就應(yīng)該是與前兩個(gè)表能夠直接聯(lián)系且能定義的學(xué)號(hào)和課號(hào),所以選擇c。
35有如下程序:
#inClude using namespaCe耐: Class MyClass{
publiC:
MyClass(){++Count;}
~MyClass(){--Count;}
statiC int getCount(){retum Count;} private:
statiC int Count;
}; ‘ int MyClass::Count=0;
int main() {
MyClass obj;
Cout<
MyClass+ptr=new MyClass: Cout<
Cout<
}
執(zhí)行這個(gè)程序的輸出結(jié)果是( )。
A.121B.232C.221D.122
參考答案:A
參考解析:本題考查靜態(tài)數(shù)據(jù)成員。靜態(tài)數(shù)據(jù)成員在內(nèi)存中只占一份空間,靜態(tài)數(shù)據(jù)成員屬于類,即使不定義對(duì)象,也會(huì)給靜態(tài)數(shù)據(jù)成員分配空間,可以被引用。本題中先是定義了一個(gè)對(duì)象obj,執(zhí)行構(gòu)造函數(shù)使得靜態(tài)數(shù)據(jù)成員count變?yōu)榱薼,然后又定義了指針對(duì)象,執(zhí)行構(gòu)造函數(shù)后,count變?yōu)榱?,釋放指針后,執(zhí)行析構(gòu)函數(shù),使得count變?yōu)榱?。所以本題答案為A。
36數(shù)據(jù)流圖中帶有箭頭的線段表示的是( )。
A.控制流B.事件驅(qū)動(dòng)C.模塊調(diào)用D.數(shù)據(jù)流
參考答案:D
參考解析:數(shù)據(jù)流圖中帶箭頭的線段表示的是數(shù)據(jù)流,即沿箭頭方向傳送數(shù)據(jù)的通道,一般在旁邊標(biāo)注數(shù)據(jù)流名。
37下列程序的運(yùn)行結(jié)果為( )。
#include template
class FF
{TT al,a2,a3; public:
FF(TT bl,TT b2,TT b3){al=bl;a2=b2;a3=b3;} TT Sum(){return al+a2+a3;};
}
void main()
{ FFx(int(1.1),2,3),Y(int(4.2),5,6); cout<
A.6.1 15.2B.6 15C.6 15.2D.6.1 15
參考答案:B
參考解析:本題考查模板函數(shù)的應(yīng)用,表達(dá)式int(1.1)和int(4.2)足將1.1和4.2強(qiáng)制轉(zhuǎn)換為整型。
38下列選項(xiàng)中不屬于結(jié)構(gòu)化程序設(shè)計(jì)原則的是( )。
A.可封裝B.自頂向下C.模塊化D.逐步求精
參考答案:A
參考解析:結(jié)構(gòu)化程序設(shè)計(jì)的思想包括:自頂向下、逐步求精、模塊化、限制使用goto語句,所以選擇A。
39有三個(gè)關(guān)系R,S和T如下:
其中關(guān)系T由關(guān)系R和s通過某種操作得到,該操作為( )。
A.選擇B.投影C.交D.并
參考答案:D
參考解析:并關(guān)系T中包含了關(guān)系R與s中的所有元組,所以進(jìn)行的是并的運(yùn)算。
40下列控制格式輸入/輸出的操作符中,能夠設(shè)置浮點(diǎn)數(shù)精度的是( )。
A.setpreCisionB.setwC.setfillD.showpoint
參考答案:A
參考解析:iomanip中定義的操縱符包括:setfill(ch) 用ch填充空白、setprecision(n)將浮點(diǎn)精度置為n、setw(w)、讀寫w個(gè)字符的值showpoint沒置小數(shù)點(diǎn)。