国家二级C++机试(操作题)模拟试卷671
基本操作题
1.请打开考生文件夹下的解决方案文件proj1,此工程中含有一个源程序文件proj1.cpp。其中位于每个注释“// ERROR****found*****之后的一行语句存在错误。请改正这些错误,使程序的输出结果为:
False
注意:请勿更改参数名。只修改注释“// ERROR********found*********的下一行语句,不要改动程序中的其他内容。
//proj1.cpp
#include <iostream>
using namespace std;
class MyClass
{
public:
// ERROR ********found********
//请勿更改参数名
void MyClass(int x):flag(x) { }
void Judge();
private:
int flag;
};
// ERROR ********found********
void Judge()
{
switch(flag)
{
case 0:
cout<<\\
(1)MyClass(int x):flag(x) { }
(2)void MyClass::Judge()
(3)break;
解析:(1)主要考查考生对构造函数定义的掌握,构造函数前不能有返回类型。
(2)类的成员函数在类外定义时要加上类名和作用域符。
(3)主要考查考生对switch语句的掌握,在switch语句中,使用break跳出。
简单应用题
2.请打开考生文件夹下的解决方案文件proj2,此工程中含有一个源程序文件proj2.cpp,请编写一个函数int Invert(char*str),其作用是将一个表示整数的字符串转换为相应整数。
注意:请勿修改主函数main和其他函数中的任何内容,只在横线处编写适当代码,也不要删除或移动“//****found****\\
(1)int num =0
(2)*str-’0’
(3)str++;
解析:(1)主要考查考生对成员函数的掌握,num用于存放累加值,因此这里要定义num同时初始化为0。
(2)主要考查考生对指针的掌握,对整型变量digital赋值为:字符串str的第一个字符减字符0的值。
(3)考查指针的操作,while循环要累加代表整数的字符,因此这里指针要指向下一个字符。
综合应用题
3.请打开考生文件夹下的解决方案文件proj3,此工程中包含一个源程序文件proj3.cpp,其中定义了用于表示日期的类Date、表示人员的类Person和表示职员的类Staff;程序应当显示:
张小丽123456789012345
但程序中有缺失部分,请按照以下提示,把缺失部分补充完整:
(1)在//**1** ****found****的下方是构造函数的定义中的一个语句,它用参数提供的身份证号id_card_no对数据成员idcardno进行初始化。
(2)在//**2** ****found****的下方是构造函数定义的一个组成部分,其作用是利用参数表中的前几个参数对基类Person进行初始化。
(3)在//**3** ****found****的下方定义了一个Staff对象,其中:
身份证号:123456789012345
姓名:张三
出生日期:1979年5月10日
性别:女
工作部门:人事部
工资:1234.56元
注意,只在指定位置编写适当代码,不要改动程序中的其他内容,也不要删除或移动\\
(1) strcpy(idcardno,id_card_no)
(2) Person(id_card_no,p_name,birth_date,is_male)
(3) Staff Zhangsan(\\
解析:(1)主要考查考生对strcpy函数的掌握,复制字符串要使用strcpy函数,其格式为:strcpy(字符串1,字符串2);。
(2)主要考查考生对构造函数的掌握,派生类的构造函数要使用成员列表初始化先调用基类的构造函数。
(3)主要考查考生对构造函数的掌握,由题目要求可知要针对象初始化为:Zhangsan(\\
本文档预览:3600字符,共2260字符,源文件无水印,下载后包含无答案版和有答案版,查看完整word版点下载