模拟试题二 - 答案

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

《C++程序设计》模拟试题(二)

一、选择题(本大题共10小题,每小题2分,共20分)

1.下列关于析构函数描述正确的是( D)。

A.可以重载B.函数体中必须有delete语句

C.返回类型是void类型D.不能指定返回类型

2.下面有关重载函数的说法中正确的是( C)。

A.重载函数必须具有不同的返回值类型

B.重载函数形参个数必须不同

C.重载函数必须有不同的形参列表

D.重载函数名可以不同

3.下列关于单目运算符++、--的叙述中正确的是( D)。

A.它们的运算对象可以是任何变量和常量

B.它们的运算对象可以是char型变量和int型变量,但不能是float型变量

C.它们的运算对象可以是int型变量,但不能是double型变量和float型变量

D.它们的运算对象可以是char型变量、int型变量和float型变量

4.关于异常处理,下列说法中错误的是( B)。

A.在C++程序中,由throw表达式抛出异常,throw抛出的可以是任何类型的数据

B.在一个try-catch结构中,只能有一个try语句块和一个catch语句块

C.当抛出异常后,系统会寻找匹配的catch语句,转到离出现异常最近的try-catch结构去处理

D.当某条语句抛出异常时,跟在其后的语句将被跳过转到catch语句处,此时在try 块中抛出异常前创建的对象将被自动释放

5.对于公有继承,基类中的私有成员在派生类中将( A)。

A.仍然是基类的私有成员

B.成为派生类的私有成员

C.可以被派生类的成员函数直接访问

D.可以被派生类的对象直接访问

6.下面关于抽象类的说法中错误的是( C)。

A.抽象类是包含有纯虚函数的类

B.抽象类是一种特殊的类

C.抽象类可以定义自己的对象

D.抽象类可以派生新类

7.假定一条定义语句为“int a[10], x, *pa=a;”,若要把数组a中下标为3的元素值赋给x,则不正确的语句为( D)。

A.x=pa[3]; B.x=*(a+3);

C.x=a[3]; D.x=*pa+3;

8.若类X是类Y的友元类,则下列说法中正确的是( A)。

A.类X的所有成员都可以访问类Y的私有成员

B.类Y的所有成员都可以访问类X的私有成员

C.只有类Y的公有成员才能访问类X的私有成员

D.只有类X的公有成员才能访问类Y的私有成员

9.派生类的成员函数可以直接访问基类的( B)成员。

A.所有

B.公有和保护

C.保护和私有

D.公有和私有

10.C++中函数返回值的类型是由( B)决定的。

A.return语句中表达式的类型B.该函数定义时的类型

C.调用函数时的调用语句D.系统根据结果

二、填空题(本大题共10小题,每小题2分,共20分)

1.在C++程序中使用的cin标识符是系统类库中定义的istream类中的一个对象。

2.假定一个二维数组的定义语句为“int a[3][4]={{3,4},{2,8,6}};”,则元素a[2][1]的值为0。

3.在一个类的定义中,包含有数据成员和成员函数的定义。

4.C++的基类指针可以访问派生类对象,但不能访问派生类对象的private成员。

5.假定A为一个类,int a()为该类的一个成员函数,若该成员函数在类定义体外定义,则函数头为int AA::a()。

6.执行语句“char a[10]={"abcd"},*p; p=a;”后,*(p+4)的值是'/0'。

7.假定变量x定义为“int x=5;”,要将rx定义为x的引用(别名),应使用的语句为int &rx=x;。

8.假定指针变量p定义为“int *p=new int;”,要释放p所指向的动态内存,应使用的语句是delete p;。

9.有如下类声明:

class Foo {int bar; };

则Foo类的成员bar的访问属性是private。

10.有二维字符数组“char s[4][6]={ "zhang","gao","tang","wang"};”,执行程序“cout<

三、阅读下列程序,写出执行结果(本大题共5小题,每小题4分,共20分)

1.

#include

class Sample

{

int x,y;

public:

Sample(){x=y=0;}

Sample(int a,int b){x=a;y=b;}

void disp()

{

cout<<"x="<

}

};

void main()

{

Sample s(2,3), *p=&s;

p->disp();

}

运行结果:

x=2,y=3

2.

#include

class Sample

int x;

public:

Sample(){};

Sample(int a){x=a;}

Sample(Sample &a){x=a.x+1;}

void disp(){cout<<"x="<

void main()

{

Sample s1(2),s2(s1);

s1.disp();

s2.disp();

}

运行结果:

x=2

x=3

3.

#include

class Sample

{

char c1,c2;

public:

Sample(char a){c2=(c1=a)-32;}

void disp()

{

cout<

}

};

void main()

相关文档
最新文档