C++ Primer Plus第十七章复习题

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

答: iostream文件定义了用于管理输入和输出的类、常量和操纵符,这些对象管理用于处理I/O的流和缓冲区。该文件还创建了一些标准对象(cin、cout、cerr和 clog以及对应的宽字符对象),用于处理与每个程序相连的标准输入和输出流。

2、为什么键入数字作为输入要求程序进行转换?

答:键盘输入生成一系列字符。输入121将生成3个字符,每个字符都由一个1字节的二进制码表示。要将这个值存储为int类型,则必须将这3个字符转换为121值的二进制表示。

3、标准输入与标准错误之间有什么区别?

答:在默认情况下,标准输出和标准错误都将输出发送给标准输出设备(通常为显示器)。然而,如果要求操作系统将输出重定向到文件,则标准输出将与文件(而不是显示器)相连,但标准错误仍与显示器相连。

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

答:

ostream类为每种C++基本类型定义了一个operator<<()函数的版本。编译器将下面的表达式:
cout<< spot
解释为:
cout.operator<< (spot)
这样,它便能够将该方法调用与具有相同参数类型的函数原型匹配。

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

答:

可以将返回ostream &类型的输出方法拼接。这样,通过一个对象调用方法时,将返回该对象。然后,返回对象将可以调用序列中的下一个方法。

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

答:

#include <iostream>
#include <iomanip>
int main()
{
using namespace std;cout << "Enter an integer:";int n;cin >> n;cout << setw(15) << "base ten" << setw (15) <<"base sixteen" << setw (15)<< "base eight" << "\n" ;cout.setf (ios::showbase);cout << setw(15)<< n << hex << setw (15)<< n << oct << setw(15) << n << "\n";return 0;
}

7、编写一个程序,请求用户输入下面的信息,并按下面的格式显示它们。

Enter your name :Billy Gruff
Enter your hourly wages : 12
Enter nhumber of hours worked: 7.5
First format:Billy Gruff: $ 12.00:  7.5
Second format: 
Billy Gruff              : $12.00  :7.5

答:

#include <iostream>
#include <iomanip>
int main ()
{using namespace std;char name [20] ;float hourly;float hours;cout<< "Enter your name: ";cin.get (name,20).get();cout << "Enter your hourly wages: ";cin >> hourly;cout << "Enter number of hours worked: ";cin >> hours;cout.setf(ios::showpoint);cout.setf (ios::fixed, ios:: floatfield);cout.setf (ios : :right,ios: :adjustfield);// or cout<< showpoint<c fixed <c right;cout << "First format : \n" ;cout << setw(30)<< name << ":$" << setprecision(2)<< setw(10)<< hourly << ":" <<          setprecision (1)<< setw(5)<< hours << " \n" ;cout << "Second format : \n" ;cout.setf(ios: :left, ios: :adjustfield);cout <c setw (30)<< name<< ":$"<< setprecision(2) << setw(10)<< hourly << ":" << setprecision (1)<<setw(5)<< hours << "\n";return 0;
}

8、对于下面的程序,如果输入

I see a q<Enter>
I see a q<Enter>

 将打印什么内容?

程序:

#include <iostream>
int main()
{using namespace std;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;}

答:

ct1 = 5;ct2 = 9
该程序的前半部分忽略空格和换行符,而后半部分没有。注意,程序的后半部分从第一个q后面的换行符开始读取,将换行符计算在内。

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

while(cin.get() != '\n')continue;
cin.ignore(80.'\n');

答:
如果输入行超过80个字符,ignore()将不能正常工作。在这种情况下,它将跳过前80个字符。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/14902.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【论文笔记】| 微调LLM晶体生成

【论文笔记】| 微调LLM晶体生成 Fine-Tuned Language Models Generate Stable Inorganic Materials as Text NYU, ICLR 2024 Theme&#xff1a;Material Generation Main work&#xff1a; 微调大型语言模型以生成稳定的材料 可靠性&#xff1a;在样本结构中&#xff0c;90% …

