18、 在下面循环语句中循环体执行的次数为( )。int i=0,s=0; while(s<20) {i++; s+=i;}
)。
A. 4 B. 5 C. 6 D. 7
19、 在下面循环语句中循环体执行的次数为( )。
int i=0; do i++; while(i*i<10);
A. 4 B. 3 C. 5 D. 2
20、 假定一个二维数组的定义语句为\"int a[3][4]={{3,4},{2,8,6}};\",则元素a[2][1]的值为)。
A. 0 B. 4 C. 8 D. 6
21.下列的各类函数中,不是类的成员函数。( )
A)构造函数 B)析构函数 C)友元函数 D)拷贝初始化构造函数
22.作用域运算符\"::\"的功能是:( )
A)标识作用域的级别的 B)指出作用域的范围的
C)给定作用域的大小的 D)标识成员是属于哪个类的
23.在类定义的外部,可以被访问的成员有( )
A)所有类成员 B)private的类成员
C)public的类成员 D)public或private的类成员
24.关于类和对象不正确的说法是:( )
A)类是一种类型,它封装了数据和操作 B)对象是类的实例
C)一个类的对象只有一个 D)一个对象必属于某个类
25.在C++中实现封装是借助于( )
A)枚举 B) 类 C) 数组 D)函数
26.定义析构函数时,说法正确的是:( )
A)其名与类名完全相同 B)返回类型是void类型
C)无形参,也不可重载 D)函数体中必须有delete语句
27.类的指针成员的初始化是通过函数完成的,这个函数通常是:( )
A)析构函数 B) 构造函数 C)其它成员函数 D)友元函数
28.关于构造函数的说法,不正确的是:( )
A)没有定义构造函数时,系统将不会调用它 B)其名与类名完全相同
C)它在对象被创建时由系统自动调用 D)没有返回值
29.通常拷贝构造函数的参数是:( )
A)对象名 B)对象的成员名 C)对象的引用名 D)对象的指针名
30.关于成员函数特征的描述中,错误的是:( )
A)成员函数一定是内联函数 B)成员函数可以重载
C)成员函数可以设置参数的默认值 D)成员函数可以是静态的
31.有如下类声明\"class A{int x; ......};\",则A类的成员x是:( )
A)公有数据成员 B)私有数据成员 C)公有成员函数 D)私有成员函数
32.以下关键字不能用来声明类的访问权限的是:( )
A)public B)private C)static D)protected
33.类的私有成员可在何处访问( )
A)通过子类的对象访问 B)本类及子类的成员函数中
C)通过该类对象访问 D)本类的成员函数中
34.如果没有为一个类定义任何构造函数的情况下,下列描述正确的是:( )
A)编译器总是自动创建一个不带参数的构造函数 B)这个类没有构造函数
C)这个类不需要构造函数 D)该类不能通过编译
35.下列关于类的权限的描述错误的是:( )
A)类本身的成员函数只能访问自身的私有成员
B)类的对象只能访问该类的公有成员
C)普通函数不能直接访问类的公有成员,必须通过对象访问
D)一个类可以将另一个类的对象作为成员
36.设类A将其它类对象作为成员,则建立A类对象时,下列描述正确的是:(A)A类构造函数先执行 B)成员构造函数先执行
C)两者并行执行 D)不能确定
37拷贝构造函数的作用是( )。
A. 进行数据类型的转换 B. 用对象调用成员函数
)
C. 用对象初始化对象 D. 用一般类型的数据初始化对象
38.通过指针访问类对象成员的方法是( )。
A. :: B. ; C. . D. ->
39.对C++语言和C语言的兼容性,描述正确的是:( )
A)C++兼容C B)C++部分兼容C C)C++不兼容C D)C兼容C++
40.下列静态数据成员的特性中,错误的是( )。
A.静态数据成员的声明以关键字static开头
B. 静态数据成员必须在文件作用域内初始化
C. 引导数据成员时,要在静态数据成员前加(类名)和作用域运算符
D. 静态数据成员不是类所有对象共享的
第二题:填空题
1、 在撤销类的对象时,C++程序将自动调用该对象的_____函数。
2、 对类中的成员函数和属性的访问是通过______、______和______这3个关键字来控制的。
3、 若要把类FriendClass定义为类MyClass的友元类,则应在类MyClass的定义中加入语句_______________ 。
3、 若要把函数void FriendFunction()定义为类MyClass的友元函数,则应在类MyClass的定义中加入语句________________。
5、 在结构定义中,数据和成员函数默认权限是__________。在类定义中,数据和成员函数默认权限是___________。
6、 一般情况下,按照面向对象的要求,把类中的数据成员(属性)定义为__________权限,而把成员函数(方法)定义为__________权限。
7、 在类中定义和实现的函数称为_ __。
8、 非成员函数应声明为类的________才能访问这个类的private成员。
9. 假定x=10,则表达式x<=10?20:30的值为____________。
10.表达式sqrt(81)和pow(6,3)的值分别为______和______。
11. 用于输出表达式值的标准输出流对象是_________。
12. 用于从键盘上为变量输入值的标准输入流对象是________。
13. 一个函数定义由________和________两部分组成。
14.C++头文件和源程序文件的扩展名分别为______和______。
15.假定x是一个逻辑量,则x && !x的值为__________。
16.假定x是一个逻辑量,则x || !x的值为__________。
三、读程序写结果
1. 。
请问以下程序输出什么?
#includeclass A{
public:
A(){x=0; cout<<\"CA0\"<A(int i){x=i; cout<<\"CA1\"<A(A &r){x=r.x; cout<<\"CA2\"<~A(){cout<<\"DA\"<private:int x;
};
void f1(A m)
{}
void f2(A &m)
{}
int main()
{
A a;
A b(a);
f1(a);
f2(a);
}
四、程序填空:
1、class Point
{
public:
Point(int xx=0,int yy=0){X=xx; Y=yy;}
Point (Point& p) ;
int GetX() {return X;}
int GetY() {return Y;}
private:
int X,Y;
};
__________________//定义拷贝构造函数
{
X=p.X;
Y=p.Y;
}
int main()
{ Point A(1,2);
__________________//用对象A初始化新建对象B
cout<}2、
class Student //定义Student类
{
public:
Student(int n,int a,float s):num(n),age(a),score(s){ } //定义构造函数
void total( );
__________________//声明静态成员函数average
private:
int num;
int age;
float score;
static float sum; //静态数据成员
static int count; //静态数据成员
};
__________________//定义成员函数total
{ sum+=score;
count++;
}
float Student∷average( ) //定义静态成员函数
{ return(sum/count); }
答案:
1.选择:
1
2
3
4
5
6
7
8
9
10
A
A
A
A
A
A
A
A
C
A
11
12
13
14
15
16
17
18
19
20
B
A
D
C
B
C
C
C
A
A
21
22
23
24
25
26
27
28
29
30
C
B
C
C
B
C
B
A
C
A
31
32
33
34
35
36
37
38
39
40
B
C
D
A
A
B
C
D
A
D
2.填空:
1.析构
2. public__、__protected__和___private
3. friend class FriendClass;___。
4. __friend void FriendFunction();_
5. _public__ private___
6. private_ public
7.内联函数
8.友元函数
9.20
10.9,216
11.cout
12.cin
13函数头和函数体
14 .h .cpp
15false (或0)
16. true (或1)
第三题读程序:
答案:屏幕上输出,CA2,CA2,不输出。
第四题:
1. Point::Point (Point& p) Point B(A)或者Point B=A;
2. static float average( );void Student::total( )
1