return 0;
}
運行時的輸出結果是
A)5 B)7 C)9 D)12
以上是考試頻道小編為你收集整理2011年3月全國計算機二級C++考試真題與答案。
(24)若要對類BigNumber中重載的類型轉換運算符long進行聲明,下列選項中正確的是
A)operator long() const;
B)operator long(BigNumber);
C)long operator long() const;
D)long operator long(BigNumber);
(25)有如下函數模板定義:
template
T1 FUN(T2 n){return n*5.0;}
若要求以int型數據9作為函數實參調用該模板,并返回一個double型數據,則該調用應表示為
A)FUN(9)
B)FUN<9>
C)FUN(9)
D)FUN<9>(double)
(26)下列語句都是程序運行時的第1條輸出語句,其中一條語句的輸出效果與其他三條語句不同,該語句是
A)cout< B)cout<
C)cout<
(27)下列關于析構函數的描述中,錯誤的是
A)析構函數可以重載 B)析構函數由系統自動調用 C)每個對象的析構函數只被調用一次 D)每個類都有析構函數
(28)下列關于構造函數的描述中,錯誤的是
A)構造函數名與類名相同 B)構造函數可以有返回值 C)構造函數可以重載 D)每個類都有構造函數
(29)若PAT是一個類,則程序運行時,語句"PAT (*ad)[3];"調用PAT的構造函數的次數是
A)0 B)1 C)2 D)3
(30)下列描述中,錯誤的是
A)公有繼承時基類中的公有成員在派生類中仍是公有成員
B)公有繼承時基類中的保護成員在派生類中仍是保護成員
C)保護繼承時基類中的公有成員在派生類中仍是公有成員
D)保護繼承時基類中的保護成員在派生類中仍是保護成員
(31)生成派生類對象時,派生類構造函數調用基類構造函數的條件是
A)無需任何條件 B)基類中顯式定義了構造函數 C)派生類中顯式定義了構造函數 D)派生類構造函數明確調用了基類構造函數
(32)下列關于派生類和基類的描述中,正確的是
A)派生類成員函數只能訪問基類的公有成員
B)派生類成員函數只能訪問基類的公有和保護成員
C)派生類成員函數可以訪問基類的所有成員
D)派生類對基類的默認繼承方式是公有繼承
(33)有如下類模板定義:
template
class BigNumber{
long n;
public:
BigNumber(T i):n(i){}
BigNumber operator +(BigNumber b){
return BigNumber(n+b.n);
}
};
己知b1、b2是BigNumber的兩個對象,則下列表達式中錯誤的是
A)bl+b2 B)b1+3 C)3+b1 D)3+3
(34)下列關于文件流的描述中,正確的是
A)文件流只能完成針對磁盤文件的輸入輸出
B)建立一個文件流對象時,必須同時打開一個文件
C)若輸入流要打開的文件不存在,將建立一個新文件
D)若輸出流要打開的文件不存在,將建立一個新文件
(35)有如下程序:
#include
using namespace std;
class Pair{
int m,n;
public:
Pair(int j,int k):m(j),n(k){}
int get() {return m;}
int get() const {return m+n;}
};
int main(){
Pair a(3,5);
const Pair b(3,5);
cout<
return 0;
}
運行時的輸出結果是
A)33 B)38 C)83 D)88
二、填空題
(1)有序線性表能進行二分查找的前提是該線性表必須是 【1】存儲的。
(2)一棵二叉樹的中序遍歷結果為DBEAFC,前序遍歷結果為ABDECF,則后序遍歷結果為 【2】 。
(3)對軟件設計的最小單位(模塊或程序單元)進行的測試通常稱為 【3】 測試。
(4)實體完整性約束要求關系數據庫中元組的 【4】屬性值不能為空。
(5)在關系A(S,SN,D)和關系B(D,CN,NM)中,A的主關鍵字是S,B的主關鍵字是D,則稱 【5】是關系A的外碼。
6)若有定義語句"int x=10,y=20,z=20;",則表達式x>z&&y==z的值為【6】 。
(7)有如下語句序列:
int x=-10;while(++x){ }
運行時while循環體的執行次數為 【7】 。
(8)有如下語句序列:
int arr[2][2]={{9,8},{7,6}};
int *p=arr[0]+1; cout<<*p< 運行時的輸出結果是 【8】 。
(9)函數fun的功能是將一個數字字符串轉換為一個整數,請將函數補充完整。
int fun(char *str){
int num=0;
while(*str){
num*=10;
num+= 【9】 ;
str++;
}
return num;
}
(10)若要將函數"void FriFun();"聲明為類MyClass的友元函數,則應在類MyClass的定義中加入語句 【10】 。
(11)下列程序的輸出結果為012,請根據注釋將橫線處的缺失部分補充完整。
#include
using namespace std;
class Test{
public:
Test(int a) {data=a;}
~Test() {}
void print(){cout<
private:
int data;
};
int main(){
Test t[3]={ 【11】 };//對有3個元素的Test類對象數組t初始化
for(int i=0;i<3;i++) t[i].print();
return 0;
}
(12)請在橫線處填寫派生類Derived的繼承方式,使得程序的輸出結果為Base。
#include
using namespace std;
class Base{
public:
void print(){cout<<"Base";}
};
class Derived: 【12】 Base{};
int main(){
Derived d;
d.print();
return 0;
}
(13)下列程序的輸出結果為1 2.3 2 4.6,請將橫線處的缺失部分補充完整。
#include
using namespace std;
class Base{
public:
Base(int a):idata(a){}
void print(){cout<
private:
int idata;
};
class Derived:public Base{
public:
Derived(int a,double b): 【13】 ,ddata(b){}
void print(){Base::print();cout<
private:
double ddata;
};
int main(){
Derived d1(1,2.3),d2(2,4.6);
d1.print();
d2.print();
return 0;
}
(14)下列程序的輸出結果為-5/8 -3/4,請將橫線處的缺失部分補充完整。
#include
using namespace std;
class Fraction{ //"分數"類
public:
Fraction(double a,double b):num(a),den(b){}
~Fraction(){}
//重載取負運算符"-",返回一個分數對象,其分子是原來分子的相反數。
Fraction operator -(){
【14】
return f;
}
void print(){ cout<<'/'<
private:
double num; //分子
double den; //分母
};
int main(){
Fraction f1(5,8),f2(3,4);
(-f1).print();(-f2).print();
return 0;
}
(15)函數Min的功能是返回具有n個元素的數組array中的最小值。請將橫線處的缺失部分補充完整,使得程序的輸出結果為1.24。
#include
using namespace std;
template
T Min(T* array,int n){
T min=array[0];
for(int i=1;i
if(array[i]
return min;
}
int main(){
double arr[8]={5.2,48.45,41.01,42,51.2,1.24,14.12,42};
cout<< 【15】 ;
return 0;
}
以上是考試頻道小編為你收集整理2011年3月全國計算機二級C++考試真題與答案。
參考答案:
(1)A (2)B (3)D (4)D (5)B
(6)A (7)C (8)D (9)A (10)B
(11)A (12)A (13)B (14)B (15)D
(16)D (17)C (18)C (19)C
(20)D (21)A (22)C (23)D
(24)A (25)C (26)B (27)A
(28)B (29)A (30)C (31)A
(32)B (33)C (34)C (35)B
二:填空
(1)順序 (2)DEBFCA (3)單元
(4)主鍵 (5)D
(6)0 (7)9 (8)8 (9)num*10+*str
(10)friend void FriFun(MyClass &);
(11)Test(0),Test(1),Test(2)
(12)public
(13)Base(a)
(14)Fraction f=Fraction(-num,den);
(15)Min(arr,8)