软题库 移动APP 扫码下载APP 随时随地移动学习 培训课程
当前位置:信管网 >> 在线考试中心 >> 信息系统项目管理师题库 >> 试题查看
试卷名称 2008年下半年程序员考试下午真题试题(案例分析)
考试中心《2008年下半年程序员考试下午真题试题(案例分析)》在线考试
试卷年份2008年下半年
试题题型【分析简答题】
试题内容

阅读以下说明和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",n);  
system("pause");  return 0;
}   


相关试题

推荐文章
合作网站内容