国家二级C++机试(运算符重载、模板和C++流)模拟试卷8
选择题
1.有如下程序:
#include<iostrearn>
using namespace std;
int main()
{
cout.fill(’*’);
cout.width(6);
cout.fill(’#’);
cout<<123<<endl;
return 0;
}
执行后的输出结果是( )。(A)
A. ###123
B. 123###
C. ***123
D. 123***
解析:此题考查的是I/O格式化输出。函数width(int n)设置输入输出宽度,当实际数据宽度小于制定的宽度时,多余的位置用填充字符填满;当实际数据宽度大于设置的宽度时,仍按实际宽度输出;函数fill(char c)用来设置填充字符。
2.下面关于C++流的叙述中,正确的是( )。(A)
A. cin是一个输入流对象
B. 可以用ifstream定义一个输出流对象
C. 执行语句序列char*y=\\
D. 执行语句序列char x[80];cin.getline(x,80);时,若键入
Happy new year
则x中的字符串是\\
解析:此题考查的是C++流的概念和I/O的格式化。cin是类的对象,亦即输入流对象;ifstream是输入文件流类,不能定义一个输出流对象:C选项中最后输出的是字符串“PQMN”:D选项中x中字符串应该是“Happy new year”。
3.有如下程序:
#include<iostream>
#include<iomanip>
using namespace std;
int main()
{
cout.fill(’*’);
cout<<left<<setw(4)<<123<<<’’OK’’<<endl;
return 0;
}
执行这个程序的输出结果是( )。(A)
A. 123*OK
B. 123*OK**
C. *123OK
D. *123**OK
解析:此题考查了输出流的格式控制。cout的fill()是设置填充字符:left和endl分别是使输出数据左对齐和换行;setw()函数的作用是设置输入输出的宽度,此设置效果只对以此输入或输出有效。此题中,输出整数123时宽度为4且左对齐,得到“123*”;输出字符串“OK”时宽度没有定义实际大小输出,结果得到OK:故最后得到的输出结果是123*K。
4.下列关于输入流类成员函数getline()的描述中,错误的是( )。(A)
A. 该函数是用来读取键盘输入的字符串的
B. 该函数读取的字符串长度是受限制的
C. 该函数读取字符串时,遇到终止符便停止
D. 该函数读取字符串时,可以包含空格
解析:此题考查的是getline()函数。getline()函数的原型为:istream_type&getline(char_type*s,strearnsize,char_typedelim);。其功能是从当前输入位置开始提取字符存入s所指向的具有n个字节的字符空间中。遇到以下情况时停止:已提取并存储了n-1个字符;到流尾,无字符可取:下一个要提取的字符等于结束标志字符delim。故选项B、C、D都是正确的。getline()函数不仅可以用来读取键盘输入的字符串,还可以用来读取文件等数据流,故选项A错误。
5.有如下程序
#include<iostream>
#include<iomanip>
using namespace std;
int main(){
cout<<setprecision(3)<<fixed<<setfill(’*’)<<setw(8);
cout<<12.345<<_______<<34.567;
return 0:
}
若程序的输出是:
**12.345**34.567
则程序中下划线处遗漏的操作符是( )。(D)
A. setprecision(3)
B. fixed
C. setfill(’*’)
D. setw(8)
解析:此题考查的是输出函数的格式控制。此题中,操作符setprecision的作用是设置浮点数的精度;fixed的作用是让浮点数按定点格式输出;setfill的作用是设置填充字符;setw的作用是设置输入输出的宽度,一次有效的设置。下划线处应填一个让34.567的输出宽度为8的操作符,即setw(8)。
6.使用输入输出操作符setw,可以控制( )。(B)
A. 输出精度
B. 输出宽度
C. 对齐方式
D. 填充字符
解析:此题考查的是C++流的操作符。在C++流中,操作符setw的作用是设置输入输出宽度。
7.已知一程序运行后执行的第一个输出操作是( )。
cout<<setw(10)<<setfill(’*’)<<1234;
则此操作的输出结果是(B)
A. 1234
B. ******1234
C. **********1234
D. 1234******
解析:此题考查的是输入输出的格式控制。setw()控制的是输入输出的宽度;setfill()控制的是输出的填充字符。所以本题的输出结果是*****1234。
8.有如下4个语句:
①cout<<’A’<<setfill(’*’)<<left<<setw(7)<<’B’<<endl;
②cout<<setfill(’*’)<<left<<setw(7)<<’A’<<’B’<<endl;
③cout<<’A’<<serfill(’*’)<<right<<setw(7)<<’B’<<endl;
④cout<<setfill(’*’)<<right<<setw(7)<<’A’<<’B’<<endl;
其中能显示A******B的是( )。(C)
A. ①和③
B. ①和④
C. ②和③
D. ②和④
解析:此题考查C++流的使用。setfill()作用是设置填充字符;left是使输出数据在指定宽度内左对齐:fight是使输出数据在指定宽度内右对齐。
9.下列语句分别是不同程序中的第一个输入输出语句,若去掉其中的’’<<left\\(B)
A. cout<<leR<<setfill(’*’)<<357;
B. cout<<left<<setw(5)<<357;
C. cout<<left<<setw(5)<<’’ABCDE’’;
D. cout<<left<<’’ABCDE’’;
解析:此题考查的是C++流。setfill()作用是设置填充字符;
本文档预览:3600字符,共9984字符,源文件无水印,下载后包含无答案版和有答案版,查看完整word版点下载