有如下程序: #include<iostream> #include<iomanip> using namespace std; int main(){ int s[]={123,234}; cout<<right<<setfill(’*’)<<setw(

admin2015-11-24  20

问题 有如下程序:
#include<iostream>
#include<iomanip>
using namespace std;
int main(){
int s[]={123,234};
cout<<right<<setfill(’*’)<<setw(6);
for(int i=0;i<2;i++){cout<<s<<endl;}
return 0;
}
运行时的输出结果是(    )。

选项 A、123 234
B、***123 234
C、***123 ***234123
D、***123 234***

答案B

解析 在输出语句中定义了输出的格式是字符宽度为6,并且向右对齐,不足的位用‘*’补齐。在C++中,输出格式的设置只对第一次输出有效,在完成了一个数据的输出后,宽度设置自动恢复为O(表示按数据实际宽度输出)。所以对于本题来说,在循环语句中输出数组s[0]中的元素时,按照规定的格式输出,其结果为***123,当输出s[1]时,输出格式已经恢复到按数据实际宽度输出,所以此时输出为234。
转载请注明原文地址:https://kaotiyun.com/show/veNp777K
0

最新回复(0)