C++选择题 填空题 判断题(3)

2019-08-30 13:11

D、派生类是基类的子类型;

三、改错题(程序的每一行前加上了行号,可以通过说明行号来指出错误位置)(共20分)。 1、指出下面程序中的错误并改正。

Line1: class MyClass

Line2: {

Line3: public:

Line4: MyClass(int i) {member=i;}

Line5: void SetMember(int m) {member=m;} Line6: int GetMember() const {return member;} Line7: private:

Line8: int member; Line9: };

Line10: void main()

Line11: {

Line12: MyClass obj1; Line13: MyClass obj2(3); Line14: obj1.member=5;

Line15: MyClass.SetMember(10); Line16: }

2、指出下面程序中的错误,并说明错误原因。

Line1: class A Line2: {

Line3: public:

Line4: A() {func();}

Line5: virtual void func()=0;

Line6: };

3、指出下面程序中的错误,说明错误原因并改正。

Line1: class Test

Line2: {

Line3: public:

Line4: Test(int i) Line5: {

Line6: ptr=new int(i); Line7: }

Line8: ~Test()

Line9: {

Line10: delete ptr; Line11: }

Line12: private:

Line13: int *ptr; Line14: };

Line15: void main()

Line16: {

Line17: Test obj1(1);

Line18: Test obj2(obj1); Line19: }

四、简答题(共30分)。

1、在下面给定的继承结构中,回答下列提出的问题。

class One {

public:

int a;

void b();

void c(float); };

class Two {

public: void b(); void c(); private: int a; };

class Three : public One,public Two {

public:

void b(); };

void main() {

Three obj;

obj.a=1; ----------------S1 obj.b(); ----------------S2 obj.c(10); ----------------S3 }

(1)、什么是多继承中的支配原则?

(2)、主函数中对各条语句(S1, S2, S3)的访问是否具有二义性?为什么? 2、写出下面程序的输出结果。

#include int Div(int x,int y) {

if(y==0)

throw y; return x/y; }

void main() {

try

{

cout<<\ cout<<\ cout<<\ }

catch(int) {

cout<<\

}

cout<<\}

3、写出下面程序的输出结果。 #include class A {

public:

A(char i) {cout<<\ ~A() {cout<<\};

class B : virtual public A {

public:

B(char i,char j) : A(i) {cout<<\ ~B() {cout<<\private: char b; };

class C : virtual public A {

public:

C(char i,char j) : A(i) {cout<<\ ~C() {cout<<\};

class D : public B,public C {

public:

D(char i,char j,char k,char l,char m,char n) : C(k,l), B(i,j),A(i),aa(m) {cout<<\ ~D() {cout<<\private: A aa; };

void main() {

D obj('a','b','c','d','e','f');

}

五、根据给定的程序执行结果,将下列程序补充完整。(10分)。

#include class Base {

public:

Base(int i) {b=i;} (1) protected: int b;

};

class Derive1:public Base {

public:

(2) void Print() {

cout<<\ } };

class Derive2:public Base {

(3) };

void fun( (4) ) {

obj->Print(); }

void main() {

(5) fun(d1); fun(d2); }

程序的执行结果如下:

Derive1's Print() called. Derive2's Print() called.

模拟试题三

一、填空题(每空1分,共20分)。

1、所有的面向对象程序设计语言,都支持三个共同的本质特征 、 、 。

2、为了解决程序中函数调用的效率问题,引入了 ,定义时需在函数前面加上 说明;为了提高程序

的运行效率,引入了 ,定义时需在函数前面加上 说明。 3、在类的定义当中,缺省的成员是 成员。 4、请填写下列表格(填写派生类中成员的类型)。

public 派生类继承方式 基类中成员类型 public private protected 不可见 不可见 不可见 private protected 5、利用成员函数对二元运算符进行重载时,其左操作数为 ,右操作数为 。 6、设置虚基类的目的是 ,可通过 标识虚基类。

7、动态联编是在 的支持下实现的,它通过 来调用该函数操作。 二、选择题(每题2分,共20分)。

1、下列关于类型转换的描述中,( )是错误的。

A、在不同类型操作数组成的表达式中,其表达式类型一定是最高类型double型; B、逗号表达式的类型是最后一个表达式的类型;

C、赋值表达式的类型是左值的类型; D、由低向高的类型转换是保值映射。 2、( )不是构造函数的特征。 A、构造函数的函数名与类名相同;

B、构造函数可以重载;

C、构造函数可以设置缺省参数; D、构造函数必须指定类型说明。

3、在C++中,关于下列设置参数默认值的描述中,( )是正确的。 A、不允许设置参数的默认值;

B、设置参数默认值只能在定义函数时设置;

C、设置参数默认值时,应该是先设置右边的,再设置左边的; D、设置参数默认值时,应该全部参数都设置。 4、关于new运算符的下列描述中,( )是错误的。

A、它可以用来动态创建对象和对象数组;

B、使用它创建的对象或对象数组可以使用运算符delete删除; C、使用它创建对象时要调用构造函数;

D、使用它创建对象数组时必须指定初始值。

5、重载函数在调用时选择的依据中,( )是错误的。 A、参数个数; B、参数的类型; C、函数名字; D、函数的类型。

6、下列描述中,( )是抽象类的特性。 A、可以说明虚函数; B、可以进行构造函数重载; C、可以定义友元函数; D、不能说明其对象。

7、( )是析构函数的特征。 A、一个类中只能定义一个析构函数;

B、析构函数名与类名不同;

C、析构函数的定义只能在类体内; D、析构函数可以有一个或多个参数;

8、关于delete运算符的下列描述中,( )是错误的。 A、它必须用于new返回的指针; B、它也适用于空指针;

C、对一个指针可以使用多次该运算符;

D、指针名前只有一对方括号符,不管所删除数组的维数。 9、const int *p说明不能修改( )。 A、p指针;

B、p指针指向的变量; C、p指针指向的数据类型; D、上述A、B、C三者。

10、关于子类型的描述中,( )是错误的。 A、子类型就是指派生类是基类的子类型;

B、一种类型当它至少提供了另一种类型的行为,则这种类型是另一种类型的子类型; C、在公有继承下,派生类是基类的子类型; D、子类型关系是不可逆的。 三、改错题(共15分)。


C++选择题 填空题 判断题(3).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:数据处理-单因素方差分析

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

马上注册会员

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