单选题
有如下程序:
#include <iostream.h>
#include <iomanip.h>
using namespace std;
class CSum
{
int x,y;
public:
CSum (int x0,int y0):x(x0),y(y0){}
friend ostream & operator<<(ostream& os,const CSum& xa)
{
os<<setw(5)<<xa.x+xa.y;
return os;
}
};
int main ()
{
CSum y(3,5);
cout<<setfill("*")<<8;
cout<<y;
return 0;
}
执行上面程序的输出是
【正确答案】
D
【答案解析】[解析] 本题考核知识点包括:类与对象、运算重载、I/O的格式化输出。语句 "cout<<setfill("*")<<8;"输出8。语句"cout<<y;"将调用运算符重载输出****8,因为前面语句中设置的填充符号现在还有效,而数据"8"的宽度不够5,所以剩下4个字符的宽度用填充符号"*"填充。