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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

【计算机类职业资格】国家二级C++机试(操作题)模拟试卷313及答案解析.doc

1、国家二级 C+机试(操作题)模拟试卷 313及答案解析(总分:6.00,做题时间:90 分钟)一、基本操作题(总题数:1,分数:2.00)1.使用 VC6打开考生文件夹下的源程序文件 modi1cpp,该程序运行时有错误,请补充程序中的丢失部分,使得程序运行。可以在修改处增加或者删除一条语句。 本程序完成以下功能: (1)获得输入的两个数字 x1,x2(例如 x1=4,x2=2); (2)输出两个中较小的一个(例如输出 2); (3)计算 x1x2 如果 x2等于 0,返回1(输出结果 2); (4)输出 x1+x2的结果(输出结果 6); (5)输出 x1+1的结果(输出结果 5); (6)

2、输出 x2-1的结果(输出结果 1)。 注意:不要改动 main函数,不能增行或删行,也不能更改程序的结构,错误的语句在*error*的下面。#includeiostreamhvoid main() int x1; int x2; int x3; cout“please input two number:“endl; Cinx1x2; *error* x3=(x1x2)?x1:x2; cout“Min number is :“x3endl;计算 x1x2 如果 x2等于 0,返回-1 *error* x3=(x2)?x1x2=-1; cout“xlx2= “x3endl; *error* x3

