《面向对象程序设计》22秋平时作业3题目
试卷总分:100 得分:100
一、单选题 (共 13 道试题,共 52 分)
1.下列语句分别是不同程序中的第一个输入输出语句,若去掉其中的“<<left”,输出效果将发生变化的是()
A.cout<<left<<setfill(~*~)<<357
B.cout<<left<<setw(5)<<357
C.cout<<left<<setw(5)<<“ABCDE”
D.cout<<left<<“ABCDE”
2.下列关于赋值运算符“=”重载的叙述中,正确的是()。
A.赋值运算符只能作为类的成员函数重载
B.默认的赋值运算符实现了“深层复制”功能
C.重载的赋值运算符函数有两个本类对象作为形参
D.如果己经定义了复制(拷贝)构造函数,就不能重载赋值运算符
3.设类A将其它类对象作为成员,则建立A类对象时,下列描述正确的是()。
A.A类构造函数先执行
B.成员构造函数先执行
C.两者并行执行
D.不能确定
4.有如下 4 个语句:① cout<<~A~<<setfill(~*~)<<left<<setw(7)<<~B~<<endl;② cout<<setfill(~*~)<<left<<setw(7)<<~A~<<~B~<<endl;③ cout<<~A~<<serfill(~*~)<<right<<setw(7)<<~B~<<endl;④ cout<<setfill(~*~)<<right<<setw(7)<<~A~<<~B~<<endl;其中能显示 A******B 的是()
A.②和④
B.②和③
C.①和④
D.①和③
5.从一个基类派生出的各个类的对象之间
A.共享所有数据成员,每个对象还包含基类的所有属性
B.共享部分数据成员,每个对象还包含基类的所有属性
C.不共享任何数据成员,但每个对象还包含基类的所有属性
D.共享部分数据成员和函数成员
6.若有以下程序 main() {int y=10; while(y- -); printf(“y=%d\n”y); } 程序运行后的输出结果是()
A.y=0
B.y=-1
C.y=1
D.while构成无限循环
7.假定AB为一个类,则执行 “AB r1=r2;”语句时将自动调用该类的( )
A.无参构造函数
B.带参构造函数
C.赋值重载函数
D.拷贝构造函数
8.在公有派生情况下,有关派生类对象和基类对象的关系,下列叙述不正确的是()
A.派生类的对象可以赋给基类的对象
B.派生类的对象可以初始化基类的引用
C.派生类的对象可以直接访问基类中的成员
D.派生类的对象的地址可以赋给指向基类的指针
9.下列对派生类的描述中错误的说法是
A.派生类至少有一个基类
B.派生类可作为另一个派生类的基类
C.派生类除了包含它直接定义的成员外,还包含其基类的成员
D.派生类所继承的基类成员的访问权限保持不变
10.要求通过while循环不断读入字符,当读入字母N时结束循环。若变量已正确定义,以下正确的程序段是()
A.while((ch=getchar())!=’N’) printf(“%c”,ch)
B.while(ch=getchar()!=’N’) printf(“%c”,ch)
C.while(ch=getchar()==N’) printf(“%c”,ch)
D.while((ch=getchar())==’N’) printf(“%c”,ch)
11.在用C++定义类时,下面哪个关键字可用以对类成员进行修饰( )
A.extern
B.auto奥鹏作业答案请进open5.net或请联系QQ/微信:18866732
C.static
D.register
12.int fun1(duoble a){return a*=a;} int fun2(double x,double y) { double a=0,b=0; a=fun1(x); b=fun1(y); return (int)(a+b); } main() {double w; w=fun2(1.1,2.0);……} 程序执行后变量w中的值是()
A.5.21
B.5
C.5.0
D.0.0
13.一个类的成员函数也可以成为另一个类的友元函数,这时的友元说明
A.需加上类域的限定
B.不需加上类域的限定
C.类域的限定可加可不加
D.不需要任何限定
二、多选题 (共 2 道试题,共 8 分)
14.编写自己的头文件时,一般包含以下内容()
A.头文件开头处的文件信息声明
B.预处理语句块
C.函数和类结构声明
D.函数和类结构定义
15.C++中,函数调用的形式有:
A.传值调用
B.拷贝调用
C.传址调用
D.引用调用
三、判断题 (共 10 道试题,共 40 分)
16.static成员函数没有this指针,因为它不是任何对象的组成部分。
17.重载流操作符<<和>> 时,如果第一个参数的类型为ostream 和istream,那么这个重载函数既可以用于标准输入输出流,也可以用于文件流上。( )
18.当使用基类或内层类的带参数的构造函数来完成基类成员或对象成员的初始化时,有时候不需要定义派生类的构造函数。
19.继承可以使得一个类可以直接获得另一个类的性质和特征。
20.在定义类的数据成员时,不可以在类中直接对它们进行初始化。
21.在声明一个类时,需要在类内声明函数的原型,而函数的实现部分可以放在类内定义,也可以放在类外定义。
22.带默认值的成员函数在类体外实现时,默认值不写都可以。
23.没有返回值或者返回值为空是一回事。
24.多继承情况下,派生类的构造函数的执行顺序取决于定义派生时所指定的各基类的顺序。( )
25.结构体变量不可以用同类型的结构体变量直接赋值。
转载请注明:奥鹏作业之家 » 【奥鹏】兰大《面向对象程序设计》22秋平时作业3