一、選擇題(每小題1分,共40分)
1、下列有關(guān)內(nèi)聯(lián)函數(shù)的敘述中,正確的是( )。
A.內(nèi)聯(lián)函數(shù)在調(diào)用時發(fā)生控制轉(zhuǎn)移
B.內(nèi)聯(lián)函數(shù)必須通過關(guān)鍵字inline來定義
C.內(nèi)聯(lián)函數(shù)是通過編譯器來實現(xiàn)的
D.內(nèi)聯(lián)函數(shù)函數(shù)體的最后一條語句必須是return語句
2、語句int*P=&k;定義了指針P,與這個語句等效的語句序列是( )。
A.int* p;P=&k;
B.int * P;P=k;
C.int * p;* P=&k;
D.int * p;* P=k;
3、有如下程序:
#include
using namespace std;
class A
{
public:
A(){cout<<”A”;}
-A(){cout<<”-A”;}
};
class B:public A
{
A*P;
public:
B(){cout<<”B”;P=new A();}
-B(){cout<<”~B”;delete p;}
};
int main()
{
B obj;
return 0;
}
執(zhí)行這個程序的輸出結(jié)果是( )。
A.BAA~A~B~A
B.ABA~B~A~A
C.BAA~B~A~A
D.ABA~A~B~A
4、有如下類定義:
class AA
{
im a:
public:
int getRef()const{return&a;}//①
int getValue()const{return a;}//②
void set(int n)const{a=n;}//③
friend void show(AA aA.const{cout< };
其中四個函數(shù)的定義中正確的是( )。
A.①
B.②
C.③
D.④
5、若要對Data類中重載的加法運(yùn)算符成員函數(shù)進(jìn)行聲明,下列選項中正確的是( )。
A.Data+(DatA.;
B.Data operator+(DatA.;
C.Data+operator(DatA.;
D.operator+(Data,DatA.;
6、有如下數(shù)組聲明:int num[10];,下標(biāo)值引用錯誤的是( )。
A.num[10]
B.num[5]
C.num[3]
D.hum[o]
7、將前綴運(yùn)算符“--”重載為非成員函數(shù),下列原型中能正確用于類中說明的是( ?。?BR> A.DeCr&operator--(int);
B.DeCr operator--(DeCr&,int);
C.friend DeCr&operator--(DeCr&);
D.friend DeCr operator--(DeCr&,int);
8、如果派生類以proteCted方式繼承基類,則原基類的proteCted成員和publiC成員在派生類中的訪問屬性分別是( )。
A.publiC和publiC
B.publiC和proteCted
C.proteCted和publiC
D.proteCted和proteCted
9、在函數(shù)中,可以用aut0、extem、register和static這四個關(guān)鍵字中的一個來說明變量的存儲類型,如果不說明存儲類型,則默認(rèn)的存儲類型是( ?。?BR> A.a(chǎn)uto
B.extern
C.register
D.static
10、下列程序的輸出結(jié)果是( )。
#include
int rain(iltl a,int B.
{
if(a else retum b;
retum 0;
}
void main()
{
eout< }
A.0
B.1
C.2
D.3 11、在黑盒測試方法中,設(shè)計測試用例的主要根據(jù)是( )。
A.程序內(nèi)部邏輯
B.程序外部功能
C.程序數(shù)據(jù)結(jié)構(gòu)
D.程序流程圖
12、在面向?qū)ο蠓椒ㄖ校粚儆凇皩ο蟆被咎攸c(diǎn)的是( ?。?。
A.一致性
B.分類性
C.多態(tài)性
D.標(biāo)識性
13、有以下程序:
#include
void fun(int a,int b,int C.
{ a=456,b=567,c=678;}
void main()
{
int X=10,Y=20,Z=30;
fun(X,Y,z);
aout< }
輸出結(jié)果是( )。
A.30,20,10
B.10,20,30
C.456,567,678
D.678,567,456
14、對類的構(gòu)造函數(shù)和析構(gòu)函數(shù)描述正確的是( )。
A.構(gòu)造函數(shù)可以重載,析構(gòu)函數(shù)不能重載
B.構(gòu)造函數(shù)不能重載,析構(gòu)函數(shù)可以重載
C.構(gòu)造函數(shù)可以重載,析構(gòu)函數(shù)也可以重載
D.構(gòu)造函數(shù)不能重載,析構(gòu)函數(shù)也不能重裁
15、通過運(yùn)算符重載,可以改變運(yùn)算符原有的( ?。?。
A.操作數(shù)類型
B.操作數(shù)個數(shù)
C.優(yōu)先級
D.結(jié)合性
16、下列關(guān)于c++流的描述中,錯誤的是( )。
A.cout>>’A’表達(dá)式可輸出字符A
B.eof()函數(shù)可以檢測是否到達(dá)文件尾
C.對磁盤文件進(jìn)行流操作時,必須包含頭文件fstream
D.以ios_base::0ut模式打開的文件不存在時,將自動建立一個新文件
17、耦合性和內(nèi)聚性是對模塊獨(dú)立性度量的兩個標(biāo)準(zhǔn)。下列敘述中正確的是( ?。?。
A.提高耦合性降低內(nèi)聚性有利于提高模塊的獨(dú)立性
B.降低耦合性提高內(nèi)聚性有利于提高模塊的獨(dú)立性
C.耦合性是指一個模塊內(nèi)部各個元素間彼此結(jié)合的緊密程度
D.內(nèi)聚性是指模塊間互相連接的緊密程度
18、若有如下類聲明:
Class MyClass{ publiC:
MyClass( ?。﹞Cout<<1;} };
執(zhí)行下列語句
MyClass a,b[2],*p[2]; 程序的輸出結(jié)果是( ?。?BR> A.11
B.111
C.1111
D.11111
19、下列函數(shù)模板的定義中,合法的是( )。
A.templateT abs(T X){return x<07-x:X;}
B.template ClassT abs(T x){return x<07-X:x;}
C.template Tabs(T X){return x<07-x:X;}
D.template T abs(T x){return X<0?-X:x;}
20、有如下程序:
#include
using namespace std;
class Base{
int x:
public:
Base(int n=0):x(n){cout< int getX()const{return x;}
};
cjass Derived:public Base{
int Y:.
J;;Iublic:
Derived(int m,int n):y(m),Base(n){cout< Derived(int m):Y(m){cout< };
int main()
{
Derived dl(3),d2(5,7);
retum 0;
}
執(zhí)行這個程序的輸出結(jié)果是( )。
A.375
B.357
C.0375
D.0557
21、關(guān)于在調(diào)用模板函數(shù)時模板實參的使用,下列表述中正確的是( )。
A.對于虛擬類型參數(shù)所對應(yīng)的模板實參,如果能從模板函數(shù)的實參中獲得相同的信息,則都可以省略
B.對于虛擬類型參數(shù)所對應(yīng)的模板實參,如果它們是參數(shù)表中的最后的若干個參數(shù),則都可以省略
C.對于虛擬類型參數(shù)所對應(yīng)的模板實參,若能夠省略則必須省略
D.對于常規(guī)參數(shù)所對應(yīng)的模板實參,任何情況下都不能省略
22、有如下程序段:
int i=0,J=1;
int&r=i;//①
r=j;//②
int*P=&i;//⑧
*P=&r;//④
其中會產(chǎn)生編譯錯誤的語句是( ?。?。
A.④
B.③
C.②
D.①
23、有如下程序:
#include
using namespace std;
class Obj{
static int i;
public:
Obj(){i++;}
一Obj(){i一一;}
static int getVal(){return i;}
};
int Obj::i=0:
void f(){Obj ob2;cout< int main(){
Obj obl;
f();
Obj}ob3=new Obj;cout delete ob3;cout< return 0;
}
執(zhí)行這個程序的輸出結(jié)果是( ?。?BR> A.232
B.231
C.222
D.221
24、有如下類定義:
class MyBase{
int k;
public:
MyBase(int n=O):k(n)}}
int value()eonst{return k;}
};
class MyDerived:MyBase{
intj;
public:
MyDerived(int i):j(i)}}
int getK()const{return k;}
int getJ()const{return j;}
};
編譯時發(fā)現(xiàn)有一處語法錯誤,對這個錯誤最準(zhǔn)確的描述是( ?。?。
A.函數(shù)9etK試圖訪問基類的私有成員變量k
B.在類MyDerived的定義中,基類名MyBase前缺少關(guān)鍵字public、protected或private
C.類MyDerived缺少一個無參的構(gòu)造函數(shù)
D.類MyDerived的構(gòu)造函數(shù)沒有對基類數(shù)據(jù)成員k進(jìn)行初始化
25、下列關(guān)于虛基類的描述,錯誤的是( )。
A.設(shè)置虛基類的目的是為了消除二義性
B.虛基類的構(gòu)造函數(shù)在非虛基類之后調(diào)用
C.若同一層中包含多個虛基類,這些虛基類的構(gòu)造函數(shù)按它們說明的次序調(diào)用
D.若虛基類由非虛基類派生而來,則仍然先調(diào)用基類構(gòu)造函數(shù),再調(diào)用派生類的構(gòu)造函數(shù)
26、在長度為n的有序線性表中進(jìn)行二分查找,最壞情況下需要比較的次數(shù)是( ?。?。
A.O(n)
B.O(n2)
C.O(1092n)
D.0(n1092n)
27、在軟件開發(fā)中,需求分析階段可以使用的工具是( )。
A.N—s圖
B.DFD圖
C.PAD圖
D.程序流程圖
28、有如下類聲明:
class Base{
protected:
int amount;
public:
Base(int n=0):amount(n){}
int getAmount()const{retum amount;}
};
class Derived:public Base{
protected:
int value;
public:
Derived(int m,int n):value(m),Base(n){}
int getData()const{return value+amount;}
}:
已知x是一個Derived對象,則下列表達(dá)式中正確的是( )。
A.x.value+X.getAmount()
B.x.getData()一x.getAmount()
C.x.getData()一x.a(chǎn)mount
D.x.value+X.a(chǎn)mount
29、有三個關(guān)系R、S和T如下:

則由關(guān)系R和s得到關(guān)系T的操作是( )。
A.自然連接
B.交
C.除
D.并
30、下面描述中,不屬于軟件危機(jī)表現(xiàn)的是( )。
A.軟件過程不規(guī)范
B.軟件開發(fā)生產(chǎn)率低
C.軟件質(zhì)量難以控制
D.軟件成本不斷提高
31、有如下程序:
#inClude using namespaCe std: Class CD{
publiC:
~CD(){Cout<<’C’:} private:
Char name[80]; };
int main(){
CD a,*b,d[2]; return 0;
執(zhí)行這個程序的輸出結(jié)果是( )。
A.CCCC
B.CCC
C.CC
D.C
32、類的析構(gòu)函數(shù)是在( )調(diào)用的。
A.類創(chuàng)建時
B.創(chuàng)建對象時
C.刪除對象時
D.不自動調(diào)用
33、下列關(guān)于多態(tài)性的描述,錯誤的是( )。
A.c++語言中的多態(tài)性分為編譯時的多態(tài)性和運(yùn)行時的多態(tài)性
B.編譯時的多態(tài)性可通過函數(shù)重載實現(xiàn)
C.運(yùn)行時的多態(tài)性可通過模板和虛函數(shù)實現(xiàn)
D.實現(xiàn)運(yùn)行時多態(tài)性的機(jī)制稱為動態(tài)綁定
34、下列有關(guān)類成員的敘述中,正確的是( )。
A.友元函數(shù)是類的成員函數(shù)
B.類成員的默認(rèn)訪問權(quán)限是私有的
C.類成員函數(shù)必須聲明為公有的
D.類的靜態(tài)數(shù)據(jù)成員不能是常成員
35、有如下程序:
#inClude
using namespaCe std; ClaSS A{
publiC:
A(int i){x=i;}
void dispa( ?。﹞Cout< int x; };
Class B:publiC A{ publiC:
B(int i):A(i+10){x=i;}
vold dispb( ){dispa( ?。籆out< int x; };
int main( ?。﹠ B b(2); b.dispb( );
return 0; }
執(zhí)行這個程序的輸出結(jié)果是( ?。?。
A.10,2
B.12,10
C.12,2
D.2,2
36、執(zhí)行下列語句段后,輸出字符“*”的個數(shù)是( )。
for(int i=50;i>1;i一=2) tout<<’*’:
A.24
B.25
C.26
D.50
37、有如下類定義:
Class AA{ int a: PubliC: AA(int n=O):a(n){}
};
Class BB:publiC AA{ publiC:
BB(int n)
};
其中橫線處的缺失部分是( )。
A.:a(n){}
B.:AA(n){}
C.{a(n);}
D.{a=n;}
38、判斷char型變量c是否為小寫字母的正確表達(dá)式是( )。
A.’a’<=c<=’z’
B.(c>=A.&&(c<=z)
C.(’a’>=C.||(’z’<=C.
D.(c>=’a’)&&(c<=,z,)
39、決定c++語言中函數(shù)的返回值類型的是( )。
A.return語句中的表達(dá)式類型
B.調(diào)用該函數(shù)時系統(tǒng)隨機(jī)產(chǎn)生的類型
C.調(diào)用該函數(shù)時的主調(diào)用函數(shù)類型
D.在定義該函數(shù)時所指定的數(shù)據(jù)類型
40、設(shè)int a=1,b=2;,則(a++)+b和a+++b這兩個表達(dá)式的值分別為( )。
A.3,3
B.3,4
C.4,3
D.4,4
二、基本操作題(18分)
41、
請使用VC6或使用【答題】菜單打開考生文件夾projl下的工程projl。程序中位于每個“//ERROR****found料****之后的一行語句有錯誤,請加以改正。改正后程序的輸出結(jié)果應(yīng)為:
Name:Smith Age:21 ID:99999 CourseNum:12
Record:970
注意:只修改每個“//ERROR****found****”下的那一行,不要改動程序中的其他內(nèi)容。
#include
using namespace std;
class Studentlnfo
{
protected:
//ERROR********************found****************
char Name;
int Age;
int ID:
int CourseNum;
float Record;
public:
Studentlnfo(char*name,int Age,int ID,int coumeNum,float record);
//ERROR ********************found********************
void~Studentlnfo(){}
float AverageRecord(){
return Record/CourseNum;
}
void show()const{
cout<<”Name:”< <<”CourseNum:”< }
};
//ERROR ******************found**************
StudentInfo StudentInfo(char*Name,int Age,int ID,int CourseNum,float Record)
{
Name=name;
Age=age;
this一>ID=ID:
CourseNum=courseNum:
Record=record;
}
int main()
{
Studentlnfo st(’’Smith”,21,99999,12,970);
st.show();
return 0;
}
1、下列有關(guān)內(nèi)聯(lián)函數(shù)的敘述中,正確的是( )。
A.內(nèi)聯(lián)函數(shù)在調(diào)用時發(fā)生控制轉(zhuǎn)移
B.內(nèi)聯(lián)函數(shù)必須通過關(guān)鍵字inline來定義
C.內(nèi)聯(lián)函數(shù)是通過編譯器來實現(xiàn)的
D.內(nèi)聯(lián)函數(shù)函數(shù)體的最后一條語句必須是return語句
2、語句int*P=&k;定義了指針P,與這個語句等效的語句序列是( )。
A.int* p;P=&k;
B.int * P;P=k;
C.int * p;* P=&k;
D.int * p;* P=k;
3、有如下程序:
#include
using namespace std;
class A
{
public:
A(){cout<<”A”;}
-A(){cout<<”-A”;}
};
class B:public A
{
A*P;
public:
B(){cout<<”B”;P=new A();}
-B(){cout<<”~B”;delete p;}
};
int main()
{
B obj;
return 0;
}
執(zhí)行這個程序的輸出結(jié)果是( )。
A.BAA~A~B~A
B.ABA~B~A~A
C.BAA~B~A~A
D.ABA~A~B~A
4、有如下類定義:
class AA
{
im a:
public:
int getRef()const{return&a;}//①
int getValue()const{return a;}//②
void set(int n)const{a=n;}//③
friend void show(AA aA.const{cout< };
其中四個函數(shù)的定義中正確的是( )。
A.①
B.②
C.③
D.④
5、若要對Data類中重載的加法運(yùn)算符成員函數(shù)進(jìn)行聲明,下列選項中正確的是( )。
A.Data+(DatA.;
B.Data operator+(DatA.;
C.Data+operator(DatA.;
D.operator+(Data,DatA.;
6、有如下數(shù)組聲明:int num[10];,下標(biāo)值引用錯誤的是( )。
A.num[10]
B.num[5]
C.num[3]
D.hum[o]
7、將前綴運(yùn)算符“--”重載為非成員函數(shù),下列原型中能正確用于類中說明的是( ?。?BR> A.DeCr&operator--(int);
B.DeCr operator--(DeCr&,int);
C.friend DeCr&operator--(DeCr&);
D.friend DeCr operator--(DeCr&,int);
8、如果派生類以proteCted方式繼承基類,則原基類的proteCted成員和publiC成員在派生類中的訪問屬性分別是( )。
A.publiC和publiC
B.publiC和proteCted
C.proteCted和publiC
D.proteCted和proteCted
9、在函數(shù)中,可以用aut0、extem、register和static這四個關(guān)鍵字中的一個來說明變量的存儲類型,如果不說明存儲類型,則默認(rèn)的存儲類型是( ?。?BR> A.a(chǎn)uto
B.extern
C.register
D.static
10、下列程序的輸出結(jié)果是( )。
#include
int rain(iltl a,int B.
{
if(a else retum b;
retum 0;
}
void main()
{
eout< }
A.0
B.1
C.2
D.3 11、在黑盒測試方法中,設(shè)計測試用例的主要根據(jù)是( )。
A.程序內(nèi)部邏輯
B.程序外部功能
C.程序數(shù)據(jù)結(jié)構(gòu)
D.程序流程圖
12、在面向?qū)ο蠓椒ㄖ校粚儆凇皩ο蟆被咎攸c(diǎn)的是( ?。?。
A.一致性
B.分類性
C.多態(tài)性
D.標(biāo)識性
13、有以下程序:
#include
void fun(int a,int b,int C.
{ a=456,b=567,c=678;}
void main()
{
int X=10,Y=20,Z=30;
fun(X,Y,z);
aout< }
輸出結(jié)果是( )。
A.30,20,10
B.10,20,30
C.456,567,678
D.678,567,456
14、對類的構(gòu)造函數(shù)和析構(gòu)函數(shù)描述正確的是( )。
A.構(gòu)造函數(shù)可以重載,析構(gòu)函數(shù)不能重載
B.構(gòu)造函數(shù)不能重載,析構(gòu)函數(shù)可以重載
C.構(gòu)造函數(shù)可以重載,析構(gòu)函數(shù)也可以重載
D.構(gòu)造函數(shù)不能重載,析構(gòu)函數(shù)也不能重裁
15、通過運(yùn)算符重載,可以改變運(yùn)算符原有的( ?。?。
A.操作數(shù)類型
B.操作數(shù)個數(shù)
C.優(yōu)先級
D.結(jié)合性
16、下列關(guān)于c++流的描述中,錯誤的是( )。
A.cout>>’A’表達(dá)式可輸出字符A
B.eof()函數(shù)可以檢測是否到達(dá)文件尾
C.對磁盤文件進(jìn)行流操作時,必須包含頭文件fstream
D.以ios_base::0ut模式打開的文件不存在時,將自動建立一個新文件
17、耦合性和內(nèi)聚性是對模塊獨(dú)立性度量的兩個標(biāo)準(zhǔn)。下列敘述中正確的是( ?。?。
A.提高耦合性降低內(nèi)聚性有利于提高模塊的獨(dú)立性
B.降低耦合性提高內(nèi)聚性有利于提高模塊的獨(dú)立性
C.耦合性是指一個模塊內(nèi)部各個元素間彼此結(jié)合的緊密程度
D.內(nèi)聚性是指模塊間互相連接的緊密程度
18、若有如下類聲明:
Class MyClass{ publiC:
MyClass( ?。﹞Cout<<1;} };
執(zhí)行下列語句
MyClass a,b[2],*p[2]; 程序的輸出結(jié)果是( ?。?BR> A.11
B.111
C.1111
D.11111
19、下列函數(shù)模板的定義中,合法的是( )。
A.templateT abs(T X){return x<07-x:X;}
B.template ClassT abs(T x){return x<07-X:x;}
C.template Tabs(T X){return x<07-x:X;}
D.template T abs(T x){return X<0?-X:x;}
20、有如下程序:
#include
using namespace std;
class Base{
int x:
public:
Base(int n=0):x(n){cout< int getX()const{return x;}
};
cjass Derived:public Base{
int Y:.
J;;Iublic:
Derived(int m,int n):y(m),Base(n){cout< Derived(int m):Y(m){cout< };
int main()
{
Derived dl(3),d2(5,7);
retum 0;
}
執(zhí)行這個程序的輸出結(jié)果是( )。
A.375
B.357
C.0375
D.0557
21、關(guān)于在調(diào)用模板函數(shù)時模板實參的使用,下列表述中正確的是( )。
A.對于虛擬類型參數(shù)所對應(yīng)的模板實參,如果能從模板函數(shù)的實參中獲得相同的信息,則都可以省略
B.對于虛擬類型參數(shù)所對應(yīng)的模板實參,如果它們是參數(shù)表中的最后的若干個參數(shù),則都可以省略
C.對于虛擬類型參數(shù)所對應(yīng)的模板實參,若能夠省略則必須省略
D.對于常規(guī)參數(shù)所對應(yīng)的模板實參,任何情況下都不能省略
22、有如下程序段:
int i=0,J=1;
int&r=i;//①
r=j;//②
int*P=&i;//⑧
*P=&r;//④
其中會產(chǎn)生編譯錯誤的語句是( ?。?。
A.④
B.③
C.②
D.①
23、有如下程序:
#include
using namespace std;
class Obj{
static int i;
public:
Obj(){i++;}
一Obj(){i一一;}
static int getVal(){return i;}
};
int Obj::i=0:
void f(){Obj ob2;cout< int main(){
Obj obl;
f();
Obj}ob3=new Obj;cout
}
執(zhí)行這個程序的輸出結(jié)果是( ?。?BR> A.232
B.231
C.222
D.221
24、有如下類定義:
class MyBase{
int k;
public:
MyBase(int n=O):k(n)}}
int value()eonst{return k;}
};
class MyDerived:MyBase{
intj;
public:
MyDerived(int i):j(i)}}
int getK()const{return k;}
int getJ()const{return j;}
};
編譯時發(fā)現(xiàn)有一處語法錯誤,對這個錯誤最準(zhǔn)確的描述是( ?。?。
A.函數(shù)9etK試圖訪問基類的私有成員變量k
B.在類MyDerived的定義中,基類名MyBase前缺少關(guān)鍵字public、protected或private
C.類MyDerived缺少一個無參的構(gòu)造函數(shù)
D.類MyDerived的構(gòu)造函數(shù)沒有對基類數(shù)據(jù)成員k進(jìn)行初始化
25、下列關(guān)于虛基類的描述,錯誤的是( )。
A.設(shè)置虛基類的目的是為了消除二義性
B.虛基類的構(gòu)造函數(shù)在非虛基類之后調(diào)用
C.若同一層中包含多個虛基類,這些虛基類的構(gòu)造函數(shù)按它們說明的次序調(diào)用
D.若虛基類由非虛基類派生而來,則仍然先調(diào)用基類構(gòu)造函數(shù),再調(diào)用派生類的構(gòu)造函數(shù)
26、在長度為n的有序線性表中進(jìn)行二分查找,最壞情況下需要比較的次數(shù)是( ?。?。
A.O(n)
B.O(n2)
C.O(1092n)
D.0(n1092n)
27、在軟件開發(fā)中,需求分析階段可以使用的工具是( )。
A.N—s圖
B.DFD圖
C.PAD圖
D.程序流程圖
28、有如下類聲明:
class Base{
protected:
int amount;
public:
Base(int n=0):amount(n){}
int getAmount()const{retum amount;}
};
class Derived:public Base{
protected:
int value;
public:
Derived(int m,int n):value(m),Base(n){}
int getData()const{return value+amount;}
}:
已知x是一個Derived對象,則下列表達(dá)式中正確的是( )。
A.x.value+X.getAmount()
B.x.getData()一x.getAmount()
C.x.getData()一x.a(chǎn)mount
D.x.value+X.a(chǎn)mount
29、有三個關(guān)系R、S和T如下:

則由關(guān)系R和s得到關(guān)系T的操作是( )。
A.自然連接
B.交
C.除
D.并
30、下面描述中,不屬于軟件危機(jī)表現(xiàn)的是( )。
A.軟件過程不規(guī)范
B.軟件開發(fā)生產(chǎn)率低
C.軟件質(zhì)量難以控制
D.軟件成本不斷提高
31、有如下程序:
#inClude using namespaCe std: Class CD{
publiC:
~CD(){Cout<<’C’:} private:
Char name[80]; };
int main(){
CD a,*b,d[2]; return 0;
執(zhí)行這個程序的輸出結(jié)果是( )。
A.CCCC
B.CCC
C.CC
D.C
32、類的析構(gòu)函數(shù)是在( )調(diào)用的。
A.類創(chuàng)建時
B.創(chuàng)建對象時
C.刪除對象時
D.不自動調(diào)用
33、下列關(guān)于多態(tài)性的描述,錯誤的是( )。
A.c++語言中的多態(tài)性分為編譯時的多態(tài)性和運(yùn)行時的多態(tài)性
B.編譯時的多態(tài)性可通過函數(shù)重載實現(xiàn)
C.運(yùn)行時的多態(tài)性可通過模板和虛函數(shù)實現(xiàn)
D.實現(xiàn)運(yùn)行時多態(tài)性的機(jī)制稱為動態(tài)綁定
34、下列有關(guān)類成員的敘述中,正確的是( )。
A.友元函數(shù)是類的成員函數(shù)
B.類成員的默認(rèn)訪問權(quán)限是私有的
C.類成員函數(shù)必須聲明為公有的
D.類的靜態(tài)數(shù)據(jù)成員不能是常成員
35、有如下程序:
#inClude
using namespaCe std; ClaSS A{
publiC:
A(int i){x=i;}
void dispa( ?。﹞Cout< int x; };
Class B:publiC A{ publiC:
B(int i):A(i+10){x=i;}
vold dispb( ){dispa( ?。籆out< int x; };
int main( ?。﹠ B b(2); b.dispb( );
return 0; }
執(zhí)行這個程序的輸出結(jié)果是( ?。?。
A.10,2
B.12,10
C.12,2
D.2,2
36、執(zhí)行下列語句段后,輸出字符“*”的個數(shù)是( )。
for(int i=50;i>1;i一=2) tout<<’*’:
A.24
B.25
C.26
D.50
37、有如下類定義:
Class AA{ int a: PubliC: AA(int n=O):a(n){}
};
Class BB:publiC AA{ publiC:
BB(int n)
};
其中橫線處的缺失部分是( )。
A.:a(n){}
B.:AA(n){}
C.{a(n);}
D.{a=n;}
38、判斷char型變量c是否為小寫字母的正確表達(dá)式是( )。
A.’a’<=c<=’z’
B.(c>=A.&&(c<=z)
C.(’a’>=C.||(’z’<=C.
D.(c>=’a’)&&(c<=,z,)
39、決定c++語言中函數(shù)的返回值類型的是( )。
A.return語句中的表達(dá)式類型
B.調(diào)用該函數(shù)時系統(tǒng)隨機(jī)產(chǎn)生的類型
C.調(diào)用該函數(shù)時的主調(diào)用函數(shù)類型
D.在定義該函數(shù)時所指定的數(shù)據(jù)類型
40、設(shè)int a=1,b=2;,則(a++)+b和a+++b這兩個表達(dá)式的值分別為( )。
A.3,3
B.3,4
C.4,3
D.4,4
二、基本操作題(18分)
41、
請使用VC6或使用【答題】菜單打開考生文件夾projl下的工程projl。程序中位于每個“//ERROR****found料****之后的一行語句有錯誤,請加以改正。改正后程序的輸出結(jié)果應(yīng)為:
Name:Smith Age:21 ID:99999 CourseNum:12
Record:970
注意:只修改每個“//ERROR****found****”下的那一行,不要改動程序中的其他內(nèi)容。
#include
using namespace std;
class Studentlnfo
{
protected:
//ERROR********************found****************
char Name;
int Age;
int ID:
int CourseNum;
float Record;
public:
Studentlnfo(char*name,int Age,int ID,int coumeNum,float record);
//ERROR ********************found********************
void~Studentlnfo(){}
float AverageRecord(){
return Record/CourseNum;
}
void show()const{
cout<<”Name:”< <<”CourseNum:”< }
};
//ERROR ******************found**************
StudentInfo StudentInfo(char*Name,int Age,int ID,int CourseNum,float Record)
{
Name=name;
Age=age;
this一>ID=ID:
CourseNum=courseNum:
Record=record;
}
int main()
{
Studentlnfo st(’’Smith”,21,99999,12,970);
st.show();
return 0;
}