2022年秋下学期西安电子科技大学《面向对象程序设计(C++)期末考试试题.docx
西安电子科技大学网络与继续教育学院2022学年下学期面向对象程序设计(C+)期末考试试题(综合大作业)一、简答题(10分)1、运算符new和delete的功能分别是什么? (3分)2、若派生类以private方式从一个基类派生,派生类的对象可以访问基类中的哪些成员?派生类的成员函数可以访问基类中的哪些成员? (3分)3、构造函数的作用是什么?在创建派生类的对象时,应按照怎样的顺序调用构造函数?(4分)二、填空题(每空2分,共20分)1、函数的返回值是通过函数体中的语句带回的;若被调用函数被定义为类型,则被调用函数不带回任何值。2、表示逻辑关系“ a大于等于8或者a小于等于5”的C+表达式 是。3、在C+语言中,用表达式来创建动态的类对象;用表达式释放第2页(共4页)动态类对象。4、类的访问权限有、和三种。5、友元可以是,也可以是。三、选择题(每小题2分,共20分)1、在下列选项中,合法的C+变量名是。A. long B _2Test C. 3Dmax D. A.dat2、在对字符数组进行初始化时,是正确的。A. char sl = "abed"B. char s23 = "xyz"C. chars33 = 'a', 'x'/y'; D. char s423 = "xyzH, "mnp");3、下列语句中,错误的是。A. int i, *ptr = &i;B. int i; int *ptr; i = *ptr;C. int *ptr; ptr = 0; D. int i = 5; int *ptr; *ptr = &i;4、下列有关设置函数参数默认值的描述中,是正确的。A.对设置函数参数默认值的顺序没有任何规定B.函数具有一个参数时不能设置默认值C.默认参数要设置在函数的定义语句中,而不能设置在函数说明语句中D.设置默认参数可使用表达式,但表达式中不可用局部变量5、C+语言中while循环和do-while循环的主要区别是。A. do-while的循环体至少无条件执行一次while的循环控制条件比do-while的循环控制条件严格B. do-while允许从外部转到循环体内部do-while的循环体不能是复合语句6、在下面的程序中,若实参a与形参x以引用传递的方式传递信息,实参b与形参y 以值传递的方式传递信息,那么从函数compute返回主程序后,a和b的值分别 为。Main Program void compute(x, y)A.5和2 B. 5和12 C.1和2 D. 1和127、假设MyClass为一个类,那么下列函数说明中,是该类的析构函数。A. void MyClass(); B. MyClass(int n); C. MyClass(void); D. MyClass();8、下列对静态数据成员的描述中,错误的是。A.说明静态数据成员时前边要加修饰符staticB.静态数据成员要在类体外进行初始化C.引用静态数据成员时,要在静态数据成员名前加类名和作用域运算符D.静态数据成员不是所有对象所共用的9、假设类AB用成员函数的方式重载加法运算符,以实现两个AB类对象的加法,并返 回相加的结果,则该成员函数的声明为。A. AB operator + (AB &a, AB &B); B. AB operator + (AB&);C. operator + (AB a);D. AB & operator + ();10、对定义重载函数的下列要求中,是错误的。A.要求参数的个数不同B.要求参数中至少有一个类型不同a := 1;b := 2;compute(a, b);x := x + 2 * y;y := 2 * x + y;return ;第3页(共4页)C.要求参数个数相同时,参数类型不同D.要求参数的返回值不同四、读程题(每小题5分,共20分)1、给出下述源程序的运行结果。#include <iostream.h>int add(int a, int b = 5);void main()int m = 5;cout« "suml = " « add(m) « endl;cout « "sum2 = " « add(m, add(m) « endl;cout « "sum3 = " « add(m, add(m, add(m) « endl;)int add(int x, int y)return x + y;2、给出下述源程序的运行结果。#include <iostream.h>#include <string>void main() char *pl, *p2z s50 = "xyz"pl ="abed" p2 ="ABCD"strcpy(s+2z strcat(pl+2, p2+l);cout « s « endl;)3、给出下述源程序的运行结果。ttinclude <iostream.h>class Base public:void fun() cout « "1");class Derived : public Base public:void fun() cout « "2" « endl;);void main() Derived a;Base *p = &a;(*p).fun();a.fun();)4、给出下述源程序的运行结果。#include <iostream.h>class A public:第4页(共4页)A() al = a2 = 0; cout« "Default constructor called.n"A(int i, int j) al = i; a2 = j; cout « "Constructor called.n")void print() cout « "al = " « al « "a2 = " « a2 « endl;)private:int al, a2;);void main() A x, y9);x.print();y.print();)五、编程题(每小题15分,共30分)1、定义并实现一个类Myst,使下列语句能够正常运行。Myst x(3.2), y(5,5)z z(0.0);z = 8.9 -y;y = x - 6.3;2、设计类Point,包含横、纵两个坐标数据。由类Point派生出类Circle, Circle中 包含圆的半径数据,并能够计算圆的面积。给出类Point和Circle的定义与实现。