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

《C++面向对象程序设计》习题答案

来源:用户分享 时间:2025/8/8 12:57:28 本文由loading 分享 下载这篇文档手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:xxxxxxx或QQ:xxxxxx 处理(尽可能给您提供完整文档),感谢您的支持与谅解。

printf(\ cin >> c; cout << (char)c<

(3)

#include //包含头文件命令 using namespace std; //使用名字空间std int main() { char c; scanf(\ printf(\ cin >> c; cout << (int)c<

#include //包含头文件命令 using namespace std; //使用名字空间std int main()

{ cout<<\ cout<<\ cout<<\ cout<<\ return 0; } 3.【程序参考代码】 (1)

#include //包含头文件命令 #define n 8

using namespace std; //使用名字空间std void findmaxmin(int *p) { int i,min,max; min = max = p[0]; for(i = 1; i < n; i++) { if(p[i]>max) max = p[i]; if(p[i]

int main()

{ int a[n] = {3,6,1,9,4,5,2,8}; for(int i=0;i

(2)

#include //包含头文件命令 #define n 8

using namespace std; //使用名字空间std typedef int arr[n];

void findmaxmin(arr &p) { int i,min,max; min = max = p[0]; for(i = 1; i < n; i++) { if(p[i]>max) max = p[i]; if(p[i]

14

cout<<\ cout<<\}

int main()

{ int a[n] = {3,6,1,9,4,5,2,8}; for(int i=0;i

#include //包含头文件命令 using namespace std; #include const int N=8;

void bubble_sort(int a[],int n)

{//将a中整数序列按升序排序(冒泡排序) int i,j,t;

for(i=n-1;i>1;i--) for(j=0;ja[j+1]) { t=a[j]; a[j]=a[j+1]; a[j+1]=t; } }

void bubble_sort(float a[],int n)

{//将a中单精度浮点数序列按升序排序(冒泡排序) int i,j; float t;

for(i=n-1;i>1;i--) for(j=0;ja[j+1]) { t=a[j]; a[j]=a[j+1]; a[j+1]=t; } }

void bubble_sort(char a[],int n)

{//将a中字符序列按升序排序(冒泡排序) int i,j; char t;

for(i=n-1;i>1;i--) for(j=0;ja[j+1]) { t=a[j]; a[j]=a[j+1]; a[j+1]=t; } }

void bubble_sort(string a[],int n)

{//将a中字符串序列按升序排序(冒泡排序) int i,j; string t;

第 15 页

for(i=n-1;i>1;i--) for(j=0;ja[j+1]) { t=a[j]; a[j]=a[j+1]; a[j+1]=t; } }

void print(int r[],int n) { int i; for(i=0;i

void print(float r[],int n) { int i; for(i=0;i

void print(char r[],int n) { int i; for(i=0;i

void print(string r[],int n) { int i; for(i=0;i

int main() { int arr1[N]={49,38,65,97,76,13,27,49}; cout<<\排序前:\\n\ print(arr1,N);

bubble_sort(arr1,N); cout<<\排序后:\\n\ print(arr1,N);

float arr2[N]={12.3, 4.5, 3.18,9.7,7.6,30.5,2.7,4.9}; cout<<\排序前:\\n\ print(arr2,N);

bubble_sort(arr2,N); cout<<\排序后:\\n\ print(arr2,N);

char arr3[N]={ 'V', 'G', 'E', 'A', 'T', 'W', 'Q', 'C'}; cout<<\排序前:\\n\ print(arr3,N);

bubble_sort(arr3,N);

16

cout<<\排序后:\\n\ print(arr3,N);

string arr4[N]={ \ cout<<\排序前:\\n\ print(arr4,N);

bubble_sort(arr4,N); cout<<\排序后:\\n\ print(arr4,N); return 0; } 5.【程序参考代码】

#include //包含头文件命令 using namespace std; //使用名字空间std #include int main()

{ string s,s1; char *ps,*pe, t ; int i,j,len; cout<<\ cin>>s; s1 = s; len = s1.length(); for(i = 0; i < len - 1; i++) { ps = pe = &s1[i]; for(j = i+1; j < len; j++) { if(*pe > s1[j]) pe = &s1[j]; } if(ps != pe) { t = *ps; *ps = *pe; *pe = t; } } cout<

#include //包含头文件命令 using namespace std; //使用名字空间std #include void total(string s); int main()

{ string s = \ total(s); return 0; }

void total(string s) { int characters = 0, digits = 0, other = 0; for(int i=0;i64&&s[i]<91) ||( s[i]>96 && s[i]<123)) { characters++; } else if(s[i]>47 &&s[i]<58) { digits++; } else{ other++; } } cout<<\字母个数\ cout<<\数字个数\ cout<<\其他字符个数\}

第 17 页

第3章 类和对象

一、简答题

1. 【答案要点】

对象就是封装了数据及在这些数据之上的操作的封装体,这个封装体有一个名字标识它,而且可以向外界提供一组操作(或服务)。

类是对具有相同属性和操作的一组对象的抽象描述。

类和对象的关系:类代表了一组对象的共性和特征,是对象的抽象,即类忽略对象中具体的属性值而只保留属性。而对象是对类的实例化,即将类中的属性赋以具体的属性值得到一个具体的对象。类和对象的关系就像图纸和房屋的关系,类就像图纸,而对象就好比按照图纸建造的房屋。在C++中,类是一种自定义的数据类型,而对象是“类”类型的变量。 2. 【答案要点】

类中的成员有两种:数据成员和成员函数。它们的访问属性有三种:私有的(private)、受保护的(protected)、公用的(public)。访问属性为私有的成员只能被本类的成员函数访问而不能被类外访问(友元例外)。访问属性为公用的成员既可以被本类的成员函数访问,也可以在类的作用域内被其他函数访问。访问属性为受保护的成员可以被本类及本类的派生类的成员函数访问,但不能被类外访问。 3. 【答案要点】

构造函数是类的一个特殊的成员函数,构造函数的作用是在创建对象时对对象的数据成员进行初始化。 析构函数是和构造函数相对的另一个类的特殊成员函数,它的作用与构造函数正好相反。析构函数的作用是在系统释放对象占用的内存之前进行一些清理工作。

当创建对象时调用构造函数,当释放对象时调用析构函数。创建对象是当程序执行到了非静态对象的定义语句或第一次执行到静态对象的定义语句。释放对象则是对象到了生命周期的最后时系统释放对象或通过delete运算符动态释放new运算符动态申请的对象。最终确定何时调用构造函数和析构函数要综合考虑对象的作用域、存储类别等等因素,系统对对象这些因素的处理和普通变量是一样的。 4. 【答案要点】

对象的赋值是把一个对象的数据成员的值赋给另外一个同类对象的对应数据成员,这两个对象必须是已经存在的同类对象。

对象的复制是在创建一个新对象时使用一个已有对象快速复制出完全相同的对象。 对象的赋值和对象的复制的不同点主要有:

(1)对象的赋值是在两个对象都已经创建的基础上进行的;而对象的复制则在用一个已有对象复制一个新对象时进行的。

(2)它们两个所对应调用的函数不同,对象的赋值系统调用的是赋值运算符重载函数;而对象的复制系统调用的是复制构造函数。

二、写出程序的运行结果

Rect (1,1) is constructed! Rect (1,1) is constructed! Rect (1,1) is constructed!

Destructor of Rect (1,1) is called! Destructor of Rect (1,1) is called! Destructor of Rect (1,1) is called!

三、编程题

1.【程序参考代码】

#include //包含头文件命令 using namespace std; //使用名字空间std class Box {public: int GetLength(){ return length; } //获取长方体的长度 int GetWidth() { return width; } //获取长方体的宽度 int GetHeight(){ return height; } //获取长方体的高度 void SetLength(int length){ this->length = length; }//修改长方体的长度 void SetWidth(int width){ this->width = width; } //修改长方体的宽度 void SetHeight(int height){ this->height = height; }//修改长方体的高度 int GetArea(){ return 2*(length * width + length * height + width * height); }//计算长方体的表面积 int GetVolume(){ return length * width * height; } //计算长方体的体积

18

搜索更多关于: 《C++面向对象程序设计》习题答案 的文档
《C++面向对象程序设计》习题答案.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.diyifanwen.net/c1o5nt7wnwx2nsfs0jg6i_4.html(转载请注明文章来源)
热门推荐
Copyright © 2012-2023 第一范文网 版权所有 免责声明 | 联系我们
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:xxxxxx 邮箱:xxxxxx@qq.com
渝ICP备2023013149号
Top