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