77范文网 - 专业文章范例文档资料分享平台

C++习题与解答(2)

来源:网络收集 时间:2019-03-11 下载这篇文档 手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:或QQ: 处理(尽可能给您提供完整文档),感谢您的支持与谅解。点击这里给我发消息

5.

#include class S {

public: S()

{ PC=0; } S(S &s) {

PC=s.PC;

for(int i=0;i

void Empty() { PC=0; } int IsEmpty()

{ return PC==0; } int IsMemberOf(int n); int Add(int n); void Print(); private:

int elems[100],PC; };

int S::IsMemberOf(int n) {

for(int i=0;i

int S::Add(int n) {

if(IsMemberOf(n)) return 1; else if(PC==100) return 0; else {

elems[PC++]=n; return 1; } }

void S::Print() {

cout<<'{';

for(int i=0;i0)

cout<

void main() { S a;

cout<

6

a.Print(); S b;

for(int i=1;i<=5;i++) b.Add(i);

b.Print();

cout<

c.Print(); } 答: 1 {}

{1,2,3,4,5} 1 0

{1,2,3,4,5,6,7,8,9,10}

6.5 编程题

1.按下列要求编程:

(1)定义一个描述矩形的类Rectangle,包括的数据成员有宽(width)和长(length); (2)计算矩形周长; (3)计算矩形面积; (4)改变矩形大小。 通过实例验证其正确性。 答:编程如下:

#include class Rectangle {

public:

Rectangle(int a,int b) { width=a; length=b; } int Area()

{ return width*length; } int Periment() { return 2*(width+length); } void Changesize(int a,int b) { width=a; length=b; } void Print(); private:

int width,length; };

void Rectangle::Print() {

cout<<\ cout<<\ }

void main() {

7

Rectangle r(5,8); r.Print(); r.Changesize(3,9); r.Print(); }

2. 编程实现一个简单的计算器。要求从键盘上输入两个浮点数,计算出它们的加、减、

乘、除运算的结果。 答:编程如下:

#include class ASMD {

public:

ASMD(double a,double b) { x=a; y=b; } void Addition()

{ cout<

{ cout<

{ cout<

{ cout<

double x,y; };

void ASMD::Print() {

Addition(); Subtration(); Multiply(); Divison(); }

void main() {

ASMD a(40,8); a.Print(); }

3.编一个关于求多个某门功课总分和平均分的程序。具体要求如下:

(1)每个学生信息包括姓名和某门功课成绩。 (2)假设5个学生。

(3)使用静态成员计算5个学生的总成绩和平均分。

答:编程如下:

#include

8

#include class Student {

public:

Student(char s[],int gr)

{ strcpy(name,s); grade=gr; totalize+=gr; } static void Print(); private:

char name[10]; int grade;

static int totalize; };

int Student::totalize=0; void Student::Print() {

cout<<\总成绩为 \平均成绩为 \

}

void main() {

Student

s1(\

Student::Print(); }

6.6 简单回答下列问题 1. 一个类中是否必须有用户定义的构造函数?如果用户没有定义构造函数,又如何对

创建的对象初始化?

答:一个类用户可以不定义构造函数,这时系统自动提供一个默认的构造函数,并可用该构造函数对创建的对象初始化。 2. 拷贝构造函数具有几个参数?它有类型转换的作用吗?

答:拷贝构造函数具有一个参数,即为该类对象的引用。拷贝构造函数没有类型转换作用。 3. 静态成员属于类的,是否每个对象都可以引用该静态成员? 答:可以。 4. 常对象可以引用非常成员函数吗?非常对象可以引用常成员函数吗? 答:不可以。可以。

5.友元函数能否访问类中的保护成员?友元函数访问类中私有成员与成员函数访问私有成员的形式相同吗?

答:能。相同。

9

第7章 类和对象(二)

练习题7

7.1 判断题

× 1.定义对象指针时也要调用构造函数。

√ 2.对象指针可用同类对象的地址值给它赋值。 × 3.对象指针成员表示与对象引用相同。

√ 4.常类型指针有两种,一种是指针的地址值是常量,另一种是指针所指向的变量或对象是常量。

× 5.指向对象的常指针的地址值是可以改变的。 × 6.指向常对象的指针所指向的对象是可以改变的。

√ 7.this指针是系统生成的指向当前被某个成员函数操作对象的指针。 × 8.对象引用可以用一个同类对象的地址值对它赋值。

× 9.定义对象引用时,可以对其引用进行初始化,也可以不进行初始化。 × 10.对象数组的元素可以是不同类的对象。

× 11.对象指针数组可以使用不同类的对象的地址值进行初始化。 × 12.给对象数组元素赋值时都要创建临时对象。 √ 13.指向一维对象数组的指针是一个二级指针。 × 14.自身类对象可作该类的子对象。

√ 15.子对象的初始化要在构造函数的成员初始化列表中进行。 √ 16.使用new运算符创建的对象称为堆对象。 √ 17.任何对象都可以使用delete运算符来释放。

× 18.使用new运算符创建的对象数组其元素都具有默认值。 √ 19.类的作用域范围指的是类体内。 × 20.对象的存储类只有外部的和静态的。

7.2 单选题

1.f1()函数是类A的公有成员函数,p是指向类的成员函数f1()的指针,下列表示中正确的是( C )。

A.p=f1() B.p=f1 C.p=A::f1 D.p=A::f1()

2.p是指向类A数据成员a的指针,a是类A的一个对象。在给a成员赋值为5的下列表达式中,正确的是( C )。

A.a.p=5 B.a->p=5 C.a.*p=5 D.*a.p=5

3.Void Set(A&a);是类A中一个成员函数的说明,其中A&a的含义是( A )。 A.类A的对象引用a作该函数的参数 B.类A的对象a的地址值作函数的参数 C.表达式变量A与变量a按位与作函数参数 D.指向类A对象指针a作函数参数

4.已知:const A a;其中A是一个类名,指向常对象指针的表示为( D )。 A.const * A pa; B.const A *pa; C.A * const pa; D.const *pa A; 5.下列关于子对象的描述中,错误的是( D )。 A.子对象不可以是自身类的对象 B.子对象是另一个类的对象

10

百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库C++习题与解答(2)在线全文阅读。

C++习题与解答(2).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印 下载失败或者文档不完整,请联系客服人员解决!
本文链接:https://www.77cn.com.cn/wenku/zonghe/516576.html(转载请注明文章来源)
Copyright © 2008-2022 免费范文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ: 邮箱:tiandhx2@hotmail.com
苏ICP备16052595号-18
× 注册会员免费下载(下载后可以自由复制和排版)
注册会员下载
全站内容免费自由复制
注册会员下载
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: