ImageVerifierCode 换一换
格式:DOC , 页数:19 ,大小:53.50KB ,
资源ID:497775      下载积分:2000 积分
快捷下载
登录下载
邮箱/手机:
温馨提示:
如需开发票,请勿充值!快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝扫码支付 微信扫码支付   
注意:如需开发票,请勿充值!
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【http://www.mydoc123.com/d-497775.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文([计算机类试卷]国家二级C++机试(运算符重载、模板和C++流)模拟试卷4及答案与解析.doc)为本站会员(orderah291)主动上传,麦多课文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知麦多课文库(发送邮件至master@mydoc123.com或直接QQ联系客服),我们立即给予删除!

[计算机类试卷]国家二级C++机试(运算符重载、模板和C++流)模拟试卷4及答案与解析.doc

1、国家二级 C+机试(运算符重载、模板和 C+流)模拟试卷 4及答案与解析 一、选择题 1 有如下程序: #include iostrearn using namespace std; int main() cout fill(*); cout width(6); cout fill(#); cout 123 endl; return 0; 执行后的输出结果是 ( )。 ( A) #123 ( B) 123# ( C) *123 ( D) 123* 2 下面关于 C+流的叙述中,正确的是 ( )。 ( A) cin是一个输入流对象 ( B)可以用 ifstream定义一个输出流对象 ( C)执行

2、语句序列 char*y=“PQMN; cout, y;将输出字符串 “PQMN”的地址 ( D)执行语句序列 char x80; cin getline(x,80);时,若键入 Happy new year 则 x中的字符串是 “Happy 3 有如下程序: #include iostream #include iomanip using namespace std; int main() cout fill(*); cout left setw(4) 123 OK endl; return 0; 执行这个程序的输出结果是 ( )。 ( A) 123*OK ( B) 123*OK* ( C)

3、*123OK ( D) *123*OK 4 下列关于输入流类成员函数 getline()的描述中,错误的是 ( )。 ( A)该函数是用来读取键盘输入的字符串的 ( B)该函数读取的字符串长度是受限制的 ( C)该函数读取字符串时,遇到终止符便停止 ( D)该函数读取字符串时,可以包含空格 5 有如下程序 #include iostream #include iomanip using namespace std; int main() cout setprecision(3) fixed setfill(*) setw(8); cout 12 345 _ 34 567; return 0:

4、若程序的输出是: *12 345*34 567 则程序中下划线处遗漏的操作符是 ( )。 ( A) setprecision(3) ( B) fixed ( C) setfill(*) ( D) setw(8) 6 使用输入输出操作符 setw,可以控制 ( )。 ( A)输出精度 ( B)输出宽度 ( C)对齐方式 ( D)填充字符 7 已知 一程序运行后执行的第一个输出操作是 ( )。 cout setw(10) setfill(*) 1234; 则此操作的输出结果是 ( A) 1234 ( B) *1234 ( C) *1234 ( D) 1234* 8 有如下 4个语句: cout A

5、 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的是 ( )。 ( A) 和 ( B) 和 ( C) 和 ( D) 和 9 下列语句分别是不同程序中的第一个输入输出语句,若去掉其中的 left“,输出效果将发生变化的是 ( )。 ( A) cout leR setfill(*) 357; ( B) cout left set

6、w(5) 357; ( C) cout left setw(5) ABCDE; ( D) cout left ABCDE; 10 假定下列语句都是程序运行后首次执行的输出语句,其中输出结果与另外三条语句不同的语句是 ( )。 ( A) cout setfill(*) 123 setw(9) 321; ( B) cout setfill(*) setw(6) left 123 setw(6) right 321; ( C) cout 123 setfill(*) setw(6) 321; ( D) cout setfill(*) setw(9) left 123 321; 11 有如下程序: #

7、include iostream #include iomanip using namespace std; int main() int s=123, 234; cout right setfill(*) setw(6); for(int i=0; i 2; i+)cout si endl; return 0; 运行时的输出结果是 ( )。 ( A) 123 234 ( B) *123 234 ( C) *123 *234 ( D) *123 234* 12 下列控制格式输入输出的操作符中,能够设置浮点数精度的是 ( )。 ( A) setprecision ( B) setw ( C) s

8、etfill ( D) showpoint 13 有如下程序: #include iostream #include iomanip using namespace std; int main() cout setw(10) setfill(x) setprecision(8) left; cout 12 3456793 _ 98765; return 0; 若程序的输出是 12 345679x98765xxxxx,则划线处缺失的部分是 ( )。 ( A) setw(10) ( B) setfill(x) ( C) setprecision(8) ( D) right 14 下列语句都是程序运

9、行时的第 1条输出语句,其中一条语句的输出效果与其他三条语句不同,该语句是 ( )。 ( A) cout internal 12345; ( B) cout left 12345: ( C) cout right 12345; ( D) cout setw(6) 12345; 15 有如下程序: #include iomanip #include iostrearn using namespace std; int main() coutsetfill(*) setw(6) 123 456; return 0; 运行时的输出结果是 ( )。 ( A) *123*456 ( B) *123456

10、* ( C) *123456 ( D) 123456 16 下列控制对齐方式的操作符中,错误的是 ( )。 ( A) internal ( B) center ( C) left ( D) fight 17 有如下程序: #include iostrearm #include iomanip using namespace std; int main() cout setfill(#) setw(4) OK 123 endl; return 0; 运行这个程序的输出结果是 ( )。 ( A) #OK123 ( B) #OK#123 ( C) K#123 ( D) OK#123# 18 若磁盘上

11、已存在某个文本文件,其全路径文件名为 d: ncre test txt,下列语句中不能打开该文件的是 ( )。 ( A) ifstream file(d: ncre test txt); ( B) ifStream file(d: ncre test txt); ( C) ifstream file; file open(d: ncre test txt); ifstream(d: ncre test txt); ( D) ifstream*pFile=new 19 语句 ofstream f(SALARY DAT, ios_base: app);的功能是建立流对象 f,并试图打开文件 SAL

