选择题   有如下程序:
    #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个字符的宽度用填充符号'*'填充。