06年4月计算机等级考试二级笔试C++下
2007-01-10 10:04:44 来源:来考吧 标签:西班牙语
(30)有如下程序:
#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; }
执行这个程序的输出结果是
A)BAA~A~B~A B)ABA~B~A~A C)BAA~B~A~A D)ABA~A~B~A
(31)有如下程序:
#include using namespace std;
class Base
{ private: void funl() const{cout<<"funl";}
protected: void fun2() const{cout<<"fun2";}
public: void
fun3() const{cout<<"fun3";} };
class Derived:protected
Base { public: void fun4() const{cout<<"fun4";} };
int main() { Derived obj; obj.funl();
//① obj.fun2(); //② obj.fun3(); //③ obj.fun4(); //④ return 0; }
其中有语法错误的语句是
A)①②③④ B)①②③ C)②③④ D)①④
(32)有如下程序: #include using namespace std;
class Base
{ public: void funl(){cout<<"Basen";}
virtual void fun2()
{cout<<"Basen";} };
class Derived:public Base
{ public: void funl(){cout<<"Derivedn";}
void fun2(){cout<<"Derivedn";} };
void f(Base &b){b.funl();b.fun2();}&, lt;, /P>
int main()
{ Derived obj; f(obj); return 0; }
执行这个程序的输出结果是
A)Base B)Base C)Derived D)Derived Base Derived Base Derived
(33)有如下程序:
#include using namespace std;
class Complex
{ double re, im; public: Complex(double r, double i):re(r), im(i){} double real() const{return re;}
double image() const{return im;}
Complex& operator +=(Complex a)
{ re += a.re; im += a.im; return *this; } };
ostream &operator<<(ostream& s,const Complex& z)
{ return s<<'('< }
int main()
{ Complex x(1, -2), y(2, 3); cout<<(x += y)< return 0; }
执行这个程序的输出结果是
A)(1, -2) B)(2, 3) C)(3, 5) D)(3, 1)
(34)有如下程序:
#include #include using namespace std;
int main()
{ cout.fill('*'); cout< return 0; }
执行这个程序的输出结果是
A)123*OK B)123*OK** C)*123OK D)*123**OK
(35)有如下类声明:
class SAMPLE
{ int n; public: SAMPLE (int i = 0): n(i){}
void setValue(int n0); };
下列关于 setValue成员函数的实现中,正确的是
A)SAMPLE::setValue(int n0){n = n0;}
B)void SAMPLE::setValue(int n0){n = n0;}
C)void setValue(int n0){n = n0;}
D)setValue(int n0){n = n0;}
二、填空题 (每空2分,共30分)
请将每一个空的正确答案写在答题卡【 1】~【15】序号的横线上,答在试卷上不得分。
(1)对长度为10的线性表进行冒泡排序,最坏情况下需要比较的次数为【1】____。
(2)在面向对象方法中,【2】____描述的是具有相似属性与操作的一组对象。
(3)在关系模型中,把数据看成是二维表,每一个二维表称为一个【3】____。
(4)程序测试分为静态分析和动态测试。其中【4】____是指不执行程序,而只是对程序 文本进行检查,通过阅读和讨论,分析和发现程序中的错误。
(5)数据独立性分为逻辑独立性与物理独立性。当数据的存储结构改变时,其逻辑结构 可以不变,因此,基于逻辑结构的应用程序不必修改,称为【5】____。
(6)有一种只在循环语句或switch语句中使用的流程控制语句,表示该语句的关键字是【6】____。
(7)程序中有如下语句
for(int i = 0; i<5; i++)cout<<
*(p + i)<<",";
能够依次输出 int型一维数组DATA的前5个元素。由此可知,变量p的定义及初始 化语句是【7】____。
(8)若下面程序运行时输出结果为1, A, 10.1 2, B, 3.5 请将程序补充完整。
#include using namespace std;
int main()
{ void test(int, char,double 【8】____);
test(1,'A',10.1); test(2,'B'); return 0; }
void test(int a, char b, double c)
{ cout< }
(9)有如下类声明:
class MyClass
{ int i; private: int j;
protected:int k; public:int m, n; };
其中,私有成员的数量为【9】____。
(10)有如下程序:
#include using namespace std;
class Con
{ char ID; public: Con():ID('A'){cout<<1;}
Con(char ID):ID(ID){cout<<2;} Con(Con& c):ID(c.getID()){cout<<3;}
char getID() const{return ID;} };
void show(Con c){cout< int main() { Con c1; show(c1);
Con c2('B'); show(c2); return 0; }
执行上面程序的输出是【10】____。
(11)有如下程序:
#include using namespace std;
class ONE { public: virtual void f(){cout<<"l";} };
class TWO:public ONE { public: TWO(){cout<<"2";} }; class THREE:public TWO
{ public: virtual void f(){TWO::f(); cout<<"3";} };
int main()
{ ONE aa, *p; TWO bb; THREE cc; p = &cc; p->f(); return 0; }
执行上面程序的输出是【11】____。
(12)有如下程序:
#include using namespace std;
class PARENT
{ public: PARENT(){cout<<"PARENT";} };
class SON:public PARENT
{ public: SON(){cout<<"SON";} };
int main()
{ SON son; PARENT *p; p = &son; return 0; }
执行上面程序的输出是【12】____。
(13)若以非成员函数形式,为类Bounce重载“!”运算符,其操作结果为一bool型数据,则该运算符重载函数的原型是【13】____。
(14)下面是复数类complex的定义,其中重载的运算符“+”的功能是返回一个新的复 数对象,其实部等于两个操作对象实部之和,其虚部等于两个操作对象虚部之和;请补充完整:
class complex
{ double real; //实部 double imag; //虚部 public: complex(double r,double i):
real(r),imag(i)
{} complex operator+(complex a) { return complex(【14】____); } };
(15)已知一个函数模板定义为
template T1, typename T2>
T1 FUN(T2 n) {return n * 5.0;}
若要求以 int型数据7为函数实参调用该模板函数,并返回一个double型数据,则该 调用应表示为【15】____。
[上一页]
#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; }
执行这个程序的输出结果是
A)BAA~A~B~A B)ABA~B~A~A C)BAA~B~A~A D)ABA~A~B~A
(31)有如下程序:
#include using namespace std;
class Base
{ private: void funl() const{cout<<"funl";}
protected: void fun2() const{cout<<"fun2";}
public: void
fun3() const{cout<<"fun3";} };
class Derived:protected
Base { public: void fun4() const{cout<<"fun4";} };
int main() { Derived obj; obj.funl();
//① obj.fun2(); //② obj.fun3(); //③ obj.fun4(); //④ return 0; }
其中有语法错误的语句是
A)①②③④ B)①②③ C)②③④ D)①④
(32)有如下程序: #include using namespace std;
class Base
{ public: void funl(){cout<<"Basen";}
virtual void fun2()
{cout<<"Basen";} };
class Derived:public Base
{ public: void funl(){cout<<"Derivedn";}
void fun2(){cout<<"Derivedn";} };
void f(Base &b){b.funl();b.fun2();}&, lt;, /P>
int main()
{ Derived obj; f(obj); return 0; }
执行这个程序的输出结果是
A)Base B)Base C)Derived D)Derived Base Derived Base Derived
(33)有如下程序:
#include using namespace std;
class Complex
{ double re, im; public: Complex(double r, double i):re(r), im(i){} double real() const{return re;}
double image() const{return im;}
Complex& operator +=(Complex a)
{ re += a.re; im += a.im; return *this; } };
ostream &operator<<(ostream& s,const Complex& z)
{ return s<<'('< }
int main()
{ Complex x(1, -2), y(2, 3); cout<<(x += y)< return 0; }
执行这个程序的输出结果是
A)(1, -2) B)(2, 3) C)(3, 5) D)(3, 1)
(34)有如下程序:
#include #include using namespace std;
int main()
{ cout.fill('*'); cout< return 0; }
执行这个程序的输出结果是
A)123*OK B)123*OK** C)*123OK D)*123**OK
(35)有如下类声明:
class SAMPLE
{ int n; public: SAMPLE (int i = 0): n(i){}
void setValue(int n0); };
下列关于 setValue成员函数的实现中,正确的是
A)SAMPLE::setValue(int n0){n = n0;}
B)void SAMPLE::setValue(int n0){n = n0;}
C)void setValue(int n0){n = n0;}
D)setValue(int n0){n = n0;}
二、填空题 (每空2分,共30分)
请将每一个空的正确答案写在答题卡【 1】~【15】序号的横线上,答在试卷上不得分。
(1)对长度为10的线性表进行冒泡排序,最坏情况下需要比较的次数为【1】____。
(2)在面向对象方法中,【2】____描述的是具有相似属性与操作的一组对象。
(3)在关系模型中,把数据看成是二维表,每一个二维表称为一个【3】____。
(4)程序测试分为静态分析和动态测试。其中【4】____是指不执行程序,而只是对程序 文本进行检查,通过阅读和讨论,分析和发现程序中的错误。
(5)数据独立性分为逻辑独立性与物理独立性。当数据的存储结构改变时,其逻辑结构 可以不变,因此,基于逻辑结构的应用程序不必修改,称为【5】____。
(6)有一种只在循环语句或switch语句中使用的流程控制语句,表示该语句的关键字是【6】____。
(7)程序中有如下语句
for(int i = 0; i<5; i++)cout<<
*(p + i)<<",";
能够依次输出 int型一维数组DATA的前5个元素。由此可知,变量p的定义及初始 化语句是【7】____。
(8)若下面程序运行时输出结果为1, A, 10.1 2, B, 3.5 请将程序补充完整。
#include using namespace std;
int main()
{ void test(int, char,double 【8】____);
test(1,'A',10.1); test(2,'B'); return 0; }
void test(int a, char b, double c)
{ cout< }
(9)有如下类声明:
class MyClass
{ int i; private: int j;
protected:int k; public:int m, n; };
其中,私有成员的数量为【9】____。
(10)有如下程序:
#include using namespace std;
class Con
{ char ID; public: Con():ID('A'){cout<<1;}
Con(char ID):ID(ID){cout<<2;} Con(Con& c):ID(c.getID()){cout<<3;}
char getID() const{return ID;} };
void show(Con c){cout< int main() { Con c1; show(c1);
Con c2('B'); show(c2); return 0; }
执行上面程序的输出是【10】____。
(11)有如下程序:
#include using namespace std;
class ONE { public: virtual void f(){cout<<"l";} };
class TWO:public ONE { public: TWO(){cout<<"2";} }; class THREE:public TWO
{ public: virtual void f(){TWO::f(); cout<<"3";} };
int main()
{ ONE aa, *p; TWO bb; THREE cc; p = &cc; p->f(); return 0; }
执行上面程序的输出是【11】____。
(12)有如下程序:
#include using namespace std;
class PARENT
{ public: PARENT(){cout<<"PARENT";} };
class SON:public PARENT
{ public: SON(){cout<<"SON";} };
int main()
{ SON son; PARENT *p; p = &son; return 0; }
执行上面程序的输出是【12】____。
(13)若以非成员函数形式,为类Bounce重载“!”运算符,其操作结果为一bool型数据,则该运算符重载函数的原型是【13】____。
(14)下面是复数类complex的定义,其中重载的运算符“+”的功能是返回一个新的复 数对象,其实部等于两个操作对象实部之和,其虚部等于两个操作对象虚部之和;请补充完整:
class complex
{ double real; //实部 double imag; //虚部 public: complex(double r,double i):
real(r),imag(i)
{} complex operator+(complex a) { return complex(【14】____); } };
(15)已知一个函数模板定义为
template T1, typename T2>
T1 FUN(T2 n) {return n * 5.0;}
若要求以 int型数据7为函数实参调用该模板函数,并返回一个double型数据,则该 调用应表示为【15】____。
[上一页]





