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)