2024年聊城大学《C++》期末试卷
一、单项选择题(每题2分,共30分)
1.以下关于C++语言的描述,正确的是()
A.C++语言是一种脚本语言
B.C++完全兼容C语言
C.C++语言不支持面向对象编程
D.C++程序不需要编译就能运行
2.下列数据类型中,不属于C++基本数据类型的是()
A.intB.floatC.stringD.char3.定义一个整型变量a并初始化为5,正确的语句是()
A.inta=5;B.a=5;inta;C.int5=a;D.inta;a=5;4.若有语句intx=10,y=20;,则执行x=x^y;y=x^y;x=x^y;后,x和y的值分别为()
A.x=10,y=20B.x=20,y=10C.x=10,y=10D.x=20,y=205.关于C++中的函数,下列说法错误的是()
A.函数可以有多个返回值
B.函数可以没有参数
C.函数可以进行嵌套调用
D.函数可以有默认参数
6.以下哪个关键字用于定义类()
A.structB.classC.unionD.enum7.若有类定义classA{intx;public:voidsetX(inta){x=a;}intgetX(){returnx;}};,则下列说法正确的是()
A.x是公有的数据成员
B.setX和getX是私有的成员函数
C.可以通过Aa;a.x=10;直接访问xD.可以通过Aa;a.setX(10);调用setX函数
8.C++中,实现继承的关键字是()
A.extendsB.implementsC.publicD.:(冒号)9.关于虚函数,下列说法正确的是()
A.虚函数必须在基类中定义为virtualB.虚函数不能被子类重写
C.调用虚函数时,在编译阶段就确定调用哪个函数
D.虚函数只能是成员函数
10.以下哪种容器是C++标准模板库(STL)中的顺序容器()
A.setB.mapC.vectorD.unordered_map11.若要打开一个文件进行写入操作,使用fstream类的构造函数时,应指定的打开模式为()
A.ios::inB.ios::outC.ios::appD.ios::binary12.异常处理中,用于抛出异常的关键字是()
A.tryB.catchC.throwD.finally13.C++中的引用类型,以下说法正确的是()
A.引用必须在定义时初始化
B.引用可以指向不同的对象
C.引用就是指针
D.引用可以不与变量关联
14.关于运算符重载,下列说法错误的是()
A.可以重载+、-等算术运算符
B.可以重载、等流插入和流提取运算符
C.所有运算符都可以重载
D.运算符重载函数可以是类的成员函数或友元函数
15.以下代码段的输出结果是()
#include
usingnamespacestd;
intmain(){
intarr[]={1,2,3,4,5};
int*p=arr;
cout*(p+3)endl;
return0;
}
A.1
B.2
C.3
D.4
二、填空题(每空2分,共20分)
1.C++程序的入口函数是______。
2.定义一个字符数组str,存储字符串Hello,正确的语句是charstr[]=Hello;,该数组在内存中占用的字节数为______。
3.在C++中,const关键字用于定义______,其值在定义后不能被修改。
4.类中的数据成员和成员函数默认的访问权限是______。
5.多态性分为______多态和______多态,函数重载体现的是______多态。
6.vector容器在使用前需要包含的头文件是______。
7.C++中,delete运算符用于释放由______运算符分配的内存空间。
三、程序阅读题(每题10分,共20分)
1.分析以下C++程序,写出输出结果。
#include
usingnamespacestd;
voidswap(inta,intb){
inttemp=a;
a=b;
b=temp;
}
intmain(){
intx=10,y=20;
swap(x,y);
cout