C++II习题及其解答

习题及其解答

第5章 类与对象

选择题

第7章 第8章 第9章 第10章

1. 在下列结构变量的定义中,不正确的是( d )。

(a) struct employee (b) struct { char name[ 20 ] ; { char name[ 20 ] ; long code ; long code ;

} emp ; } emp ;

(c) struct employee (d) struct

{ char name[20]; { char name[20]; long code; long code; } ; } employee; employee emp; employee emp;

2.已知有职工情况结构变量emp定义为: struct employee { char name[ 20 ] ; long code ; struct

{ int year ; int month ; int day ;

} birth ; } emp ;

下列对 emp 的 birth 正确赋值方法是( d )。 (a) year = 1980 ; month = 5 ; day = 1 ; (b) = 1980 ; = 5 ; = 1 ; (c) = 1980 ; = 5 ; = 1 ; (d) = 1980 ; = 5 ; = 1 ;

3.假定有以下声明和定义,则下面引用形式错误的是( b )。

struct student { int num ;

float score ;

} stu[3] = {{1001,80},{1002,75},{1003,91}}, *p = stu ; (a) p->num (b) (p++).num (c) (p++)->num (d) (*p).num 4.下列四个运算符中,优先级最低的是( a )。 (a) ++ (b) . (c) -> (d) () 5.若有以下声明和定义,则下列错误的引用是( d )。 struct worker { int no ;

char name[ 20 ] ; } w, *p = &w ; (a) (b) p->no (c) (*p).no (d) * 6.若有以下声明和定义,则下列引用非法的是( d )。 struct data { int n;

float score; data *q ; };

data a[3] = {1001,87,&a[1],1002,75,&a[2],1003,90,&a[0]}; data *p = a; (a) p->n++ (b) (*p).n++ (c) ++p->n (d) *p->n 7.关于类和对象不正确的说法是( c )。

(a) 类是一种类型,它封装了数据和操作 (b) 对象是类的实例 (c) 一个类的对象只有一个 (d) 一个对象必属于某个类 8.在类定义的外部,可以被访问的成员有( c )。 (a) 所有类成员 (b) private或protected的类成员 (c) public的类成员 (d) public或private的类成员 9.关于this指针的说法错误的是( a,d )。 (a) this指针必须显式说明

(b) 当创建一个对象后,this指针就指向该对象 (c) 成员函数拥有this指针 (d) 静态成员函数拥有this指针

10.声明一个类的对象时,系统自动调用( b,d )函数;撤消对象时,系统自动调用( c )函数。

(a) 成员函数 (b) 构造函数 (c) 析构函数 (d) 复制构造函数 11.下面对构造函数的不正确描述是( b )。 第11章 (a) 系统可以提供默认的构造函数

(b) 构造函数可以有参数,所以也可以有返回值

(c) 构造函数可以重载

(d) 构造函数可以设置默认参数

12.下面对析构函数的正确描述是( a,c )。 (a) 系统可以提供默认的析构函数 (b) 析构函数必须由用户定义 (c) 析构函数没有参数 (d) 析构函数可以设置默认参数 13.对静态成员的不正确描述是( c,d )。 (a) 静态成员不属于对象,是类的共享成员 (b) 静态数据成员要在类外定义和初始化

(c) 调用静态成员函数时要通过类或对象激活,所以静态成员函数拥有this指针 (d) 只有静态成员函数可以操作静态数据成员 14.下面选项中,不是类的成员函数为( c )。 (a) 构造函数 (b) 析构函数 (c) 友元函数 (d) 复制构造函数 15.下面对友员的错误描述是( d )。 (a) 关键字friend用于声明友员

(b) 一个类中的成员函数可以是另一个类的友员 (c) 友员函数访问对象的成员不受访问特性影响 (d) 友员函数通过this指针访问对象成员

阅读下列程序,写出执行结果

4. #include < >

class A { public :

int f1(); int f2();

void setx( int m ) { x = m ; cout << x << endl; } void sety( int n ) { y = n ; cout << y << endl; } int getx() { return x ; } int gety() { return y ; } private : int x, y ; };

int A::f1() { return x + y ; } int A::f2() { return x - y ; } void main() { A a ;

( 10 ) ; ( 5 ) ;

cout << () << '\\t' << () << endl ; cout << () << '\\t' << () << endl ;

联系客服:779662525#qq.com(#替换为@) 苏ICP备20003344号-4