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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

本文(【计算机类职业资格】二级C++-86 (1)及答案解析.doc)为本站会员(progressking105)主动上传,麦多课文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知麦多课文库(发送邮件至master@mydoc123.com或直接QQ联系客服),我们立即给予删除!

【计算机类职业资格】二级C++-86 (1)及答案解析.doc

1、二级 C+-86 (1)及答案解析(总分:100.00,做题时间:90 分钟)一、程序改错题(总题数:1,分数:30.00)1.使用 VC+6.0 打开 下的源程序文件 1.cpp,该程序运行时有错误,请补充程序中的丢失部分,使得程序运行。可以在修改处增加或者删除一条语句。 本程序完成以下功能: (1)获得输入的两个数字 d1,d2(d1=6,d2=1)。 (2)输出两个中较大的一个(输出 6)。 (3)计算 d1/d2,如果 d2 等于 0,返回-1(输出结果 6)。 (4)输出 d1+d2 的结果(输出结果 7)。 (5)输出 d1+1 的结果(输出结果 7)。 (6)输出 d2-1 的结

2、果(输出结果 0)。 注意:错误的语句在/*error*/的下面。修改该语句即可。其他的语句不能修改。 试题程序: #includeiostream.h void main() int d1; int d2; int d3; cout“please input two number:“endl; cind1d2; /*error*/ d3=(d1d2)?d1:d2; cout“Max data is:“d3endl: /计算 d1/d2 如果 d2 等于 0,返回-1 /*error*/ d3=(d2)?d1/d2:-1; cout“d1/d2=“d3endl; /*error*/ d3=(-

3、d1)+(d2+); cout“d1+d2=“d3endl; cout“d1+1=“d1endl; cout“d2-1=“d2endl; return; (分数:30.00)_二、简单应用题(总题数:1,分数:30.00)2.使用 VC+6.0 打开 下的源程序文件 2.cpp。请完成以下两个函数。 (1)funl(int n)求出 n 的阶乘,必须使用递归调用。 (2)fun2(int n)求出 n 的阶乘,不能使用递归调用。如果 n 小于 1 则返回 0。 注意:不能修改函数的其他部分。 试题程序: #includeiostream.h /必须使用递归 int funl(int n) /不

4、能使用递归 int fun2(int n) void main() int i; cout“请输入一个整数:“endl; cini; cout“输入数字的阶乘是:“funl(i)endl; cout“输入数字的阶乘是:“fun2(i)endl; return; (分数:30.00)_三、综合应用题(总题数:1,分数:40.00)3.使用 VC+6.0 打开源程序文件 3.cpp。其中类 TC 用于把文件输出到屏幕,然后进行文件的分割。分割的方法如下:第一个文件的大小是文件的前一半,另外一个文件的大小是剩余部分。此程序将 in.txt 文件中的内容输出到屏幕,并且将文件按照以上方式分割,存于文件

5、 out1.txt 和 out2.txt 中。 其中定义的类并不完整,按要求完成下列操作,将类的定义补充完整。 (1)从输入文件中获得一个字符,并判断是否到文件结尾,如果到文件结尾,则退出循环。请在注释 1 后添加适当的语句。 (2)把获得的输入文件的内容存储到 buf 中,并且用 len 记录下文件的长度。请在注释 2 后添加适当的语句。 (3)将输入文件的后一半内容存储在第二个文件中,请在注释 3 后添加适当的语句。 (4)使用文件流对象打开输入文件 in.txt,请在注释 4 后添加适当的语句。 注意:增加代码或者修改代码的位置已经用符号表示出来。请不要修改其他的程序代码。 试题程序:

6、#includeiostream.h #includefstream.h #includestdlib.h class TC public: TC(char * fileName) len=0; fstream infile; infile.open(fileName,ios:in); char ch; /*1* while() coutch: /*2* infile.dose(); void split() fstream outfile1; fstream outfile2; outfile1.open(“out1.txt“,ios:out); outfile2.open(“out2.tx

7、t“,ios:out); int i=0; for(i=0;ilen/2;i+) outfile1bufi; do /*3* while(i!=len); outfile1.close(); outfile2.close(); private: int len; char buf1024; ; void main() /*4* TC obj(); obj.split(); return; (分数:40.00)_二级 C+-86 (1)答案解析(总分:100.00,做题时间:90 分钟)一、程序改错题(总题数:1,分数:30.00)1.使用 VC+6.0 打开 下的源程序文件 1.cpp,该程序

8、运行时有错误,请补充程序中的丢失部分,使得程序运行。可以在修改处增加或者删除一条语句。 本程序完成以下功能: (1)获得输入的两个数字 d1,d2(d1=6,d2=1)。 (2)输出两个中较大的一个(输出 6)。 (3)计算 d1/d2,如果 d2 等于 0,返回-1(输出结果 6)。 (4)输出 d1+d2 的结果(输出结果 7)。 (5)输出 d1+1 的结果(输出结果 7)。 (6)输出 d2-1 的结果(输出结果 0)。 注意:错误的语句在/*error*/的下面。修改该语句即可。其他的语句不能修改。 试题程序: #includeiostream.h void main() int d

