以下程序可把输入的十进制数以十六进制数的形式输出。 请在横线上填上适当的内容并把横线删除,使它能得出正确的结果。 注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。 试题程序; main () { c

admin2010-09-14  31

问题 以下程序可把输入的十进制数以十六进制数的形式输出。
   请在横线上填上适当的内容并把横线删除,使它能得出正确的结果。
   注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。
   试题程序;
    main ()
    {
   char b[17]={"0123456789ABCDEF"};
   int c[64] ,d,i=0,base=16;
   long n;
   printf("Enter a number:\n");
   scanf ("%ld", &n);
   do {
   /*****************found****************/
   c=______; i++; n=n/base; }
   while (n!=0);
    printf("Transmite new base:\n");
   for(--i;i>=0;--i)
   /***************found*******************/
   { d=c;printf("%c",b______);}
   printf("\n");
   }

选项

答案(1)错误:缺少语句 正确:应填入n%base或%16 (2)错误:缺少语句 正确:应填入[d]

解析 在该程序中,字符数组b存储十六进制的16个数字符,整型数组c存储译出的十六进制数的各位数值。从整数n译出它的各位十六进制数值,需采用除16取余的方法,即求n除16的余,得到它的十六进制的个位数,接着将n除以16。在n不等于0的情况下循环,能顺序求出n的十六进制的个位数、十位数、百位数等。程序中变量base已预置16,所以在第1个空框处可填代码n%base或n%16。当n的十六进制数的个位、十位、百位等依次存放于数组c中后,就从最高位至最低位,参照数组c的内容d(以其内容为下标),取十六进制数字符表中的字符b[d]输出。所以在第2个空框处可填入代码[d]。
转载请注明原文地址:https://kaotiyun.com/show/OWID777K
0

相关试题推荐
最新回复(0)