1、国家二级 C+机试(操作题)模拟试卷 74及答案与解析 一、基本操作题 1 使用 VC6打开考生文件夹下的源程序文件 modil cpp。本程序要求输入一字符串,然后将其中的小写字母改变成大写字母,字符可能输入多行,当输入字符 “?”时,默认字符输入结束,最后把结果输出到界面。 注意:不要改动 main函数,不能增行或删行,也不能更改程序的结构,错误的语句在 *error*的下面。 #include void main() int i=0; char str12 0 ; cout=a) stri =stri a+A; i+; cout void show() int main() show()
2、; return 0 ; 三、综合应用题 3 使用 VC6打开考生文件夹下的源程序文件 modi3 cpp,其中定义了用于表示雇员的 Employee类,但类 Employee的定义并不完整。请按要求完成下列操作,将类 CEmployee的定义补充完成。 (1)定义私有数 据成员 name、 street、 city、 zipcode和 age分别用于表示姓名、街道、城市、邮编、年龄,除年龄是整型外其余都是 char型的数据。请在注释 *1*之后添加适当的语句。 (2)完成默认构造函数 CEmployee的定义,使其把参数传递给私有数据成员 name、street、 city、 zipcode
3、和 age。请在注释 *2*之后添加适当的语句。 (3)完成成员函数 alterName(char*newName)的定义。请在注释 *3*之后添加适当的语句。 (4)完成成员函数 IsEqual(char*ename)的定义,实现当 name相等时返回真,否则为假的功能,请在注释 *3*之后添加适当的语句。 注意:除在指定位置添加语句之外,请不要改动程序中的其他内容。 #include #include #define MAXLEN 2 0 class CEmployee private: *1* int age; public: CEmployee (char*newName, char
4、*newStreet, char *newCt, char*newZp, int newAge); void alterName(char*newName); void display(); bool IsEqual(char*ename); ; CEmployee: CEmployee(char *newName, char *newStreet, char *newCt, char*newZp, int newAge) *2* age=newAge; void CEmployee: alterName(char *newName) *3* bool CEmployee: I sEqual
5、(cha: *ename) *4* void CEmployee: display() cout = -ai+) for(int j=1; J5; j+) for(int 1=1; 15 ;1+) for(int k=1; k5; k+) if(i!=jstrcpy(street, newStreet); strcpy(city,newct);strcpy(Zipcode, newZp); (3)添加语句: strcpy(name, newName); (4)添加语句: return strcmp(name, ename)=0 ; 【试题解析】 (1)第 1个标识下要求补充类 CEmploye
6、e的私有数据成员 name、street、 city、 zipcode和 age的定义,分别用于表示姓名、街道、城市、邮编、年龄,除年龄是整型外其余都是 char型的数据,由主函数内的对象数组可知,name、 street、 city、 zipcode均为字符数组, 故第 1个标识下应添加 “char nameMAXLEN, streetMAXLEN, cityMAXLEN, zipcodeMAXLEN; ”。 (2)构造函数完成成员变量的初始化,这里需要给 name、 street、 city、 zipcode赋初值,可利用字符串拷贝函数将参数字符串拷贝到成员变量中,第 2个标识下应添加 “
7、strcpy(name, newName); strcpy(street, newStreet); strcpy(city,newCt);strepy(zipcode, newZp); ”。 (3)函 数 alterName(char*newName)是改变成员变量 name的值,即将参数拷贝给name,可利用字符串拷贝函数 strcpyO完成拷贝任务,故第 3个标识下应添加“strcpy(name, newName); 990 (4)IsEqual(char*ename)函数是比较 name成员变量和参数 newName是否相同,可使用字符串比较函数 strcmp0,第 4个标识下应添加 “return strcmp(name,ename)=0; ”。