
提问人:网友z*****n
发布时间:2023年8月5日 09:43
[判断题]
充电系统的作用是向整车用电设备提供电能,以及给蓄电池充电。


三、改错题
十进制数转换为16进制串
【问题描述】
下列程序包含4个错误,请输入该程序的代码,找出并更正程序错误,在修改行代码后增加"/***/"注释,并将修改后的源程序保存到 E:\answer\1-A-1.c 中。程序改错时不允许改变大的程序结构(如函数调用关系与循环结构等)。
程序功能:从键盘上输入一个整数,转换为16进制串并输出。
如输入: 90
则输出: 5A
函数说明:
函数decToHex将整数n转换为16进制的字符串并存贮于str数组。
(1) 依次计算n的16进制最低位(求余运算),转换为16进制码(字符'0'至'9'或'A'至'F')存贮于str数组,完成一位后,n除16以去掉最低位,然后循环求解更高位。
(2) 使用for循环逆序str数组,变量i从头递增,变量j从尾递减,交换str[i]与str[j]。
主函数main输入一个整数,调用decToHex函数转换为16进制串,然后输出该字符串。
带错误原程序:(函数decToHex包含3个错误点,main包含1个错误点)
#include
void decToHex(int n, char *str)
{
int m,i,j,k;
char t;
m=0;
do {
k = n / 16;
if (k<=9)
str[m] = '0'+k;
else
str[m] = 'A'+k-10;
m++;
n /= 16;
} while (n>0);
str[m] = '/0';
for (i=0;j=m-1; i { t=str[i]; str[i]=str[j]; str[j]=t; } } int main() { char str[80]; int n; scanf("%d",&n); str=decToHex(n); puts(str); return 0; }