如何修改WordPress网站的域名

我的网站用的是Hostease的虚拟主机&#xff0c;但是域名是之前在其他平台买的&#xff0c;而且已经快到期了&#xff0c;因为主机和域名在不同的平台上&#xff0c;管理不太方便&#xff0c;所以我又在Hostease重新注册了一个域名&#xff0c;然后把网站换成了新的域名&#xf…

(Java企业 / 公司项目)配置Linux网络-导入虚拟机

公司给了我一个IP地址 &#xff0c;提供了一个虚拟机或者自己搭建虚拟机&#xff0c;还有提供登录的账号密码 可以查看我之前的文章 VMware Workstation Pro 17虚拟机超级详细搭建&#xff08;含redis&#xff0c;nacos&#xff0c;docker, rabbitmq&#xff0c;sentinel&…

Oracle数据库中的PCTUSED解析

PCTUSED是Oracle数据库中与数据块空间管理相关的另一个参数&#xff0c;它与PCTFREE共同作用于表空间的段管理。PCTUSED定义了一个数据块中空闲空间的比例&#xff0c;低于这个比例时&#xff0c;块被视为“足够空闲”&#xff0c;可以再次用于插入新的数据行。其主要作用是提高…

3D透视图模型转模型变形?---模大狮模型网

3D建模是数字艺术和设计领域中的重要技术&#xff0c;它可以为我们带来丰富多彩的视觉体验和创意表达。在本文中&#xff0c;我们将探讨一个引人注目的话题&#xff1a;3D透视图中模型转换是否会导致变形?通过深入探讨这个问题&#xff0c;我们希望能够帮助您更好地理解在3D建…

GitHub的原理及应用详解(四)

本系列文章简介&#xff1a; GitHub是一个基于Git版本控制系统的代码托管平台&#xff0c;为开发者提供了一个方便的协作和版本管理的工具。它广泛应用于软件开发项目中&#xff0c;包括但不限于代码托管、协作开发、版本控制、错误追踪、持续集成等方面。 GitHub的原理可以简单…

【C++风云录】数字逻辑设计优化:电子设计自动化与集成电路

集成电路设计&#xff1a;打开知识的大门 前言 本文将详细介绍关于数字芯片设计&#xff0c;电子设计格式解析&#xff0c;集成电路设计工具&#xff0c;硬件描述语言分析&#xff0c;电路验证以及电路优化六个主题的深入研究与实践。每一部分都包含了主题的概述&#xff0c;…

如何通过软件SPI读写W25Q64

STM32F1之SPI通信软件SPI代码编写-CSDN博客 目录 1. W25Qxx系列简介 2. W25Q64硬件电路 3. W25Q64框图 4. Flash操作注意事项 5. 代码编写 5.1 初始化 5.2 W25Q64读取ID号 5.3 W25Q64写使能 5.4 W25Q64等待忙 5.5 W25Q64页编程 5.6 W25Q64扇区擦除&#x…

WebRTC | 网络传输协议 RTP 和 RTCP

WebRTC | 网络传输协议 RTP 和 RTCP WebRTC | 网络传输协议 RTP 和 RTCP如何选择 TCP 与 UDPRTP概述工作机制报文结构RTP 的使用RTP 拓展头RTP 中的填充数据翻译器和混合器同步控制报文大小wireshark 抓取 RTP 报文 RTCP概述工作机制分组类型报文结构WebRTC 的反馈报文RTPFBPSF…

深入浅出递归算法

文章目录 递归思想递归的题目1.汉诺塔问题问题分析代码展示 2.合并两个有序链表问题分析代码展示 3.反转链表问题分析代码展示 4.两两交换 链表中的节点问题分析代码展示 总结 递归思想 递归就是将一个很大的问题拆分成子问题&#xff0c;然后再将子问题继续拆分&#xff0c;拆…

经典正则表达式实例

