有如下程序:    #include <iostream>    #include <iomanip>    using namespace std;    int main()    {         cout.fill(’*’);         c

admin2017-10-17  23

问题 有如下程序:    #include <iostream>    #include <iomanip>    using namespace std;    int main()    {         cout.fill(’*’);         cout << left << setw(4) << 123 << "OK" << endl;         return 0;    }

选项 A、123*OK
B、123*OK**
C、*123OK
D、*123**OK

答案A

解析 本题考查了输出流的格式控制。cout的fill()方法的作用是设置填充字符,若输出数据宽度小于设置宽度,则空闲位置用填充字符填满。left和endl是C++预定义的用于格式控制的符号常量,前者使输出数据在指定宽度内左对齐,后者使输出换行。setw()函数的作用是设置输入输出宽度,不过宽度设置的效果只对一次输入或输出有效,在完成了一个数据的输入或输出后,宽度设置自动恢复为0(表示按数据实际宽度输入输出)。所以在本题中,输出整数123时宽度为4且左对齐,空出最后一位填入填充字符’*’,结果是123*:输出字符串"OK"时宽度自动恢复为0,结果是OK。故程序的输出结果是123*OK,应该选择A。
转载请注明原文地址:https://jikaoti.com/ti/tKt0FFFM
0

最新回复(0)