12、ARY DAT与 f关联,而且 ( )。 ( A)若文件存在,将其置为空文件;若文件不存在,打开失败 ( B)若文件存在,将文件指针定位于文件尾;若文件不存在,建立一个新文件 ( C)若文件存在,将文件指针定位于文件首;若文件不存在,打开失败 ( D)若文件存在,打开失败;若文件不存在,建立一个新文件 20 如下函数的作用是以双倍行距输出文件 : void double_space(ifstream_ if(c= n)t put(c); 画线处缺失的部分是 ( )。 ( A) f get(c)与 t put? ( B) f put(c)与 t get? ( C) t get(c)与 f put

13、? ( D) t put(c)与 f get? 21 要利用 C+流进行文件操作,必须在程序中包含的头文件是 ( )。 ( A) iostream ( B) fstrearn ( C) strstream ( D) iomanip 22 当使用 ofstream流类定义一个流对象并打开一个磁盘文件时,文件的默认打开方式为 ( )。 ( A) ios base: :in ( B) ios_base: binary ( C) ios_base: inlios_base: out ( D) ios_base: out 23 要建立文件流并打开当前目录下的文件 file dat用于输入,下列语句中错误

14、的是 ( )。 ( A) ifstream fin=ifstream open(file dat); ( B) itstream*fin=ew ifstream(file dat); ( C) ifstream fin; fin open(file dat); ( D) ifstream*fin=new ifstream0; fin- open(file dat); 24 当使用 ifstream流类定义一个流对象并打开一个磁盘文件时,文件的默认打开方式为 ( )。 ( A) ios_base: fin ( B) ios_base: in ios_base: out ( C) ios base

15、: out ( D) ios base: in&ios base: out 25 在下列枚举符号中,用来表示 “相对于当前位置 ”文件定位方式的是 ( )。 ( A) ios_base: cur ( B) ios_base: beg ( C) ios_base: out ( D) ios_base: end 26 打开文件时可单独或组合使用下列文件打开模式 ( )。 ios_base: app ios_base: binary ios_base: in ios_base: out 若要以二进制读方式打开一个文件,需使用的文件打开模式为 ( A) ( B) ( C) ( D) 27 下列关于文件

16、流的描述中,正确的是 ( )。 ( A)文件流只能完成针对磁盘文件的输入和输出 ( B)建立一个文件流对象时,必须同时打开一个文件 ( C)若输入流要打开的文件不存在,将建立一个新文件 ( D)若输出流要打开的文件不存在,将建立一个新文件 28 若目前 D盘根目录下并不存在 test txt文件,则下列打开文件方式不会自动创建 test txt文件的是 ( )。 ( A) ifstream fin; fin open(d: test txt, ios_base: in); ( B) fstream rio; fio open(d: test txt, ios_base: out); ( C)

17、ofstream lout; fout open(d: test txt, ios_base: out); ( D) ofstream fout; fout open(d: test txt, ios_base: app); 29 如需要向一个二进制文件尾部添加数据,则该文件的打开方式为 ( )。 ( A) ios_base: app ( B) ios_base: binary los_base: out ( C) ios_base: out ( D) ios_base: binary ios_base: app 30 有如下语句序列: ifstream inffie(DATA DAT); i

18、f(infile good()cout A; else tout B; ofstream outfile(DATA DAT); if(outfile fail()cout C; else cout D; 若执行这个语句序列显示的是 BD,则说明文件 DATA DAT( )。 ( A)以读方式打开成功 ( B)以读方式打开失败,但以写方式打开成功 ( C)以读方式打开失败,以写方式打开也失败 ( D)以读方式打开 成功,以写方式打开也成功 国家二级 C+机试(运算符重载、模板和 C+流)模拟试卷 4答案与解析 一、选择题 1 【正确答案】 A 【试题解析】 此题考查的是 I O格式化输出。函数

19、width(int n)设置输入输出宽度,当实际数据宽度小于制定的宽度时,多余的位置用填充字符填满;当实际数据宽度大于设置的宽度时,仍按实际宽度输出;函数 fill(char c)用来设置填充字符。 【知识模块】 C+流 2 【正确答案】 A 【试题解析】 此题考查的是 C+流的概念和 I O的格式化。 cin是类的对象,亦即输入流对象; ifstream是输入文件流类,不能定义一个输出流对象: C选项中最后输出的是字符串 “PQMN”: D选项中 x中字符串应该是 “Happy new year”。 【知识模块】 C+流 3 【正确答案】 A 【试题解析】 此题考查了输出流的格式控制。 co

20、ut的 fill()是设置填充字符: left和 endl分别是使输出数据左对齐和换行; setw()函数的作用是设置输入输出的宽度,此设置效果只对以此输入或输出有效。此题中,输出整数 123时宽度为 4且左对齐,得到 “123*”;输出字符串 “OK”时宽度没有定义实际大小输出,结果得到OK:故最后得到的输出结果是 123*K。 【知识模块】 C+流 4 【正确答案】 A 【试题解析】 此题考查的是 getline()函数。 getline()函数的原型为:istream_type&getline(char_type*s,strearnsize,char_typedelim);。其功能是从当

21、前输入位置开始提取字符存入 s所指向的具有 n个字节的字符空间中。遇到以下情况时停止:已提取并存储了 n-1个字符;到流尾,无字符可取:下 一个要提取的字符等于结束标志字符 delim。故选项 B、 C、 D都是正确的。 getline()函数不仅可以用来读取键盘输入的字符串,还可以用来读取文件等数据流,故选项 A错误。 【知识模块】 C+流 5 【正确答案】 D 【试题解析】 此题考查的是输出函数的格式控制。此题中,操作符 setprecision的作用是设置浮点数的精度; fixed的作用是让浮点数按定点格式输出; setfill的作用是设置填充字符; setw的作用是设置输入输出的宽度,

22、一次有效的设置。下划线处应填一个让 34 567的输出宽 度为 8的操作符,即 setw(8)。 【知识模块】 C+流 6 【正确答案】 B 【试题解析】 此题考查的是 C+流的操作符。在 C+流中,操作符 setw的作用是设置输入输出宽度。 【知识模块】 C+流 7 【正确答案】 B 【试题解析】 此题考查的是输入输出的格式控制。 setw()控制的是输入输出的宽度; setfill()控制的是输出的填充字符。所以本题的输出结果是 *1234。 【知识模块】 C+流 8 【正确答案】 C 【试题解析】 此题考查 C+流的使用。 setfill()作用是设置填充字符; left是使输出数据在指

23、定宽度内左对齐: fight是使输出数据在指定宽度内右对齐。 【知识模块】 C+流 9 【正确答案】 B 【试题解析】 此题考查的是 C+流。 setfill()作用是设置填充字符; left是使输出数据在指定宽度内左对齐; setw()的作用是设置输入输出宽度,且只对当前一次有效。 【知识模块】 C+流 10 【正确答案】 B 【试题解析】 按照选项 B的输出格式控制符输出的结果为 “123*321”,而按照选项 A、 C、 D的输出格式控制符输出的结果为 “123*321”。 【知识模块】 C+流 11 【正确答案】 B 【试题解析】 在输出语句中定义了输出的格式是字符宽度为 6,并且向右

24、对齐,不足的位用 *补齐。在 C+中,输出格式的设置只对第一次输出有效,在完成了一个数据的输出后,宽度设置自动恢复为 0(表示按数据实际宽度输出 )。所以对于本题来说,在循环语句中输出数组 s0中的元素时,按照规定的格式输出,其结果为 *123,当输出 s1时,输出格式已经恢复到按数据实际宽度输出 ,所以此时输出为 234。 【知识模块】 C+流 12 【正确答案】 A 【试题解析】 setprecision(int n):设置浮点数的精度 (有效位数或小数位数 ),等价函数调用: ioprecision(n)。 【知识模块】 C+流 13 【正确答案】 A 【试题解析】 根据程序输出的结果最

25、后 5个位置用 x进行填充,又因为 setw(10)设置输出的宽度效果只对一次输出有效。所以划线处应该填写 setw(10)。 【知识模块】 C+流 14 【正确答案】 D 【试题解析】 选项 A, B, C都没有指输出数据的宽度,所以在输出时,按实际字符的宽度输出,而选项 D指定输出字符的宽度为 6,而实际输出的宽度等于 5,所以最后一个字符用空格补齐。 【知识模块】 C+流 15 【正确答案】 C 【试题解析】 在主函数中第一次输出时调用函数 setfill(*)设置填充字符为 *,调用函数 setw(6)设置每次输出的宽度为 6,所以第一次输出 123时,多余的三个空位用 *填充,即结果

26、为 *123,第二次从输出流中输出 456。 【知识模块】 C+流 16 【正确答案】 B 【试题解析】 对齐方式的控制操作符 left的含义是在设定的宽度内左对齐输出,右端填已设定的填充字符: right(此为默认设置 )在设定的宽度内右对齐输出;intemal在设定的宽度内右对齐输出,但若有符号 (-或 +),符号置于最左端。 【知识模块】 C+流 17 【正确答案】 A 【试题解析】 setfill是设置填充字符, setw设置输出的宽度,它们的作用表现在紧接着输出的字符串上。这个宽度是填充后的宽度。所以 cout setfill(#)setw(4) OK 123中, setfill和

27、s6tw只作用在 OK,表示在 OK前面填充 2个 #。 【知识模块】 C+流 18 【正确答案】 A 【试题解析】 此题考查的是转义字符。在字符常量或字符串中,以 “ ”开头的一系列字符被看做是一个转义字符。要表示 “ ”字符,必须使用转义字符 “ ”。 【知识模块】 C+流 19 【正确答案】 B 【试题解析】 此题考查的是文件打开模式。文件打开模式 iso base: app是为添加数据而打开 (总是在尾部写 ),故只 有选项 B说法正确。 【知识模块】 C+流 20 【正确答案】 A 【试题解析】 此题考查的是文件流。 get()函数作用是读入一个字符,所以调用它的应该是输入文件流 i

28、fstream对象 f put()函数作用是输出一个字符,所以调用它的应该是输入文件流 ofstre锄对象 t,故选项 B、 C排除。读入和输出应该是有顺序的,应该先读入后输出,所以前一空填 fget(c),后一空填 t put(c)。 【知识模块】 C+流 21 【正确答案】 B 【试题解析】 要使用文件流对象进行针对磁盘 文件的 I O操作,必须包含fstrem头文件。 【知识模块】 C+流 22 【正确答案】 D 【试题解析】 对于 ofstream,默认的打开方式是 ios_base: out, ofstream只能用于输出,它没有提供任何用于输入的操作。 【知识模块】 C+流 23

29、【正确答案】 A 【试题解析】 在选项 A中,在赋值号的左侧表示建立一个输入流对象 fin,而在赋值号的右侧的表达式不正确,因为文件输入流类 ifstream不能直接调用其成员函数 open。 【知识模块】 C+流 24 【正确答案】 A 【试题解析】 对于 ifstream,默认打开模式是 ios_base: in。 ifstream只能用于输入,它没有提供任何用于输出的操作。 【知识模块】 C+流 25 【正确答案】 A 【试题解析】 C+流的定位方式 (也就是指针移动方式 )有三种,被定义为ios_base: seek dir中的一组枚举符号: ios base: beg相当于文件首;

30、ios base: cur相当于当前位置 (负数表示当前位置之前 ); ios base: end相对于文件尾。 【知识模块】 C+流 26 【正确答案】 D 【试题解析】 模式 ios_base: binary作为二制进文件打开, ios_base: out为输出而打开文件。 【知识模块】 C+流 27 【正确答案】 D 【试题解析】 对于输入文件流类 ifstream,默认的打开模式是 ios base: in,当以这种方式打开文件而文件又不存在时,通过 fail()可测试打开失败 (返回值为true),对于输出文件流类 ofstream,默认的打开模式是 ios_base: out,当以这种方式打开文件而文件又不存在时,将自动建立新文件。 【知识模块】 C+流 28 【正确答案】 A 【试题解析】 如果以 iso_base: in模式打开文件但文件又不存在时,可以通过fail()测出文件打开失败,不会自动创建文件。 【知识模块】 C+流 29 【正确答案】 D 【试题解析】 ios_base: binary模式是作为二进制文件打开, ios_base: app模式是作为添加数据而打开 (总是在尾部写 )。 【知识模块】 C+流 30 【正确答案】 B 【试题解析】 由这个语句序列显示的结果是 BD,说明执行了 cout B和cout “D“语句。 【知识模块】 C+流

copyright@ 2008-2019 麦多课文库(www.mydoc123.com)网站版权所有
备案/许可证编号:苏ICP备17064731号-1