1、国家二级 C+机试(操作题)-试卷 53 及答案解析(总分:6.00,做题时间:90 分钟)一、基本操作题(总题数:1,分数:2.00)1.使用 VC6 打开考生文件夹下的源程序文件 modilcpp。本程序要求输入一字符串,然后将其中的小写字母改变成大写字母,字符可能输入多行,当输入字符“?”时,默认字符输入结束,最后把结果输出到界面。 注意:不要改动 main 函数,不能增行或删行,也不能更改程序的结构,错误的语句在*error*的下面。 #include void main() int i=0; char str12 0 ; cout= -a (分数:2.00)_正确答案:(正确答案:f
2、or(int i=1 ; i5 ;i+) 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 个标识下要求补充类 CEmployee 的私有数据成员 name、street、city、zipcode 和age 的定义,分别用
3、于表示姓名、街道、城市、邮编、年龄,除年龄是整型外其余都是 char 型的数据,由主函数内的对象数组可知,name、street、city、zipcode 均为字符数组,故第 1 个标识下应添加“char nameMAXLEN,streetMAXLEN,cityMAXLEN,zipcodeMAXLEN;”。 (2)构造函数完成成员变量的初始化,这里需要给 name、street、city、zipcode 赋初值,可利用字符串拷贝函数将参数字符串拷贝到成员变量中,第 2 个标识下应添加“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;”。