9、1; int d2; int d3; cout“please input two number:“endl; cind1d2; /*error*/ d3=(d1d2)?d1:d2; cout“Max data is:“d3endl: /计算 d1/d2 如果 d2 等于 0,返回-1 /*error*/ d3=(d2)?d1/d2:-1; cout“d1/d2=“d3endl; /*error*/ d3=(-d1)+(d2+); cout“d1+d2=“d3endl; cout“d1+1=“d1endl; cout“d2-1=“d2endl; return; (分数:30.00)_正确答案:(

10、)解析:(1)“d3=(d1d2)?d1:d2;”应改为“d3=(d1d2)?d1:d2;”。 (2)“d3=(d2)?d1/d2:-1;”应改为“d3=(d2)?d1/d2:-1;”。 (3)“d3=(-d1)+(d2+);”应改为“d3=(d1+)+(d2-);或 d3=(+d1)+(-d2);”。 答案考生文件夹 解析 本题考查了考生对条件表达式和自增自减运算符了解的情况。d3 应为 d1 和 d2中较大者的值,所以“(d1d2)”应改为“(d1d2)”。若 d2 不为 0,应返回 d1/d2 的值,而不是d1/d2。第 3 处应该输 d1+1 d2-1,所以两者的+、-应反过来。又因为

11、 d3 应该是两者原值之和,所以+、-应同时为后缀形式或前缀形式。二、简单应用题(总题数:1,分数:30.00)2.使用 VC+6.0 打开 下的源程序文件 2.cpp。请完成以下两个函数。 (1)funl(int n)求出 n 的阶乘,必须使用递归调用。 (2)fun2(int n)求出 n 的阶乘,不能使用递归调用。如果 n 小于 1 则返回 0。 注意:不能修改函数的其他部分。 试题程序: #includeiostream.h /必须使用递归 int funl(int n) /不能使用递归 int fun2(int n) void main() int i; cout“请输入一个整数:“

12、endl; cini; cout“输入数字的阶乘是:“funl(i)endl; cout“输入数字的阶乘是:“fun2(i)endl; return; (分数:30.00)_正确答案:()解析:/必须使用递归 int funl(int n) if(n=0) return 0; if(n=1) return 1; return n*funl(n-1); ; /不能使用递归 int fun2(int n) if(n=0) return 0; int res=1; for(int i=1;i=n;i+) res *=i; return res; 答案考生文件夹 解析 本题考查的是递归函数和阶乘算法。

13、递归的阶乘算法可以通过判断传入参数,如果大于 1,则返回 n*funl(n-1),意思是返回 n 乘以 n-1 的阶乘;如果等于 1,则返回 1。这样递归下去就能最终得出 n 的阶乘。非递归算法可以先建立一个累乘变量,并初始化为 1,然后循环遍历 1n,将遍历的数累乘到变量中即可。三、综合应用题(总题数:1,分数:40.00)3.使用 VC+6.0 打开源程序文件 3.cpp。其中类 TC 用于把文件输出到屏幕,然后进行文件的分割。分割的方法如下:第一个文件的大小是文件的前一半,另外一个文件的大小是剩余部分。此程序将 in.txt 文件中的内容输出到屏幕,并且将文件按照以上方式分割,存于文件

14、out1.txt 和 out2.txt 中。 其中定义的类并不完整,按要求完成下列操作,将类的定义补充完整。 (1)从输入文件中获得一个字符,并判断是否到文件结尾,如果到文件结尾,则退出循环。请在注释 1 后添加适当的语句。 (2)把获得的输入文件的内容存储到 buf 中,并且用 len 记录下文件的长度。请在注释 2 后添加适当的语句。 (3)将输入文件的后一半内容存储在第二个文件中,请在注释 3 后添加适当的语句。 (4)使用文件流对象打开输入文件 in.txt,请在注释 4 后添加适当的语句。 注意:增加代码或者修改代码的位置已经用符号表示出来。请不要修改其他的程序代码。 试题程序: #

15、includeiostream.h #includefstream.h #includestdlib.h class TC public: TC(char * fileName) len=0; fstream infile; infile.open(fileName,ios:in); char ch; /*1* while() coutch: /*2* infile.dose(); void split() fstream outfile1; fstream outfile2; outfile1.open(“out1.txt“,ios:out); outfile2.open(“out2.txt

16、“,ios:out); int i=0; for(i=0;ilen/2;i+) outfile1bufi; do /*3* while(i!=len); outfile1.close(); outfile2.close(); private: int len; char buf1024; ; void main() /*4* TC obj(); obj.split(); return; (分数:40.00)_正确答案:()解析:(1)“while()”应改为“while(infile.get(ch)”。 (2)应添加“buflen+=ch;burlen=ch;len+;”。 (3)应添加“outfile2bufi+;”或“outfile2bufi;i+;”。 (4)“TC obj();”应改为“TC obj(“in.txt“);”。 答案考生文件夹 解析 本题考查了文件流的使用。根据题意,第 1 处要获得一个字符,并判断是否到文件结尾,所以应使用 get 函数;第 2 处应将 ch 存入 buf 数组,同时让 len 增 1;第 3 处将 buf 中的字节输出给 outfile2,注意同时让 i 增 1,否则 while 循环将进入死循环;第 4 处 TC 只有一个带 char*参数的构造函数,所以创建对象时必须使用构造参数,根据题意这个参数应该是“in.txt“”。

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