问题
单项选择题
有如下程序 #include<iostream> #include<iomanip> using namespace std; int main(){ cout<<setprecision(3)<<fixed<<setfill('*')<<setw(8); cout<<12.345<<_______<<34.567; return 0; } 若程序的输出是: ** 12.345**34.567 则程序中下划线处遗漏的操作符是
A.setprecision(3)
B.fixed
C.setfill('*')
D.setw(8)
答案
参考答案:D
解析: 本题考查的是输出的格式控制。本例中,操作符setprecision的作用是设置浮点数的精度;操作符fixed的作用是让浮点数按定点格式输出;操作符setfill的作用是设置填充字符;操作符setw的作用是设置输入输出的宽度。宽度设置setw是所有格式设置中惟一的一次有效的设置,即设置的宽度只对其后的一次输入输出操作有效,而其余操作符设置后会一直有效,直到再次设置时为止。因此,若下划线处什么也不填,则输出的结果应该为**12.34534.567。和要求的输出相比较,只缺少两个填充字符'*'。由此可知,下划线处应该填一个让34.567的输出宽度为8的操作符,即setw(8)。故应该选择D。