正确答案:B
22秋学期(高起本1709-2103、全层次2109-2103)《面向对象程序设计》在线作业-00001
正确答案:C
试卷总分:100 得分:100
一、单选题 (共 35 道试题,共 70 分)
1.对虚函数的调用()。
A.一定使用动态联编
B.一定使用静态联编
C.必须使用动态联编
D.不一定使用动态联编
正确答案:D
2.下列虚基类的声明中正确的是( )。
A.class virtual B:public A
B.virtual class B:public
C.class B:public A virtual
D.class B: virtual public A
正确答案:D
3.已知类X中的一个成员函数说明如下: Void Set(X &a); 其中,X &a的含义是( )。
正确答案:C
A.a是指向X类对象的指针,用来作为Set()的形参
B.将a的地址传递给Set()函数
C.a是X类对象的引用,用来做为Set()的形参
D.以上都不对
正确答案:A
4.下面对静态数据成员的描述中,正确的是( )。
A.静态数据成员是类的所有对象共享的数据
B.类的每个对象都有自己的静态数据成员
C.类的不同对象有不同的静态数据成员值
D.静态数据成员不能通过类的对象访问
正确答案:A
5.下列程序中说明的公有成员是( ) class Location { int X; public: void init(int initX,int initY); private: int Y; public: int GetX(); int GetY(); };
正确答案:D
A.X
B.init(int initX,int initY)
C.GetX(),GetY()
D.B和C都是
正确答案:A
6.在C++中,通过()的机制可以对原有的类进行扩充和完善以适应ABC需要。
A.继承
B.封装
C.多态
D.重载
正确答案:C
7.要求打开文件 d:file.dat,可写入数据,正确的语句是( )。
正确答案:A
A.ifstream infile("d:file.dat", ios::in);
正确答案:C
B.ifstream infile("d:file.dat", ios::in);
正确答案:A
C.ofstream infile("d:file.dat", ios::out);
正确答案:A
D.fstream infile("d:file.dat", ios::in| ios::out);
正确答案:B
8.下列程序段中具有相同值的是( ) class Base {int b;}; class Base1:virtual public base{int b1;}; class Base2:virtual public base{int b2;}; class derived:public base 1,public base 2{int b3;}; derived d;
正确答案:A
A.b与d.base1::b
正确答案:C
B.base1::b与 d.base1::b1
正确答案:C
C.b与 d. b3
正确答案:A
D.base2::b与 d.base2::b2
正确答案:C
9.当一个派生类私有继承一个基类时,基类中的所有公有成员和保护成员成为派生类的( )。
A.public成员
B.private成员
C.protected成员
正确答案:C
正确答案:B
D.友元
正确答案:D
正确答案:A
10.假定X为一个类,执行X a[3],*p[2];语句时会自动调用该类的构造函数( )次。
A.2
B.3
C.4
D.5
正确答案:B
11.下列关于构造函数调用顺序的描述中,正确的是()。
A.创建派生类对象时,先调用基类的构造函数,后调用派生类的构造函数
B.创建基类对象时,先调用基类的构造函数,后调用派生类的构造函数
C.创建派生类对象时,先调用派生类的构造函数,后调用基类的构造函数
D.创建基类对象时,先调用派生类的构造函数,后调用基类的构造函数
正确答案:A
12.若类中有指针成员变量,则应编写(),使得在对象销毁时能够自动调用该函数释放指针成员变量所指向的内存空间。
A.友元函数
B.虚函数
C.构造函数
D.析构函数
正确答案:B
13.关于下面程序段说法正确的是( ) class X { private: int n; public: X(X&); }; X::X(X&x) {n=x.n} X obj1,obj2(obj1);
A.语句obj2(obj1);的功能是用对象obj1初始化具有相同类类型的对象obj2
B.语句obj2(obj1);的功能是用对象obj2初始化具有相同类类型的对象obj1
C.X(X&x)中的&符号可以删除
D.X(X&x)函数中不能访问对象的私有成员
正确答案:C
14.关于虚函数,下列表述正确的是( )。
A.如果在重定义虚函数时使用virtual,则该重定义函数仍然是虚函数
B.虚函数不得声明为静态函数
C.虚函数不得声明为另一个类的友元函数
D.派生类必须重新定义基类的虚函数
正确答案:B
15.关于纯虚函数和抽象类的描述中,错误的是()。
A.纯虚函数是一种特殊的虚函数,它没有具体的实现。
B.抽象类是指具有纯虚函数的类。
C.一个基类中有纯虚函数,该类的派生类一定不再是抽象类。
D.抽象类作为基类来使用,其纯虚函数的实现由派生类给出。
正确答案:D
16.下列关于构造函数说法不正确的是()。
A.构造函数必须与类同名
B.构造函数可以省略不写
C.构造函数必须有返回值
D.在构造函数中可以对类中的成员进行初始化
正确答案:A
17.若析构函数是虚函数,则delete对析构函数的调用采用( )。
正确答案:D
A.静态联编
B.动态联编
C.重载函数
D.多重函数
正确答案:A
21.当一个派生类公有继承一个基类时,基类中的所有公有成员成为派生类的( )。
A.public成员
B.private成员
C.protected成员
D.友元
19.程序在调用重载函数时,根据()区分到底要调用哪个函数。
A.函数名
B.返回值类型
C.参数个数和类型
D.以上都可以
正确答案:B
20.下列关于对象数组的描述中,错误的是( )。
A.对象数组的下标是从0开始的
B.对象数组的数组名是一个常量指针
C.对象数组的每个元素是同一个类的对象
D.对象数组只能赋初值,而不能在定义后赋值
正确答案:A
21.“#include
正确答案:C
A.宏定义
B.文件包含
C.条件编译
D.工程配置
正确答案:B
22.下面叙述不正确的是( )。
A.基类的保护成员在派生类中仍然是保护的
B.基类的保护成员在公有派生类中仍然是保护的
C.基类的保护成员在私有派生类中是私有的
D.对基类成员的访问必须是无二义性
正确答案:D
23.下面对友元的错误描述是( )。
A.关键字friend用于声明友元
正确答案:D
B.一个类的成员函数可以是另一个类的友元
C.友元函数访问对象的成员不受访问特性影响
D.友元函数通过this指针访问对象成员
正确答案:B
24.如果类A被说明成类B的友元,则()。
A.类A的成员函数不得访问类B的所有成员
B.类A的成员函数可以访问类B的所有成员
C.类A的成员即类B的成员
D.类B的成员即类A的成员
正确答案:C
25.一个类的友元函数能够访问该类的( )。
A.私有成员
B.保护成员
C.公有成员
D.所有成员
正确答案:D
26.下列关于拷贝构造函数的描述中,错误的是()。
A.一个类可以定义多个拷贝构造函数
B.若未定义拷贝构造函数,则系统会提供一个默认拷贝构造函数
C.当类中有指针成员变量时,通常要为这个类定义一个拷贝构造函数来实现深拷贝
D.拷贝构造函数中的参数按引用方式传递
正确答案:B
27.下列关于运算符重载的描述中,()是正确的。
A.运算符重载可以改变操作数的个数
B.运算符重载可以改变优先级
C.运算符重载可以改变结合性
D.运算符重载不可以改变语法结构
正确答案:C
28.下列( )是构造函数的特征。
A.构造函数在创建对象时自动调用
B.构造函数不可以重载
C.构造函数不可以设置默认参数
D.构造函数必须指定函数类型
正确答案:D
29.执行语句“string str("abc");”时,系统会自动调用string类的构造函数()。
正确答案:C
A.string()
B.string(const char *s)
C.string(const string &str)
D.string(size_type n, char c)
正确答案:B
30.以成员函数方式重载运算符“>”,则obj1>obj2被C++编译器解释为()。
正确答案:B
A.operator>(obj1,obj2)
B.>(obj1,obj2)
C.obj1.operator>(obj2)
D.obj2.operator>(obj1)
正确答案:C
31.已知“float *p; p=new float[2];”,若要释放p所指向的堆中的这些字节,下列语句正确的是()。
正确答案:A
A.delete p;
正确答案:D
B.delete p[];
正确答案:D
C.delete []p;
正确答案:D
D.delete p[2];
正确答案:A
32.建立类模板对象的实例化过程为( )。
A.基类->派生类
B.构造函数->对象
C.模板类->对象
D.模板类->模板函数
正确答案:D
33.撤消对象时,系统自动调用( )函数。
A.成员函数
B.构造函数
C.析构函数
D.普通函数
正确答案:C
34.下列关于赋值运算符重载的说法中正确的是()。
A.返回值一般是以引用方式返回的对象,而函数体中总是用语句“return *this;”返回this指针所指向的对象
正确答案:C
B.赋值运算符只能以非成员函数的方式重载
C.赋值运算符既可以以成员函数的方式重载,又可以以非成员函数的方式重载
D.以上均不正确
正确答案:A
35.关于动态关联的下列叙述中,()是错误的。
A.动态关联是以虚函数为基础的
B.动态关联调用虚函数操作是指向对象的指针或引用
C.动态关联是在运行时确定所调用的函数代码的
D.动态关联是在编译时确定操作函数的
正确答案:D
南开22秋学期《面向对象程序设计》在线作业[答案]多选题答案
正确答案:B
二、判断题 (共 15 道试题,共 30 分)
36.定义重载函数时,应保证函数类型有所不同。
37.运算符[]只能用成员运算符来重载,不能用友元运算符来重载。
38.纯虚函数是一种特殊的成员函数,它是一种没有具体实现的虚函数。
39.已知Circle类对象c,Circle类中有一个setCenter成员函数,如果c.setCenter(...)返回值仍然是c,则setCenter函数中的return语句应写作return this;。
40.当一个函数的返回值是类对象时,则该函数执行结束后会自动调用拷贝构造函数初始化一个临时对象。
41.在类内部定义的public数据可以在类外进行存取。
42.定义虚函数所用的关键字是virtual。
43.重载函数可以带默认参数值,但要注意二义性。
44.某类中的友元类的所有成员函数可以存取或修改该类中的私有成员。
45.构造函数说明为纯虚函数是没有意义的。
46.函数的参数个数和类型都相同,只是返回值不同,这不是重载函数。
47.只有返回引用的函数可以作为赋值语句的左值。
48.打开ASCII码流文件和二进制流文件时,打开方式是相同的。
49.运算符重载实际上是对已有的运算符重新定义其功能。
50.类的静态成员函数中不能访问非静态成员。
南开22秋学期《面向对象程序设计》在线作业[答案]历年参考题目如下:
电子科技大学《软件工程》20秋期末考试题目
试卷总分:100 得分:100
一、单选题 (共 20 道试题,共 50 分)
1.面向对象设计OOD模型的主要部件中,通常不包括( )。
A.通信部件
B.人机交互部件
C.任务管理
D.数据管理
2.需求分析阶段最重要的技术文档是( )。
A.设计说明书
B.需求规格说明书
C.可行性分析报告
D.用户手册
3.某教学设备销售部门制定一项销售优惠政策,一次购买100台或100台以上者按八五折优惠,购买者是教师、学生按九折优惠。设C1表示购买的台数,C2为1、2、0分别表示教师、学生和其他人员,则符合九折优惠判定条件为( )。
A.(C1<100)AND NOT(C2=0)
B.(C10)
C.NOT(C1>100)AND(C2=0)
D.NOT(C10)
4.数据流图所描述的是实际系统的( )。
A.逻辑模型
B.物理模型
C.程序流程
D.数据结核
5.下列不属于概要设计所解决的问题范围的是( )。
A.确定模块的层次结构
B.全程数据结构的设计
C.描述系统的功能与性能
D.修改用户手册
6.面向对象程序设计中,基于父类创建的子类具有父类的所有特性(属性和方法),这地特点称为类的( )。
A.多态性
B.封装性
C.继承性
D.重用性
7.软件危机具有下列表现( )。 I. 对软件开发成本估计不准确 II. 软件产品的质量往往靠不住 III. 软件常常不可维护 IV. 软件成本逐年上升
A.II和III
B.III和IV
C.II、III和IV
D.以上都正确
8.决定软件工程方法论所有步骤的关键目标是提高软件的( )。
A.可移植性
B.可靠性
C.可维护性
D.效率
9.软件工程的出现是由于( )。
A.软件危机的出现
B.计算机硬件技术的发展
C.软件社会化的需要
D.计算机软件技术的发展
10.下列属于应用软件的是( )。 ①计算机辅助教学软件 ② 软件测试工具 ③ 办公自动化软件 ④工程与科学计算软件
A.①、②和③
B.①、③和④
C.②、③和④
D.以上都正确
11.为了提高模块( ),当修改或维护模块时减少把一个模块的错误扩散到其他模块中去的机会。
A.耦合性
B.独立性
C.内聚性
D.共享性
12.软件开发技术不包含( )。
A.软件开发方法学
B.软件工程环境
C.软件工具
D.软件质量度度量
13.下列四个软件可靠性定义中正确的是( )。
A.软件可靠性是指软件在给定的时间隔内,按用户工求成功运行的概率
B.软件可靠性是指软件在给定的时间间隔内,按设计要求成功运行的概率
C.软件可靠性是指软件在正式投入运行内,按规定说明书的规定成功运行的概率
D.软件可靠性是指软件在给定时间间隔内,按规格说明书的规定成功运行的概率
14.软件生命周期一般都被划分为若干个独立的阶段,其中占用精力和费用最多的阶段往往是( )。
A.运行和维护阶段
B.设计阶段
C.代码实现阶段
D.测试阶段
15.下列各项中,( )不是增加软件维护工作量的因素。
A.用户数量的增加
B.使用结构化技术或面向对象技术
C.软件功能扩充
D.应用环境变化
16.以下关于数据流图的说法错误的是( )。
A.数据流图舍去了具体的物质,只剩下数据的流动、加工处理和存储
B.数据流图是用作结构化分析的一种工具
C.传统的数据流图中主要由加工、数据源点/终点、数据流、控制流、数据存储组成
D.数据流图的绘制采用自上向下、逐层分解的方法
17.下列属于软件的特点的是( )。
A.软件是一种逻辑实体,具有抽象性
B.软件在使用过程中没有磨损、老化的问题
C.软件不同于一般程序,它的一个显著特点是规模庞大,复杂程度高
D.以上都正确
18.软件测试的基本目标是( )。
A.确定白盒法或黑盒法
B.确定单元测试或集成测试
C.确定测试范围和路径
D.确定一组测试数据以尽可能多地发现错误
19.软件维护过程中,可能会引起维护副作用的是( )。
A.修改代码或数据后未作测试
B.进行改正性维护时错误未全部改正
C.进行完善性、适应性或预防性维护时考虑因素不全面
D.维护过程中发生系统运行错误
20.下列几种耦合中,( )的耦合性最强。
A.公共耦合
B.数据耦合
C.控制耦合
D.内容耦合
二、多选题 (共 10 道试题,共 25 分)
21.衡量模拟独立性的两个定性的度量标准是( )和( )。
A.一致性
B.经济性
C.耦合性
D.内聚性
E.完备性