[计算机类试卷]国家二级(C++)机试模拟试卷35及答案与解析.doc

上传人:周芸 文档编号:502483 上传时间:2018-11-29 格式:DOC 页数:6 大小:30.50KB
下载 相关 举报
[计算机类试卷]国家二级(C++)机试模拟试卷35及答案与解析.doc_第1页
第1页 / 共6页
[计算机类试卷]国家二级(C++)机试模拟试卷35及答案与解析.doc_第2页
第2页 / 共6页
[计算机类试卷]国家二级(C++)机试模拟试卷35及答案与解析.doc_第3页
第3页 / 共6页
[计算机类试卷]国家二级(C++)机试模拟试卷35及答案与解析.doc_第4页
第4页 / 共6页
[计算机类试卷]国家二级(C++)机试模拟试卷35及答案与解析.doc_第5页
第5页 / 共6页
点击查看更多>>
资源描述

1、国家二级( C+)机试模拟试卷 35及答案与解析 一、程序改错题( 30分) 1 使用 VC6打开考生文件夹下的工程 test21_1,此工程包含一个源程序文件test21_1.cpp,但该程序运行有问题,请改正程序中的错误,使程序的输出结果如下: The grade is 3 源程序文件 test21_1.cpp清单如下: #include iostream.h class student private: int grade; public: /* found*/ student(int thegra):(thegra) student() int get_grade()return gr

2、ade; ; void main() int thegra=3; /* found*/ student point=new student(thegra); /* found*/ cout “The grade is“ point.get_grade() endl; delete point; 二、简单应用题( 40分) 2 请编写函数 fun(),对长度为 7个字符的字符串,除 首、尾字符外,将其余 5个字符按 ASCII码值降序排列。 例如:原来的字符串为 CEAedca,则排序后输出为 CedcEAa。 注意:部分源程序已存在文件 test22_2.cpp中。 请勿改动主函数 main和

3、其他函数中的任何内容,仅在函数 fun的花括号中填入所编写的若干语句。 文件 test22_2.cpp的内容如下: #include iostream.h #include stdio.h #include ctype.h #include conio.h void int fun(char *s, int num) void main ( ) char s10; printf (“输入 7个字符的字符串: “); gets(s); fun(s,7); cout s; 三、综合应用题( 30分) 2 使用 VC6打开考生文件夹下的工程 MyProj15。此工程包含一个源程序文件MyMain15

4、.cpp。程序中定义了 3个类 A、 B和 C,但类的定义并不完整。 请按要求完成下列操作,将类的定义补充完成: 类 Inherit是类 Base的公有派生类。请在注释 “/* *1* *”之后添加适当的语句。 完成类 Inherit成员函数 setvalue(int a,int b,int c,int d)的定义,此函数实现的功能是将基类成员 x、 y、 z和派生类的数据成员 m的值分别设置成 a、 b、 c和 d。请在注释 “/* *2* *”之后添加适当的语句。 完成类 Inherit成员函数 display()的类体外定义,此函数实现的功能是以 “,”的格式将 x、 y、 z和 m的值

5、输出到屏幕上。请在注释 “/* *3* *”之后添加适当的语句。 注意:除在指定位置添加语句之外,请不要改动程序中的其他内容。 源程序文件 MyMain15.cpp清单如下: /Mymain15.cpp #include iostream using namespace std; class Base private: int x; protected: int y; public: int z; void setx(int i) x=i; int getx()const return x; ; /* * *1* * * private: int m; public: void setvalu

6、e(int a, int b, int c, int d) /* * *2* * * void display()const; ; /* * *3* * * int main() Inherit A; A setvalue(1, 2, 3, 4); A display(); return 0; 国家二级( C+)机试模拟试卷 35答案与解析 一、程序改错题( 30分) 1 【正确答案】 (1)错误 :student(int thegra):(thegra) 正确 :student(int thegra):grade(thegra) (2)错误 :student point=new studen

7、t(thegra) 正确 :student*point=new student(thegra); (3)错误 :cout “The grade is“ point.get_grade() endl; 正确 :cout “The grade is“ point- get_grade() endl; 【试题解析】 (1)主要考查考生对于构造函数使用参数列表初始化数据成员的掌握,可以使用参数列表的形式,也可以在函数内部实现,不过参数赋值的双方都必须出现,本题的错误就在于并没有把参数赋值给数据成员; (2)主要考查考生对于使用指针申请动态空间的方法的理解, new运算符申请的空间返回值为指针类型,指针

8、类型的定义是在变量名前加上 “*”; (3)主要考查考生对于对象指针调用成员函数方法的掌握,必须使用符号 “- ”,而对象本身使用符号 “.”。 二、简单应用题( 40分) 2 【正确答案】 int fun(char*s,int num) char t; int i, j; for(i=1; i num-2; i+) for(j=i+1; j num-1; j+) if(si sj) t=si; si=sj; sj=t; 【试题解析】 本题 考查利用循环来控制数组元素的操作,首尾元素除外,因此,数组的下标值要从 1开始,用循环变量 i来依次取得数组中的元素,用数组中的元素 si和 sj进行比较,如果后一个元素的 ASCII码值大于前一个元素的 ASCII码值,则交换这两个数组元素的值。 三、综合应用题( 30分)

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

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

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