改错题 1.  以下程序可把输入的十进制数以十六进制数的形式输出。
    请在横线上填上适当的内容并把横线删除,使它能得出正确的结果。
    注意:不要改动main()函数,不得增行或删行,也不得更改程序的结构。
    试题程序:
    #include<stdio.h>
    void main()
    {
    char b[17]={"0123456789ABCDEF"};
    int c[64],d,i=0,base=16;
    long mum;
    printf("Enter a number:\n");scanf("%1d",&num);
    do
    {
    //****found****
    c[i]=______;i++;num=num/base;}
    while(num!=0);
    printf("Transmite new base:\n");
    for(--i;i>=0;--i)
    //****found****
    {  d=c[i];printf("%c",b______);}
    printf("\n");
    }
【正确答案】(1)错误:缺少语句
   正确:应填入“num%base”
   (2)错误:缺少语句
   正确:应填入“[d]”
【答案解析】 按题目的要求,把输入的十进制数以十六进制数的形式输出。首先,要将十进制数对16求余,得出十六进制每一位上的数字。因此,“c[i]=______”处填“num%base”。数组b为十进制数0~15所对应的十六进制数,数组c中存放的是十六进制数每一位上的数字。因此,“b______处”填“[d]”。