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

上传人:王申宇 文档编号:1334585 上传时间:2019-10-17 格式:DOC 页数:15 大小:84.50KB
下载 相关 举报
【计算机类职业资格】国家二级(C++)机试-试卷19-1及答案解析.doc_第1页
第1页 / 共15页
【计算机类职业资格】国家二级(C++)机试-试卷19-1及答案解析.doc_第2页
第2页 / 共15页
【计算机类职业资格】国家二级(C++)机试-试卷19-1及答案解析.doc_第3页
第3页 / 共15页
【计算机类职业资格】国家二级(C++)机试-试卷19-1及答案解析.doc_第4页
第4页 / 共15页
【计算机类职业资格】国家二级(C++)机试-试卷19-1及答案解析.doc_第5页
第5页 / 共15页
点击查看更多>>
资源描述

1、国家二级(C+)机试-试卷 19-1 及答案解析(总分:86.00,做题时间:90 分钟)一、选择题(总题数:40,分数:80.00)1.有如下说明:int a10=1,2,3,4,5,6,7,8,9,10,*p=a;则数值为 9 的表达式是( )。(分数:2.00)A.*p+9B.*(p+8)C.*p+=9D.p+82.派生类的成员函数不能访问基类的( )。(分数:2.00)A.公有成员和保护成员B.公有成员C.私有成员D.保护成员3.下列叙述中正确的是( )。(分数:2.00)A.线性表的链式存储结构与顺序存储结构所需要的存储空间是相同的B.线性表的链式存储结构所需要的存储空间一般要多于顺

2、序存储结构C.线性表的链式存储结构所需要的存储空间一般要少于顺序存储结构D.线性表的链式存储结构与顺序存储结构在存储空间的需求上没有可比性4.有如下程序段: int i=1;int j=4; int main() int i=8, j=i; coutbark()D.( int main() int *p; *p = 9; cout bark() D.( int main() int *p; *p = 9; cout link = head (2)p = new node (3)Insert(p)解析:解析:(1)主要考查考生对链表的掌握,函数功能是将节点插入链表首部。在插入链表首部,即将该节点

3、的指针域指向头结后 head。 (2)主要考查考生对动态分配的掌握,用 new 为节点 p 动态分配存储空间节点 P 为 node 类型,因此直接使用 new node 分配空间并将首地址赋给 P 即可。 (3)程序要求插入该节点,应调用 Insert 函数,并将指针 P 作为函数的实参。四、综合应用题(总题数:1,分数:2.00)43.请使用 VC6 或使用【答题】菜单打开考生文件夹 pmj3 下的工程 pmj3,其中包含主程序文件 maincpp和用户定义的头文件 Arrayh,整个程序包含有类 Array 的定义和主函数 main 的定义。请把主程序文件中的 Array 类的成员函数 C

4、ontrary()的定义补充完整,经补充后运行程序,得到的输出结果应该是:585,4,3,2,10,0,84,56,45,34,23,12 注意:只允许在“*333*”和“*666*”之间填写内容,不允许修改其他任何地方的内容。Arrayh#includeiostreamusingnamespacestd;templateclassType,intmclassArray数组类 public:Array(Typeb,intmm)构造函数 for(inti=0;im;i+)if(imm)ai=bi;elseai=0;voidContrary();交换数组 a 中前后位置对称的元素的值 intLen

5、gth()constreturnm;返回数组长度 Typeoperator(inti)const下标运算符重载为成员函数if(i0|i=m)cout“下标越界!“end1;exit(1);returnai;private:Typeam;voidwriteToFile(constchar*);不用考虑此语句的作用maincpp#include“Arrayh“交换数组 a 中前后位置对称的元素的值 templateclassType,intmvoidArrayType,m:Contrary()补充函数体*333*666*intmain()ints15=1,2,3,4,5;doubles26=12,

6、23,34,45,56,84;Arrayint,5dl(s1,5);Arraydouble,8d2(s2,6);inti;d1Contrary();d2Contrary();coutd1Length()d2Length()end1;for(i=0;i4;i+)coutd1i“,“;coutd14end1;for(i=0;i7;i+)coutd2i”,”;coutd27end1;writeToFile(”);不用考虑此语句的作用 return0;(分数:2.00)_正确答案:(正确答案:for(inti=0,j:m 一 1;ij;i+, j-) i 从 0 开始自加,j 从数组最一位开始自减,条件是 ij,开始遍历数组 a Typetemp=ai; 把 ai赋值给变量 temp ai=aj;把 aj赋值给j aj=temp; 把 temp 赋值给 aj,最终使 ai与 aj值盼互换 )解析:解析:主要考查考生对交换算法的掌握情况,根据题目对要完成的函数 Contrary 的要求:交换数组 a 中前后位置对称的元素的值。这里取下标 i=0,即为数组中的第一个元素,j=m 一 1,即为数组中的最后一个元素,利用中间值 temp 交换元素的值,然后 i 逐次递增的同时 j 逐次递减,再交换,循环到ij 时停止交换即可。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 考试资料 > 职业资格

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