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

admin2017-11-28  58

问题 有如下程序:
    #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
***234
D、***123
234***

答案B

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

最新回复(0)