C++Qt试题 下载本文

内容发布更新时间 : 2024/6/26 9:29:29星期一 下面是文章的全部内容请认真阅读。

精品文档

C++部分:

一、选择题:(共10小题,每题3分)

1.类的构造函数被自动调用执行的情况是在定义该类的( C) A)成员函数时 B)数据成员时 C)对象时

D)友元函数时

2.说明友元函数使用关键字( A ) A)friend B)static C)const D)colatile

3.已知类X中的一个成员函数说明如下: Void Set(x &a); 其中,X&a的含义是(C ) A)指向类X的指针为a B)将a的地址赋给变量Sst

C)a是类X的对象引用,用来做为Set()的形参 D)变量X是a按位相与作为函数Set()的参数

4.关于new运算符的下列描述中( C )是错误的. A) 它可以用来动态创建对象和对象数组

B) 使用它创建对象或对象数组,可以使用运算符DELETE删除 C) 使用它创建对象时要调用构造函数

D) 使用它调用对象数组时不E) 许指F) 定初始值

5.允许访问类的所有对象的私有成员,公有成员和保护成员的是( A ) A)友元函数 B)成员函数 C)内联函数 D)重载函数 6.局部变量可以隐藏全局变量,那么在有同名全局变量和局部变量的情形时,可以用( A ) 提供对全局变量的访问 A) 域运算符 B) 类运算符 C) 重载 D) 引用

7.缺省析构函数的函数体是( C) A)不存在

.

精品文档

B)随机产生的 C)空的

D)无法确定的、

8.通常拷贝构造函数的参数表是( C ) A)某个对象名

B)某个对象的成员名 C)某个对象的引用名 D)某个对象的指针名

9.对定义重载函数的下列要求中,( D) 是错误的 A)要求参数的个数不同

B)要求参数中至少有一个类型不同

C)要求参数个数相同时,参数类型不同 D)要求函数的返回值不同

10.对于多重继承,有( D ) A.一个派生类只能有一个基类 B.一个基类只能产生一个派生类 C.一个基类必须产生多个派生类 D.一个派生类可有多个基类

二、简答题:(共8小题, 总分:30) 1.C和C++有什么不同?(3分)

C是面向过程的语言,c++是面向对象的语言。 C源程序文件扩展名为.c , 而C++为 .cpp。

C++可重用性、可扩充性、可维护性、可靠性要强些。

2.面向对象的三个基本特征及各自的作用(4分)

封装性:对象将私有元素和实现操作的内部细节的结果隐藏起来,并能管理自己的内部状态。 作用:外部只能从对象所表示的具体概念、对象提供的服务和对象提供的外部接口来认识对象。

继承:类间具有共享特征,具有新增部分,具有层次结构。

作用:避免公用代码的重复开发,减少代码和数据冗余。通过增强一致性来减少模块间的接口和界面。

多态性:类中具有相似功能的不同函数使用同一个名称来实现的现象。实现了动态联编,使程序运行效率更高,更容易维护和操作。

3.c和c++中的struct有什么不同?(4分)

.

精品文档

C 中定义结构体变量要加struct,而C++不用,如下例: struct STRING{ char *prt; int length; }

在C中: 在C++中: struct STRING str; STRING str;

4.const符号的作用有哪些?(4分)

Const修饰符定义常量。

(1)欲阻止一个变量被改变,可以使用const关键字。

(2)对指针来说,可以指定指针本身为const,也可以指定指针所指的数据为const,或二者同时指定为const;

(3)在一个函数声明中,const可以修饰形参,表明它是一个输入参数,在函数内部不能改变其值;

(4)对于类的成员函数,若指定其为const类型,则表明其是一个常函数,不能修改类的成员变量;

5.引用与指针有什么区别?(3分)

引用就是给变量一个别名,使指针运算更加方便。 指针是一个实体,而引用仅是个别名;

引用只能在定义时被初始化一次,之后不可变;指针可变;引用“从一而终”,指针可以“见异思迁”;

引用不能为空,指针可以为空;

引用是类型安全的,而指针不是(引用比指针多了类型检查)

6.重载(overload)和重写(overried,有的书也叫做“覆盖”)的区别?(3分)

1、方法的覆盖是子类和父类之间的关系,是垂直关系;方法的重载是同一个类中方法之间的关 系,是水平关系。

2、覆盖要求参数列表相同;重载要求参数列表不同。

3、覆盖关系中,调用那个方法体,是根据对象的类型(对象对应存储空间类型)来决定;重载关系,是根据调用时的实参表与形参表来选择方法体的。

7.static 在类内修饰成员的作用是什么,如何引用这些成员?(4分)

表明该成员是静态成员,有点类似于全局变量。可以通过“类名::\和“对象名.”两种方法来访问。

.