本文发表在 rolia.net 枫下论坛1、while(!x)中的(!x)与下面条件( )等价。
A、x==1
B、x!=1
C、x!=0
D、x==0
2、每个类( )构造函数。
A、只能有一个
B、只可有公有的
C、可以有多个
D、只可有缺省的
3、在一个类中可以对一个操作符进行( )重载。
A、1种
B、2种以下
C、3种以下
D、多种
4、重载赋值操作符时,应声明为( )函数。
A、 友元
B、 虚
C、 成员
D、 多态
5、通过( )调用虚函数时,采用动态束定。
A、 对象指针
B、 对象名
C、 成员名限定
D、 派生类名
6、在类中声明转换函数时不能指定( )( )
A、 参数
B、 访问权限
C、 返回类型
D、 操作
E、 标识符
7、字符串之间的比较按( )( )进行。
A、 字符串的长度
B、 字符的大小写种类
C、 字符串的内部代码
D、 字符串的含意
E、 从头至尾的顺序
8、C++类体系中,不能被派生类继承的有( )( )。
A、 转换函数
B、 构造函数
C、 虚函数
D、 静态成员函数
E、 赋值操作函数
9、拷贝初始化构造函数使用_______________来初始化创建中的对象。
10、一元操作符,作为友元函数重载时只能声明_______________形参;作为类成员函数重载时_______________形参。
11、在一个继承结构中,当两个相同的名字之间没有_______________时,对此名字的访问将出现二义性。
12、 编程题(共30分)
1、 下面函数chnum将一个整数字符串转换为一个整数。请在[1]、[2]、[3]、[4]处填入正确内容。
int chnum (char *str)
{ int i, j, k, h, len, num=0;
len=strlen(str);
for(i=0); [1]; i++)
{ k=1;
j=len=len-1;
while ([2])
{k=k*10;
j--;
}h=[3]-’0’;
num=num=h*[4];
}
return num;
}
[1]
[2]
[3]
[4]
13、 下列程序定义了一实部为real,虚部为imag的复数类complex,并在类中将复数的加、减操作重载为友元函数。
请在[1]~[12]处填上适当内容。(9分)
class complex{
private: float [1], [2];
public: complex (float r=[3], float i=[4])
{real=r; imag=i;}
[5] operator+(complex,complex);
[6] operator-(complex,complex);
};
[7] operator+(complex c1,complex c2)
{return complex([8], [9]);}
[10]operator-(complex c1,complex c2)
{return complex([11], [12]);}
[1] [2]
[3] [4]
[5] [6]
[7] [8]
[9] [10]
[11] [12]
14、 下列shape类是一个表示形状的抽象类,area( )为求图形面积的函数,total( )则是一个通用的用以求不同形状的图形面积总和的函数。请从shape类派生三角形类(triangle)、矩形类(rectangle)、并给出具体的求面积函数。(9分)
class shape{
public:
virtual float area( )=0
};
float total(shape *s[ ],int n)
{float sum=0.0;
for(int i=0;i area( );
return sum;
}更多精彩文章及讨论,请光临枫下论坛 rolia.net
A、x==1
B、x!=1
C、x!=0
D、x==0
2、每个类( )构造函数。
A、只能有一个
B、只可有公有的
C、可以有多个
D、只可有缺省的
3、在一个类中可以对一个操作符进行( )重载。
A、1种
B、2种以下
C、3种以下
D、多种
4、重载赋值操作符时,应声明为( )函数。
A、 友元
B、 虚
C、 成员
D、 多态
5、通过( )调用虚函数时,采用动态束定。
A、 对象指针
B、 对象名
C、 成员名限定
D、 派生类名
6、在类中声明转换函数时不能指定( )( )
A、 参数
B、 访问权限
C、 返回类型
D、 操作
E、 标识符
7、字符串之间的比较按( )( )进行。
A、 字符串的长度
B、 字符的大小写种类
C、 字符串的内部代码
D、 字符串的含意
E、 从头至尾的顺序
8、C++类体系中,不能被派生类继承的有( )( )。
A、 转换函数
B、 构造函数
C、 虚函数
D、 静态成员函数
E、 赋值操作函数
9、拷贝初始化构造函数使用_______________来初始化创建中的对象。
10、一元操作符,作为友元函数重载时只能声明_______________形参;作为类成员函数重载时_______________形参。
11、在一个继承结构中,当两个相同的名字之间没有_______________时,对此名字的访问将出现二义性。
12、 编程题(共30分)
1、 下面函数chnum将一个整数字符串转换为一个整数。请在[1]、[2]、[3]、[4]处填入正确内容。
int chnum (char *str)
{ int i, j, k, h, len, num=0;
len=strlen(str);
for(i=0); [1]; i++)
{ k=1;
j=len=len-1;
while ([2])
{k=k*10;
j--;
}h=[3]-’0’;
num=num=h*[4];
}
return num;
}
[1]
[2]
[3]
[4]
13、 下列程序定义了一实部为real,虚部为imag的复数类complex,并在类中将复数的加、减操作重载为友元函数。
请在[1]~[12]处填上适当内容。(9分)
class complex{
private: float [1], [2];
public: complex (float r=[3], float i=[4])
{real=r; imag=i;}
[5] operator+(complex,complex);
[6] operator-(complex,complex);
};
[7] operator+(complex c1,complex c2)
{return complex([8], [9]);}
[10]operator-(complex c1,complex c2)
{return complex([11], [12]);}
[1] [2]
[3] [4]
[5] [6]
[7] [8]
[9] [10]
[11] [12]
14、 下列shape类是一个表示形状的抽象类,area( )为求图形面积的函数,total( )则是一个通用的用以求不同形状的图形面积总和的函数。请从shape类派生三角形类(triangle)、矩形类(rectangle)、并给出具体的求面积函数。(9分)
class shape{
public:
virtual float area( )=0
};
float total(shape *s[ ],int n)
{float sum=0.0;
for(int i=0;i area( );
return sum;
}更多精彩文章及讨论,请光临枫下论坛 rolia.net