南京邮电大学 学年第 二 学期
《面向对象程序设计及C++》(期末)试卷1
院(系) 班级 学号 姓名 (★温馨提醒:
自觉遵守考试规则,诚信考试,绝不作弊装订线内不要答 ① 这是试题纸,教师不批改,请将所有最终答案写在答题纸上 ② 请在试题纸和答题纸上均完整填写班级、学号、姓名信息 ③ 考试结束时请将答题纸、试题纸及草稿纸一并交来 谢谢合作!祝同学们取得好成绩!)
得 分 一、填空题(共10分,每空1分)
1、开发C++程序与开发其他高级语言的程序一样,包括编辑、编译、 ① 和 ② 四个步骤。
2、C++语言中的标准输出流对象是 ③ ,在程序中用于代表标准输出设备。
3、对于已存在的定义“int *ptr=new int [10] ;”,应该用 ④ 语句释放动态内存空间。
4、C++语言提供了处理异常的有效机制,通过 ⑤ 抛出异常,通过 ⑥ 检测异常、通过catch捕捉并处理异常。
5、类的成员有3种访问属性,其默认的访问属性为 ⑦ ;访问属性为___⑧ 的成员既可被派生类继承又保持了封装和信息隐藏性。(请
题 填关键字)
6、C++支持两种多态性,其中函数重载和运算符重载用于实现 ⑨ ,而虚函数用于实现 ⑩ 。
得 分 二、单选题(共20分,每题2分)
1、假设已有定义:const char *name=\下面语句中错误的
是 。
A、name[3]= 'a';
B、name=\ D、cout< C、name=new char[5]; 2、设有语句void f(int a[10],int &x); int y[10],*py=y,n=10; 则对函数f的正确调用语句是 。 A、f(py[10],n); B、f(py,n); C、f(*py,&n); D、f(py,10); 3、下列不正确的重载函数是 。 A、int print(int X); 和 void print(float X); B、int disp(int X); 和 char disp(int Y) const; C、void disp(char * str,int Y);和 int disp(char * s,int X); D、int view(int X , int y); 和 int view(int X); 4、有关this指针的描述中,错误的是 。 A、this指针可以在程序中显式使用 B、this指针是在使用对象时由系统自动生成 C、this指针是指向当前对象的指针 D、this指针是指向成员函数的指针 5、关于成员函数特征的下列描述中, 是错误的。 A、成员函数一定是内联函数 B、成员函数可以重载 C、成员函数可以设置缺省参数值 D、成员函数可以是静态的 6、以下关于构造函数的叙述不正确的是 。 A、构造函数名必须和类名一致 B、构造函数在定义对象时自动执行 C、构造函数无任何函数类型 D、一个类的构造函数有且仅有一个 7、下列哪一项不能访问基类的保护成员 。 A、基类的友元函数 B、派生类的对象 C、基类的成员函数 D、公有派生类的成员函数 8、下面有关基类与公有派生类的赋值兼容原则,正确的是 。 A、公有派生类对象不能赋给基类对象 B、基类对象能赋给其公有派生类的引用 C、基类对象不能赋给公有派生类对象 D、公有派生类对象地址不能赋给基类指针变量 9、______是一个在基类中说明的虚函数,它在该基类中没有定义,但要求任何派生类都必须定义自己的版本。 A、虚析构函数 B、虚构造函数 C、纯虚函数 D、静态成员函数 10、假定要对类AB以友元函数形式重载加号运算符,实现两个AB类对象的加法,并返回相加结果,则该函数的声明语句为:???????????????? 。 A、 friend AB ?operator+(AB ?& a , AB ?& b);??? B、friend operator+(AB ?a)?;? C、friend AB ?operator+(AB ?& a)?; D、friend AB ?& operator+( ); 得 分 三、读程题(共30分,每空2分) 1、以下程序运行后的输出结果第一行是 (1) ,第二行是 (2) 。 #include using namespace std; int i=0; void main() { int i=5; cout< cout<<::i< 2、以下程序运行后的输出结果第一行是 (3) ,第二行是 (4) ,第三行是 (5) 。 #include using namespace std; class base { int n; public: base(int i) { n=i; } int getn( ) {return n;} friend int add(base &s1,base }; int add(base &s1,base s2) { int result= +; int t=; =; =t; return result; } void main( ) { base A(29),B(11); cout< s2);
相关推荐: