《面向对象程序设计》模拟试卷2
共六大题)一、判断题(√/每题1分,共10分)
1、程序调试就是找出并改正c++源程序中的语法错误。
2、c++语言不允许在重载运算符时改变运算符的结合性。
3、在定义枚举类型时,可以对其中的枚举元素指定值。
4、在c++中,应该使用new , free来动态分配和释放内存。
5、如果a类是b类的友元类,而b类是c类的派生类,则c类也是a类的友元类。(
6、派生类的成员函数可以直接访问基类的所有成员。
7、黑盒测试是把程序看成一个封装的系统,测试只在程序接口处进行。
8、在基类中被说明为虚函数的类的成员函数必须在每个派生类中说明为虚函数,才能具有多态的特征。 (
9、面向对象的程序设计中,对象信息的隐藏主要是通过封装实现的。
10、用new动态申请的内存是在堆中分配的,而不是在栈中分配的。
二、单项选择题 (每题1分,共10分)
1.下面( )的叙述不符合赋值兼容的原则。
a) 派生类的对象可以赋值给基类的对象。
b) 基类的对象可以赋值给派生类的对象。
c) 派生类的对象可以初始化基类的引用。
d) 派生类的对象的地址可以赋值给指向基类对象的指针。
2.友元运算符@obj被c++编译器解释为( )
a) operator@(objb) operator@(obj,0)
c) 3.对虚函数的调用( )
a) 一定使用动态联编b) 必须使用动态联编。
c) 一定使用静态联编d) 不一定使用动态联编。
4.声明类test的复制构造函数的正确形式是( )
a) int testb) void test( )c) test(voidd) test(test&);
5.( 是对类test的析构函数的声明。
a) ~test::test(参数b) void ~test::test(参数);
c) test::~testd) void ~test::test( )
6.下列说法中不正确的是( )
a) 公有继承时基类中的public成员在派生类中仍是public的。
b) 公有继承时基类中的private成员在派生类中仍是private的。
c) 私有继承时基类中的public成员在派生类中是private的。
d) 保护继承时基类中的public成员在派生类中是protected的。
7.下列关于类和对象的叙述中,错误的是( )
a) 一个类只能有一个对象。 (b) 对象是类的具体实例。
c) 类是对某一类对象的抽象。 (d) 类和对象的关系是一种数据类型和变量的关系。
8.若有定义“int x=17;”,则语句“cout<(a) 11 (b) 0x11 (c) 21 (d) 021
9.在c++中,用于实现运行时多态性的是( )
a) 内联函数 (b) 重载函数 (c) 模板函数 (d) 虚函数。
10.假定point为一个类,则执行“point p;”语句时将自动调用该类的( )
a) 参数有默认值的构造函数 (b) 默认构造函数。
c) 拷贝构造函数d) 赋值重载函数。
三、程序选择填空 (每空2分,共20分)
1.[程序1] 根据已有程序和输出结果完成程序的填空。
程序输出结果为:
#include <>
#include <>
class point
private:
float x,y;
public:
point(float a, float b);
float distance
float dx, dy;
return (float)sqrt(dx*dx+dy*dy);
void main()
point p1(2,3), p2(32,43);
cout <<
(a) point pb) int p;
(c) double pd) char p;
(a) dx= dy=
(b) dx= dy=
(c) dx= dy=
(d) dx= dy=
(a) distance(p1,p2b) distance(p2,p1)
(c) 2、[程序2] 根据已有程序完成程序的填空。
#include <>
class complex
public:
complex( )
complex(double r,double i)
complex operator + complex &c2);
< (ostream&,complex&);
private:
double real;
double imag;
complex complex::operator + complex &c2)
return complex(real+
< (ostream& output,complex& c)
output<<"i)"<
int main( )
complex c1(2,4),c2(6,10),c3;
c3=c1+c2;
cout< return 0;
(a) friend ostream& operator (b) ostream& operator
(c) ostream& friend operator (d) operator ostream&
(a) friend ostream& operator (b) ostream& operator
(c) ostream& friend operator (d) operator ostream&
(a) return 0b) return;
c) return outputd) return &output;
3、[程序3] 根据已有程序和输出结果完成程序的填空。
#include
#include
using namespace std;
class student
public:
student(int,string,float);
display();
protected:
int num; string name; float score;
student::student(int n,string nam,float s)
num=n;name=nam;score=s; }
void student::display()
cout < public: graduate(int,string,float,float); void display(); private: float pay; void graduate::display() cout < int main() student stud1(1001,"li",87.5); graduate grad1(2001,"wang",98.5,563.5); student *pt=&stud1; return 0; 程序输出结果为: num: 1001 name: li score: 87.5 num: 2001 name: wang score: 98.5 pay=1200 (a) virtual void (b) void inline (c) void (d) inline void (a) pt->display() (c) (d) grad1->display(); (a) pt=grad1b) pt=stud1c) pt=&grad1; (d) pt=&stud1; (a) pt->display() c) (d) stud1->display(); 四、写出下列程序的运行结果(本大题共30分,每小题6分) 1、[程序1] 请给出下面程序的输出内容。 #include <> class point private: int x,y; public: point(int x=0, int y=0):x(x),y(y){} point( point&p ) int gety() 第一次作业。一 单项选择题。1.编写c 程序一般需经过的几个步骤依次是 a.编辑 调试 编译 连接b.编辑 编译 连接 运行c.编译 调试 编辑 连接d.编译 编辑 连接 运行。2.决定c 语言中函数的返回值类型的是 语句中的表达式类型b.调用该函数时系统随机产生的类型c.调用该函数时的主调用函数类... 第一次作业。一 单项选择题。1.编写c 程序一般需经过的几个步骤依次是 a.编辑 调试 编译 连接b.编辑 编译 连接 运行c.编译 调试 编辑 连接d.编译 编辑 连接 运行。2.决定c 语言中函数的返回值类型的是 语句中的表达式类型b.调用该函数时系统随机产生的类型c.调用该函数时的主调用函数类... 一 选择题。1 下列关于单目运算符 的叙述中正确的是。a 它们的运算对象可以是任何变量和常量。b 它们的运算对象可以是char型变量和int型变量,但不能是float型变量。c 它们的运算对象可以是int型变量,但不能是double型变量和float型变量。它们的运算对象可以是char型变量 int...C程序设计模拟试卷
C 程序设计模拟试卷
C程序设计模拟试卷