奥鹏,国开,广开,电大在线,各省平台,新疆一体化等平台学习,
QQ:3064302332 微信:wxxygzs
南开22秋学期(高起本1709-1803、全层次1809-2103)《程序设计基础(下)》在线作业
试卷总分:100 得分:100
一、单选题 (共 20 道试题,共 40 分)
1.具有n个顶点的有向图最多有( )条边。
A.n
B.n(n+1)
C.n(n-1)
D.n的平方
2.一棵完全二叉树上有1001个结点,其中叶子结点的个数是( )。
A.250
B.500
C.254
D.501
3.假定MyClass为一个类,则该类的拷贝构造函数的声明语句为( )。
A.MyClass(MyClass x)
B.MyClass&(MyClass x)
C.MyClass(MyClass &x)
D.MyClass(MyClass *x)
4.一个栈的入栈序列是a,b,c,d,e,则栈的不可能的输出序列是( )。
A.e d c b a
B.d e c b a
C.d c e a b
D.a b c d e
5.下列关于成员访问权限的描述中,不正确的是( )。
A.公有数据成员和公有成员函数都可以通过类对象直接访问
B.类的私有数据成员只能被公有成员函数以及该类的任何友元类或友元函数访问
C.保护成员在派生类中可以被访问,而私有成员不可以
D.类或派生类的成员函数可以访问保护成员
6.在一个链接队列中,假设f和r 分别是队头和队尾指针,则插入一个s结点的运算时( )。
A.f->next=s; f=s;
B.r->next=s; r=s;
C.s->next=r; r=s;
D.s->next=f; f=s;
7.对虚函数的调用()。
A.一定使用动态联编
B.一定使用静态联编
C.必须使用动态联编
D.不一定使用动态联编
8.用于类中虚成员函数说明的关键字( )。
A.virtual
B.public
C.protected
D.private
9.要求打开文件 d:\file.dat,可写入数据,正确的语句是( )。
A.ifstream infile("d:\file.dat", ios::in);
B.ifstream infile("d:\\file.dat", ios::in);
C.ofstream infile("d:\file.dat", ios::out);
D.fstream infile("d:\\file.dat", ios::in| ios::out);
10.在一个链接队列中,假设f和r 分别是队头和队尾指针,则删除一个结点的运算时( )。
A.r=f->next;
B.r=r->next;
C.f=f->next;
D.f=r->next;
11.下列关于C++类的描述中错误的是( )。
A.类与类之间可以通过一些手段进行通信和联络
B.类用于描述事物的属性和对事物的操作
C.类与类之间必须是平等的关系,而不能组成层次关系
D.类与类之间可以通过封装而具有明确的独立性
12.将含100个结点的完全二叉树从根这一层开始,每层从左至右依次对结点编号,根结点的编号为1。编号为47的结点X的双亲的编号为( )。
A.23
B.24
C.25
D.无法确定
13.在二叉树中,若度为0的结点(即叶子结点)数为n0,度为2的结点数为n2,则( )。
A.n2-1
B.n2
C.n2+1
D.n2+2
14.关于this指针的说法错误的是( )。
A.this指针必须显示说明
B.当创建一个对象后,this指针就指向该对象
C.成员函数拥有this指针
D.静态成员函数不拥有this指针
15.( )是析构函数的特征。
A.析构函数可以有一个或多个参数
B.析构函数定义只能在类体内
C.析构函数名与类名不同
D.一个类中只能定义一个析构函数
16.下列说法中错误的是( )。
A.公有继承时基类中的public成员在派生类中是public的
B.公有继承时基类中的private成员在派生类中是不可访问的
C.私有继承时基类中的public成员在派生类中是private的
D.私有继承时基类中的public成员在派生类中是protected的
17.( )只能访问静态成员变量,不能访问非静态成员变量。
A.静态函数
B.虚函数
C.构造函数
D.析构函数
18.关于对象成员的构造函数的调用顺序,说法正确的是( )。
A.与它们在成员初始化列表中给出的顺序相同
B.与析构函数的调用顺序相同
C.与它们在类中说明顺序相同
D.以上说法都不对
19.下面( )的叙述不符合赋值兼容规则。
A.派生类的对象可以赋值给基类的对象
B.基类的对象可以赋值给派生类的对象
C.派生类的对象可以初始化基类的对象
D.派生类的对象的地址可以赋值给指向基类的指针
20.下列描述中,()是抽象类的特性。
A.可以说明虚函数
B.可以定义友元函数
C.可以进行构造函数重载
D.不能说明其对象
二、多选题 (共 15 道试题,共 30 分)
21.下列描述正确的是( )。
A.多态性是通过动态绑定实现的
B.多态性是通过静态绑定实现的
C.动态绑定是在程序执行时进行绑定
D.静态绑定是在程序执行时进行绑定
22.下面对构造函数的错误描述是( )。
A.系统可以提供默认的构造函数
B.构造函数可以有参数,所以可以有返回值
C.构造函数不可以重载
D.构造函数可以设置默认参数
23.下面属于析构函数特征的是( )。
A.析构函数可以重载
B.对象销毁前会自动调用析构函数
C.如果定义一个类时没有定义析构函数,则系统会提供一个默认析构函数~(){}
D.析构函数的函数类型为void
24.下面对对象成员的正确描述是( )。
A.可以在构造函数的初始化列表中给出对象成员的初始化
B.可以在构造函数的函数体中给出对象成员的初始化
C.如果一个对象成员有无参构造函数,则可以省略对象成员的初始化语句
D.若A类中有B类对象成员,则在创建A类对象时,先执行B类的构造函数,再执行A类的构造函数
25.在派生类中可以直接访问基类的()。
A.公有成员
B.保护成员
C.私有成员
D.友元成员
26.如果类A继承了类B,则类A称为()。
A.派生类
B.继承类
C.子类
D.父类
27.关于this指针的说法正确的是( )。
A.this指针必须显示说明
B.成员函数不拥有this指针
C.成员函数拥有this指针
D.静态成员函数不拥有this指针
28.下列说法正确的是( )。
A.面向对象方法的基本观点是一切系统都是由对象构成的
B.面向对象方法的基本观点是一切系统都是由模块构成的
C.面向对象方法中通过“消息”来触发行为
D.面向对象方法中用类和对象来表示现实世界
29.如果类A继承了类B,则类B称为()。
A.派生类
B.基类
C.子类
D.父类
30.下列说法中正确的是( )。
A.成员函数的声明必须放在类体中
B.成员函数的声明可以放在类体中也可以放在类体外
C.成员函数的实现必须放在类体中
D.成员函数的实现可以放在类体中也可以放在类体外
31.下列关于类的继承描述中,( )是错误的。
A.派生类可以访问基类的所有数据成员,也能调用基类的所有成员函数
B.派生类也是基类,但基类不一定具有派生类的全部属性和方法
C.继承描述类的层次关系,派生类可以具有与基类相同的属性和方法
D.一个基类可以有多个派生类,但一个派生类只能由一个基类
32.下列关于类的常量数据成员的说法中,正确的是( )。
A.常量数据成员只能是公有成员
B.可以在构造函数的初始化列表中为常量数据成员赋初值
C.可以在构造函数的函数体中为常量数据成员赋初值
D.常量数据成员的值初始化后就只能访问、无法修改
33.系统提供的默认拷贝构造函数实现的是“浅拷贝”,下列关于浅拷贝的说法中正确的是( )。
A.当一个类中有指针成员变量时,浅拷贝有可能会导致一片内存被重复释放
B.当一个类中有指针成员变量时,浅拷贝有可能导致一个对象中保存的数据不正确
C.如果一个类中只有int型和double型的成员变量,则浅拷贝不会出现任何问题
D.如果一个类中有一个成员变量是char型数组,则使用浅拷贝会存在问题
34.下列关于类的静态数据成员的说法中,正确的是( )。
A.静态数据成员的值初始化后不能再修改
B.静态数据成员必须在类体外定义和初始化
C.使用static关键字可以将一个数据成员声明为静态数据成员
D.静态数据成员的访问控制权限可以是公有、私有或保护
35.对静态成员的正确描述是( )。
A.静态成员不属于对象,是类的共享成员
B.静态数据成员要在类外定义和初始化
C.调用静态成员函数时要通过类或对象激活,所以静态成员函数拥有this指针
D.非静态成员函数也可以操作静态数据成员
三、判断题 (共 15 道试题,共 30 分)
36.含有纯虚函数的类是抽象类。
37.线性结构的特点是只有一个结点没有前驱,只有一个结点没有后继,其余的结点只有一个前驱和后继。
38.C++基类中,不能被派生类继承的有构造函数和析构函数。
39.类成员的三种访问控制属性是public、private和friend。
40.m(m≥0)棵相交的树的集合就构成了森林。
41.n个结点的有向图,若它有n(n-1)条边,则它一定是连通图。
42.在保护派生中,基类权限为private的成员在派生类中权限也为private。
43.具有纯虚函数的类是抽象类,它的特点是不可以定义对象。
44.有向图的邻接矩阵是对称的。
45.析构函数是一种函数体为空的成员函数。
46.在公有继承中,基类中的公有成员和私有成员在派生类中都是可见的。
47.类非成员函数形式的运算符重载函数通常采用友元函数,是为了在运算符重载中方便访问类中的非公有成员。
48.说明或定义对象时,类名前面不需要加class关键字。
49.在图的所有形式的生成树中,边上的权之和最小的生成树,称为图的最小生成树。
50.树中度为0的结点称为叶子结点(或终端结点),度不为0的结点称为分支结点(或非终端结点),分支结点也称为内部结点。