重庆大学秋季学期课程作业C++程序设计语言题目.docx
- 文档编号:6552228
- 上传时间:2023-01-07
- 格式:DOCX
- 页数:29
- 大小:24.19KB
重庆大学秋季学期课程作业C++程序设计语言题目.docx
《重庆大学秋季学期课程作业C++程序设计语言题目.docx》由会员分享,可在线阅读,更多相关《重庆大学秋季学期课程作业C++程序设计语言题目.docx(29页珍藏版)》请在冰豆网上搜索。
重庆大学秋季学期课程作业C++程序设计语言题目
答案+我名字
20
一、单项选择题(共20题、共50分)
1.
以下关于函数模板叙述正确的是()。
A、
函数模板也是一个具体类型的函数
B、
函数模板的类型参数与函数的参数是同一个概念
C、
通过使用不同的类型参数,函数模板可以生成不同类型的函数
D、
用函数模板定义的函数没有类型
2.
假定AA为一个类,inta()为该类的一个成员函数,若该成员函数在类定义体外定义,则函数头为()。
A、
intAA:
:
a()
B、
intAA:
a()
C、
AA:
:
a()
D、
AA:
:
inta()
3.
使用派生类的主要原因是()
A、
提高代码的可重用性
B、
提高程序的运行效率
C、
加强类的封装性
D、
实现数据的隐藏
4.
下列关于C++函数的说明中正确的是()。
A、
内联函数就是定义在另一函数体内部的函数。
B、
函数体的最后一条语句必须是RETURN语句。
C、
标准C++要求在调用一个函数之前,必须先声明其原型。
D、
编译器会根据函数的返回值类型和参数表来区分函数的不同重载形式。
5.
假设已经定义好了类student,现在要定义类derived,它是从student私有派生的,则定义类derived的正确写法是()。
A、
classderived:
:
studentprivate{//,,,,.}
B、
classderived:
:
studentpublic{//,,,,.}
C、
classderived:
:
publicstudent{//,,,,.}
D、
classderived:
:
privatestudent{//,,,,.}
6.
下列对引用的陈述中不正确的是()。
A、
每一个引用都是其所引用对象的别名,因此必须初始化
B、
形式上针对引用的操作实际上作用于它所引用的对象
C、
一旦定义了引用,一切针对其所引用对象的操作只能通过该引用间接进行
D、
不需要单独为引用分配存储空间
7.
在一个用数组实现的队列类中,假定数组长度为MS,队首元素位置为first,队列长度为length,则队尾(即最后一个)元素的位置为()。
A、
length+1
B、
first+length
C、
(first+length-1)%MS
D、
(first+length)%MS
8.
由C++源程序文件编译而成的目标文件的缺省扩展名为()。
A、
cpp
B、
exe
C、
obj
D、
lik
9.
如果类A被说明成类B的友元,则()。
A、
类A的成员即类B的成员。
B、
类B的成员即类A的成员。
C、
类A的成员函数不得访问类B的成员。
D、
类B不一定是类A的友元。
10.
面向对象方法的多态性是指()。
A、
一个类可以派生出多个特殊类
B、
一个对象在不同的运行环境中可以有不同的变体
C、
针对一消息,不同的对象可以以适合自身的方式加以响应
D、
一个对象可以是由多个其他对象组合而成的
11.
关于封装,下列说法中不正确的是()。
A、
通过封装,对象的全部属性和操作结合在一起,形成一个整体
B、
通过封装,一个对象的实现细节被尽可能地隐藏起来(不可见)
C、
通过封装,每个对象都成为相对独立的实体
D、
通过封装,对象的属性都是不可见的
12.
运算符重载是对已有的运算符赋予多重含义,因此()。
A、
可以对基本类型(如int类型)的数据,重新定义“+”运算符的含义
B、
可以改变一个已有运算符的优先级和操作数个数
C、
只能重载C++中已经有的运算符,不能定义新运算符
D、
C++中已经有的所有运算符都可以重载
13.
关于成员函数特征的下列描述中,()是错误的。
A、
成员函数一定是内联函数
B、
成员函数可以重载
C、
成员函数可以设置缺省参数值
D、
成员函数可以是静态的
14.
关于内联函数说法错误的是()。
A、
不是任何一个函数都可定义成内联函数
B、
内联函数的函数体内不能含有复杂的结构控制语句
C、
递归函数可以被用来作为内联函数
D、
内联函数一般适合于只有1~5行语句的小函数
15.
在intb[][3]={{1},{3,2},{4,5,6},{0}};b[2][2]的值是()。
A、
0
B、
2
C、
5
D、
6
16.
对于一个类的构造函数,其函数名与类名()。
A、
完全相同
B、
基本相同
C、
不相同
D、
无关系
17.
按照标识符的要求,()符号不能组成标识符。
A、
连接符
B、
下划线
C、
大小写字母
D、
数字字符
18.
假定AB为一个类,则执行“AB*s=newAB(a,5);”语句时得到的一个动态对象为()。
A、
s
B、
s->a
C、
s.a
D、
*s
19.
关于消息,下列说法中不正确的是()。
A、
发送消息的对象请求服务,接受消息的对象提供服务
B、
消息的发送者必须了解消息的接收者如何相应消息
C、
在C++中,消息的发送具体体现为对接收消息的对象的某个函数的调用
D、
每个对象只能接收某些特定格式的消息
20.
在inta=3;*p=&a;中,*p的值是()。
A、
变量a的地址值
B、
无意义
C、
变量p的地址值
D、
3
二、判断题(共20题、共50分)
1.
C++程序中,定义了:
fstreammyf;后,即可以使用myf对象处理输入文件,也可以使用myf处理输出文件。
正确
错误
2.
C++程序中,要用二进制方式处理输入/输出文件,可以使用下面的语句序列打开指定文件。
fstreammyf;myf.open("data",ios:
:
in|ios:
:
out|ios:
:
binary);
正确
错误
3.
C++程序中,实现动态分配的运算符new和delete必须配合使用。
正确
错误
4.
将字符串数据:
"Thisisateststring."作为string类型对象str的初始值,可以使用C++语句:
stringstr("Thisisateststring.");。
正确
错误
5.
C++程序中,默认情况下都是打开文本文件,处理二进制文件必须使用ios:
:
binary指定。
正确
错误
6.
C++程序中可以使用C标准库中提供的字符分类标准函数,使用时需要用文件包含预处理命令将cctype头文件包含到源程序中。
正确
错误
7.
C++程序中,可以通过文件流对象的seekg移动文件的写位置指针。
正确
错误
8.
C++程序中,创建动态一维数组时,必须要使用相应数据类型的一级指针来表示动态数组的起始地址。
正确
错误
9.
C++程序中,输入任何数据都不能指定域宽,只能以实际输入的数据为准。
正确
错误
10.
C++程序中,string类型对象之间可以直接进行赋值运算。
正确
错误
11.
C++程序中,处理的文件类型主要分为文本文件和二进制文件。
正确
错误
12.
C++程序中,使用setw指定的域宽格式控制仅对紧跟在其后的输出数据项有效。
正确
错误
13.
C++程序中,因为不能用文件流对象做函数的形式参数,所以不能将文件处理部分编制成独立的函数。
正确
错误
14.
C++程序中,文件的随机读写方式有利于数据文件的修改操作,从而提高这类文件处理的效率。
正确
错误
15.
C++程序中,若有定义语句:
ofstreammyf;,则下面两条语句实现相同的功能。
myf.open("data",ios:
:
out);myf.open("data");
正确
错误
16.
C++语言中,文件是指具名存放在外部存储设备上的一组信息,它们以二进制代码形式存在。
正确
错误
17.
类的友元关系是单向的,类A是类B的友元类,反过来类B不一定是类A的友元类。
正确
错误
18.
为了确定线性链表第一个结点的存放位置,必须使用一个指针变量指向链表的表头。
正确
错误
19.
无论虚基类是否定义了默认构造函数,派生类都必须在自己的构造函数中,使用初始化列表去调用虚基类的构造函数。
正确
错误
20.
使用保护继承来生成派生类时,基类的公有成员在派生类中以公有成员的方式存在。
正确
错误
一、单项选择题(共20题、共50分)
1.
以下关于函数模板叙述正确的是()。
A、
函数模板也是一个具体类型的函数
B、
函数模板的类型参数与函数的参数是同一个概念
C、
通过使用不同的类型参数,函数模板可以生成不同类型的函数
D、
用函数模板定义的函数没有类型
2.
假设已经定义好了类student,现在要定义类derived,它是从student私有派生的,则定义类derived的正确写法是()。
A、
classderived:
:
studentprivate{//,,,,.}
B、
classderived:
:
studentpublic{//,,,,.}
C、
classderived:
:
publicstudent{//,,,,.}
D、
classderived:
:
privatestudent{//,,,,.}
3.
面向对象方法的多态性是指()。
A、
一个类可以派生出多个特殊类
B、
一个对象在不同的运行环境中可以有不同的变体
C、
针对一消息,不同的对象可以以适合自身的方式加以响应
D、
一个对象可以是由多个其他对象组合而成的
4.
运算符重载是对已有的运算符赋予多重含义,因此()。
A、
可以对基本类型(如int类型)的数据,重新定义“+”运算符的含义
B、
可以改变一个已有运算符的优先级和操作数个数
C、
只能重载C++中已经有的运算符,不能定义新运算符
D、
C++中已经有的所有运算符都可以重载
5.
C++类体系中,不能被派生类继承的有()。
A、
构造函数
B、
虚函数
C、
静态成员函数
D、
赋值操作函数
6.
结构中定义的成员默认为()访问属性。
A、
public
B、
private
C、
protected
D、
friend
7.
关于内联函数说法错误的是()。
A、
不是任何一个函数都可定义成内联函数
B、
内联函数的函数体内不能含有复杂的结构控制语句
C、
递归函数可以被用来作为内联函数
D、
内联函数一般适合于只有1~5行语句的小函数
8.
下面有关友员函数的描述中,正确的说法是()
A、
友员函数是独立于当前类的外部函数
B、
一个友员函数不可以同时定义为两个类的友员函数
C、
友员函数必须在类的外部进行定义
D、
在类的外部定义友员函数时必须加上friend关键字
9.
下面标识符中正确的是()
A、
_abc
B、
3ab
C、
int
D、
+ab
10.
假定变量x定义为“intx=5;”,要使rx成为x的引用(别名),rx应定义为()。
A、
intrx=x;
B、
intrx=&x;
C、
int*rx=&x;
D、
int&rx=x;
11.
在intb[][3]={{1},{3,2},{4,5,6},{0}};b[2][2]的值是()。
A、
0
B、
2
C、
5
D、
6
12.
关于对象和类的关系,说法正确的是()。
A、
同属于一类的对象,具有相同的数据成员和成员函数。
B、
对象是具体,是类的对象,同其他变量一样,先定义后使用。
C、
同一类的不同对象,其具有的操作可不同,具体的操作也不同。
D、
不同类的对象,可有相同的操作。
13.
C++源程序文件的缺省扩展名为()。
A、
cpp
B、
exe
C、
obj
D、
lik
14.
对于任一个类,用户所能定义的构造函数的个数至多为()。
A、
0
B、
1
C、
2
D、
任意个
15.
假定AB为一个类,则()为该类的拷贝构造函数的原型说明。
A、
AB(ABx);
B、
AB(intx);
C、
AB(AB&x);
D、
voidAB(AB&x);
16.
关于封装,以下说法中不正确的是()。
A、
通过封装,对象的全部属性和操作结合在一起,形成一个整体
B、
通过封装,一个对象的实现细节被尽可能地隐藏起来(不可见)
C、
通过封装,每个对象都成为相对独立的实体
D、
通过封装,对象的属性都是不可见的
17.
有关变量的正确说法是()。
A、
存储单元及内容
B、
自动变化的数
C、
地
D、
人为设置的数
18.
下列关于构造函数的描述中,错误的是()。
A、
构造函数可以设置默认的参数
B、
构造函数在定义类对象的自动执行
C、
构造函数可以是内联函数
D、
构造函数不可以重载
19.
当类中一个字符指针成员指向具有n个字节的存储空间时,它所能存储字符串的最大长度为()。
A、
n
B、
n+1
C、
n-1
D、
n-2
20.
在inta=3;*p=&a;中,*p的值是()。
A、
变量a的地址值
B、
无意义
C、
变量p的地址值
D、
3
二、判断题(共20题、共50分)
1.
C++程序中初始化多维数组时,如果提供了数组的全部元素值,则可任意地选择省略其中一维的长度指定。
正确
错误
2.
C++程序中,要用二进制方式处理输入/输出文件,可以使用下面的语句序列打开指定文件。
fstreammyf;myf.open("data",ios:
:
in|ios:
:
out|ios:
:
binary);
正确
错误
3.
将字符串数据:
"Thisisateststring."作为string类型对象str的初始值,可以使用C++语句:
stringstr("Thisisateststring.");。
正确
错误
4.
使用字符数组方式处理字符串数据时,一不小心可能出现数组越界的错误,而且往往不太容易发现这类错误。
正确
错误
5.
C++程序中,如果要求将文件中的所有数据依次进行处理,则使用文件的随机读写方式处理文件更为合理。
正确
错误
6.
C++程序中,默认情况下都是打开文本文件,处理二进制文件必须使用ios:
:
binary指定。
正确
错误
7.
C++程序中,可以通过输入文件流对象的get函数从数据文件中读取字符数据。
正确
错误
8.
C++程序中,可以通过文件流对象的seekg移动文件的写位置指针。
正确
错误
9.
C++程序中,创建动态一维数组时,必须要使用相应数据类型的一级指针来表示动态数组的起始地址。
正确
错误
10.
C++程序中,可以通过文件流对象的tellg函数获取文件写位置指针与文件头之间的距离(字节数)。
正确
错误
11.
C++程序中,处理的文件类型主要分为文本文件和二进制文件。
正确
错误
12.
C++程序中,使用setw指定的域宽格式控制仅对紧跟在其后的输出数据项有效。
正确
错误
13.
C++程序中,函数模板并不是一个真正意义上的函数,编译器不会为其产生任何可执行代码。
正确
错误
14.
C++程序中,定义了:
ifstreammyf;后,可以使用myf对象处理输出文件。
正确
错误
15.
C++程序中,文件的随机读写方式有利于数据文件的修改操作,从而提高这类文件处理的效率。
正确
错误
16.
C++中,用于处理文件数据的类是:
ifstream、ofstream和fstream。
正确
错误
17.
在类内部定义的private和protected的数据成员不能被类外代码访问,定义public的数据成员可以被类外代码访问。
正确
错误
18.
当我们设计的类中包含指针类型成员变量时,应该自定义具有深度拷贝功能的拷贝构造函数。
在构造这个函数时,需要使用new操作符来动态开辟内存空间。
正确
错误
19.
如果基类的析构函数定义为虚函数,那么这个基类的所有子孙类的析构函数都将是虚函数
正确
错误
20.
无论派生类的多个基类是否来源于同一个祖先类,都可以使用作用域限定符:
:
来消除多重继承带来的二义性。
正确
错误
特别提醒:
一、填空题(共10题、共30分)
1.
C++语言是在_________语言的基础上发展起来的。
在线答题
C
2.
在C++中,编译时的多态性是通过__________实现的,而运行时的多态性则是通过__________实现的。
在线答题
重载;虚函数
3.
执行char*p=newchar(’a’)操作后,p所指向的数据对象的值为________。
在线答题
’a’
4.
在C++程序中包含一个头文件或程序文件的预编译命令为__________。
在线答题
#include
5.
设enumPrintstatus{ready,busy,error};则cout< 在线答题 1 6. C++支持两种多态性: _________时的多态性和__________时的多态性。 在线答题 编译;运行 7. 全局变量和静态局部变量具有静态生存期,存放在内存的____________区中。 在线答题 全局数据 8. 用于输出表达式值的标准输出流对象是_________。 在线答题 cout 9. 在C++中存储字符串”abcdef”至少需要________个字节。 在线答题 7 10. 以面向对象方法构造的系统,其基本单位是__________。 在线答题 二、程序阅读题(共6题、共30分) 1. 写出下列程序的运行结果。 #include voidFun() { intnum=20; cout<<"TheFun'snumis"< } voidmain() { intnum=10; cout<<"Themain'snumis"< Fun(); { intnum=30; cout<<"TheField'snumis"< } cout<<"Themain'snumis"< } 在线答题 Themain''snumis10TheFun''snumis20TheField''snumis30Themain''snumis10 2. 请写出如下程序的输出结果: #include inta[]={2,4,6,8,10}; int&index(inti) {returna[i]; } voidmain() { inti; index(3)=12; for(i=0;i<=4;i++) cout< } 在线答题 2461210 3. 阅读程序,写出运行结果。 #include inta=5; voidfun(intb) { staticinta=10; a+=b++;
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 重庆大学 秋季 学期 课程 作业 C+ 程序设计语言 题目
![提示](https://static.bdocx.com/images/bang_tan.gif)