c++面向对象程序设计语言重点难点复习题及答案
2、如果一个函数定义中使用了static修饰,则该函数不允许被其它文件中的函数调用。
5、C++程序运行时的内存空间可以分成全局数据区,堆区,栈区和代码区。
6、局部变量具有局部生存期,存放在内存的栈区中。
7、对类中对象成员的初始化是通过在构造函数中给出的初始化表来实现的。
8、对类中常量成员的初始化是通过在构造函数中给出的初始化表来实现的。
9、对类中引用成员的初始化只能通过在构造函数中给出的初始化表来实现。
10、对类中一般数据成员的初始化既可以通过在构造函数中给出的初始化表来实现,也可以通过构造函数中的函数体来实现。
11、假定要把aa定义为AB类中的一个常量整数型数据成员,则定义语句const int aa。
12、假定要把aa定义为AB类中的一个引用整数型数据成员,则定义语句为int &aa。
13、假定AB类中只包含一个整型数据成员a,并且它是一个常量成员,若利用参数aa对其进行初始化,则该类的构造函数的定义为AB (int aa){a=aa;}。
14、假定AB类中只包含一个整型数据成员a,并且它是一个引用成员,若利用引用参数aa对其进行初始化,则该类的构造函数的定义为AB(int &aa){a=aa;}。
15、静态成员函数能够直接访问类的静态数据成员,只能通过对象名访问类的非静态数据成员。
16、静态数据成员必须在所有函数的定义体外进行初始化。
17、一个类的成员函数也可以成为另一个类的友元函数,这时的友元说明必须在函数名前加上类域的限定。
四、修改程序题:
下列程序段中,A_class的成员函数Variance()可求出两数的平方差,请改写该程序段,把Variance()函数从A_class类中分离出来,用友元函数来实现该函数的功能。
class A_class {
private:
int x,y,t;
public:
A_class(int i,int j):x(i),y(j) {
if(y>x){t=x;x=y;y=t;}
}
int Variance(){return x*x-y*y;}
//其它函数从略
};
void main() {
A_class A_obj(3,5);
cout<<"Result:"<<a_obj.variance()<<endl;}< p="">
修改后的源程序:
class A_class {
private:
int x,y,t;
public:
A_class(int i,int j):x(i),y(j) {
if(y>x){t=x;x=y;y=t;}
}
friend int Variance();
//其它函数从略
};
int variance (){
return x*x-y*y;
}
void main() {
A_class A_obj(3,5);
cout<<"Result:"<<a_obj.variance()<<endl;< p="">
2、数组、指针与字符串
一、
1、在下面的一维数组定义中,哪一个有语法错误。(C)
A. int a[]={1,2,3};
B. int a[10]={0};
C. int a[];
D. int a[5];
2、在下面的字符数组定义中,哪一个有语法错误。(D)。
A. char a[20]=”abcdefg”;
B. char a[]=”x+y=55.”;
C. char a[15];
D. char a[10]=’5’;
3、在下面的二维数组定义中,正确的是( C )。
A. int a[5][];
B. int a[][5];
C. int a[][3]={{1,3,5},{2}};
D. int a[](10);
4、假定一个二维数组的定义语句为“int a[3][4]={{3,4},{2,8,6}};”,则元素a[1][2]的值为(C)。
A. 2
B. 4
C. 6
D. 8
5、假定一个二维数组的定义语句为“int a[3][4]={{3,4},{2,8,6}};”,则元素a[2][1]的值为(A)。
指针函数的作用
A. 0
B. 4
C. 8
D. 6
6、若定义了函数 double *function(), 则函数function的返回值为(B)。
A. 实数型
B.实数的地址
C.指向函数的指针
D.函数的地址
7、以下函数的返回结果是( A )。
int function(char *x) {
char *p=x; while(*p++); return(p-x-1);
}
A. 求字符串的长度
B.将字符串x连接到字符串p后面
C. 将字符串x复制到字符串p中
D.将字符串x反向存放
8、设有如下函数定义
int f(char *s) {
char *p=s;
while(*p!=’\0’) p++;
return(p-s);
}
在主函数中用cout<<="">
A. 3
B. 4
C. 5
D. 6
9、假定变量m定义为“int m=7;”,则定义变量p的正确语句为( B )。
A. int p=&m
B. int *p=&m
C. int &p=*m;
D. int *p=m;
10、变量s的定义为“char *s=”Hello world!”;”,要使变量p指向s所指向的同一个字符串,则应选取( A)。
A. char *p=s;
B. char *p=&s
C. char *p;p=*s;
D. char *p; p=&s
11、关于void 指针,下列说法正确的是( C )。
A. void 指针就是未指向任何数据的指针
B. void 指针就是已定义而未初始化的指针
C. 指向任何类型数据的指针可直接赋值给一个void 指针
D. void 指针值可直接赋给一个非void 指针
12、假定一条定义语句为“int a[10], x, *pa=a;”,若要把数组a中下标为3的元素值赋给x,则不正确的语句为( D)。
A. x=pa[3];
B. x=*(a+3);
C. x=a[3];
D. x=*pa+3;
13、假定有定义“int b[10]; int *pb;”,则不正确的赋值语句为(D)。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。