可做各院校 作业 考核 论文 咨询请添加 QQ:3064302332 微信:wxxygzs
南开23秋学期(高起本:1709-2103、专升本高起专:2003-2103)《程序设计基础(下)》在线作业[标准答案]
试卷总分:100 得分:100
一、单选题 (共 20 道试题,共 40 分)
1.下面函数原型声明中,( )声明了fun为纯虚函数。
A.void fun()=0;
B.virtual void fun()=0;
C.virtual void fun();
D.virtual void fun(){};
2.向一个有127个元素的顺序表中插入一个新元素并保持原来顺序不变,平均要移动( )个元素。
A.64
B.63
C.63.5
D.7
3.在一个无向图中,若两顶点之间的路径长度为k,则该路径上的边数为( )。
A.k
B.k+1
C.k+2
D.2k
4.对于下面定义的类A在函数f()中将对象成员n的值修改为60的语句应该是( ) class A { public: A(int x){n=x;} void SetNum(int n1){n=n1;} private: int n; } int f() { A*ptr=new A(6); }
A.A(60)
B.SetNum(60)
C.ptr->SetNum(60)
D.ptr->n=60
5.已知一棵二叉树的先序遍历序列为ABCDEFG,中序遍历序列为CBDAFEG,则该二叉树的后序遍历序列是( )。
A.CDBFGEA
B.CDFGBEA
C.CDBAFGE
D.CDBFEGA
6.对于一个具有n个顶点的无向图,若采用邻接链表表示,则存放表头结点的数组的大小为 ( )。
A.n
B.n+1
C.n-1
D.n+边数
7.在一个单链表中,若将p所指结点的后继结点从链表中移除,则执行( )。
A.p=p->next->next;
B.p=p->next; p->next=p->next->next;
C.p->next=p->next;
D.p->next=p->next->next;
8.空类的声明( )是正确的。
A.class类名;
B.class类名{};
C.class类名{}
D.class类名
9.不论派生类以何种方法继承基类,都不能使用基类的( )。
A.public成员
B.private成员
C.protected成员
D.private成员和protected成员
10.线性表中的一个结点最多有( )个前驱。
A.0
B.1
C.2
D.无数个
11.类B是类A的公有派生类,类A和类B中都定义了虚函数func(),p是一个指向类A对象的指针,则p->A::func()将( )。
A.调用类A中是函数func()
B.调用类B中是函数func()
C.根据P所指的对象类型而确定调用A中或类B中的函数func()
D.既调用类A中函数,也调用类B中的函数
12.深度为5的二叉树至多有( )个结点。
A.16
B.32
C.31
D.10
13.已知一个顺序存储的线性表,设每个结点需占m个存储单元,若第一个结点的地址为add1,则第I 个结点的地址为( )。
A.add1+(I-1)*m
B.add1+I*m
C.add1-I*m
D.add1+(I+1)*m
14.下面对友元的错误描述是( )。
A.关键字friend用于声明友元
B.一个类的成员函数可以是另一个类的友元
C.友元函数访问对象的成员不受访问特性影响
D.友元函数通过this指针访问对象成员
15.设a,b为一棵二叉树上的两个结点,在中序遍历中,a 在b 前面的条件是( )。
A.a在b的右方
B.a在b的左方
C.a是b的祖先
D.a是b的子孙
16.树中各结点度的最大值称为树的( )。
A.路径
B.度
C.层
D.深度
17.动态联编所支持的多态性是( )。
A.虚函数
B.继承
C.编译时的多态性
D.运行时的多态性
18.( )的功能是对对象进行初始化。
A.析构函数
B.数据成员
C.构造函数
D.静态数据成员
19.顺序存储结构中数据元素之间的逻辑关系是由( )表示的。
A.线性结构
B.非线性结构
C.指针
D.存储位置
20.关于纯虚函数,下列表述正确的是( )。
A.纯虚函数是未给出实现版本(即无函数体定义)的虚函数
B.纯虚函数的声明总是以“=0”结束
C.派生类必须实现基类的纯虚函数
D.含有纯虚函数的类一定是派生类
二、多选题 (共 15 道试题,共 30 分)
21.关于类和对象不正确的说法包括( )。
A.类是一种类型,它封装了数据和操作
B.对象是类的实例
C.一个类的对象只有一个
D.一个对象可以属于多个类
22.下列关于类模板的描述中,正确的是( )。
A.类模板的模板形参表中既可以有类型形参也可以有普通形参
B.类模板的成员函数中可以用类型形参定义局部变量
C.类模板中可以用类型形参声明成员变量
D.类模板只能在类体中给出成员函数的实现
23.下列说法正确的是( )。
A.面向对象方法的基本观点是一切系统都是由对象构成的
B.面向对象方法的基本观点是一切系统都是由模块构成的
C.面向对象方法中通过“消息”来触发行为
D.面向对象方法中用类和对象来表示现实世界
24.不论派生类以何种方法继承基类,都可以使用基类的( )。
A.public成员
B.private成员
C.protected成员
D.所有成员
25.已知Derived是Base的公有派生类,且已定义两个对象Derived d;和Base b;,则下列语句中正确的是( )。
A.d=b;
B.b=d
C.Derived *d=&b;
D.Base &b=d;
26.不能使用类对象直接访问的成员包括( )。
A.公有成员
B.保护成员
C.私有成员函数
D.私有成员变量
27.下面对友元的错误描述是( )。
A.关键字virtual用于声明友元
B.一个类的成员函数可以是另一个类的友元
C.友元函数访问对象的成员不受访问特性影响
D.友元函数通过this指针访问对象成员
28.下列( )不是构造函数的特征。
A.构造函数在创建对象时自动调用
B.构造函数可以重载
C.构造函数不可以设置默认参数
D.构造函数必须指定函数类型
29.关于this指针的说法正确的是( )。
A.this指针必须显示说明
B.成员函数不拥有this指针
C.成员函数拥有this指针
D.静态成员函数不拥有this指针
30.下列关于类型兼容的描述中,正确的是( )。
A.将派生类对象地址赋给基类指针后,使用基类指针可以直接访问派生类中定义的公有成员
B.将派生类对象地址赋给基类指针后,使用基类指针只能访问派生类从基类继承的公有成员
C.公有派生才具有类型兼容的特点
D.无论是公有派生还是私有派生和保护派生,都具有类型兼容的特点
31.图的物理结构主要包括:
A.顺序表
B.邻接矩阵
C.邻接链表
D.邻接压缩表
32.下面描述中,错误的是( )。
A.虚函数是没有实现的函数
B.纯虚函数是没有实现的函数
C.抽象类可以用于创建对象
D.抽象类指针可以指向不同的派生类
33.已知in是ifstream对象,则下列语句正确的是( )。
A.in.seekg(5);
B.in.seekg(5, ios::beg);
C.in.seekg(5, ios::end);
D.in.seekg(-5);
34.下面关于自定义类的运算符重载的说法中,正确的是( )。
A.C++中的所有运算符都可以重载
B.不仅可以重载C++中已有的运算符,还可以创建新的运算符
C.运算符重载实质上就是函数重载
D.运算符重载的函数名是operator
35.下面关于自定义类的运算符重载的说法中,正确的是( )。
A.类友元形式重载的运算符,重载函数中的this指针指向第一个运算数
B.类友元形式重载的运算符,重载函数中可以直接访问类中的私有成员
C.类友元形式重载的运算符,重载函数的参数个数与运算符的实际操作数个数相同
D.所有运算符都可以以类友元形式进行重载
三、判断题 (共 15 道试题,共 30 分)
36.使用关键字class定义的类中默认的访问权限是私有(private)的。
37.二叉树的中序遍历二叉链表的实现既可采用非递归方式,也可采用递归方式。
38.深度优先遍历类似于树的先序遍历。
39.一个结点的后继的数目称为该结点的度;树中各结点度的最大值称为树的度。
40.含有纯虚函数的类是抽象类。
41.类的静态成员变量只能在静态成员函数中使用。
42.构造函数和析构函数都不能重载。
43.在线性表的链式存储结构中,插入和删除操作时,元素移动次数与插入和删除元素的位置有关。
44.某类中的友元类的所有成员函数可以存取或修改该类中的私有成员。
45.图说的是数据的逻辑结构。
46.类的成员函数中可以直接访问对象成员中的私有成员。
47.继承性是指同样的消息被不同对象接收时可产生不同的行为。
48.派生类中至少包含了它的所有基类的成员(除构造函数和析构函数外),在这些成员中可能有的是不可访问。
49.析构函数不能被继承。
50.线性结构的特点是只有一个结点没有前驱,只有一个结点没有后继,其余的结点只有一个前驱和后继。