正确答案:B
23春学期(高起本1709-2103、专升本/高起专1903-2103)《程序设计基础(下)》在线作业-00001
正确答案:D
试卷总分:100 得分:100
一、单选题 (共 20 道试题,共 40 分)
1.在含n个顶点和e条边的无向图的邻接矩阵中,零元素的个数为( )。
A.e
B.2e
C.n的平方减e
D.n的平方2减2e
正确答案:D
正确答案:A
2.深度为5的二叉树至多有( )个结点。
A.16
B.32
C.31
D.10
正确答案:D
3.动态联编所支持的多态性是( )。
A.虚函数
B.继承
C.编译时的多态性
D.运行时的多态性
正确答案:B
4.实现运行时的多态性要使用()。
A.构造函数
B.析构函数
C.重载函数
D.虚函数
正确答案:B
5.下列关于队列的叙述中正确的是( )。
A.在队列中只能插入数据
B.在队列中只能删除数据
C.队列是先进先出的线性表
D.队列是先进后出的线性表
正确答案:B
6.C++有( )种联编方式。
A.1
B.2
C.3
D.4
正确答案:A
7.在含n个顶点和e条边的无向图的邻接矩阵中,非零元素的个数为( )。
A.e
B.2e
C.n的平方减e
D.n的平方2减2e
8.已知AA是一个类,则执行语句AA a;后( )。
A.自动调用无参构造函数
B.自动调用有参构造函数
C.自动调用拷贝构造函数
D.产生一个对象a,但不调用任何函数
正确答案:C
9.如果以链表作为栈的存储结构,则退栈操作时( )。
A.必须判别栈是否满
B.判别栈元素的类型
C.必须判别栈是否空
D.对栈不作任何判别
正确答案:B
10.在一个无向图中,若两顶点之间的路径长度为k,则该路径上的顶点数为( )。
A.k
B.k+1
C.k+2
D.2k
正确答案:D
11.下面叙述错误的是( )。
A.派生类可以使用private派生
B.对基类成员的访问必须是无二义性的
C.基类成员的访问能力在派生类中维持不变
D.赋值兼容规则也适用于多继承的组合
正确答案:A
12.在一个单链表中,若将p所指结点从链表中移除,q已指向其前驱结点,则执行( )。
A.q->next=p
B.q=p->next
C.q->next=p->next
D.p->next=q
正确答案:C
13.链式存储结构中数据元素之间的逻辑关系是由( )表示的。
A.非线性结构
B.指针
C.存储位置
D.线性结构
正确答案:B
14.运算符delete删除一个动态对象时( )。
正确答案:A
A.首先为该动态对象调用构造函数,再释放其占用的内存
B.首先释放该动态对象占用的内存,再为其调用构造函数
C.首先为该动态对象调用析构函数,再释放其占用的内存
D.首先释放动态对象占用的内存,再为其调用析构函数
正确答案:D
15.下面程序段中是内联函数的是( )。 class location { private: int x ,y; public: void init(int initx,int inity) { x=initx; y=inity; } int getx(){return x;} int gety(); }; inline int location::gety() {return y;}
正确答案:D
A.init (int initx,int inity)
B.getx(),gety()
C.A和B都是
D.A和getx()
正确答案:D
16.下面对构造函数的不正确描述是( )。
A.系统可以提供默认的构造函数
B.构造函数可以有参数,所以可以有返回值
C.构造函数可以重载
D.构造函数可以设置默认参数
正确答案:B
正确答案:A
17.this指针是C++实现( )的一种机制。
A.抽象
B.封装
C.继承
D.重载
正确答案:C
21.进行文件操作时需要包含_ ()头文件。
A.iostream
B.fstream
C.stdio
正确答案:C
D.stdlib
正确答案:A
19.下列关于C++类的描述中错误的是( )。
A.类与类之间可以通过一些手段进行通信和联络
B.类用于描述事物的属性和对事物的操作
C.类与类之间必须是平等的关系,而不能组成层次关系
D.类与类之间可以通过封装而具有明确的独立性
正确答案:D
20.按照二叉树的定义,具有3个结点的二叉树,共有( )种形状。
A.3
B.4
C.5
D.6
正确答案:C
南开23春学期《程序设计基础(下)》在线作业[答案]多选题答案
正确答案:D
二、多选题 (共 15 道试题,共 30 分)21.下列( )是构造函数的特征。
A.构造函数在创建对象时自动调用
B.构造函数不可以重载
C.构造函数不可以设置默认参数
D.构造函数没有函数类型
正确答案:C
22.已知Derived是Base的公有派生类,且已定义两个对象Derived d;和Base b;,则下列语句中正确的是( )。
正确答案:D
A.d=b;
正确答案:A
B.b=d
C.Derived *d=&b;
正确答案:D
D.Base &b=d;
正确答案:B
23.下面对对象成员的正确描述是( )。
A.可以在构造函数的初始化列表中给出对象成员的初始化
B.可以在构造函数的函数体中给出对象成员的初始化
C.如果一个对象成员有无参构造函数,则可以省略对象成员的初始化语句
D.若A类中有B类对象成员,则在创建A类对象时,先执行B类的构造函数,再执行A类的构造函数
正确答案:B
24.下面对构造函数的正确描述是( )。
A.系统可以提供默认的构造函数
B.构造函数可以有参数,所以可以有返回值
C.构造函数可以重载
D.构造函数可以设置默认参数
25.已知f是以二进制读写方式打开的文件流对象,且有int型变量a,则下列选项中能正确进行文件读写操作的语句包括( )。
A.write((char*)a, sizeof(a));
B.write((char*)&a, sizeof(a));
C.read((char*)a, sizeof(a));
正确答案:C
D.read((char*)&a, sizeof(a));
正确答案:A
26.图的遍历方法主要包括:
A.深度优先遍历
B.广度优先遍历
C.后序遍历#逐层遍历
27.在C++中,要实现动态绑定,可以使用( )调用虚函数。
A.基类引用
B.派生类指针
C.基类对象
D.基类指针
正确答案:D
28.二叉树可以采用的存储方式包括:
A.顺序存储
B.二叉链表
C.三叉链表
D.队列
正确答案:C
29.在C++中,不能被派生类继承的函数是( )。
A.成员函数
B.构造函数
C.析构函数
D.拷贝构造函数
正确答案:C
30.关于类和对象正确的说法包括( )。
A.类是一种类型,它封装了数据和操作
B.对象是类的实例
C.一个类的对象只有一个
D.一个对象必属于某个类
正确答案:B
31.下列关于函数模板的描述中,正确的是( )。
A.函数模板和普通函数重载时,函数调用会优先调用符合要求的普通函数
B.函数模板和普通函数重载时,函数调用会优先调用符合要求的函数模板
C.函数模板的主要作用是减少可执行程序文件的尺寸
D.函数模板的主要作用是简化程序编写
正确答案:C
32.下列选项中,属于类型兼容特点的选项包括( )。
A.可以用派生类对象给基类对象赋值
B.可以用派生类对象地址给基类指针赋值
C.可以用基类对象给派生类对象赋值
D.可以用基类对象初始化派生类引用
正确答案:B
33.下列关于拷贝构造函数的说法中,错误的是( )。
A.拷贝构造函数是可以重载
B.用一个对象给另一个对象赋值时,拷贝构造函数会被自动调用
C.用一个对象初始化另一个对象时,拷贝构造函数会被自动调用
D.创建一个对象时,有可能同时调用拷贝构造函数和其他构造函数
正确答案:C
34.下面描述中,正确的是( )。
A.虚函数是没有实现的函数
B.纯虚函数的实现在派生类中
C.抽象类是有纯虚函数的类
D.抽象类指针可以指向不同的派生类
正确答案:A
35.已知类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
正确答案:A
三、判断题 (共 15 道试题,共 30 分)
36.边上带权的图就称为带权图。
37.二叉树的顺序表示法操作方便,但缺点是容易造成存储空间的浪费。
38.根据二叉树的后序遍历序列可以确定二叉树的根结点。
39.C++语言中模板分为函数模板和类模板两种。
40.在线性表的顺序存储结构中,插入和删除操作时,元素移动次数与插入和删除元素的位置有关。
41.用邻接矩阵存储一个图时,所占用的存储空间大小只与图中顶点个数有关,而与图的边数无关。
42.使用指向对象的指针来访问类的成员,则必须使用的运算符是->。
43.在删除一个动态对象时,将自动调用该动态对象所属类的析构函数。
44.多数运算符可以重载,个别运算符不能,运算符重载是通过函数定义实现的。
45.构造函数和析构函数都不能重载。
46.二叉树的逐层遍历,是指从第1层开始依次对每层中的结点按照从左至右的顺序进行访问。
47.线性表中的一个结点可以有多个前驱和多个后继
48.使用关闭文件函数close()关闭一个文件时,但流对象仍存在。
49.线性表的顺序存储结构的特点是逻辑关系上相邻的两个元素在物理位置上也相邻。
50.用邻接链表存储一个图时,边数越多,占用的存储空间越大。
南开23春学期《程序设计基础(下)》在线作业[答案]历年参考题目如下:
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.静态绑定是在程序执行时进行绑定