A-A+
如下程序的输出结果是 #include<iostream> #include<iomanip
问题详情
如下程序的输出结果是 #include<iostream> #include<iomanip> 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; }
A.88
B.****88
C.****8****8
D.8****8请帮忙给出正确答案和分析,谢谢!
参考答案
正确答案:D
解析:输出流控制中,如果没有指定对齐方式,则默认为左对齐、右填充,CSum类使“<<”运算符出栈,并将输出控制为宽度为5,cout<<setfill('*')<<8;执行时就打印8****,然后执行cout<<y;打印8,故答案为D。