问题 填空题

1说明]
函数int circle(int n,int d)判定正整数n的d进制表示形式是否是回文数。
[函数2.1]
int circle(int n,int d)
int s=0,m=n;
while (m)

(1) ;
m/=d;

return (2) ;

[函数2.2说明]
函数int trans(unsigned n,int d,char s[])将一个无符号整数转换为任意d进制数(2≤d≤16)。
[函数2.2]
#define M sizeof(unsigned int)*8
int trans (unsigned n,int d,char s[])
static char digits[]="0123 456789ABCDEF";
char buf [M+1];
int j,i=M;
if (d<2 ||d>16)

s[0]=’\0’;
return 0;

(3) ;
do

(4) ;
n/=d;
while (n) ;
for( (5) ); (s(j)=buf[j]!=’\0’;j++);
return j;

答案

参考答案:j=0

解析: 回文数就是顺着看和倒着看相同的数。例如,n=232,它的十进制表示回文数; n=27,它的二进制表示11011是回文数; n=851,它的十六进制表示353是回文数。设判断是否为回文数的函数为circle(int n,int d),它有两个参数n和d。其中n为要判定是否为回文数的整数,d指将n转成d进制表示。为判定n是否是d进制表示形式中的回文教,一种办法是:首先顺序译出n的d进制的各位数字,然后把译出的各位数字将低位当高位按d进制的转换方法译成一个整数,若n是回文数,则转换所得的整数应与n相等; 否则,n不是回文数。
求n整除d的余数,就能得到n的d进制数的最低位数字,重复上述步骤,直至n为0,依次得到n的d进制数表示的最低位至最高位数字。由各位数字取出相应字符,就能得到n的d进制的字符串。

单项选择题 A1/A2型题
单项选择题