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