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

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就会停止了。


转载于:https://www.cnblogs.com/fablegame/p/6430224.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值