2007-2013全国计算机二级C++等级考试真题及答案(4)

2019-03-28 08:05

B)构造派生类对象时,虚基类的构造函数只被调用一次 C)声明“class B : virtual public A”说明类B为虚基类 D)建立派生类对象时,首先调用虚基类的构造函数

(24)将运算符重载为类成员函数时,其参数表中没有参数,说明该运算是 B

A)不合法的运算符 B)一元运算符 C)无操作数的运算符 D)二元运算符 (25)有如下模板声明: D

template class A; 下列声明中,与上述声明不等价的是 A)template class A; B)template class A; C)template class A; D)template class A; (26)下列关于C++流的描述中,错误的是 A

A)cout>>'A'表达式可输出字符A B)eof()函数可以检测是否到达文件尾 C)对磁盘文件进行流操作时,必须包含头文件fstream

D)以ios_base::out模式打开的文件不存在时,将自动建立一个新文件 27)有如下程序:C #include using namespace std; class Toy{ public:

Toy(char* _n) { strcpy (name,_n); count++;} ~Toy(){ count--; }

char* GetName(){ return name; } static int getCount(){ return count; } private:

char name[10]; static int count; };

int Toy::count=0; int mail(){

Toy t1(“Snoopy”),t2(“Mickey”),t3(“Barbie”); cout<

运行时的输出结果是

A)1 B)2 C)3 D)运行时出错

(28)有如下程序 B #include using namespace std; class A { public:

A(int i):rl(i) { }

void print( ) {cout<<'e'<

void print( ) const {cout<<'C'<

16

private: int rl; };

int main(){

A al(2); const A a2(4); al.print(); a2.print(); return 0; }

运行时的输出结果是

A)运行时出错 B)E2-C16- C)C4-C16- 29)有如下程序: D #include using namespace std; class Name{

char name[20]; public: Name(){

strcpy(name,\cout<<'?'; }

Name(char *fname)){

strcpy(name,fname); cout<'?'; } };

int main(){

Name names[3]={Name(“张三”),Name(“李四”)}; Return 0; }

运行此程序输出符号?的个数是

A)0 B)1 C)2 D)3 (30)有如下程序: A #include using namespace std; public:

AA(){ cout<<'1'; } };

class BB: public AA{ int k; public:

BB():k(0){ cout<<'2'; } BB(int n):k(n){ cout<<'3';} }

int main(){ BB b(4), c; return 0;

17

D)E2-E4-

}

运行时的输出结果是

A)1312 D)132 C)32 D)141 (31)有如下程序:B #include using namespace std; class C1{ public:

~C1(){ cout<<1; } };

Class C2: public c1{ public:

~c2(){ cout<<2; } };

int main(){ C2 cb2; C1 *cb1; return 0; }

运行时的输出结果是

A)121 B)21 C)211 D)12 (32)有如下程序 D #include using namespace std;

class Publication{ //出版物类 char name[30]; public:

Publication(char *name=\未知名称\strcpy(this->name,name); }

const char * getName()const{ return name; }

virtual const char * getType()const{ return \未知类型\};

class Book: public Publication{ //书类 public:

Book(char *name): Publication(name){}

virtual const char * getType()const{ return \书\};

void showPublication( Publication &p){

cout<

int main(){

Book book(\精彩人生\showPublication(book);

18

return 0; }

运行时的输出结果是

A)未知类型:未知名称 B)未知类型:精彩人生 C)书:未知名称 D)书:精彩人生 (33)下列关于运算符重载的描述中,错误的是 C A)::运算符不能重载

B)类型转换运算符只能作为成员函数重载

C)将运算符作为非成员函数重载时必须定义为友元 D)重载[]运算符应完成“下标访问”操作 (34)有如下程序: B #include #include Using namespace std; int main(){

int s[]={123, 234};

cout<

for(int i=0; i<2; i++) { cout<

运行时的输出结果是

A)123 B)***123 C)***123 D)***123 234 234 ***234 234*** (35)有如下类定义 A class A { char *a; public: A():a(0){}

A(char *aa){ //把aa所指字符串拷贝到a所指向的存储空间 a= ; strcpy(a,aa); strcpy(a,aa); }

~A() {delete []a;} };

横线处应填写的表达式是

A)nes char[strlen(aa)+1] B)char[strlen(aa)+1] C)char[strlen(aa)] D)new char[sizeof(aa)-1] 二、填空题(每空2分,共30分)

(6)若表达式(x+(y-z)*(m/n))+3中的变量均为double型,则表达式值的类型为 【6】 。 (7)有如下循环语句:

For(int i=50; i>20; i-=2) cout<

(8)利用表达式a[i]可以访问int型数组a中下标为i的元素。在执行了语句int *p=a;后,

19

利用指针p也可访问该元素,相应的表达式是 【8】 。

(9)下面是一个递归函数,其功能是使数组中的元素反序排列。请将函数补充完整。 void reverse(int *a, int size){ if(size<2) return; int k=a[0]; a[0]=a[size-1]; a[size-1]=k;

reverse(a+1, 【9】 ); }

(10)类Sample的构造函数将形参data赋值给数据成员data。请将类定义补充完整。 class Sample{ public:

Sample(int data=0); Private: Int data; };

Sample::Sample(int data){ 【10】 }

(11)有如下类定义: class Sample{ public: Sample(); ~Sample(); Private:

Static int date; };

将静态数据成员data初始化为0的语句是 【11】 。 ( 12)“图形”类Shape中定义了纯虚函数CalArea(),“三角形”类Triangle继承了类Shape,请将Triangle类中的CalArea函数补充完整。 class Shape{ public:

virtual int CalArea()=0; }

class Triangle: public Shape{ public:

Triangle{int s, int h}: side(s),height(h) {} 【12】 { return side*height/2 ; } private: int side; int height; };

(13)有如下程序:

20


2007-2013全国计算机二级C++等级考试真题及答案(4).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:非常规油气资源

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: