二、程序改错题
(1)“voidmain()”。
(2)“intm=0144;”。
(3)“intn=OX25;”或“intn===0x25;”。
【解析】本题主要考查了主函数定义及幂同进制之间的转换,包括十进制到八进制,十进制到十六进制。主函数定义的定义形式为“main()”,函数名之后必须是一对括号,因此第1处应改为“voidmain()”。cout输出默认是以十进制方式输出的,根据题目要求输出的结果可发现变量的初值不正确,十进制的100对应八进制的144,卡进制的37对应十六进制的25,因此2和3应分别改成“intm=0144;”,“intn=0×25;”或“intn=0×25;”。
三、简单应用题
intj,i=0;
chartemp;
while(n!=0)
{
des[i]=n%2+’0’;
n=n/2:
i++:
}//转化结果为二进制最高位在des的下标最低处,顺序刚好相反
des[i]=NULL;
for(j=0;j {
temp=des[j];//交换
des[j]=des[i-1-i];
des[i-1-i]=temp;
}
【解析】本题为将十进制数转换成二进制数,因此采用除2求余法,通过该方法最终可以将一个十进制数转换成一个只包含1和0的数组。除2求余法得到的是0和1的数值,不是“0”和“1”字符,还需将数字转化成字符,O和1通过加上“0”的ASCIl码便可得到0和1的ASCIl码字符。因为除2求余法得到的字符数组是从低位到高位保存的,因此需要先倒序后再输出,可利用循环方式将顺序调转过来。
四、综合应用题
(1)应添加“charname[MAXLEN],street[MAX-LEN],city[MAXLEN],zipcode[MAXLEN];”。
(2)应添加“strcpy(name,newName);strcpy(street,newStreet);strcpy(city,newCt);strcPy(zipeode,De-wZp);”。
(3)应添加“strcpy(name,newName);”。
(4)应添加“returnstrcmp(name,ename)==0;”。
【解析】本题第1处要求补充类TC的私有数据成员name、street、city、zipcode和age的定义,分别用于表示姓名、街道、城市、邮编、年龄,除年龄是整型外,其余都是char型的数据,由主函数内的对象数组可知,name、street、city、zipcode均为字符数组,故第1处应添加“charname[MAX-LEN],street[MAXLEN],city[MAXLEN],zipcode[MAXLEN];”。构造函数完成成员变量的初始化,这里需要给name、street、city、zipeode赋初值,可利用字符串拷贝函数将参数字符串复制到成员变量中,第2处应添加“strcpy(name,newName);strcpy(street,newStreet);strcpy(city,newCt);strcpy(zipcode,newZp);”。函数al-terName(char*newName)是改变成员变量name的值,即将参数复制给name,可利用字符串拷贝函数strcpy完成复制任务,故第3处应添加“strcpy(name,newName);”。IsEqual(char*ename)函数是比较name成员变量和参数newName是否相同,可使用字符串比较函数strcmp,第4处应添加“returnstrcmp(name,ename)==0;”。
2015年全国职称计算机考试教材(2007模 .. 定价:¥225 优惠价:¥213 更多书籍 | |
全国职称计算机考试速成过关系列套装:W .. 定价:¥133 优惠价:¥133.0 更多书籍 |