您的位置:首页 > 编程语言 > C语言/C++

《C++ Primer Plus(第六版)》(40)(第十七章 输入、输出和文件 复习题和答案)

2017-01-04 15:17 726 查看
17.7复习题

1.iostream文件在C++I/O中扮演何种角色?

iostream定义了用于管理输入和输出的类、常量和操作符,这些对象管理用于处理I/O的流和缓冲区。

该文件还创建了一些标准对象(cin、cout、cerr和clog以及对应的宽字符对象),用于处理与每个程序相连的标准输入和输出流。

2.为什么键入数字(如121)作为输入要求程序进行转换?

输入的是字符。输入121将生成3个字符,每个字符都由一个1字节的二进制码表示。

要将这个值存储为int类型,则必须将这3个字符转换为121值的二进制表示。

3.标准输出与标准错误之间有什么区别?

它们连接不通的流,如果重定向标准输出,不会影响标准错误

4.为什么不为每个类型提供明确指示的情况下,cout仍能够显示不同的C++类型?

ostream已经重载了各种基础类型的标准输出。

5.输出方法的定义的哪一个特征让您能够拼接输出?

返回ostream&

6.编写一个程序,要求用户输入一个整数,然后以十进制、八进制和十六进制显示该整数。在宽度为15个字符的字段中显示每种形式,并将它们显示在同一行上,同时使用C++数基前缀。

//
// main.cpp
// HelloWorld
//
// Created by feiyin001 on 16/12/30.
// Copyright (c) 2016年 FableGame. All rights reserved.
//
#include <iostream>
#include <iomanip>
using namespace std;

int main()
{
int a = 0;
cin >> a;
cout.setf(ios_base::showbase);
cout << dec << setw(15) << a << oct << setw(15) << a << hex << setw(15) << a << endl;
return 0;
}


7.编写一个程序,请求用户输入下面的信息,并按下面的格式显示它们:
Enter your name: Billy Gruff

Enter your hourly wages: 12

Enter number of hours worked: 7.5

First format:

                                   Billy Gruff: $          12.00:    7.5

Second Format:

Billy Gruff                                    :$12.00          :7.5

//
// main.cpp
// HelloWorld
//
// Created by feiyin001 on 16/12/30.
// Copyright (c) 2016年 FableGame. All rights reserved.
//
#include <iostream>
#include <iomanip>
#include <string>
using namespace std;

int main()
{
string name;
double wages;
double hours;
cout << "Enter your name: ";
getline(cin, name);
cout << "Enter your hourly wages: ";
cin >> wages;
cout << "Enter number of hours worked: ";
cin >> hours;
cout << "First format:" << endl;

cout.setf(ios::showpoint);
cout.setf(ios::fixed, ios::floatfield);
cout.setf(ios::right, ios::adjustfield);
cout << setw(30) << name << ": $";
cout << setprecision(2) << setw(10) << wages << ":";
cout << setprecision(1) << setw(5) << hours << endl;
cout << "Second format:" << endl;
cout.setf(ios::left, ios::adjustfield);
cout << setw(30) << name << ": $";
cout << setprecision(2) << setw(10) << wages << ":";
cout << setprecision(1) << setw(5) << hours << endl;

return 0;
}
要想打印小数点,必须是浮点型才行,int是无论怎么设置,都不受影响的。

8.对于下面的小程序:

//rq17-8.cpp

//
// main.cpp
// HelloWorld
//
// Created by feiyin001 on 16/12/30.
// Copyright (c) 2016年 FableGame. All rights reserved.
//
#include <iostream>
#include <iomanip>
using namespace std;

int main()
{
char ch;
int ct1 = 0;
cin >> ch;
while (ch != 'q')
{
ct1++;
cin >> ch;
}

int ct2 = 0;
cin.get(ch);
while (ch != 'q')
{
ct2++;
cin.get(ch);
}

cout << "ct1 = " << ct1 << "; ct2 = " << ct2 << "\n";
return 0;
}

如果输入如下,该程序将打印什么内容?
I see a q<Enter>

I see a q<Enter>

其中,<Enter>表示回车键。

ct1 = 5; ct2 = 9

9.下面的两条语句都读取并丢弃行尾之前的所有字符(包括行尾)。这两条语句的行为在哪些方面不同?

while(cin.get() != '\n')

         continue;

cin.ignore(80,'\n');

第一个语句,会一直读取到\n位置

第二个语句,如果读到80个字符,还没有\n就会停止了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
相关文章推荐