C期中考试试题级.docx
《C期中考试试题级.docx》由会员分享,可在线阅读,更多相关《C期中考试试题级.docx(16页珍藏版)》请在冰豆网上搜索。
C期中考试试题级
一、单项选择题[2.0分/题]
1、C++与C语言最根本的不同之处在于_______。
选项A:
能够实现变量自动初始化
选项B:
使用了类
选项C:
支持软件重用
选项D:
支持接口重用
试卷答案:
B
相关知识点:
基础知识
试卷入库时间:
2010-07-10
2、语句:
double*p_data=newdouble[100]。
的功能是_______。
选项A:
动态分配100个双精度数所占的内存,并将首地址赋给p_data
选项B:
新生成大小为100的一维双精度数组
选项C:
指针p_data要占100个双精度数动态分配的内存
选项D:
将指向100个双精度数指针的首地址赋给p_data
试卷答案:
A
相关知识点:
对象动态初始化
试卷入库时间:
2010-07-10
3、在引用调用中________。
选项A:
形参是指针,实参是地址值
选项B:
形参和实参都是变量
选项C:
形参是数组名,实参是数组名
选项D:
形参是引用,实参是变量
试卷答案:
D
相关知识点:
形参和实参
试卷入库时间:
2010-07-10
4、下列哪个函数不能重载________。
选项A:
类的成员函数
选项B:
全局函数
选项C:
析构函数
选项D:
构造函数
试卷答案:
C
相关知识点:
基础知识
试卷入库时间:
2010-07-10
5、用来说明类中保护成员的关键字是________。
选项A:
public
选项B:
private
选项C:
protected
选项D:
friend
试卷答案:
C
相关知识点:
基础知识
试卷入库时间:
2010-07-10
6、如果一个类的成员函数前用static关键字修饰,则该成员函数________。
选项A:
只能访问静态数据成员
选项B:
可以被声明为const
选项C:
可以被声明为虚函数
选项D:
只能用类名来调用
试卷答案:
A
相关知识点:
基础知识
试卷入库时间:
2010-11-22
7、下列关于构造函数的论述中,不正确的是_______。
选项A:
构造函数的函数名与类名相同
选项B:
构造函数可以设置默认参数
选项C:
构造函数的返回类型缺省为int型
选项D:
构造函数可以重载
试卷答案:
C
相关知识点:
函数
试卷入库时间:
2010-07-10
8、假设A是B的基类,当对B类的对象进行初始化时_______的构造函数。
选项A:
仅调用A类
选项B:
先调用A再调用B类
选项C:
先调用B再调用A类
选项D:
仅调用B类
试卷答案:
B
相关知识点:
对象
试卷入库时间:
2010-07-10
9、公有继承的派生类对象可以访问其基类的________。
选项A:
公有成员
选项B:
受保护成员
选项C:
公有成员及受保护成员
选项D:
私有成员
试卷答案:
A
相关知识点:
对象
试卷入库时间:
2010-07-10
10、设置虚基类的目的是________。
选项A:
简化程序
选项B:
使程序按动态联编方式运行
选项C:
提高程序运行效率
选项D:
消除二义性
试卷答案:
D
相关知识点:
类与对象
试卷入库时间:
2010-07-10
11、数据与处理数据的函数被封装在一起,体现了_______思想。
选项A:
结构化
选项B:
抽象性
选项C:
多态性
选项D:
继承性
试卷答案:
D
相关知识点:
函数
试卷入库时间:
2010-11-22
12、新产品在老产品的基础上的功能升级是________特性的具体应用。
选项A:
数据封装
选项B:
信息隐藏
选项C:
函数重载
选项D:
继承与派生
试卷答案:
D
相关知识点:
继承与派生
试卷入库时间:
2010-11-22
13、已知指针p_data的值是一块动态分配的内存的首地址,语句:
delete[]p_data。
的功能是_______。
选项A:
释放p_data指针变量所占的内存
选项B:
使p_data指针变量的值为零
选项C:
释放p_data的值为地址的内存
选项D:
使p_data的值为地址的内存单元的值为零
试卷答案:
C
相关知识点:
指针
试卷入库时间:
2010-11-22
14、已知:
intm=10。
在下列表示引用的方法中,_______是正确的。
选项A:
int&x=m。
选项B:
int&y=10。
选项C:
int&z。
选项D:
float&t=&m。
试卷答案:
A
相关知识点:
引用
试卷入库时间:
2010-11-22
15、已知:
类CA中一个成员函数说明如下:
voidset(CA&a)。
其中,CA&a的含义是_______。
选项A:
指向CA类的指针为a
选项B:
a是CA类对象的引用形参
选项C:
将a的地址值赋给变量set
选项D:
变量CA与a按位与作为函数set()的参数
试卷答案:
B
相关知识点:
引用
试卷入库时间:
2010-11-22
16、下列关于析构函数的论述中,正确的是_______。
选项A:
析构函数可以有一个或多个参数
选项B:
一个类中只能定义一个析构函数
选项C:
析构函数的目的是对类数据成员初始化
选项D:
析构函数的返回类型缺省为void
试卷答案:
B
相关知识点:
析构函数
试卷入库时间:
2010-11-22
17、函数重载不是根据________。
选项A:
参数个数
选项B:
函数的类型
选项C:
参数的顺序
选项D:
参数的类型
试卷答案:
B
相关知识点:
函数重载
试卷入库时间:
2010-11-22
18、要使函数实现一种不太复杂的功能,并且希望加快执行速度,应选用______。
选项A:
虚函数
选项B:
重载函数
选项C:
带缺省参数值的函数
选项D:
内联函数
试卷答案:
D
相关知识点:
函数
试卷入库时间:
2010-11-22
19、若一个类的成员函数前用static关键字修饰,则该成员函数________。
选项A:
没有this指针
选项B:
可以被声明为const
选项C:
可以被声明为虚函数
选项D:
只能用对象名来调用
试卷答案:
A
相关知识点:
成员函数
试卷入库时间:
2010-11-22
20、定义一个类时,如果不指明访问控制方式,则其成员为_____.
选项A:
公有成员
选项B:
保护成员
选项C:
私有成员
选项D:
包内成员
试卷答案:
C
相关知识点:
访问控制方式
试卷入库时间:
2009-03-19二、判断题[1.0分/题]
1、如果一个类中未定义拷贝构造函数,则C++编译器将为该类自动生成一个拷贝构造函数。
试卷答案:
1
相关知识点:
拷贝构造函数
试卷入库时间:
2009-03-19
2、如果类A中定义了A:
:
A(int),但未定义A:
:
A(),则C++编译器将为该类自动生成一个缺省构造函数。
试卷答案:
0
相关知识点:
缺省构造函数
试卷入库时间:
2009-03-19
3、C++语言中,类是对数据与作用在该数据上的操作的封装机制。
试卷答案:
1
相关知识点:
类的概念
试卷入库时间:
2009-03-19
4、C++语言中,一个类可以有多个基类。
试卷答案:
1
相关知识点:
继承
试卷入库时间:
2009-03-19
5、如果一个类中未定义拷贝构造函数,则C++编译器将为该类自动生成一个拷贝构造函数。
试卷答案:
1
相关知识点:
拷贝构造函数
试卷入库时间:
2009-03-19
6、C++语言中,类既是封装机制又是类型定义机制。
试卷答案:
1
相关知识点:
类的概念
试卷入库时间:
2009-03-19
7、C++语言中,用户可以定义新的类。
试卷答案:
1
相关知识点:
类的概念
试卷入库时间:
2009-03-19
8、在C++语言中,所有成员函数都必须有函数体。
试卷答案:
0
相关知识点:
重载
试卷入库时间:
2009-03-19
9、C++语言中,一个类最多有1个基类。
试卷答案:
0
相关知识点:
继承
试卷入库时间:
2009-03-19
10、在C++语言中,不允许对下标运算符[]进行重载。
试卷答案:
0
相关知识点:
重载
试卷入库时间:
2009-03-19三、编程题1[15.0分/题]
1、定义一个类CTollBooth来描述汽车路桥收费过程,该类具有三个数据成员:
收费车辆总数、未收费车辆总数和收费金额。
每次对一车辆收费,成员函数payingCar()对收费车辆总数加一,并相应增加收费金额。
对不交费的车辆,成员函数noPayCar()对未收费车辆总数加一。
成员函数display()显示该类三个数据成员的值(假设每个过路车辆收费5元)。
试卷答案:
主管作答
相关知识点:
类的构造
试卷入库时间:
2009-05-26
2、描述一个出版物的CPublication类可定义如下,该类包含出版物名称、价格、出版日期和可供出借否等数据成员,以及构造函数、析构函数、设置出版物属性的成员函数、打印数据成员的函数、借出和归还的成员函数等。
(提示:
可利用数据类型bool)
试卷答案:
主管作答
相关知识点:
类的构造
试卷入库时间:
2009-05-26四、请选择下列程序执行结果[5.0分/题]
1、#include
classA
{
public:
A(){cout<<"constructingAclass"<}
~A(){cout<<"destructingAclass"<}
}。
classBase
{
private:
Aa。
public:
Base(){cout<<"constructingbaseclass"<}
~Base(){cout<<"destructingbaseclass"<}
}。
classSub:
publicBase
{
public:
Sub(){cout<<"constructingsubclass"<}
~Sub(){cout<<"destructingsubclass"<}
}。
voidmain()
{
Subs。
}
输出:
_________
选项A:
constructingbaseclass
constructingsubclass
destructingsubclass
destructingbaseclass
选项B:
constructingAclass
constructingbaseclass
constructingsubclass
destructingsubclass
destructingbaseclass
destructingAclass
选项C:
constructingbaseclass
constructingAclass
constructingsubclass
destructingsubclass
destructingAclass
destructingbaseclass
选项D:
constructingsubclass
constructingbaseclass
destructingbaseclass
destructingsubclass
试卷答案:
B
相关知识点:
构造函数
试卷入库时间:
2009-05-19
2、#include
classBase
{
public:
virtualvoidMsg()
{
cout<<"InBase:
:
Msg"<}
}。
classA:
publicBase
{
public:
voidMsg()
{
cout<<"InA:
:
Msg"<}
}。
classB:
publicA
{
public:
voidMsg()
{
cout<<"InB:
:
Msg"<}
}。
voidmain()
{
Basebase。
Aa。
Bb。
Base*p=&b。
base.Msg()。
a.Msg()。
((A*)p)->Msg()。
a.Base:
:
Msg()。
}
输出:
__________
选项A:
InBase:
:
Msg
InA:
:
Msg
InA:
:
Msg
InA:
:
Msg
选项B:
InBase:
:
Msg
InB:
:
Msg
InA:
:
Msg
InA:
:
Msg
选项C:
InBase:
:
Msg
InA:
:
Msg
InB:
:
Msg
InBase:
:
Msg
选项D:
InBase:
:
Msg
InA:
:
Msg
InA:
:
Msg
InBase:
:
Msg
试卷答案:
C
相关知识点:
多态性
试卷入库时间:
2009-05-19
3、#include
#include
classMyClass
{
public:
MyClass(inti)。
MyClass(constMyClass&obj)。
~MyClass(){deletep。
}
friendintGetVal(MyClassobj)。
private:
int*p。
}。
MyClass:
:
MyClass(inti)
{
p=newint。
if(!
p){
cout<<"Allocationerror\n"。
exit
(1)。
}
*p=i。
}
MyClass:
:
MyClass(constMyClass&obj)
{
p=newint。
if(!
p){
cout<<”Allocationerror\n”。
exit
(1)。
}
*p=*obj.p。
}
intGetVal(MyClassobj)
{
return*obj.p。
}
voidmain()
{
MyClassa
(1),b
(2)。
cout<cout<cout<}
选项A:
1,2
不确定,不确定
选项B:
1,2
1,2
选项C:
1,2
2,1
选项D:
2,1
2,1
试卷答案:
B
相关知识点:
拷贝构造函数
试卷入库时间:
2009-05-25
4、#include
classShape
{
public:
voiddraw(){cout<<"\nBase:
:
draw()\n"。
}
voidErase(){cout<<"Base:
:
Erase()\n\n"。
}
Shape(){draw()。
}
virtual~Shape(){Erase()。
}
}。
classPolygon:
publicShape
{
public:
Polygon(){draw()。
}
voiddraw(){cout<<"Polygon:
:
draw()\n"。
}
voiderase(){cout<<"Polygon:
:
Erase()\n"。
}
~Polygon(){erase()。
}
}。
classRectangle:
publicPolygon
{
public:
Rectangle(){draw()。
}
voiddraw(){cout<<"Rectangle:
:
Draw()\n"。
}
voiderase(){cout<<"Rectangle:
:
Erase()\n"。
}
~Rectangle(){erase()。
}
}。
voidmain()
{
Polygonc。
Rectangles。
}
选项A:
Base:
:
Draw()
Polygon:
:
draw()。
Base:
:
Draw()
Polygon:
:
Draw()
Rectangle:
:
Draw()
Rectangle:
:
Erase()
Polygon:
:
Erase()
Base:
:
Erase()
Polygon:
:
Erase()
Base:
:
Erase()
选项B:
Polygon:
:
draw()。
Polygon:
:
Draw()
Rectangle:
:
Draw()
Rectangle:
:
Erase()
Polygon:
:
Erase()
Polygon:
:
Erase()
选项C:
Base:
:
Draw()
Polygon:
:
draw()。
Base:
:
Draw()
Polygon:
:
Draw()
Rectangle:
:
Draw()
Polygon:
:
Erase()
Base:
:
Erase()
Rectangle:
:
Erase()
Polygon:
:
Erase()
Base:
:
Erase()
选项D:
Base:
:
Draw()
Polygon:
:
Draw()
Rectangle:
:
Draw()
Base:
:
Draw()
Polygon:
:
draw()。
Polygon:
:
Erase()
Base:
:
Erase()
Rectangle:
:
Erase()
Polygon:
:
Erase()
Base:
:
Erase()
试卷答案:
A
相关知识点:
构造方法
试卷入库时间:
2009-05-25