阅读下列函数说明和C函数,将应填入(n)处的字句写在对应栏内。 [函数2.1说明] 下面程序的功能是:将由键盘输入的某个十进制数转换成对应的R进制数并输出。这里R是 2到16的整数,由键盘输入。例如,输入n=128,base=13后的输出为9B。

admin2009-02-15  29

问题 阅读下列函数说明和C函数,将应填入(n)处的字句写在对应栏内。
[函数2.1说明]
   下面程序的功能是:将由键盘输入的某个十进制数转换成对应的R进制数并输出。这里R是 2到16的整数,由键盘输入。例如,输入n=128,base=13后的输出为9B。
[函数2.1]
#include <stdio.h>
main()
{  char b[16]={’0’,’1’,’2’,’3’,’4’,’5’,’6’,’7’,’8’,’9’,’A’,’B’,’C’,’D’,’E’,’F’};
   int c[64],n,i=0,base;
   printf("Enter a number:");scaaf("%d",&n);
   printf("Enter new base:");scanf("%d",&base);
   do{c=(1);
       i++;
       n=n/base;
   }while((2));
   printf("Transmit new base:");
      for(- -i;i>=0;- -i)printf("%c",(3));
}
[函数2.2说明]
   所谓回文字符中是指正序和逆序拼写相同的字符串,例如astrtsa,adgdtdgda等。下面函数int fun(char *str)的功能是判断字符串str是否是回文,当字符串是回文时,函数返回1,否则返回0。
[函数2.2]
int fun(char *str)
{   int i,j,l;
   for(i=0;str!  =’\0’;i++);
   l=i/2;
   for(j=0,i- -;j<=1;(4))
   if((5)) return 0;
   return 1;
}

选项

答案(1) n% base (2) n! =0 (3) b[c[i]] (4) j++, i-- (5) str[i]! =str[j]

解析 (1)~(3)函数2.1的基本思想是“除base取余”,即从低位开始以n除以base的余数作为转化后的一位c,再以n除以base的商作为新的n,继续进行转化,直至除法商0为止。最后将所得的c作为下标,从数组b中找出对应的数码表示,即b[c]。
(4)~(5)此循环初始时,i和j充当str的头和尾指针,循环执行过程中,两指针同时以步长1向str的中间移动,比较所指字符是否相等,若不等则表明str不是回文字符串。
转载请注明原文地址:https://jikaoti.com/ti/rrW7FFFM
0

最新回复(0)