问题 单项选择题

阅读下面程序:
#include <iomanip. h>
int main ()

cout<<setfill( '*' )<<setw( 8 );
cout<<setprecision( 5 )<<3.1415926<<end1;
return 0;

则该程序的输出结果是 ( )。

A.3.1415**

B.***3.1416

C.3.141593

D.**3.14159

答案

参考答案:B

解析: 本题主要考察C++中输入输出流的格式控制操作。C++允许使用 setprecision操纵符来控制输出对象的输出精度,若程序中没有指定输出精度,则其默认值为6。C++同时允许使用setfill()操纵符设置填充符,默认填充字符为空格符“”。本题程序中,首先通过setfill()操纵符设置填充字符为星号“*”,并设置输出宽度为 8位;输出对象前,设置对象的输出精度为5,因此对象3.1415926的实际输出数值为3.1416(自动进行四舍五入);再把宽度设置考虑进去,由于默认对齐方式为右对齐,因此数值左边需要加填充符,即应该填充三个“*”符号以满足输出宽度为8位的要求。故程序的最终输出应该是“***3.1416”。

选择题
名词解释