欢迎来到麦多课文档分享! | 帮助中心 海量文档,免费浏览,给你所需,享你所想!
麦多课文档分享
全部分类
  • 标准规范>
  • 教学课件>
  • 考试资料>
  • 办公文档>
  • 学术论文>
  • 行业资料>
  • 易语言源码>
  • ImageVerifierCode 换一换
    首页 麦多课文档分享 > 资源分类 > DOC文档下载
    分享到微信 分享到微博 分享到QQ空间

    【计算机类职业资格】国家二级C++机试(运算符重载、模板和C++流)模拟试卷4及答案解析.doc

    • 资源ID:1331972       资源大小:62.50KB        全文页数:10页
    • 资源格式: DOC        下载积分:5000积分
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    二维码
    微信扫一扫登录
    下载资源需要5000积分(如需开发票,请勿充值!)
    邮箱/手机:
    温馨提示:
    如需开发票,请勿充值!快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如需开发票,请勿充值!如填写123,账号就是123,密码也是123。
    支付方式: 支付宝扫码支付    微信扫码支付   
    验证码:   换一换

    加入VIP,交流精品资源
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    【计算机类职业资格】国家二级C++机试(运算符重载、模板和C++流)模拟试卷4及答案解析.doc

    1、国家二级 C+机试(运算符重载、模板和 C+流)模拟试卷 4 及答案解析(总分:60.00,做题时间:90 分钟)一、选择题(总题数:30,分数:60.00)1.有如下程序: #includeiostrearn using namespace std; int main() coutfill(*); coutwidth(6); coutfill(#); cout123endl; return 0; 执行后的输出结果是( )。(分数:2.00)A.#123B.123#C.*123D.123*2.下面关于 C+流的叙述中,正确的是( )。(分数:2.00)A.cin 是一个输入流对象B.可以用 i

    2、fstream 定义一个输出流对象C.执行语句序列 char*y=“PQMN;cout,y;将输出字符串“PQMN”的地址D.执行语句序列 char x80;cingetline(x,80);时,若键入 Happy new year 则 x 中的字符串是“Happy3.有如下程序: #includeiostream #includeiomanip using namespace std; int main() coutfill(*); coutleftsetw(4)123A.123*OKB.123*OK*C.*123OKD.*123*OK4.下列关于输入流类成员函数 getline()的描述中

    3、,错误的是( )。(分数:2.00)A.该函数是用来读取键盘输入的字符串的B.该函数读取的字符串长度是受限制的C.该函数读取字符串时,遇到终止符便停止D.该函数读取字符串时,可以包含空格5.有如下程序 #includeiostream #includeiomanip using namespace std; int main() coutsetprecision(3)fixedsetfill(*)setw(8); cout12345_34567; return 0: 若程序的输出是: *12345*34567 则程序中下划线处遗漏的操作符是( )。(分数:2.00)A.setprecision

    4、(3)B.fixedC.setfill(*)D.setw(8)6.使用输入输出操作符 setw,可以控制( )。(分数:2.00)A.输出精度B.输出宽度C.对齐方式D.填充字符7.已知一程序运行后执行的第一个输出操作是( )。 coutsetw(10)setfill(*)1234; 则此操作的输出结果是(分数:2.00)A.1234B.*1234C.*1234D.1234*8.有如下 4 个语句: coutAsetfill(*)leftsetw(7)Bendl; coutsetfill(*)leftsetw(7)ABendl; coutAserfill(*)rightsetw(7)Bendl

    5、; coutsetfill(*)rightsetw(7)ABendl; 其中能显示 A*B 的是( )。(分数:2.00)A.和B.和C.和D.和9.下列语句分别是不同程序中的第一个输入输出语句,若去掉其中的left“,输出效果将发生变化的是( )。(分数:2.00)A.coutleRsetfill(*)357;B.coutleftsetw(5)357;C.coutleftsetw(5)ABCDE;D.coutleftABCDE;10.假定下列语句都是程序运行后首次执行的输出语句,其中输出结果与另外三条语句不同的语句是( )。(分数:2.00)A.coutsetfill(*)123setw(9

    6、)321;B.coutsetfill(*)setw(6)left123setw(6)right321;C.cout123setfill(*)setw(6)321;D.coutsetfill(*)setw(9)left123321;11.有如下程序: #includeiostream #includeiomanip using namespace std; int main() int s=123,234; coutrightsetfill(*)setw(6); for(int i=0;i2;i+)coutsiendl; return 0; 运行时的输出结果是( )。(分数:2.00)A.123

    7、 234B.*123 234C.*123 *234D.*123 234*12.下列控制格式输入输出的操作符中,能够设置浮点数精度的是( )。(分数:2.00)A.setprecisionB.setwC.setfillD.showpoint13.有如下程序: #includeiostream #includeiomanip using namespace std; int main() coutsetw(10)setfill(x)setprecision(8)left; cout123456793_98765; return 0; 若程序的输出是 12345679x98765xxxxx,则划线处

    8、缺失的部分是( )。(分数:2.00)A.setw(10)B.setfill(x)C.setprecision(8)D.right14.下列语句都是程序运行时的第 1 条输出语句,其中一条语句的输出效果与其他三条语句不同,该语句是( )。(分数:2.00)A.coutinternal12345;B.coutleft12345:C.coutright12345;D.coutsetw(6)12345;15.有如下程序: #includeiomanip #includeiostrearn using namespace std; int main() coutA.*123*456B.*123456*

    9、C.*123456D.12345616.下列控制对齐方式的操作符中,错误的是( )。(分数:2.00)A.internalB.centerC.leftD.fight17.有如下程序:#includeiostrearm #includeiomanip using namespace std; int main() coutsetfill(#)setw(4)OK123endl; return 0; 运行这个程序的输出结果是( )。(分数:2.00)A.#OK123B.#OK#123C.K#123D.OK#123#18.若磁盘上已存在某个文本文件,其全路径文件名为 d:ncretesttxt,下列语

    10、句中不能打开该文件的是( )。(分数:2.00)A.ifstream file(d:ncretesttxt);B.ifStream file(d:ncretesttxt);C.ifstream file;fileopen(d:ncretesttxt); ifstream(d:ncretesttxt);D.ifstream*pFile=new19.语句 ofstream f(SALARYDAT,ios_base:app);的功能是建立流对象 f,并试图打开文件SALARYDAT 与 f 关联,而且( )。(分数:2.00)A.若文件存在,将其置为空文件;若文件不存在,打开失败B.若文件存在,将文

    11、件指针定位于文件尾;若文件不存在,建立一个新文件C.若文件存在,将文件指针定位于文件首;若文件不存在,打开失败D.若文件存在,打开失败;若文件不存在,建立一个新文件20.如下函数的作用是以双倍行距输出文件: void double_space(ifstream_ if(c=n)tput(c); 画线处缺失的部分是( )。(分数:2.00)A.fget(c)与 tput?B.fput(c)与 t get?C.tget(c)与 fput?D.tput(c)与 fget?21.要利用 C+流进行文件操作,必须在程序中包含的头文件是( )。(分数:2.00)A.iostreamB.fstrearnC.

    12、strstreamD.iomanip22.当使用 ofstream 流类定义一个流对象并打开一个磁盘文件时,文件的默认打开方式为( )。(分数:2.00)A.ios base::inB.ios_base:binaryC.ios_base:inlios_base:outD.ios_base:out23.要建立文件流并打开当前目录下的文件 filedat 用于输入,下列语句中错误的是( )。(分数:2.00)A.ifstream fin=ifstreamopen(filedat);B.itstream*fin=ew ifstream(filedat);C.ifstream fin;finopen(

    13、filedat);D.ifstream*fin=new ifstream0;fin-open(filedat);24.当使用 ifstream 流类定义一个流对象并打开一个磁盘文件时,文件的默认打开方式为( )。(分数:2.00)A.ios_base:finB.ios_base:in ios_base:outC.ios base:outD.ios base:inB.coutleftsetw(5)357; C.coutleftsetw(5)ABCDE;D.coutleftABCDE;解析:解析:此题考查的是 C+流。setfill()作用是设置填充字符;left 是使输出数据在指定宽度内左对齐;

    14、setw()的作用是设置输入输出宽度,且只对当前一次有效。10.假定下列语句都是程序运行后首次执行的输出语句,其中输出结果与另外三条语句不同的语句是( )。(分数:2.00)A.coutsetfill(*)123setw(9)321;B.coutsetfill(*)setw(6)left123setw(6)right321; C.cout123setfill(*)setw(6)321;D.coutsetfill(*)setw(9)left123321;解析:解析:按照选项 B 的输出格式控制符输出的结果为“123*321”,而按照选项 A、C、D 的输出格式控制符输出的结果为“123*321”

    15、。11.有如下程序: #includeiostream #includeiomanip using namespace std; int main() int s=123,234; coutrightsetfill(*)setw(6); for(int i=0;i2;i+)coutsiendl; return 0; 运行时的输出结果是( )。(分数:2.00)A.123 234B.*123 234 C.*123 *234D.*123 234*解析:解析:在输出语句中定义了输出的格式是字符宽度为 6,并且向右对齐,不足的位用*补齐。在 C+中,输出格式的设置只对第一次输出有效,在完成了一个数据的

    16、输出后,宽度设置自动恢复为 0(表示按数据实际宽度输出)。所以对于本题来说,在循环语句中输出数组 s0中的元素时,按照规定的格式输出,其结果为*123,当输出 s1时,输出格式已经恢复到按数据实际宽度输出,所以此时输出为234。12.下列控制格式输入输出的操作符中,能够设置浮点数精度的是( )。(分数:2.00)A.setprecision B.setwC.setfillD.showpoint解析:解析:setprecision(int n):设置浮点数的精度(有效位数或小数位数),等价函数调用:ioprecision(n)。13.有如下程序: #includeiostream #includ

    17、eiomanip using namespace std; int main() coutsetw(10)setfill(x)setprecision(8)left; cout123456793_98765; return 0; 若程序的输出是 12345679x98765xxxxx,则划线处缺失的部分是( )。(分数:2.00)A.setw(10) B.setfill(x)C.setprecision(8)D.right解析:解析:根据程序输出的结果最后 5 个位置用 x 进行填充,又因为 setw(10)设置输出的宽度效果只对一次输出有效。所以划线处应该填写 setw(10)。14.下列语

    18、句都是程序运行时的第 1 条输出语句,其中一条语句的输出效果与其他三条语句不同,该语句是( )。(分数:2.00)A.coutinternal12345;B.coutleft12345:C.coutright12345;D.coutsetw(6)12345; 解析:解析:选项 A,B,C 都没有指输出数据的宽度,所以在输出时,按实际字符的宽度输出,而选项 D指定输出字符的宽度为 6,而实际输出的宽度等于 5,所以最后一个字符用空格补齐。15.有如下程序: #includeiomanip #includeiostrearn using namespace std; int main() cout

    19、A.*123*456B.*123456*C.*123456 D.123456解析:解析:在主函数中第一次输出时调用函数 setfill(*)设置填充字符为*,调用函数 setw(6)设置每次输出的宽度为 6,所以第一次输出 123 时,多余的三个空位用*填充,即结果为*123,第二次从输出流中输出 456。16.下列控制对齐方式的操作符中,错误的是( )。(分数:2.00)A.internalB.center C.leftD.fight解析:解析:对齐方式的控制操作符 left 的含义是在设定的宽度内左对齐输出,右端填已设定的填充字符:right(此为默认设置)在设定的宽度内右对齐输出;int

    20、emal 在设定的宽度内右对齐输出,但若有符号(-或+),符号置于最左端。17.有如下程序:#includeiostrearm #includeiomanip using namespace std; int main() coutsetfill(#)setw(4)OK123endl; return 0; 运行这个程序的输出结果是( )。(分数:2.00)A.#OK123 B.#OK#123C.K#123D.OK#123#解析:解析:setfill 是设置填充字符,setw 设置输出的宽度,它们的作用表现在紧接着输出的字符串上。这个宽度是填充后的宽度。所以 coutsetfill(#)setw

    21、(4)OK123 中,setfill 和s6tw 只作用在OK,表示在OK前面填充 2 个#。18.若磁盘上已存在某个文本文件,其全路径文件名为 d:ncretesttxt,下列语句中不能打开该文件的是( )。(分数:2.00)A.ifstream file(d:ncretesttxt); B.ifStream file(d:ncretesttxt);C.ifstream file;fileopen(d:ncretesttxt); ifstream(d:ncretesttxt);D.ifstream*pFile=new解析:解析:此题考查的是转义字符。在字符常量或字符串中,以“”开头的一系列字

    22、符被看做是一个转义字符。要表示“”字符,必须使用转义字符“”。19.语句 ofstream f(SALARYDAT,ios_base:app);的功能是建立流对象 f,并试图打开文件SALARYDAT 与 f 关联,而且( )。(分数:2.00)A.若文件存在,将其置为空文件;若文件不存在,打开失败B.若文件存在,将文件指针定位于文件尾;若文件不存在,建立一个新文件 C.若文件存在,将文件指针定位于文件首;若文件不存在,打开失败D.若文件存在,打开失败;若文件不存在,建立一个新文件解析:解析:此题考查的是文件打开模式。文件打开模式 iso base:app 是为添加数据而打开(总是在尾部写),

    23、故只有选项 B 说法正确。20.如下函数的作用是以双倍行距输出文件: void double_space(ifstream_ if(c=n)tput(c); 画线处缺失的部分是( )。(分数:2.00)A.fget(c)与 tput? B.fput(c)与 t get?C.tget(c)与 fput?D.tput(c)与 fget?解析:解析:此题考查的是文件流。get()函数作用是读入一个字符,所以调用它的应该是输入文件流ifstream 对象 fput()函数作用是输出一个字符,所以调用它的应该是输入文件流 ofstre 锄对象 t,故选项 B、C 排除。读入和输出应该是有顺序的,应该先读

    24、入后输出,所以前一空填 fget(c),后一空填tput(c)。21.要利用 C+流进行文件操作,必须在程序中包含的头文件是( )。(分数:2.00)A.iostreamB.fstrearn C.strstreamD.iomanip解析:解析:要使用文件流对象进行针对磁盘文件的 IO 操作,必须包含 fstrem头文件。22.当使用 ofstream 流类定义一个流对象并打开一个磁盘文件时,文件的默认打开方式为( )。(分数:2.00)A.ios base::inB.ios_base:binaryC.ios_base:inlios_base:outD.ios_base:out 解析:解析:对于

    25、 ofstream,默认的打开方式是 ios_base:out,ofstream 只能用于输出,它没有提供任何用于输入的操作。23.要建立文件流并打开当前目录下的文件 filedat 用于输入,下列语句中错误的是( )。(分数:2.00)A.ifstream fin=ifstreamopen(filedat); B.itstream*fin=ew ifstream(filedat);C.ifstream fin;finopen(filedat);D.ifstream*fin=new ifstream0;fin-open(filedat);解析:解析:在选项 A 中,在赋值号的左侧表示建立一个输

    26、入流对象 fin,而在赋值号的右侧的表达式不正确,因为文件输入流类 ifstream 不能直接调用其成员函数 open。24.当使用 ifstream 流类定义一个流对象并打开一个磁盘文件时,文件的默认打开方式为( )。(分数:2.00)A.ios_base:fin B.ios_base:in ios_base:outC.ios base:outD.ios base:in&ios base:out解析:解析:对于 ifstream,默认打开模式是 ios_base:in。ifstream 只能用于输入,它没有提供任何用于输出的操作。25.在下列枚举符号中,用来表示“相对于当前位置”文件定位方式

    27、的是( )。(分数:2.00)A.ios_base:cur B.ios_base:begC.ios_base:outD.ios_base:end解析:解析:C+流的定位方式(也就是指针移动方式)有三种,被定义为 ios_base:seek dir 中的一组枚举符号: ios base:beg 相当于文件首; ios base:cur 相当于当前位置(负数表示当前位置之前);ios base:end 相对于文件尾。26.打开文件时可单独或组合使用下列文件打开模式( )。 ios_base:app ios_base:binary ios_base:in ios_base:out 若要以二进制读方式

    28、打开一个文件,需使用的文件打开模式为(分数:2.00)A.B.C.D. 解析:解析:模式 ios_base:binary 作为二制进文件打开,ios_base:out 为输出而打开文件。27.下列关于文件流的描述中,正确的是( )。(分数:2.00)A.文件流只能完成针对磁盘文件的输入和输出B.建立一个文件流对象时,必须同时打开一个文件C.若输入流要打开的文件不存在,将建立一个新文件D.若输出流要打开的文件不存在,将建立一个新文件 解析:解析:对于输入文件流类 ifstream,默认的打开模式是 ios base:in,当以这种方式打开文件而文件又不存在时,通过 fail()可测试打开失败(返

    29、回值为 true),对于输出文件流类 ofstream,默认的打开模式是 ios_base:out,当以这种方式打开文件而文件又不存在时,将自动建立新文件。28.若目前 D 盘根目录下并不存在 testtxt 文件,则下列打开文件方式不会自动创建 testtxt 文件的是( )。(分数:2.00)A.ifstream fin;finopen(d:testtxt,ios_base:in); B.fstream rio;fioopen(d:testtxt,ios_base:out);C.ofstream lout;foutopen(d:testtxt,ios_base:out);D.ofstrea

    30、m fout;foutopen(d:testtxt,ios_base:app);解析:解析:如果以 iso_base:in 模式打开文件但文件又不存在时,可以通过 fail()测出文件打开失败,不会自动创建文件。29.如需要向一个二进制文件尾部添加数据,则该文件的打开方式为( )。(分数:2.00)A.ios_base:appB.ios_base:binary los_base:outC.ios_base:outD.ios_base:binary ios_base:app 解析:解析:ios_base:binary 模式是作为二进制文件打开,ios_base:app 模式是作为添加数据而打开(

    31、总是在尾部写)。30.有如下语句序列: ifstream inffie(DATADAT); if(infilegood()coutA; else toutB; ofstream outfile(DATADAT); if(outfilefail()coutC;else coutD; 若执行这个语句序列显示的是 BD,则说明文件 DATADAT( )。(分数:2.00)A.以读方式打开成功B.以读方式打开失败,但以写方式打开成功 C.以读方式打开失败,以写方式打开也失败D.以读方式打开成功,以写方式打开也成功解析:解析:由这个语句序列显示的结果是 BD,说明执行了 coutB和 cout“D“语句。


    注意事项

    本文(【计算机类职业资格】国家二级C++机试(运算符重载、模板和C++流)模拟试卷4及答案解析.doc)为本站会员(visitstep340)主动上传,麦多课文档分享仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知麦多课文档分享(点击联系客服),我们立即给予删除!




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

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

    收起
    展开