厦门大学软件学院C++期末考试热身卷
邓丽君小村之恋-珍爱生命预防溺水
软件学院《
C++
程序设计》考试热身卷(
1
)
备注:试卷需要收回!学号:
2432
姓名:王崇菲
选择题
1
、有函数原型
void
test(int a,int b=7,char
*c=
下面函数调用中,不合法的调用()
A)test(5);
B)test(5,8);
C)test(6,
D)test(0,0,
2
、下面有
关重载函数的说法中正确的是()
< br>
A)
重载函数必须具有不同的返回值类型;
B)
重载函数形参个数必须不同;
C)
重载函数必须有不同的形参列表
D)
重载函数名可以不同;
3
、下列关于构造函数的描述中,错误的是()
A)
构
造函数可以设置默认参数;
B)
构造函数在定义类对象时自动执行
C)
构造函数可以是内联函数;
D)
构造函数不可以重载
4
、下列关于类和对象的叙述中,错误的是
A
)类是对某一类对象的抽象
B
)对象是类的具体实例
C
)
一个类只能有一个对象
D
)类和
对象的关系是一种数据类型与变量的关系
5
< br>、下列关于运算符重载的叙述中,正确的是
A
)通过运算符重载,可以定义新的运算符
B
)有的运算符只能作为成员函数重载
C
)若重载运算符
< br>+
,则相应的运算符函数名是
+
D
)重载一个二元运算符时,必须声
明两个形参
6
、已知在一个类体中包
含如下函数原型
: VOLUME operator-(VOLUME)const;
,下列关于这个
函数的叙述中,错误的是
A
)这是运算符
-
的重载运算符函数
B
p>
)这个函数所重载的运算符是一个一元运算符
C
)这是一个成员函数
D
)这个函数不改变类的任何数据成员的值
7
、有如下类声明:
class Foo
{
int bar;
};
则<
/p>
Foo
类的成员
bar
< br>是
A
)公有数据成员
B
)公有成员函数
C
)私有数据成员
D
)私有成员函数
< br>8
、在下列函数原型中,可以作为类
AA
构造函数的是
A
)
void AA(int);
B
)
int AA( );
C
)
AA(int)const;
D
)
AA(int);
9
、下列关于
this
指针
的叙述中,正确的是
A
)任何与类相关的函数都有
this
指针
B
)类的成员函数都有
this
指针
C
)类的友元函数都有
this
指针
D
)类的非静态成员函数才有
this
指针
10
、设有如下说明
typedef struct ST
{
long a;
int b;
char c[2];
} NEW;
则下面叙述中正确的是()
A
)以上的说明形式非法
B
)
ST<
/p>
是一个结构体类型
< br>C
)
NEW
是一个结构体类型<
/p>
D
)
NEW<
/p>
是一个结构体变量
11
、下列关于对象初始化的叙述中,正确的是
A
)定义对象的时候不能对对象进行初始化
B
)定义对象之后可以显式地调用构造函数进行初始化
C
)定义对象时将自动调用构造函数进行初始化
D
)在一个类中必须显式地定义构造函数实现初始化
12
、若在表达式
y/
x
中,
“
/
”
是作为成员函数重载的运算符,则该表达式还可以表示为
A
)
or/(Y)
B
)
operator/(x,Y)
C
)
or/(x)
D
)
operator/(y,x)
13
、某类中有一个无参且无返回值的常成员函数
Show
,则正确的
Show
函数原型是
A
)
const void
Show()
;
B
)
void const
Show()
;
C
)
void
Show()const
;
D
)
void Show
(
const
)
;
14
、下列叙述中正确的是
A
)线性表的链式存储结构与顺序存储结构所需要的存储空间是相同的<
/p>
B
)线性表的链式存储结构所需要的存
储空间一般要多于顺序存储结构
C
)
线性表的链式存储结构所需要的存储空间一般要少于顺序存储结构
D
)上述三种说法都不对
15
、为了提高函数调用的实际运行速度,可以将较简单的函数定义为
p>
A
)内联函数
B
)重载函数
C
)递归函数
D
)函数模板
16
、下列关于析构函数的描述中,错误的是
A
)析构函数可以重载
B
)析构函数由系统自动调用
C
)每个对象的析构函数只被调用一次
D
)每个类都有析构函数
17
、已知:
int a,&ra=a
;
关于
ra
的描述中正确的是
(
)
A. ra
是
int
型变量
a
的地址值
B.
a
是
int
型变量
ra
的地址值
C. ra
是
int
型变量
a<
/p>
的引用
D. ra
是
int
型变量
a
< br>的指针
18
、重载函数在调用
时选择的依据中
,
错误的是
(
)
A
.参数个数
B
.参数类型
C
.函数名字
D.
函数类型
19
、要求通过函数来实现一种不太复杂的功能
,
并且要求加快执行速度
,
选用
( ).
A
.内联函数
B
.重载函数
C
.递归调用
D
.嵌套调用
20
、下述静态数据成员的特性中,错误的是
( )
A
.说明静态数据成员时前边要加修饰符
static
B
.静态数据成员要在类体外进行初始化
C<
/p>
.引用静态数据成员时,要在静态数据成员前加〈类名〉和作用域运算符
< br>
D
.静态数据成员不是所有对象所共有的
21
、在
C++
中
,
关于下列设置参数默认值的描述中
,
正确的是
( )
A
.不允许设置参数的默认值
B
.设置参数默认值只能在定义函数时设置
C
.设置参数默认值时
,
应该是先设置右边的再设置左边的
D
.设置参数默认值时
,
应该全部参数都设置
22
、在
C++
p>
中,
cin
是个
A
.类
B
.对象
C
.模板
D
.函数
2
3
、下列程序段中包含
4
个函数,其中
具有隐含
this
指针的是
int fun();
class Test{
public:
int fun2();
friend int fun3();
static
int fun4();
};
A
.
fun1
B
.
fun2
C
.
fun3
D
.
fun4
填空题
C++
语言中使用
const
定义常量时需要指出常量类型
_
、
_
常量名
_
和常量值
_
。
函数调用
excc((v1,v2),(v3,v4,v5),v6);
语句中实参的个数是
p>
_____3
_.
在用
class
定义一个类时,数据成员和成员函数的默认访问权限是(
private
)
。
在下面
程序的横线处填上适当的语句,使该程序执行结果为
10.
#include
using namespace std;
class MyClass
{
public:
MyClass(int a){x = a;}
(
int
getnum(){return x;}
)
//
取
x
值
< br>
private
int x;
};
int main()
{
MyClass my(10);
、非成员函数应声明为类的(友元)函数才能访问这个类的
cout<<()<
return 0;
}
5
private
成员。
6
、判断题:
静态数据成员是属于某个对象的。
F
7
、判断题:没有参数的两个函数
也可以重载。
F
三、简答题
请描述静态数据成员的特性和静态成员函数在访问数据成员
(包括静态数据成员和非静
态数
据成员)时的要求;
静态数据成
员为类的所有对象所共有,
一旦数据值发生变化,
则在所有类对
象中该值均发生
变化。
静态成员函数
可以直接访问该类的静态数据成员和成员函数,
单数需要通过对象名来访问非
静态数据成员
使用
co
nst
修饰类的成员函数有什么优点?
不会改变对象数据成员的值,更有安全性
C++
异常处理机制有何优点?
避免局部错误造成程序的全盘崩溃,提高程序的安全性和稳固性
定义了用于表示日期的类
Date,
请
按要求完成下列操作
,
将类
Date<
/p>
的定义补充完整
:
(
1
)
定义私有数据成员
year,month
和
day
分别用于表示年
,
月
,
日
,
它们都是
int
型的数据
.
(
2
)
完成默认构造函数
Da
te
的定义
,
使
Date
对象的默认值为
:year=1,month=1,
day=1,
(
3
)完成重载构造函数
Date(int y,int m,int d)
的定义,把数据成员
year,month
和
day
分别初
始化为参数
y,m,d
的值
(
4
)完成成员函数
print
的类外内联定义,使其以"年-月-日"的格式将
Date
对象的值
输出到屏幕上.
class Date
{
int year;
int
month;
int day;
public:
Date():year(1),month(1),day(1){}
Date(int y,int m,int
d):year(y),month(m),day(d){}
void print();
};
void Date::print()
{
cout<
}
四、程序结果运行题
#include
void
fun(int& x, int y) { int t = x; x = y; y = t; }
int main( )
{
int a[2] = {23, 42};
fun(a[1], a[0]);
std::cout<< a[0] <<
return 0;
}
程序结果:
42,23
#include
using namespace std;
class
Test{
pulbic:
Test()
{
cout<<2; }
Test(const Test &t)
{ cout<<1;}
};
Test fun(Test &u)
{Test t=u; return t; }
int main( )
{
Test x,y;
x=fun(y);
return 0;
}
程序结果:
2211
#include
using
namespace std;
class AA{
int n; 邓丽君小村之恋-珍爱生命预防溺水