C++04737 第9章 课后练习题 完整答案

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

第九章

一、单项选择题

1.B;进行文件操作时需要包含头文件“fstream”;

2.A;课本P194;

3.B;课本P196;

4.B;课本P203;

5.D;课本P18;

6.D;关键字virtual能用来声明虚基类。

二、填空题

1.输出数据按输出域右边对齐输出;(课本P196)

2.cin.ignore(3);

3.ofstream fout("Text.txt"); 重点

三、分析程序题(程序可以直接复制到VC++ 6.0运行)

1. 分析下面程序的输出结果。

#include

#include

using namespace std;

void main()

{

cout << oct << 15 << " ";

cout << hex << 15 << " ";

cout << setfill('a') << setw(10);

//输出域占10个位,除数据外,其他填充a,如256占3位,其余填充a cout << 256 << " OK" << endl;

}

输出结果如下:

2. 分析程序功能。

#include

#include

using namespace std;

void main()

{

for(int i=0; i<10; i++)

cout << endl << setw(10-i) << '*' << setw(10) << '*';

//这里没有使用setfill(),则默认填充空格

}

输出结果如下:

四、完成程序题(除特别说明外,程序可以直接复制到VC++ 6.0运行)

1.完成下面的主程序,使其输出为:-

2.589000e+001 +2.589000e+001,主程序如下:#include

#include

void main()

{

参考课本P197,为采用//科学计数法。他们都属于ios_base类,ios_base类名在标准命名空间std //中定义。

std::cout << -25.89F << " ";

std::cout << 25.89f << std::endl;

}

输出结果如下:

2.完成下面的主程序,使其输出为:*****12345 54321*****,源程序如下:

注意:这个程序在VC++6.0中不能编译通过(编译器本身的bug),需要在visual studio 2010(或2013等高级编译平台)才能编译通过。

#include

#include

using namespace std;

class FUN

{

//类FUN<<

}fun;

{

os.setf(ios::left);

return os;

}

void main()

{

cout << setfill('*') << setw(10) << 12345 << " ";

cout << fun << setw(10) << 54321 << endl;

//cout<

}

输出结果如下:

五、编程题(程序可以直接复制到VC++ 6.0运行)

1.利用流格式控制,进行成绩和名字的输出,要求名字左对齐,分数右对齐。#include < iostream >

#include < string >

#include

using namespace std;

class Student //定义学生类

{

private:

string name; //学生姓名

float score; //学生成绩

public:

Student(string n=0, float s=0) //带默认参数的构造函数

{

name = n;

score = s;

}

string getName()

{

return name;

}

float getScore()

{

return score;

}

};

void main()

{

Student s1("liming", 98); //建立5个学生对象

Student s2("sdfh", 90);

Student s3("vn.fy", 80);

Student s4("cnbtrt", 70);

Student s5("ryuety", 48);

cout << setw(10) << left << "姓名" << setw(5) << right << "分数" << endl;

cout << setw(10) << left << s1.getName() << setw(5) << right << s1.getScore() << endl;

cout << setw(10) << left << s2.getName() << setw(5) << right << s2.getScore() << endl;

cout << setw(10) << left << s3.getName() << setw(5) << right << s3.getScore() << endl;

cout << setw(10) << left << s4.getName() << setw(5) << right << s4.getScore() << endl;

cout << setw(10) << left << s5.getName() << setw(5) << right << s5.getScore() << endl;

//设置名字的输出宽度为10,左对齐;成绩的输出宽度为5,右对齐。}

输出结果如下:

2.编写一个产生文本文件的程序。

#include < iostream>

#include < fstream >

using namespace std;

void main()

相关文档
最新文档