1、由26个字母组成的字符串 ^[A-Za-z]$2、 由26个字母和数字组成的字符串 ^[A-Za-z0-9]$3、整数形式的字符串 ^-?\d$4、正整数形式的字符串 ^[0-9]*[1-9][0-9]*$5、中国境内邮政编码,6位 [1-9\d{5}6、匹配中文字符 [\u4e00-\u9fa5]7、国内电话号码,010-6872**** \d{3}-…

【linux-IMX6ULL-字符设备驱动简单框架实验】

目录 1. 字符设备驱动简介1.1 重要函数1.2 简单框架代码流程1.3 linux中关于驱动的重要命令 2. 字符设备驱动简单框架编写2.1 添加LICENSE信息2.2 驱动模块的入口与出口2.3 入口和出口函数的编写2.4 设备操作结构体定义2.4.1 结构体函数内容填充 3. 应用程序简介&#xff1a;4.…

Design to code(2)

【碎碎念】从七点到十一点&#xff0c;累计用时4个小时完成的代码翻译Σ(&#xffe3;。&#xffe3;ノ)ノ DCDS图 顺序图&#xff08;支付过程&#xff09; 交互图&#xff08;订单&#xff09; 我的代码 Payment public class Payment { //定义支付订单金额 private…

static的了解

【关键字】static 使用总结_c static关键字-CSDN博客 本文来自上面的文章&#xff0c;这里用于学习&#xff0c;谢谢大佬的分享&#xff01;&#xff01;&#xff01; 非原创&#xff01;&#xff01;&#xff01; 1.一个项目中创建main.cpp和demo.cpp &#xff08;1&#…

FL Studio2025中文最新版本专业编曲软件有哪些新功能?

FL Studio 21&#xff0c;也被音乐制作爱好者亲切地称为“水果编曲软件”&#xff0c;是比利时的Image-Line公司研发的一款完整的音乐制作环境或数字音频工作站&#xff08;DAW&#xff09;。自从1990年代推出以来&#xff0c;FL Studio 以其直观的用户界面、丰富的插件支持和强…

Rust分割字符串的常见操作方法

在Rust编程语言中&#xff0c;分割字符串是一个常见的操作&#xff0c;可以通过多种方式实现。以下是一些常用的方法&#xff1a; 使用split方法&#xff1a; split方法可以按照指定的字符或字符序列来分割字符串。它返回一个迭代器&#xff0c;可以迭代分割后的字符串片段。 l…

玩机社区 - 2024年最美社区源码开源

玩机社区 - 2024年最美社区源码开源 教程源码文档都内置到压缩包了 https://pan.baidu.com/s/1xwcscTne-JMbmKEntiuAuA?pwd78oi

逻辑分析仪 - 采样率/采样深度

采样深度&#xff08;Sampling Depth&#xff09; 采样深度指的是逻辑分析仪在一次捕获过程中可以记录的最大样本数量。简单来说&#xff0c;采样深度越大&#xff0c;逻辑分析仪可以记录的数据量就越多。这对于分析长时间的信号变化或复杂的信号序列非常重要。 采样率&#…

2024年5月23日 (周四) 叶子游戏新闻

《Unclogged》Steam页面上线 马桶主题恐怖逃脱解谜Brody制作并发行&#xff0c;一款奇葩创意马桶主题恐怖逃脱解谜新游《Unclogged》Steam页面上线&#xff0c;本作暂不支持中文。 Meta人工智能主管杨立昆 大语言模型不会达到人类智能水平IT之家今日&#xff08;5月23日&#x…

QEMU启动Linux内核

在QEMU环境下启动linux内核命令如下&#xff1a; QEMU_AUDIO_DRVnone qemu-system-arm -m 256M -nographic -M versatilepb -kernel /home/yukeyang/myfile/linux-6.6.30/arch/arm/boot/zImage -append "consolettyAMA0 rdinit/bin/sh" -dtb arch/arm/boot/dts/arm/…