}
解答:
本题主要考查对格式化输入输出的掌握。
本题主函数中第三行输出a,b,’\t’为转义字符,其含义是跳过一个制表位。
不设置输出宽度时,默认输出6位有效数字,超出部分四舍五入。
所以该行输出为:
2323.1235。
setprecision(n)设置显示精度,最少显示一位有效数字。
如果不重新设置,则其保持效力,所以使用完后要还原为6位默认值。
第四行中设置setprecision(0)与setprecision
(1)作用相同,结果显示一位有效数字即为:
2e+001。
setiosflags(ios:
:
fixed)为固定的浮点显示,其后跟setprecision(n)表示小数点后显示精度为n。
所以第五行输出结果为:
23.1234568。
setiosflags(ios:
:
scientific)为指数显示,当其整数部分宽度大于设置的显示精度(默认为6位)时,以指数形式显示结果。
否则根据设置的(或默认的)显示精度显示n位有效数字。
所以第六行输出结果为:
23.12346。
setiosflags(ios:
:
showbase)为指定在数值前输出进制。
hex置基数为16,且该操作保持效力,所以使用完后应该恢复为默认值10进制。
第九行输出结果为:
0x170x17。
setw(n)设域宽为n个字符,setfill(c)设填充字符为c,setiosflags(ios:
:
left)为左对齐。
第十一行输出结果为:
23********。
答案为:
2323.1235
2e+001
23.1234568
23.12346
0x170x17
23********
第3章 C++程序的流程控制
【内容提要】
顺序控制语句
选择控制语句
循环控制语句
跳转语句
【重点与难点】
3.1顺序控制语句
指按照语句在程序中出现的先后次序一条一条的顺次执行。
包含声明语句,表达式语句,输入输出语句等。
3.1.1表达式语句
任何一个表达式(上一章中给出了详细介绍)后面加上一个分号就构成了表达式语句(没有分号的不是语句)。
常见的表达式语句有以下几种:
空语句、赋值语句、函数调用语句等。
空语句:
指只有一个分号而没有表达式的语句,它不作任何操作和运算。
格式为:
;
空语句被用在程序的语法上要求一条语句而逻辑上却不需要的时候。
函数调用语句:
是由函数调用表达式加一个语句结束标志(分号“;”)构成的语句。
函数的定义和使用请参见第五章中的详细介绍。
3.1.2输入/输出语句
C++程序没有输入/输出语句,它的输入/输出功能由函数(scanf、printf)或流控制来实现。
printf和scanf是标准的输入输出函数,主要在C程序设计中使用,其声明包含在头文件stdio.h中。
在C++中,I/O流完全取代了它们,使用I/O流输入输出时,必须包含头文件iostream.h。
从键盘输入语句格式为:
cin>>表达式1[>>表达式2>>…];
向屏幕输出语句格式为:
cout<<表达式1[<<表达式2<<…];
注意:
连续输入多项数据时应键入空白字符(包括空格键、回车键和Tab键)将相邻的两项数据分开。
而连续输出时,cout不会在相邻数据项间加分隔符,为了增强显示效果,用户可通过控制符自定义显示宽度,换行等(部分控制符在iomanip.h头文件中声明)。
3.1.3复合语句
C++语言允许把一组语句用一对花括号括起来,构成一个复合语句。
复合语句被视为一个独立的单元它可以出现在程序中任何单个语句可以出现的地方复合语句不需要用分号作为结束。
注意空语句;和空复合语句{}是等价的。
3.2选择控制语句
针对于不同情况采用不同的处理方式的问题,用选择结构来实现。
选择语句包含:
if语句和switch语句。
3.2.1if语句
if语句:
格式:
if(<条件表达式>)<语句>
作用:
当<条件表达式>为真时,执行<语句>,否则直接执行if语句后边的语句。
这里的<语句>可以是一条语句,也可以是几条语句,但对于多条语句的情况必须用{}将几条语句括起来构成复合语句,在if语句中当做一个整体处理。
if…else语句:
格式:
if(<条件表达式>)
<语句1>
else
<语句2>
作用:
当<条件表达式>为真时,执行<语句1>;当<条件表达式>为假时,执行<语句2>。
这里<语句1>和<语句2>可以是一条语句也可以是复合语句。
说明:
①if语句有时可以用条件表达式替代。
②if语句支持多种形式的嵌套使用,但一般嵌套层次不超过三层。
另外约定else总是与它上边最近的一个if配对。
为了防止语法或逻辑错误的发生,建议在较复杂的情形中使用花括号区分。
3.2.2switch语句
格式:
switch(<表达式>){
case<常量表达式1>:
<语句序列1>
case<常量表达式2>:
<语句序列2>
…
case<常量表达式n>:
<语句序列n>
[default:
<语句序列n+1>]
}
作用:
计算<表达式>判断它与哪个<常量表达式>匹配,执行第一个相匹配的<常量表达式>后的语句,直到遇到break转去执行switch语句以外的语句;如果均不匹配则执行default后定义的