22春学期(高起本1709-1803、全层次1809-2103)《程序设计基础(下)》在线作业-00001
试卷总分:100 得分:100
一、单选题 (共 20 道试题,共 40 分)
1.缺省析构函数的函数体是( )。
A.不存在
B.随机产生的
C.空的
D.无法确定的
2.下列关于类的继承描述中,( )是错误的。
A.派生类可以访问基类的所有数据成员,也能调用基类的所有成员函数
B.派生类也是基类,但基类不一定具有派生类的全部属性和方法
C.继承描述类的层次关系,派生类可以具有与基类相同的属性和方法
D.一个基类可以有多个派生类,一个派生类可以有多个基类
3.下列运算符中,()运算符在C++中不能重载。
A.?:
B.+
C.-
D.=
4.线性表最多有( )个结点没有前驱。
A.0
B.1
C.2
D.无数个
5.下列( )不是构造函数的特征。
A.构造函数的函数名与类名相同
B.构造函数可以重载
C.构造函数可以设置默认参数
D.构造函数必须指定类型说明
6.下面函数原型声明中,( )声明了fun为纯虚函数。
A.void fun()=0;
B.virtual void fun()=0;
C.virtual void fun();
D.virtual void fun(){};
7.在下述结论中,正确的是( ) ①只有一个结点的二叉树的度为0; ②二叉树的度为2; ③二叉树的左右子树可任意交换; ④深度为K的完全二叉树的结点个数小于或等于深度相同的满二叉树。
A.①②③
B.②③④
C.②④
D.①④
8.有关构造函数说法不正确的是( )。
A.构造函数的名字和类的名字一样
B.在创建对象时,系统自动调用构造函数
C.构造函数无任何函数类型
D.构造函数有且只有一个
9.关于下面程序段说法正确的是( ) 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)函数中不能访问对象的私有成员
10.类B是类A的公有派生类,类A和类B中都定义了虚函数func(),p是一个指向类A对象的指针,则p->A::func()将( )。
A.调用类A中是函数func()
B.调用类B中是函数func()
C.根据P所指的对象类型而确定调用A中或类B中的函数func()
D.既调用类A中函数,也调用类B中的函数
11.在数据结构中,从逻辑上可以把数据结构分成( )。
A.动态结构和静态结构
B.紧凑结构和非紧凑结构
C.线性结构和非线性结构
D.内部结构和外部结构
12.对于类定义 class A{ public: virtual void funcl(){} void func2(){} }; class B:public A{ public: void func1(){cout<<"class B func1"<<endl;} virtual void func2(){cout<<"class B func2"<<endl;} };下面正确的叙述是( )。
A.A::func2()和B::func1()都是虚函数
B.A::func2()和B::func1()都不是虚函数
C.B::func1()是虚函数,A::func2()不是虚函数
D.B::func1()不是虚函数,A::func2()是虚函数
13.对二叉树的结点从1开始进行连续编号,要求每个结点的编号大于其左、右孩子的编号,同一结点的左右孩子中,其左孩子的编号小于其右孩子的编号,可采用( )遍历实现编号。
A.先序
B.中序
C.后序
D.从根开始按层次遍历
14.在一个单链表中,若将p所指结点从链表中移除,q已指向其前驱结点,则执行( )。
A.q->next=p
B.q=p->next
C.q->next=p->next
D.p->next=q
15.如果以链表作为队列的存储结构,则出队操作时( )。
A.必须判别队列是否满
B.判别队列元素的类型
C.必须判别队列是否空
D.对队列不作任何判别
16.下列( )是构造函数的特征。
A.构造函数在创建对象时自动调用
B.构造函数不可以重载
C.构造函数不可以设置默认参数
D.构造函数必须指定函数类型
17.类A是类B的友元,类B是类C的友元,则( )是正确的。
A.类B是类A的友元
B.类C是类A的友元
C.类A是类C的友元
D.以上都不对
18.()是一个在基类中说明虚函数,它在该基类中没有定义,但要求任何派生类中的可访问性的规定是相同的。
A.纯虚函数
B.虚析构函数
C.虚构造函数
D.静态成员函数
19.二叉树就是每个结点的度小于等于2的( )。
A.有序树
B.无序树
C.可以有序也可以无须
D.根据结点的度决定是否有序
20.利用数组a[N]顺序存储一个栈时,用top表示栈顶指针,用top==-1表示栈空,并已知栈未满,当元素x进栈时所执行的操作是( )。
A.top--; a[top]=x;
B.a[top]=x; top--;
C.top++; a[top]=x;
D.a[top]=x; top++;
二、多选题 (共 15 道试题,共 30 分)
21.下列描述中,正确的是( )。
A.创建派生类对象时会先调用基类构造函数,再调用派生类构造函数
B.创建派生类对象时会先调用派生类构造函数,再调用基类构造函数
C.如果基类构造函数有参数,则必须在派生类构造函数的初始化列表中写上基类构造函数的调用语句
D.如果派生类构造函数的初始化列表中没写基类构造函数的调用,则表示调用基类的无参构造函数
22.不能使用类对象直接访问的成员包括( )。
A.公有成员
B.保护成员
C.私有成员函数
D.私有成员变量
23.下列关于类模板的描述中,正确的是( )。
A.类模板中可以有静态数据成员
B.类模板的静态数据成员由所有该类模板实例化的模板类共享
C.类模板的静态数据成员需要在类体外进行定义和初始化
D.类模板中可以用类型形参声明静态数据成员
24.已知Cirle是一个类,其中有一个成员函数public:void setRadius(int r),且有如下变量定义语句Circle c, pC=&c;则下列语句正确的是( )。
A.c::setRadius(3)
B.pC->setRadius(3)
C.pC.setRadius(3)
D.setRadius(3)
25.下列关于类的继承描述中,( )是正确的。
A.派生类可以访问基类的所有数据成员,也能调用基类的所有成员函数
B.派生类也是基类,但基类不一定具有派生类的全部属性和方法
C.继承描述类的层次关系,派生类可以具有与基类相同的属性和方法
D.一个基类可以有多个派生类,一个派生类可以有多个基类
26.下面描述中,正确的是( )。
A.虚函数是没有实现的函数
B.纯虚函数的实现在派生类中
C.抽象类是有纯虚函数的类
D.抽象类指针可以指向不同的派生类
27.下列说法正确的是( )。
A.面向对象方法的基本观点是一切系统都是由对象构成的
B.面向对象方法的基本观点是一切系统都是由模块构成的
C.面向对象方法中通过“消息”来触发行为
D.面向对象方法中用类和对象来表示现实世界
28.下列函数中,可以作为虚函数的是( )。
A.普通成员函数
B.构造函数
C.静态成员函数
D.析构函数
29.如果类A继承了类B,则类A称为()。
A.派生类
B.继承类
C.子类
D.父类
30.下列函数中,不可以作为虚函数的是()。
A.析构函数
B.成员函数
C.普通函数
D.构造函数
31.已知in是ifstream对象,则下列语句正确的是( )。
A.in.seekg(5);
B.in.seekg(5, ios::beg);
C.in.seekg(5, ios::end);
D.in.seekg(-5);
32.下列说法中正确的是( )。
A.一个成员函数在类体外定义,则该成员函数默认是内联函数
B.一个成员函数在类体中定义,则该成员函数默认是内联函数
C.在类体外定义成员函数需要使用::运算符指明该成员函数属于哪个类
D.类体外定义的成员函数默认为公有成员函数
33.假设A为抽象类,下列语句( )是正确的。
A.A fun(int);
B.A *p;
C.int fun(A&);
D.A Obj;
34.下列描述中,正确的是( )。
A.派生类构造函数主要是对派生类新定义的成员变量进行初始化
B.派生类从基类继承的成员变量的初始化通过基类构造函数完成
C.派生类对象被销毁时会先调用基类析构函数
D.派生类对象被销毁时会先调用派生类析构函数
35.已知f是以二进制读写方式打开的文件流对象,且有int型变量a,则下列选项中能正确进行文件读写操作的语句包括( )。
A.write((char*)a, sizeof(a));
B.write((char*)&a, sizeof(a));
C.read((char*)a, sizeof(a));
D.read((char*)&a, sizeof(a));
三、判断题 (共 15 道试题,共 30 分)
36.在用class定义一个类时,数据成员和成员函数的默认访问权限是public。
37.二叉链表表示是二叉树最常用的存储结构。
38.在图的所有形式的生成树中,边上的权之和最小的生成树,称为图的最小生成树。
39.根据二叉树的后序遍历序列可以确定二叉树的根结点。
40.在线性表的顺序存储结构中,逻辑上相邻的两个元素在物理位置上并不一定紧邻。
41.类非成员函数形式的运算符重载函数通常采用友元函数,是为了在运算符重载中方便访问类中的非公有成员。
42.深度优先遍历类似于树的逐层遍历。
43.纯虚函数是一种特殊的成员函数,它是一种没有具体实现的虚函数。
44.从一个结点到其后继结点之间的连线称为一个分支;从一个结点X到另一个结点Y所经历的所有分支构成结点X到结点Y的路径;一条路径上的分支数目称为路径长度;从树的根结点到其他各个结点的最长路径长度称为树的路径长度。
45.二叉树是特殊的树形结构
46.C++的I/O系统通过流的机制实现文件和控制台的输入输出操作。
47.当一个函数的返回值是类对象时,则该函数执行结束后会自动调用拷贝构造函数初始化一个临时对象。
48.为了在对象生存期结束时释放其指针成员所指向的动态存储空间,通常需要为该类定义构造函数。
49.在通信、数据压缩等领域被广泛应用的哈夫曼树采用的是二叉树结构。
50.图是以一种典型的线性结构。
奥鹏,国开,广开,电大在线,各省平台,新疆一体化等平台学习
详情请咨询QQ : 3230981406或微信:aopopenfd777