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

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

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

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

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

    1、二级 C+-37及答案解析(总分:71.00,做题时间:90 分钟)一、B1改错题/B(总题数:1,分数:30.00)使用 VC+6.0打开考生文件夹下的源程序文件 1.cpp,该程序运行时有错误,请改正其中的错误,使得程序正确运行。程序输出:s1:n=20s2:n=10执行 s3.add(s1,s2)s3:n=30s4:n=30注意:不要改动 main函数,不能增加或删除行,也不能更改程序的结构,错误的语句在/*error*的下面。试题程序:#includeiostream.hclass TCint n;public:TC()TC(int m)n=m;/*error*TC add(TC s1

    2、,s2)thisn=s1.n+s2.n;/*error*return(this);void disp()cout“n=“nend1;/*error*void main()TC s1(20),s2(10),s3,s4;cout“s1:“;s1.disp();cout“s2:“;s2.disp();s4=s3.add(s1,s2);cout“执行 s3.add(s1,s2)/ns3:“;s3.disp();cout“s4:“;s4.disp();(分数:30.00)填空项 1:_填空项 1:_填空项 1:_二、B2简单应用题/B(总题数:1,分数:40.00)1.使用 VC+6.0打开考生文件夹下

    3、的源程序文件 2.cpp。阅读下列函数说明和代码,完成空出部分的程序。实现函数 sort(int A,int n),用冒泡法对数组数据进行排序。所谓冒泡法,就是每次把相邻的两个数交换,较大的数交换到后面。这样下标从 0到 n-1的数与其后面相邻的数交换,可以把最大的数交换到数组的末端。进行 n次下标从 0到 n-1的交换,则数组变成有序的,并且按由大到小排序。 注意:不能修改和删除程序的其他部分,也不能修改程序的结构。 试题程序: #includeiostream.h #define N 10 void sort(int AN,int n) int main() int AN=1,50,17,

    4、69,87,42,90,-6,0,-11; sort(A,10); for(int i=0;isizeof(A)/sizeof(int);i+) coutAi; coutend1; return 0; (分数:40.00)_三、B3综合应用题/B(总题数:1,分数:1.00)2.使用 VC6打开考生文件夹下的工程 test34_3。此工程包含一个 test34_3.cpp,其中定义了表示栈的类stack。源程序中 stack类的定义并不完整,请按要求完成下列操作,将程序补充完整。 (1)定义类stack的私有数据成员 sp和 size,它们分别为整型的指针和变量,其中 sP指向存放栈的数据元素

    5、的数组,size为栈中存放最后一个元素的下标值。请在注释“/*1*”之后添加适当的语句。 (2)完成类 stack的构造函数,该函数首先从动态存储空间分配含有 100个元素的 int型数组,并把该数组的首元素地址赋给指针 sp,然后将该数组的所有元素赋值为 0,并将 size赋值为-1(size 等于-1 表示栈为空)。请在注释“/*2*”之后添加适当的语句。 (3)完成类 stack的成员函数 push的定义。该函数将传入的整型参数x压入栈中,即在 size小于数组的最大下标情况下, size 自加 1,再给 x赋值。请在注释“/*3*”之后添加适当的语句。 (4)完成类 stack的成员函

    6、数 pop的定义,该函数返回栈顶元素的值,即在 size不等于-1 的情况下,返回数组中下标为 size的元素的值,并将 size减 1。请在注释“/*4*”之后添加适当的语句。 程序输出结果如下: the top elem:1 the pop elem:1 the stack is empty 注意:除在指定位置添加语句之外,请不要改动程序中的其他内容。 源程序文件 test34_3.cpp清单如下: #includeiostream.h class stack /* 1 * public: stack ( ); bool empty()return size=-1; bool full()

    7、 return size=99; void push(int x); void pop(); void top(); ; stack:stack() /* 2 * for(int i=0; i100; i+) *(sp+i)=0; size=-1; void stack:push(int x) /* 3 * cout“the stack is full“end1; else size+; *(sp+size) = x; void stack:pop() /* 4 * cout“the stack is empty“end1; else cout“the pop elem:“*(sp+size)

    8、end1; size-; void stack:top() if iempty() ) cout“the stack is empty“end1; else cout“the top elem:“*(sp+size)end1; void main ( ) stack s; s.push(1); s.top(); s.pop(); s.top(); (分数:1.00)_二级 C+-37答案解析(总分:71.00,做题时间:90 分钟)一、B1改错题/B(总题数:1,分数:30.00)使用 VC+6.0打开考生文件夹下的源程序文件 1.cpp,该程序运行时有错误,请改正其中的错误,使得程序正确运行

    9、。程序输出:s1:n=20s2:n=10执行 s3.add(s1,s2)s3:n=30s4:n=30注意:不要改动 main函数,不能增加或删除行,也不能更改程序的结构,错误的语句在/*error*的下面。试题程序:#includeiostream.hclass TCint n;public:TC()TC(int m)n=m;/*error*TC add(TC s1,s2)thisn=s1.n+s2.n;/*error*return(this);void disp()cout“n=“nend1;/*error*void main()TC s1(20),s2(10),s3,s4;cout“s1:

    10、“;s1.disp();cout“s2:“;s2.disp();s4=s3.add(s1,s2);cout“执行 s3.add(s1,s2)/ns3:“;s3.disp();cout“s4:“;s4.disp();(分数:30.00)填空项 1:_ (正确答案:应改为“TC add(TC s1,TC s2)”。)解析:填空项 1:_ (正确答案:应改为“return(*this);”。)解析:填空项 1:_ (正确答案:应改为“;”。)解析:解析 本题中的变量“s2”没有声明类型,所以补充“s2”的类型,即“TC add(TC s1,TC s2)”。“thisn=s1.n+s2.n;”语句中的

    11、this 变量为指针变量,所以第 2处的“return(this);”返回语句中的 this变量,应该返回指针型,所以修改为“return(*this);”。C+中类的定义格式应为“class类名;”,以分号为结尾,所以在第 3处的类结尾处补充分号“;”,即修改为“;”二、B2简单应用题/B(总题数:1,分数:40.00)1.使用 VC+6.0打开考生文件夹下的源程序文件 2.cpp。阅读下列函数说明和代码,完成空出部分的程序。实现函数 sort(int A,int n),用冒泡法对数组数据进行排序。所谓冒泡法,就是每次把相邻的两个数交换,较大的数交换到后面。这样下标从 0到 n-1的数与其后

    12、面相邻的数交换,可以把最大的数交换到数组的末端。进行 n次下标从 0到 n-1的交换,则数组变成有序的,并且按由大到小排序。 注意:不能修改和删除程序的其他部分,也不能修改程序的结构。 试题程序: #includeiostream.h #define N 10 void sort(int AN,int n) int main() int AN=1,50,17,69,87,42,90,-6,0,-11; sort(A,10); for(int i=0;isizeof(A)/sizeof(int);i+) coutAi; coutend1; return 0; (分数:40.00)_正确答案:(i

    13、nt i,j,k,t; for(i=0;in-1;i+) for(k=i,j=i+1;jn;j+) if(AkAj) /如果前面的比后面的小则需要交换 k=j; if(k!=i)/交换 t=Ai; Ai=Ak; Ak=t; )解析:解析 以数组“A=3,8,7,6,5,0,1,2,9,4”为例来说明具体的排序过程,第一次选择:第一步,从 A0=A9中找最大值 max及下标 k,max=9,k=8;第二步,交换 a0与最大值 a8的值;第一次结束后 a0已存放了最大值,下一次比较就不必再经过它了,而从 a1开始,如此循环。从例中可以看出 10个元素要进行 9次比较,n 个元素要进行 n-1次比较

    14、。设置两层循环,外层循环变量 i从 0到 n-1,内层循环变量从 i开始到 n-1,在内层循环中找最大值,如果最大值的下标 k和 i不同,则交换,实现选择法排序。在内层循环体内,如果最大值的下标 k和 i不同,则用一个临时变量记录第 i个元素,然后将第 k个元素赋值给第 i个元素,临时变量值赋给第 k个元素,如此完成两个元素的交换。三、B3综合应用题/B(总题数:1,分数:1.00)2.使用 VC6打开考生文件夹下的工程 test34_3。此工程包含一个 test34_3.cpp,其中定义了表示栈的类stack。源程序中 stack类的定义并不完整,请按要求完成下列操作,将程序补充完整。 (1

    15、)定义类stack的私有数据成员 sp和 size,它们分别为整型的指针和变量,其中 sP指向存放栈的数据元素的数组,size为栈中存放最后一个元素的下标值。请在注释“/*1*”之后添加适当的语句。 (2)完成类 stack的构造函数,该函数首先从动态存储空间分配含有 100个元素的 int型数组,并把该数组的首元素地址赋给指针 sp,然后将该数组的所有元素赋值为 0,并将 size赋值为-1(size 等于-1 表示栈为空)。请在注释“/*2*”之后添加适当的语句。 (3)完成类 stack的成员函数 push的定义。该函数将传入的整型参数x压入栈中,即在 size小于数组的最大下标情况下,

    16、 size 自加 1,再给 x赋值。请在注释“/*3*”之后添加适当的语句。 (4)完成类 stack的成员函数 pop的定义,该函数返回栈顶元素的值,即在 size不等于-1 的情况下,返回数组中下标为 size的元素的值,并将 size减 1。请在注释“/*4*”之后添加适当的语句。 程序输出结果如下: the top elem:1 the pop elem:1 the stack is empty 注意:除在指定位置添加语句之外,请不要改动程序中的其他内容。 源程序文件 test34_3.cpp清单如下: #includeiostream.h class stack /* 1 * pub

    17、lic: stack ( ); bool empty()return size=-1; bool full() return size=99; void push(int x); void pop(); void top(); ; stack:stack() /* 2 * for(int i=0; i100; i+) *(sp+i)=0; size=-1; void stack:push(int x) /* 3 * cout“the stack is full“end1; else size+; *(sp+size) = x; void stack:pop() /* 4 * cout“the

    18、stack is empty“end1; else cout“the pop elem:“*(sp+size)end1; size-; void stack:top() if iempty() ) cout“the stack is empty“end1; else cout“the top elem:“*(sp+size)end1; void main ( ) stack s; s.push(1); s.top(); s.pop(); s.top(); (分数:1.00)_正确答案:(1) int *sp; int size; (2) spnew int100; (3) if(full() (4) if(empty()解析:解析 本题主要考查的是考生利用类、数组、指针和基本控制结构等知识,建立经典数据结构的能力。栈在数据结构中是一应用范围很广的类,在这里实现的只是最核心的部分。在该题中特别注意使用new进行动态空间申请及指针在数组访问中的应用。


    注意事项

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




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

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

    收起
    展开