温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,汇文网负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。
网站客服:3074922707
2023
甘肃
农业大学
考试题
甘肃农业大学C++考试题
面向对象程序设计课程考试试卷(A) 一、 选择题(每题2分,共30分) 1.C++对C语言作了很多改进,以下描述中( )使得C语言发生了质变,从面向过程变成了面向对象。
A、增加了一些新的运算符; B、允许函数重载,并允许设置缺省参数; C、规定函数说明必须用原型; D、引进了类和对象的概念; 2.以下描述中,( )是错误的。
A、内联函数主要解决程序的运行效率问题;B、内联函数的定义必须出现在内联函数第一次被调用之前; C、内联函数中可以包括各种语句; D、对内联函数不可以进行异常接口声明; 3.在C++中,关于以下设置缺省参数值的描述中,( )是正确的。
A、不允许设置缺省参数值; B、在指定了缺省值的参数右边,不能出现没有指定缺省值的参数; C、只能在函数的定义性声明中指定参数的缺省值;D、设置缺省参数值时,必须全部都设置; 4.( )不是构造函数的特征。
A、构造函数的函数名与类名相同; B、构造函数可以重载; C、构造函数可以设置缺省参数; D、构造函数必须指定类型说明。
5.( )是析构函数的特征。
A、析构函数可以有一个或多个参数; B、析构函数名与类名不同; C、析构函数的定义只能在类体内; D、一个类中只能定义一个析构函数; 6.关于成员函数特征的以下描述中,( )是错误的。
A、成员函数一定是内联函数; B、成员函数可以重载; C、成员函数可以设置缺省参数值; D、成员函数可以是静态的; 7.以下静态数据成员的特性中,( )是错误的。
A、说明静态数据成员时前边要加修饰符static B、静态数据成员要在类体外进行初始化; C、静态数据成员不是所有对象所共用的;D、引用静态数据成员时,要在其名称前加和作用域运算符; 8.友元的作用是( )。
A、提高程序的运用效率; B、加强类的封装性; C、实现数据的隐藏性; D、增加成员函数的种类; 9.关于new运算符的以下描述中,( )是错误的。
A、它可以用来动态创立对象和对象数组; B、使用它创立的对象或对象数组可以使用运算符delete删除; C、使用它创立对象时要调用构造函数; D、使用它创立对象数组时必须指定初始值; 10.关于delete运算符的以下描述中,( )是错误的。
A、它必须用于new返回的指针; B、使用它删除对象时要调用析构函数; C、对一个指针可以使用屡次该运算符;D、指针名前只有一对方括号符号,不管所删除数组的维数。
11.const int xp说明不能修改( )。
A、p指针; B、p指针指向的变量;C、p指针指向的数据类型;D、上述A、B、C三者; 12.:print()函数是一个类的常成员函数,它无返回值,以下表示中( )是正确的; A、void print() const; B、const void print(); C、void const print();D、void print(const); 13.派生类的对象对它的基类成员中( )是可以访问的。
A、公有继承的公有成员; B、公有继承的私有成员;C、公有继承的保护成员;D、私有继承的公有成员; 14.设置虚基类的目的是( )。
A、简化程序; B、消除二义性; C、提高运行效率; D、减少目标代码; 15.以下描述中,正确的选项是( ) A、虚函数是一个static 类型的成员函数; B、虚函数是一个非成员函数; C、抽象类是指具有纯虚函数的类; D、抽象类可以说明其对象; 二、判断以下描述的正确性,正确填T,错误填F。(每题2分,共30分) 1.C++中标识符内的大小写字母是没有区别的。( ) 2.C++是一种以编译方式实现的高级语言。( ) 3.计算函数参数顺序引起的二义性是由不同的编译系统决定的。( ) 4.返回值类型、参数个数和类型都相同的函数也可以重载。( ) 5.使用关键字class定义的类中缺省的访问权限是私有(private)的。( ) 6.类的私有成员只能被类中的成员函数访问,任何类以外的函数对它们的访问都是非法的。( ) 7.多继承情况下,派生类的构造函数的执行顺序取决于成员初始化列表中的顺序。( ) 8.在公有继承中,基类中的公有成员和私有成员在派生类中都是可见的。( ) 9.在私有继承中,基类中所有成员对派生类都是不可见的。( ) 10.在保护继承中,对于垂直访问等同于公有继承,对于水平访问等同于私有继承。( ) 11.构造函数可以声明为虚函数。( ) 12.在析构函数中调用虚函数时,采用动态束定。( ) 13.在一个成员函数内调用一个虚函数时,对该虚函数的调用进行动态束定。( ) 14.公有继承可以实现子类型。( ) 15.构造函数可以声明为纯虚函数。( ) 三、分析以下程序的输出结果。(每题10分,共40分) 1.#include class Test; void fun1(Test t); Test fun2(); class Test { public: Test(int n=1) {val=n; cout class A { public: A() {cout class R { public: R(int r1,int r2) {R1=r1;R2=r2;} void print(); void print() const; private: int R1,R2; }; void R::print() { cout class A { public: virtual void act1(); void act2() {act1();} }; void A::act1() { cout
1. 对象是 和 的封装体。
2. 定义重载函数时,要从 和 上进行区分。
3. 类定义中,缺省的成员是 成员。
4. 当一个成员函数被调用时,该成员函数的 指向调用它的对象。
5. 设置虚基类的目的是 ,虚基类子对象的初始化由 完成。
6. 对虚函数使用基类类型的指针或引用调用,系统使用 联编;使用对象调用时,系统使用 联编。
7. 一元运算符作为类成员函数重载时 形参;二元运算符作为 重载时需声明其右操 8. 带有 的类称为抽象类,它只能作为 来使用。
9. 请填写以下表格(填写直接派生类实例对基类成员的可见性)。
直接派生类继承方式 基类中成员类型 public private protected public private 不可见 不可见 不可见 protected 二, 单项选择题(每题2分,共20分)。
1. 以下描述中,( )是不正确的。
A、面向对象程序设计可重用性较好; B、对象之间通过消息进行信息传递; C、多态性表达了行为共享; D、面向对象方法的核心是继承; 2. 执行以下语句后的输出结果是( )。
int hot=100; int &rad=hot; hot+=100; cout B、100; C、200; D、300; 3. 在C++中,关于以下函数参数的描述中,( )是正确的。
A、C++语言中,实参是按照自左至右的顺序求值的; B、假设一个参数设置了默认值,那么其右边的所有参数都具有默认值; C、函数参数的默认值不允许是表达式; D、设置参数默认值时,应该全部参数都设置; 4. 在( )情况下适宜采用inline定义内联函数。
A、函数体含有循环语句;B、函数体含有递归语句;C、函数代码小,频繁调用;D、函数代码多,不常调用; 5. 定义析构函数时,应该注意( )。
A、其函数名与类名完全相同; B、函数返回类型是void类型; C、无形参,也不可重载; D、函数体中必须有delete语句; 6. 以下关于构造函数的描述中,( )是正确的。
A、构造函数可以设置缺省参数 B、构造函数可以被继承; C、构造函数可以对静态数据成员进行初始化;D、构造函数可以说明为虚函数; 7. 友元的作用是( )。
A、提高程序的运用效率; B、加强类的封装性; C、实现数据的隐藏性; D、增加成员函数的种类; 8. int x const p说明不能修改( )。
A、p指针; B、p指针指向的变量; C、p指针指向的数据类型; D、上述A、B、C三者; 9. 关于堆运算符的以下描述中,( )是错误的。
A、使用堆运算符可以动态建立或删除对象; B、new运算符创立对象时要调用构造函数; C、可以在使用new[]创立数组时,为每个数组元素指定初始值; D、delete运算符可以作用于空指针; 10. 关于继承的描述中,( )是正确的。
A、派生类是基类的子集;B、析构函数不能被继承;C、子类型关系是可逆的;D、派生类是基类的子类型; 面向对象程序设计课程考试试卷(C) 一、 填空题(每空1分,共20分)。
1. 所有的面向对象程序设计语言,都支持三个共同的本质特征 、 、 。
2. 为了解决程序中函数调用的效率问题,引入了 ,定义时需在函数前面加上 说明;为了提高程序的运行效率,引入了 ,定义时需在函数前面加上 说明。
3. 在类的定义当中,缺省的成员是 成员。
4. 请填写以下表格(填写派生类中成员的类型)。
派生类继承方式 基类中成员类型 public private protected public 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、可以说明虚函数;