3、= (-x1) + (x2+);cout“xl+x2= “x3endl; cout“xl+1= “x1endl; cout“x21= ”x2endl; return;(分数:2.00)_二、简单应用题(总题数:1,分数:2.00)2.使用 VC6打开考生文件夹下的源程序文件 modi2cpp。请完成以下两个函数: (1)fun1(int n1;求出n的阶乘,必须使用递归调用。 (2)fun2(int n);求出 n的阶乘,不能使用递归调用。 如果 n小于 1则返回 0。 注意:请勿改动主函数 main与其他函数中的任何内容,仅在函数 fun的花括号中填入所编写的若干语句。#includeios

4、treamh必须使用递归 int funl(int n);不能使用递归 int fun2(int n)void main() int i; cout“请输入一个整数:“endl; cini; tout“输入数字的阶乘是:“fun1(i)endl; cout“输入数字的阶乘是:“fun2(i)endl, return; (分数:2.00)_三、综合应用题(总题数:1,分数:2.00)3.使用 VC6打开考生文件夹下的源程序文件 modi3cpp,其中定义了用于表示坐标的类 TestClass1,但类 TestClass1的定义并不完整,按要求完成下列操作,将类的定义补充完整。 (1)声明 Tes

5、tClass2类为TestClass1类的友元类,请在注释*1*后添加适当的语句。 (2)完成类的构造函数,分别对成员变量赋值,请在注释*2*后添加适当的语句。 (3)完成类的构造函数,分别对成员变量赋值,请在注释*3*后添加适当的语句。 (4)完成计算平面上两点之间的距离函数 Distance,计算的方法如下:X 坐标之差的平方与 Y坐标之差的平方之和的开方。请在注释*4*后添加适当的语句。 注意:仅在函数指定位置添加语句,请勿改动主函数 main与其他函数中的任何内容。#includeiostream#includecmathusing namespace std;Class TestCl

6、ass1*1*public: *2* X=a; Y=b; *3* X=a; Y=0; Void print() cout“x=“Xendl; cout“y=“Yendl; private: float X , Y;Class TestClass2public: float Distance(TestClaSslp,TestClass1q);float TestClass2:Distance(TestClass1p,TestClass1q) float result; *4* coutresultendl; return result ;int main() TestClassl p(10,10

7、),q(20); TestClass2 d; dDistance(p,q); return 0;(分数:2.00)_国家二级 C+机试(操作题)模拟试卷 313答案解析(总分:6.00,做题时间:90 分钟)一、基本操作题(总题数:1,分数:2.00)1.使用 VC6打开考生文件夹下的源程序文件 modi1cpp,该程序运行时有错误,请补充程序中的丢失部分,使得程序运行。可以在修改处增加或者删除一条语句。 本程序完成以下功能: (1)获得输入的两个数字 x1,x2(例如 x1=4,x2=2); (2)输出两个中较小的一个(例如输出 2); (3)计算 x1x2 如果 x2等于 0,返回1(输出

8、结果 2); (4)输出 x1+x2的结果(输出结果 6); (5)输出 x1+1的结果(输出结果 5); (6)输出 x2-1的结果(输出结果 1)。 注意:不要改动 main函数,不能增行或删行,也不能更改程序的结构,错误的语句在*error*的下面。#includeiostreamhvoid main() int x1; int x2; int x3; cout“please input two number:“endl; Cinx1x2; *error* x3=(x1x2)?x1:x2; cout“Min number is :“x3endl;计算 x1x2 如果 x2等于 0,返回-

9、1 *error* x3=(x2)?x1x2=-1; cout“xlx2= “x3endl; *error* x3= (-x1) + (x2+);cout“xl+x2= “x3endl; cout“xl+1= “x1endl; cout“x21= ”x2endl; return;(分数:2.00)_正确答案:(正确答案:(1)x3 = (x1x2)?x1:x2; (2)x3 = (x2)?x1x2:-1; (3)x3 = (x1+) + (x2-);)解析:解析:(1)第 1个标识下“x3=(x1x2)?x1:x2;”语句是判断 x1与 x2其中哪个相对较小,并将其赋值给 x3。条件运算符的格

10、式:表达式 1 7表达式 2:表达式 3。执行顺序是先求解表达式 1,若非则求解表达式 3,此时表达式 3的值就作为整个条件表达式值。所以求 x1和 X2中较小的一个,如果 x1x2为真,那么 x1的值赋给 x3,否则 x2的值赋给 x3,即第 1个标识下为“x3:(x1x2)?x1:x2;”。 (2)同理,第 2个标识下计算 x1x2 如果 x2等于 0,返回-1。即“x3=(x2)?x1x2:-1;”。 (3)题干中求x1+1,而-x1 是 x1-1,所以改为 x1+。同理 x2+改为 x2-。即“x3=(x1+)+(x2-);”。二、简单应用题(总题数:1,分数:2.00)2.使用 VC

11、6打开考生文件夹下的源程序文件 modi2cpp。请完成以下两个函数: (1)fun1(int n1;求出n的阶乘,必须使用递归调用。 (2)fun2(int n);求出 n的阶乘,不能使用递归调用。 如果 n小于 1则返回 0。 注意:请勿改动主函数 main与其他函数中的任何内容,仅在函数 fun的花括号中填入所编写的若干语句。#includeiostreamh必须使用递归 int funl(int n);不能使用递归 int fun2(int n)void main() int i; cout“请输入一个整数:“endl; cini; tout“输入数字的阶乘是:“fun1(i)endl

12、; cout“输入数字的阶乘是:“fun2(i)endl, return; (分数:2.00)_正确答案:(正确答案:int funl(int n)使用递归计算阶乘 if(n=0)n 小于等于 0,直接返回 0 return 0; if(n=1) n 等于 1直接返回 1 return 1; return n*funl(n-1);n 大于等于1,通过递归计算 n! j; 不使用递归计算阶乘 int fun2(int n) if(n=0)n 小于 0,直接返回 0 return 0; int res=1; 初始化阶乘存放变量 res for(int i=1;i=n;i+) 通过循环计算 n! r

13、es*=i; return res; )解析:解析:(1)进入 fun1函数,根据前面的定义,它对阶乘算法的实现可以分为三种情况,一是当 n小于或等于 0时,返回 0即可;二是当 n大于 1时应该用什么程序来实现阶乘的计算:三是当 n=1时,函数直接返回 1即可。 (2)计算 n!的值,先定义一个放阶乘值的变量 res,初值为 1,通过循环的方法,用累乘器“res*=i;”实现 n!。三、综合应用题(总题数:1,分数:2.00)3.使用 VC6打开考生文件夹下的源程序文件 modi3cpp,其中定义了用于表示坐标的类 TestClass1,但类 TestClass1的定义并不完整,按要求完成下

14、列操作,将类的定义补充完整。 (1)声明 TestClass2类为TestClass1类的友元类,请在注释*1*后添加适当的语句。 (2)完成类的构造函数,分别对成员变量赋值,请在注释*2*后添加适当的语句。 (3)完成类的构造函数,分别对成员变量赋值,请在注释*3*后添加适当的语句。 (4)完成计算平面上两点之间的距离函数 Distance,计算的方法如下:X 坐标之差的平方与 Y坐标之差的平方之和的开方。请在注释*4*后添加适当的语句。 注意:仅在函数指定位置添加语句,请勿改动主函数 main与其他函数中的任何内容。#includeiostream#includecmathusing na

15、mespace std;Class TestClass1*1*public: *2* X=a; Y=b; *3* X=a; Y=0; Void print() cout“x=“Xendl; cout“y=“Yendl; private: float X , Y;Class TestClass2public: float Distance(TestClaSslp,TestClass1q);float TestClass2:Distance(TestClass1p,TestClass1q) float result; *4* coutresultendl; return result ;int m

16、ain() TestClassl p(10,10),q(20); TestClass2 d; dDistance(p,q); return 0;(分数:2.00)_正确答案:(正确答案:(1)添加语句:friend class TestClass2; (2)添加语句:TestClass1(float a,float b) (3)添加语句:TestClass1(float a) (4)添加语句: result=sqrt(pXqX)*(pXqX)+(pYqY)*(pYqY);)解析:解析:(1)题目 1要求“声明 TestClass2类为 TestClass1类的友元类”。C+中声明友元类的一般形

17、式为 friend类名;,所以这里补全“friend classTestClass2;”。 (2)题目 2要求“完成类的构造函数,分别对成员变量赋值”。程序中 TestClass1类的构造函数缺少定义,构造函数首部的一般格式为:构造函数名(类型 1形参 1,类型 2形参 2,),所以在第 2个标识下补全“TestClass1(float a,float b)”。 (3)题目 3要求“完成类的构造函数,分别对成员变量赋值”。同理,第三个标识下补全“TestClass1(float a)”。 (4)题目 4要求“完成计算平面上两点之间的距离函数 Distance”。题目中已经给出了计算方法,X 坐标之差的平方与 Y坐标之差的平方之和的开方。利用 C+中的开方函数 sqrt补全函数中的两点之间的距离。即:result=sqrt(pXqX)*(pX-qX)+(pY-qY)*(pYqY);

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