当前位置: 首页 > 文档资料 > C++大学教程 >

11.13 自测练习答案

优质
小牛编辑
138浏览
2023-12-01

11.1

a)友元。b)ios::left、ios::right和ios::internal。c)流。d)setiosflags、e)iostream.h。
f)setf、unsetf g)strstream.h。h)iomanip.h。i)fstleam.h。j)endl。k)stdiostream.h。l)write。
m)ist蹲m)istream。 n)cerr、clog。o)ostream。P)<<。q)cin、cout、cerr和clog。 r)>>。s)ocl、hex、
dec。t)6位精度。u)ios::showpos。

11.2

a)正确。
b)不正确。重载的流插入运算符和流读取运算符不能用于所有的用户自定义类型。程序员必须为每一个用户自定义类型提供重载该运算符的运算符函数。
c)不正确。无参数的成员函数flags()只返回状态变量flags的当前值。
d)正确。
e)正确。
f)不正确。如果要重载流插入运算符,流插入运算符的两个参数必须是对ostream对象的引用和对自定义类型的对象的引用,返回对ostream对象引用。
g)正确。除非ios::skipws未置位。
h)不正确。C++的输入、输出特性是C++标准库的一部分,C++语言本身并不包括输入、输出和文件处理能力。
i)正确。
j)正确。
k)正确。
l)不正确。cin流通常是与计算机的键盘相连。
m)正确。
n)正确。
o)正确。
P)不正确。类ostream的成员函数put用于输出单个的字符。
q)不正确。流操纵算子dec、oct、hex用于设置输出整数的基数,直到下一次设置时或者在程序终止时才会改变。
r)不正确。在输出操作中,内存地址的默认显示方式是十六进制格式。如果要按long类型显示,则必须先转换成对应于long类型的值。

11.3

a) cout << "Enter your name:";
b) cout.setf(ios::uppercase);
c) cout << (void*)string
d) cout.setf(ios::scientific,ios::floatfield);
e) cout << integerPtr;
f) cout << setiosflags(ios::showbase);
g) cout << *floatPtr;
h) cout.fill('*');
cout<< setfill('*' );
i) cout.put('O').put('K');
j) cin.peek();
k) c = cin.get();
cin.get(c);
l) cin.ignore(6);
m) cin.read(line,50);
n) cin.get(name,1O,'.');
cin.getline(name,lO,'.');
O) cout.write(line, cin.gcount());
p) cout.flush();
cout << flush;
q) cout << 124 << 18.376 << 'z' << 1000000 <<"string";
r) cout << cout.precision();
s) cin >> months >> percentageRate;
t) cout << setprecision( 3 ) << 1.92 << '\t'
<< 1.925 << '\t' << 1.9258;
u) cout << oct << 100 << hex << 100 << dec << 100;
v) cout << 100 << setbase( 8 ) << 100 << setbase( 16 ) << 100;
w) cout << setw( 10 ) << 1234;
x) cin.get(line,20,'z');
y) cout << setw( x ) << setprecision( y ) << 87.4573;

11.4

a)不正确:运算符<<的优先级比<=高,语句求值不正确,因此编译器会报告错误。
纠正:在表达式x<=y两边加上括号。
b)不正确:不能像在c语言中那样在C++中直接输出字符的ASCII码值。
纠正:如果需要输出某一字符的ASCII值,必须先计算出它的ASCII值再输出,例如:
cout << int('C');
c)不正确:除非使用转义序列来加以区别,否则无法在字符串中输出双引号" "。
纠正:可用下面两种方法之一输出双引号" ":
cout << ' " ' << "A string in quotes" << ' " ';
cout << "\"A string in quotes\"";

11.5

a)12345
** 123
123
b)$$$$$10000
c)1024.988
d)0143
0x63
e)100000
+100000
f) 4.45e+02