当前位置:首页
>
查试题
>
阅读以下说明和C 程序代码,将应填入 (n) 处的字句写在答题纸的对应栏内。【说明】 下面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) { /*判断m是否为回文数*/ int i = 0, k = 0; char str[32]; while (m > 0) { /*从个位数开始逐个取出m的各位数字并存入字符数组str*/ str[k++] = (1) + ’0’; m = m / 10; } for(i = 0; i < k/2; i++) /*判断str中的k个数字字符序列是否是回文*/ if ( str[i] != str[ (2) ] ) 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( (3) ) { /*n不是回文数时执行循环*/ printf("%ld -> ", n); for(a = 0, t = n; t > 0; ) { /*计算n的反序数并存入a*/ a = (4) *10 + t % 10; t = t / 10; } /*end of for*/ n = (5) ; /*与反序数求和*/ } /*end of while*/ printf("%ld",n); system("pause"); return 0; }