19春地大《面向对象程序设计》在线作业一[答案]满分答案
地大《面向对象程序设计(新)》在线作业一-0007
试卷总分:100 得分:0
一、 单选题 (共 15 道试题,共 60 分)
1.C++语言对C语言做了很多改进,C++语言相对于C语言的最根本的变化是()
A.增加了一些新的运算符
B.允许函数重载,并允许设置缺省参数
C.规定函数说明符必须用原型
D.引进了类和对象的概念
2.下列程序的运行结果为()。#include void print(double a) { cout<<++a; } void print(int a,int b) { cout<<b<<a } void main() { print(1.2); cout<<” ”; print(3,4); }
A.1.2?34
B.2.2?34
C.1.2?43
D.2.2?43
3.由C++目标文件连接而成的可执行文件的缺省扩展名为
A.cpp
B.exe
C.obj
D.Lik
4.判断一个ofstream类对象file打开文件是否失败,应该判断()
A.创建文件流对象时是否抛出异常
B.open成员函数的返回值
C.feof成员函数的返回值
D.! file 是否为真
5.有如下程序: #include class BASE{ char c; public: BASE(char n):c(n){} virtual~BASE(){cout<<C;} }; class DERIVED:public BASE{ char c; public: DERIVED(char n):BASE(n+1),c(n){} ~DERIVED(){cout
A.XY
B.YX
C.X
D.Y
6.用cin为整型变量输入数据时,如果从键盘输入的不是数字,输入后整型变量中的结果会是()
A.0
B.负数
C.正数
D.不确定
7.类C是以多重继承的方式从类A和类B继承而来的,类A和类B无公共的基类,那么()
A.类C的继承方式只能采用public继承
B.可改用单继承的方式实现类C的同样功能
C.类A和类B至少有一个是抽象类
D.类A和类B至少有一个是虚基类
8.下列程序的执行结果为()。 #include void main() { int a=3,b=0; int*p=&a: b=+a++; cout<<*P<<”,”<<endl }
A.3,4
B.4,3
C.3,4
D.4,4
9.在类的定义中,用于为对象分配内存空间,对类的数据成员进行初始化并执行其他内部管理操作的函数是()
A.友元函数
B.虚函数
C.构造函数
D.析构函数
10.使用流控制符需要头文件()
A.endl
B.hex
C.setw
D.left
11.设void f1(int * m,long & n);int a;long b;则以下调用合法的是()
A.f1(a,b);
B.f1(&a,b);
C.f1(a,&b);
D.f1(&a,&b);
12.如果有如下语句 char str[20]; cin >> str; cout << str; 执行时输入的是“this is a test line!”,则输出的内容是()
A.this is a test line!
B.this is a test line
C.this is atest
D.this
13.有如下类和对象的定义: class Constants{ public; static double getPI(){return 3.1416;} }; Constants constants; 下列各组语句中,能输出3.1416 的是()
A.cout<<constants->getPI();和cout<<Constants::gerPI();
B.cout<<constants.getPI();和cout<<Constants.getPI();
C.cout<<constants->getPI();和cout<<Constants->getPI();
D.cout<<constants.getPI();和cout<<Constants::getPI();
14.如果在try块中用 throw "error";语句抛出一个异常,则参数类型是 B 的catch块能够捕获这个异 常()
A.char *
B.const char * //throw "error"字符串常量 catch块要匹配
C.char
D.const char
15.下列程序的输出结果为()#include void main() { char,a[]={”hello",”the",”world”}; char**pa=a: pa++; cout<<*pa< }
A.hello
B.the
C.world
D.hellotheworld
19春地大《面向对象程序设计》在线作业一[答案]多选题答案
二、 多选题 (共 5 道试题,共 20 分)
1.关于类中重载赋值运算符的正确说法是()
A.由编译器提供的缺省赋值函数具有public访问性并且执行按位赋值
B.在重载派生类的赋值操作时,不但要实现派生类中数据成员的赋值,还要负责基类中数据成员的赋值
C.只有在类中含有指针数据成员或引用数据成员时,才需要重载类的赋值操作
D.通过修改类A的声明或定义,可以禁止用户在类A对象间进行任何赋值操作
2.模板定义中的类型参数可以用作()
A.局部变量类型
B.函数参数类型
C.函数返回值类型
D.数据成员类型
3.类A中有唯一的一个公有成员函数f,对于类A的一个对象a,执行语句 a.f(100);成功,那么f 的函数原型可以为
A.A& f( int, int=50);
B.void f(int&) const;
C.const A * f(const int );
D.A f( const int&) const;
4.关于异常和C++提供的异常处理机制正确的说法是()
A.若程序员预见到程序中的异常,则一定可以通过修改程序代码来避免异常出现
B.使用dynamic_cast操作符可能会产生异常
C.异常可以用catch进行捕获处理
D.异常可以是对象,也可以是普通整数
5.关于公共静态数据成员,下面说法正确的是()
A.在main函数之前创建
B.跟某个具体对象无关
C.可以用类名和成员名直接访问
D.需要在类体外初始化
三、 判断题 (共 5 道试题,共 20 分)
1.内联inline函数表示编译器一定会将函数体直接插入到调用此函数的地方,这样可以加快程序的运行速度。
A.错误
B.正确
2.C++程序的执行只能从main()函数开始,并在main()中结束
A.错误
B.正确
3.虽然抽象类的析构函数可以是纯虚函数,但要实例化其派生类对象,仍必须提供抽象基类中析构函数的函数体
A.错误
B.正确
4.显式类型转换可以把一个变量转换成另外一种数据类型
A.错误
B.正确
5.若在类Base和派生类Derived中,分别声明一个同名的整型成员变量int x; ,那么通过Derived类的实例对象,不可能输出基类Base中的变量x的值
A.错误
B.正确
19春地大《面向对象程序设计》在线作业一[答案]历年参考题目如下: