南开21春学期(1709、1803、1809、1903、1909、2003、2009、2103)《程序设计基础(下)》在线作业【标准答案】

作者:佚名 字体:[增加 减小] 来源:互联网 时间:2021-05-27 22:52

21春学期(1709、1803、1809、1903、1909、2003、2009、2103)《程序设计基础(下)》在线作业 试卷总分:100 得分:100 一、单选题 (共 20 道试题,共 40 分) 1.在一个单链表中,若p所指结点不是最后
21春学期(1709、1803、1809、1903、1909、2003、2009、2103)《程序设计基础(下)》在线作业
试卷总分:100  得分:100
一、单选题 (共 20 道试题,共 40 分)
1.在一个单链表中,若p所指结点不是最后结点,在p之后插入s所指结点,则执行( )。
A.s->next=p;p->next=s;
B.s->next=p->next;p->next=s;
C.s->next=p->next;p=s;
D.p->next=s;s->next=p;
 
2.已知一个顺序存储的线性表,设每个结点需占m个存储单元,若第一个结点的地址为add1,则第I 个结点的地址为( )。
A.add1+(I-1)*m
B.add1+I*m
C.add1-I*m
D.add1+(I+1)*m
 
3.设线性表中有n个元素,( )操作,在单链表上实现要比在顺序表上实现效率更高。
A.删除所有值为x的元素
B.在最后一个元素的后面插入一个新元素
C.顺序输出前k个元素
D.交换第i个元素和第n-i-1个元素的值(i=1,1,…,n)
 
4.在数据结构中,从逻辑上可以把数据结构分成( )。
A.动态结构和静态结构
B.紧凑结构和非紧凑结构
C.线性结构和非线性结构
D.内部结构和外部结构
 
5.基类和派生类可以分别叫做( )。
A.“大类”和“小类”
B.“父类”和“子类”
C.“小类”和“大类”
D.“子类”和“父类”
 
6.在创建派生类对象时,构造函数的执行顺序是( )。
A.对象成员构造函数、基类构造函数、派生类本身的构造函数
B.派生类本身的构造函数、基类构造函数、对象成员构造函数
C.基类构造函数、派生类本身的构造函数、对象成员构造函数
D.基类构造函数、对象成员构造函数、派生类本身的构造函数
 
7.下面选项中,不是类的成员函数为( )。
A.构造函数
B.析构函数
C.友元函数
D.缺省参数的构造函数
 
8.建立类模板对象的实例化过程为( )。
A.基类->派生类
B.构造函数->对象
C.模板类->对象
D.模板类->模板函数
 
9.对虚函数的调用()。
A.一定使用动态联编
B.一定使用静态联编
C.必须使用动态联编
D.不一定使用动态联编
 
10.空类的声明( )是正确的。
A.class类名;
B.class类名{};
C.class类名{}
D.class类名
 
11.一个( )允许用户为类定义一种模式,使得类中的某些数据成员、某些成员函数的参数和返回值可以取任意数据类型。
A.函数模板
B.模板函数
C.类模板
D.模板类
 
12.在数据结构中,与所使用的计算机无关的是数据的( )结构。
A.逻辑
B.存储
C.逻辑和存储
D.物理
 
13.在C++中,打开一个文件就是将这个文件与一个()建立关联;关闭一个文件就是取消这种关联。
A.流
B.类
C.结构
D.对象
 
14.动态联编所支持的多态性是( )。
A.虚函数
B.继承
C.编译时的多态性
D.运行时的多态性
 
15.已知AA是一个类,则执行语句AA a;后( )。
A.自动调用无参构造函数
B.自动调用有参构造函数
C.自动调用拷贝构造函数
D.产生一个对象a,但不调用任何函数
 
16.如果以链表作为队列的存储结构,则出队操作时( )。
A.必须判别队列是否满
B.判别队列元素的类型
C.必须判别队列是否空
D.对队列不作任何判别
 
17.在一棵完全二叉树中,根结点的编号为1,按照由上到下由左到右的顺序为二叉树结点编号。若编号为5的结点存在右孩子,则右孩子结点的编号为( )。
A.9
B.10
C.11
D.12
 
18.关于对象成员的构造函数的调用顺序,说法正确的是( )。
A.与它们在成员初始化列表中给出的顺序相同
B.与析构函数的调用顺序相同
C.与它们在类中说明顺序相同
D.以上说法都不对
 
19.具有n个顶点的有向图最多有( )条边。
A.n
B.n(n+1)
C.n(n-1)
D.n的平方
 
20.下列描述中,()是抽象类的特性。
A.可以说明虚函数
B.可以定义友元函数
C.可以进行构造函数重载
D.不能说明其对象
 
二、多选题 (共 15 道试题,共 30 分)
21.假设A为抽象类,下列语句( )是错误的。
A.A fun(int);
B.A *p;
C.int fun(A);
D.A Obj;
 
22.在C++中,不能被派生类继承的函数是( )。
A.成员函数
B.构造函数
C.析构函数
D.拷贝构造函数
 
23.已知Derived是Base的公有派生类,且已定义两个对象Derived d;和Base b;,则下列语句中正确的是( )。
A.d=b;
B.b=d
C.Derived *d=&b;
D.Base &b=d;
 
24.对象的核心概念就是通常所说的()。
A.继承
B.封装
C.传递
D.多态
 
25.下列描述正确的是( )。
A.多态性是通过动态绑定实现的
B.多态性是通过静态绑定实现的
C.动态绑定是在程序执行时进行绑定
D.静态绑定是在程序执行时进行绑定
 
26.已知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
 
27.下列关于类的静态数据成员的说法中,正确的是( )。
A.静态数据成员的值初始化后不能再修改
B.静态数据成员必须在类体外定义和初始化
C.使用static关键字可以将一个数据成员声明为静态数据成员
D.静态数据成员的访问控制权限可以是公有、私有或保护
 
28.下列关于类的继承描述中,( )是错误的。
A.派生类可以访问基类的所有数据成员,也能调用基类的所有成员函数
B.派生类也是基类,但基类不一定具有派生类的全部属性和方法
C.继承描述类的层次关系,派生类可以具有与基类相同的属性和方法
D.一个基类可以有多个派生类,但一个派生类只能由一个基类
 
29.下列关于拷贝构造函数的说法中,正确的是( )。
A.拷贝构造函数是一个特殊的构造函数
B.一个类中只能有一个拷贝构造函数
C.如果定义一个类时没有定义拷贝构造函数,则系统会提供一个默认的不包含任何操作的拷贝构造函数
D.当一个类中有指针类型的成员变量时,则需要为这个类定义拷贝构造函数
 
30.下面属于析构函数特征的是( )。
A.析构函数可以重载
B.对象销毁前会自动调用析构函数
C.如果定义一个类时没有定义析构函数,则系统会提供一个默认析构函数~(){}
D.析构函数的函数类型为void
 
31.下面关于自定义类的运算符重载的说法中,正确的是( )。
A.类友元形式重载的运算符,重载函数中的this指针指向第一个运算数
B.类友元形式重载的运算符,重载函数中可以直接访问类中的私有成员
C.类友元形式重载的运算符,重载函数的参数个数与运算符的实际操作数个数相同
D.所有运算符都可以以类友元形式进行重载
 
32.关于类和对象正确的说法包括( )。
A.类是一种类型,它封装了数据和操作
B.对象是类的实例
C.一个类的对象只有一个
D.一个对象必属于某个类
 
33.下面对构造函数的正确描述是( )。
A.系统可以提供默认的构造函数
B.构造函数可以有参数,所以可以有返回值
C.构造函数可以重载
D.构造函数可以设置默认参数
 
34.下面描述中,正确的是( )。
A.多承中,多个基类必须采用相同的继承方式
B.多继承中,多个基类可以采用不同的继承方式
C.多继承中创建派生类对象时会先调用派生类构造函数,再调用各基类构造函数
D.多继承中创建派生类对象时各基类构造函数的调用顺序与基类的继承顺序一致
 
35.基类中的保护成员可能是派生类的( )。
A.public成员
B.private成员
C.protected成员
D.友元成员
 
三、判断题 (共 15 道试题,共 30 分)
36.类的成员函数中可以直接访问对象成员中的私有成员。
 
37.图的生成树即是树也是图。
 
38.二叉树是有序树。
 
39.设要把一个文件输出流对象myFile与文件“f:\myText.txt”相关联,所用的C++语句是ifstream myFile("f:\\myText.txt",ios::in|ios::out);
 
40.类中的静态数据成员为该类的所有对象所共享,并且,在该类对象被销毁时,静态数据成员不会被同时销毁。
 
41.C++中ostream类的直接基类是ios。
 
42.对象成员的访问与结构变量成员的访问相同,使用运算符.或->。
 
43.相对于完全二叉树,顺序表示法更适用于非完全二叉树。
 
44.二叉树的顺序表示法操作方便,但缺点是容易造成存储空间的浪费。
 
45.派生类中至少包含了它的所有基类的成员(除构造函数和析构函数外),在这些成员中可能有的是不可访问。
 
46.对链表进行插入和删除操作时不必移动链表中的结点。
 
47.顺序表能够存放的最大元素数量n称为线性表的长度。
 
48.类成员的三种访问控制属性是public、private和friend。
 
49.当类的继承方式为公有继承时,基类的私有成员在派生类中不可访问。
 
50.多数运算符可以重载,个别运算符不能,运算符重载是通过函数定义实现的。
 
Tag:  

作业咨询:
点击这里给我发消息

论文咨询:
点击这里给我发消息

合作加盟:
点击这里给我发消息

服务时间:
8:30-24:00(工作日)