有如下程序: #include <iostream.h> #include <iomanip.h> using namespace std; class CSum { int x,y; public:

admin2010-06-06  29

问题 有如下程序:    #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;    }    执行上面程序的输出是

选项 A、88
B、****88
C、****8****8
D、8****8

答案D

解析 本题考核知识点包括:类与对象、运算重载、I/O的格式化输出。语句 "cout<<setfill(’*’)<<8;"输出8。语句"cout<<y;"将调用运算符重载输出****8,因为前面语句中设置的填充符号现在还有效,而数据"8"的宽度不够5,所以剩下4个字符的宽度用填充符号"*"填充。
转载请注明原文地址:https://jikaoti.com/ti/iUW0FFFM
0

最新回复(0)