阅读以下说明和C程序代码,将程序补充完整。[说明] 下面C程序代码的功能是:对于输入的一个正整数n(

9 查阅

阅读以下说明和C程序代码,将程序补充完整。

[说明]

下面C程序代码的功能是:对于输入的一个正整数n(100≤n<1000),先判断其是否是回文数(正读反读都一样的数)。若不是,则将n与其反序数相加,再判断得到的和数是否为回文数,若还不是,再将该和数与其反序数相加并进行判断,依此类推,直到得到一个回文数为止。例如,278不是回文数,其反序数为872,相加后得到的1150还不是回文数,再将1150与其反序数511相加,得到的1661是回文数。

函数int isPalm(long m)的功能是:将正整数m的各位数字取出存入数组中,然后判断其是否为回文数。若m是回文数则返回1,否则返回0。

[C程序代码]

include<stdio.h>

include<stdlib.h>

int isPalm(long m)

{

int i=0, k=0;

char str[32];

while(m>0) {

str[k++]= _______ +'0';

m=m/10;

}

for(i=0; i<k/2; i++)

if(str[i]!=str _______ )return 0;

return 1;

}

int main( )

{

long n, a, t;

printf("input a positive integer: "); scanf("%ld", &n);

if(n<100||n>=1000)return -1;

while( _______ ) {

printf("%id->", n);

for(a=0, t=n; t>0; ){

a= _______ *10+t%10; t=t/10;

n= _______ ;

printf("%id\n", n);

system("pause"); return 0;

参考答案:

m%10或其他等价形式k-i-1!isPalm(n)或isPalm(n)!=1或isPalm(n)==0an+am%10或其他等价形式k-i-1!isPalm(n),或isPalm(n)!=1或isPalm(n)==0an+a 解析:函数isPalm(long m)的功能是判断m是否为回文数,其方法是将m的各位数字依次取出并转换为对应的数字字符保存在数组str中,然后再判断str中的字符中序列是否对称。将m的个位数取出可以采用如下公式“m%10”,即对10取余数。所以(1)处应为m%10或其他等价形式。若

软考初级