11.12 自测练习
11.1 填空
a)重载的流运算符函数经常定义为类的——函数。
b)能够设置的格式对齐位包括——、——和——。
c)C++中的输入/输出是以字节——的形式实现的。
d)参数化的流操纵算子——和——用于设置和清除格式化状态标志。
e)大多数C++程序都要包含——头文件。该文件中包含了所有输入/输出流操作所需的基本信息。
f)成员函数——和——用于设置和清除格式化状态标志。
g)头文件——中包含了执行内存格式化所需的信息。
h)当使用带参数的操纵算子时,程序中必须包含头文件——。
i)头文件——中包含了处理用户控制的文件操作所需的信息。
j)流操纵算子——向输出流中插入一个换行符并刷新输出缓冲区。
k)头文件——中包含了用C、C++语言式I/O混合编程所需的信息。
l)类ostream的成员函数——用于执行无格式输出。
m)类——支持输入操作。
n)标准错误流的输出发送给流对象——或——。
o)类——支持输出操作。
P)流插入运算符是——。
q)与系统中标准设备对应的4个对象是——、——、——和——。
r)流读取运算符是——。
s)流操纵算子——、——和——分别指定整数按八进制、十六进制、十进制格式显示。
t)浮点数的默认精度值是——。
u)设置——标志位可使显示的正数前面带有一个加号。
11.2 判断下列说法是否正确。如果不正确,请说明原因。
a)带一个long类型参数的流成员函数flags(按参数值设置flags状态变量,并返回以前设置的标志值。
b)重载流插入运算符<<和流读取运算符>>是为了处理所有的标准数据类型,包括字符串、内存地址(只能用流插入运算符)和所有用户自定义的数据类型。
c)无参数的成员函数flags()可以设置状态变量flags中的所有状态位。
d)流读取运算符的参数是对istream对象的引用和对自定义类型对象的引用,返回对istream对象的引用。
e)流操纵算子ws可跳过输人流中的前导空白字符。
f)流插入运算符<<的两个参数是对istream对象的引用和对自定义类型对象的引用,返回对istream对象的引用。
g)用流读取运算符>>进行输入操作总会跳过输入流中的前导空白字将。
h)输入、输出的特性是由C++本身所提供的。
i)流成员函数rdstate()返回当前流的状态。
j)cout流通常是与显示器相连的。
k)如果成员函数bad()、fail()和eof()都返回false,则流成员函数good()返回true。
l)cin流通常是与显示器相连的。
m)如果在流操作期间发生了不可恢复的致命错误,成员函数bad()返回true。
n)到cerr的输出是非缓冲输出,到clog的输出是缓冲输出。
o)当设置ios::showpoint标志位时,浮点数被强制以默认精度格式(6位小数位)输出(假定未改变精度值使浮点数按指定精度输出)。
P)类ostream的成员函数put用于输出指定数目的字符。
q)流操纵算子dec、oct、hex只对下一个输出整数有效。
r)在输出操作中,内存地址是以long类型表示的。
11.3 用一条 C++ 语句实现下述要求。
a)输出字符串”Enter your name:”。
b)设置一个标志,使科学记数法中的指数以及十六进制数中的宇母按大写的格式输出。
c)(S出char*类型变量smng的地址。
d)设置一个标志.以科学记数法显示浮点数。
e)输出int*类型变量integerPtr的地址。
f)设置一个标志,使得在输出整数时,八进制数和十六进制数显示出其基数。
g)输出float*类型变量fioatPtr所指向的值。
h)当所设置的域宽长度大于输出数据所需宽度时,用成员函数设置填充字符'*'。再写一条用流操纵算子实现该功能的语句。
i)用类ostream的函数put在一条语句中输出字符'O',、'K'。
j)从输入流中获取下一个字符,但并不提取它。
k)采用两种不同的方法,用类istream的成员函数get向char类型变量c输入一个字符。
l)输出并删除输入流中的下6个字符。
m)用类istream的成员函数read给char类型数组line输入50个字符。
n)读入10个字符到字符数组name中,当遇到分隔符,'.'时结束读操作,但并不删除输入流中的分隔符。另外再写一条语句完成上述功能,但需要删除输入流中的分隔符。
o)用类istream的成员函数gcount统计字符型数组line中的字符个数(line中的字符是通过调用类istream的成员函数read来输入的),然后根据统计的字符个数,用类ostream的成员函数write输出line中的字符。
p)分别编写两条语句,用成员函数和流操纵算子刷新输出缓冲区。
q)输出下列值:124、18.376、'Z'、1000000和"String"。
r)用成员函数输出当前浮点数的精度。
s)给int类型变量months输入一个整数值,给float类型变量percentageRate输入一个浮点数。
t)用流操纵算子输出1.92、1.925和1.9258,精度是三位小数位。
u)用流操纵算子分别按八进制、十六进制、十进制格式输出整数100。
v)按八进制、十六进制、十进制格式输出整数100,要求用同一个流操纵算子来改变整数的基数。
w)按右对齐方式、以10位域宽输出1234。
x)把字符读入字符数组line中,当遇到指定的分隔符'z'时或读取的字符个数达到限定值20(包括空字符)时,停止读取操作,该语句不从输入流中读取分隔符。
y)按域宽x、精度y(x、y为整型变量)输出double类型值87.4573。
11.4 指出并纠正下列语句中的错误
a) cout << "Value Of x <= y is:" << x <= y;
b)下面的语句要输出字符'c'的整数值:
cout << 'c';
c) cout << ""A string in quotes"";
11.5 写出下面语句的输出结果。
a) cout<< "12345" << endl;
cout.width(5);
cout.fill('*');
cout << 123 << endl << 123;
b) cout << setw( 10 ) << setfill( '$' ) << 10000;
c) cout << setw( 8 ) << setprecision( 3 ) << 1024.987694;
d) cout << setiosflags( ios::showbase ) << oct << 99
<< endl << hex << 99;
c) cout << 100000 << endl
<< setiosflags(ios::showpos) << 100000;
f) cout << setw( 10 ) << setprecision( 2 ) <<
<< setiosflags(ios::scientific) << 444.93738;