需要答案请加QQ:3230981406 微信:aopopenfd777
可做奥鹏全部院校在线作业、离线作业、毕业论文
21秋学期(1709、1803、1809、1903、1909、2003、2009、2103、2109)《程序设计基础(下)》在线作业
试卷总分:100 得分:100
一、单选题 (共 20 道试题,共 40 分)
1.下面说法中正确的是( )。
A.一个类只能定义一个构造函数,但可以定义多个析构函数
B.一个类只能定义一个析构函数,但可以定义多个构造函数
C.构造函数与析构函数同名,只要名字前加了一个求反符号(~)
D.构造函数可以指定返回类型,而析构函数不能指定任何返回类型,即使是void类型也不可以
答案:B
2.用于类中虚成员函数说明的关键字( )。
A.virtual
B.public
C.protected
D.private
答案:A
3.在创建派生类对象时,构造函数的执行顺序是( )。
A.对象成员构造函数、基类构造函数、派生类本身的构造函数
B.派生类本身的构造函数、基类构造函数、对象成员构造函数
C.基类构造函数、派生类本身的构造函数、对象成员构造函数
D.基类构造函数、对象成员构造函数、派生类本身的构造函数
答案:D
4.若让元素a,b,c,d依次进栈,则出栈次序不可能出现( )的情况。
A.c,b,a,d
B.b,a,d,c
C.d,c,b,a
D.a,d,b,c
答案:D
5.()是一个在基类中说明虚函数,它在该基类中没有定义,但要求任何派生类中的可访问性的规定是相同的。
A.纯虚函数
B.虚析构函数
C.虚构造函数
D.静态成员函数
答案:A
6.包含类fstream定义的头文件是( )。
A.fstream
B.ofstream
C.ifstream
D.iostream
7.对基类和派生类的描述中错误的是( )。
A.派生类是基类的具体化
B.基类继承了派生类的属性
C.派生类是基类定义的延续
D.派生类是基类的特殊化
8.一个顺序表第一个元素的存储地址是100,每个元素的长度为4个字节,则第5个元素的地址是( )。
A.100
B.108
C.116
D.120
9.静态成员遵循类的其他成员所遵循的访问限制,除了( )。
A.静态成员函数
B.静态数据成员初始化
C.私有静态数据成员
D.公有静态成员函数
10.已知X类中的一个成员函数说明如下: void Set(X*a); 其中,X*a的含义是( )。
A.a是指向X类对象的指针,用来作为Set()的形参
B.将X*a的计算结果传递给Set()函数
C.a是X类对象的引用,用来做为Set()的形参
D.以上都不对
11.数据结构在计算机存储空间中的存放形式称为( )。
A.数据元素之间的关系
B.数据结构
C.数据的存储结构
D.数据的逻辑结构
12.进行文件操作时需要包含_ ()头文件。
A.iostream
B.fstream
C.stdio
D.stdlib
13.下列关于C++类的描述中错误的是( )。
A.类与类之间可以通过一些手段进行通信和联络
B.类用于描述事物的属性和对事物的操作
C.类与类之间必须是平等的关系,而不能组成层次关系
D.类与类之间可以通过封装而具有明确的独立性
14.在下列选项中( )不是ostream类的对象。
A.cin
B.cerr
C.clog
D.cout
15.已知一棵二叉树的先序遍历序列为ABCDEFG,中序遍历序列为CBDAFEG,则该二叉树的后序遍历序列是( )。
A.CDBFGEA
B.CDFGBEA
C.CDBAFGE
D.CDBFEGA
16.撤消对象时,系统自动调用( )函数。
A.成员函数
B.构造函数
C.析构函数
D.普通函数
17.在数据结构中,从逻辑上可以把数据结构分成( )。
A.动态结构和静态结构
B.紧凑结构和非紧凑结构
C.线性结构和非线性结构
D.内部结构和外部结构
18.下列虚基类的声明中正确的是( )。
A.class virtual B:public A
B.virtual class B:public
C.class B:public A virtual
D.class B: virtual public A
19.在一棵度为3的树中,度为3的结点个数为2,度为2 的结点个数为1,度为1的结点数为0,则度为0的结点个数为( )。
A.4
B.5
C.6
D.7
20.一个类的友元函数能够访问该类的( )。
A.私有成员
B.保护成员
C.公有成员
D.所有成员
二、多选题 (共 15 道试题,共 30 分)
21.已知类Circle中有一个静态数据成员s_nNum,且有变量定义语句Circle c, *pc;,则下列选项中,能给s_nNum赋值为3的语句包括( )。
A.Circle.s_nNum=3
B.Circle::s_nNum=3
C.s_nNum=3
D.pc->s_nNum=3
22.下列函数中,不可以作为虚函数的是()。
A.析构函数
B.成员函数
C.普通函数
D.构造函数
23.在派生类中可以直接访问基类的()。
A.公有成员
B.保护成员
C.私有成员
D.友元成员
24.下列关于类的常量成员函数的说法中,正确的是( )。
A.只有类的成员函数可以在函数头后面加const关键字
B.在常量成员函数中可以获取成员变量的值、但不能修改
C.在常量成员函数中只能访问常量数据成员
D.在类体外定义常量成员函数时,函数头后面的const关键字可以省略
25.下列关于类的继承描述中,( )是正确的。
A.派生类可以访问基类的所有数据成员,也能调用基类的所有成员函数
B.派生类也是基类,但基类不一定具有派生类的全部属性和方法
C.继承描述类的层次关系,派生类可以具有与基类相同的属性和方法
D.一个基类可以有多个派生类,一个派生类可以有多个基类
26.下列函数中,可以作为虚函数的是()。
A.析构函数
B.成员函数
C.普通函数
D.构造函数
27.下列描述中,正确的是( )。
A.创建派生类对象时会先调用基类构造函数,再调用派生类构造函数
B.创建派生类对象时会先调用派生类构造函数,再调用基类构造函数
C.如果基类构造函数有参数,则必须在派生类构造函数的初始化列表中写上基类构造函数的调用语句
D.如果派生类构造函数的初始化列表中没写基类构造函数的调用,则表示调用基类的无参构造函数
28.下面对友元的正确描述是( )。
A.关键字friend用于声明友元
B.一个类的成员函数可以是另一个类的友元
C.友元函数访问对象的成员不受访问特性影响
D.友元函数通过this指针访问对象成员
29.不能使用类对象直接访问的成员包括( )。
A.公有成员
B.保护成员
C.私有成员函数
D.私有成员变量
30.已知in是ifstream对象,则下列语句正确的是( )。
A.in.seekg(5);
B.in.seekg(5, ios::beg);
C.in.seekg(5, ios::end);
D.in.seekg(-5);
31.不论派生类以何种方法继承基类,都可以使用基类的( )。
A.public成员
B.private成员
C.protected成员
D.所有成员
32.下列关于类型兼容的描述中,正确的是( )。
A.将派生类对象地址赋给基类指针后,使用基类指针可以直接访问派生类中定义的公有成员
B.将派生类对象地址赋给基类指针后,使用基类指针只能访问派生类从基类继承的公有成员
C.公有派生才具有类型兼容的特点
D.无论是公有派生还是私有派生和保护派生,都具有类型兼容的特点
33.下列描述正确的是( )。
A.使用基类指针释放其所指向的派生类对象时,必须将析构函数声明为虚函数
B.为了减少错误,在定义类时最好将每个类的析构函数都声明为虚函数
C.当类里包含一个虚函数时,应把析构函数也声明为虚函数
D.类中包含虚函数会增加对象的尺寸
34.假设A为抽象类,下列语句( )是正确的。
A.A fun(int);
B.A *p;
C.int fun(A&);
D.A Obj;
35.已知Circle类定义如下所示,则下列说法正确的是( )。 class Circle { public: double m_x,m_y; double m_radius; void setCenter(double x,double y) { m_x=x; m_y=y; } void setRadius(double radius) { m_radius=radius; } double getArea( ) { return 3.14 * m_radius * m_radius; } };
A.m_x、m_y和m_radius都是Circle类的成员变量
B.setCenter、setRadius和getArea都是Circle类的成员函数
C.类定义体后面的分号可以省略
D.将double m_radius;改为double m_radius=1;,则表示m_radius成员变量的初值为1
三、判断题 (共 15 道试题,共 30 分)
36.当建立一个新对象时,程序不会自动调用任何函数。
37.在通信、数据压缩等领域被广泛应用的哈夫曼树采用的是二叉树结构。
38.二叉树是特殊的树形结构
39.在类体中可以在声明成员变量的同时为其赋初值。
40.使用关闭文件函数close()关闭一个文件时,但流对象仍存在。
41.在类内部定义的public数据可以在类外进行存取。
42.纯虚函数是一种特殊的成员函数,它是一种没有具体实现的虚函数。
43.类的私有成员只能被它的成员函数和友元函数访问。
44.如果某个有向图的邻接链表中第i个顶点的链表为空,则第i个顶点的出度为零。
45.在线性表的顺序存储结构中,插入和删除操作时,元素移动次数与插入和删除元素的位置有关。
46.线性表的顺序存储结构的特点是逻辑关系上相邻的两个元素在物理位置上也相邻。
47.类中的静态数据成员为该类的所有对象所共享,并且,在该类对象被销毁时,静态数据成员不会被同时销毁。
48.强连通图的各顶点间均可达。
49.在线性表的顺序存储结构中,逻辑上相邻的两个元素在物理位置上并不一定紧邻。
50.队列是操作受限的线性表,只允许在表的一端进行元素插入操作、在另一端进行元素删除操作。