首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
阅读以下说明和C程序代码,将应填入(n)处的字句写在对应栏内。 【说明】 下面C程序代码的功能是:对于输入的一个正整数n(100≤n<1000),先判断其是否是回文数(正读反读都一样的数)。若不是,则将n与其反序数相加,再判断得到的和数是否为回文数
阅读以下说明和C程序代码,将应填入(n)处的字句写在对应栏内。 【说明】 下面C程序代码的功能是:对于输入的一个正整数n(100≤n<1000),先判断其是否是回文数(正读反读都一样的数)。若不是,则将n与其反序数相加,再判断得到的和数是否为回文数
admin
2009-09-20
34
问题
阅读以下说明和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
!= 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 ("%id\n",n);
system("pause"); return 0;
}
选项
答案
(1) m%10,或其等价表示 (2) k-1-i (3) !isPalm(n),或isPalm(n)!=1,或isPalm(n)= =0 (4) a (5) n+a
解析
本题考查C程序设计的基本能力。
函数isPalm(long m)的功能是判断m是否为回文数,其方法是先将m的各位数字依次取出转换为对应的数字字符保存在数组str中,然后再判断str中的字符序列是否对称。代码如下:
while (m>0) { /*从个位数开始逐个取出m的各位数字并存入字符数组str*/
str[k++] = m % 10 + ’0’;
m=m/10;
}
因此,空(1)处应填入“m%10",将数m的个位数字取出。以上while循环结束时,k的值即为m取初始值时的位数。
若需判断str[0]、str[1]、…、str[k-1]中的k个数字字符序列是否对称,则应依次比较str[0]与str[k-1]、str[1]与str[k-2]、…str[k/2-1]与str[k2+1]是否相等,若都相等,则是回文数;若其中有一处不等,则不是回文数。代码如下:
for(i=0; i<k/2; i++)
if ( str
!=str[ (2) ] ) return 0;
因此,空(2)处应填入“k-1-i”。
根据题目描述,从最初输入的数开始,直到得到一个回文数时结束,因此对于数n,调用函数is Palm(n),根据返回值确定n是否为一个回文数,空(3)处应填入“!isPalm(n)”。
为了求一个数t的反序数,可从其个位数字开始,依次取出其各位数字并进行组合。下面以t=345举例说明通过整除取余“%”、整除“/”取出各位数字并组合出543的过程。
初始时:a=0 t=345
下一步:345%10=>5 a*10+5=>a=5 t/10=345/10=>t=34
下一步:34%10=>4 a*10+4=>a=54 t/10=34/10=>t=3
下一步:3%10=>3 a*10+3=>a=543 t/10=3/10=>t=0
因此,可知空(4)处应填入“a”。
最后数n与其反序数a相加得到新的数,继续产生回文数的过程。空(5)处应填入“n+a”。
转载请注明原文地址:https://kaotiyun.com/show/RIjZ777K
本试题收录于:
程序员下午应用技术考试题库软考初级分类
0
程序员下午应用技术考试
软考初级
相关试题推荐
黑屏是微机显示器常见的故障现象。发生黑屏时需要检查的项目不包括(27)________________。
n=1,2,3,…,100时,[n/3]共有(4)________________个不同的数([a]表示a的整数部分,例如[3.14]=3)。
信息技术对传统教育方式带来了深刻的变化。以下叙述中,不正确的是(3)________________。
如果表A和表B中有公共字段,且该字段在表B中称为主键,则该字段在表A中称为________________。
鼠标指针的形状取决于它所在的位置以及与其他屏幕元素的相互关系。在文字处理的文本区域,指针就像(),指向当前待插入字符的位置。
下面关于幻灯片打印的叙述中,正确的是______。
由国家机关下达任务开发的软件,若在项目任务书或者合同中对软件著作权未作明确规定的,其软件著作权由(21)享有。
计算机使用一段时间后发现,系统启动时间变长,系统响应迟钝,应用程序运行缓慢,为此,需要进行系统优化。系统优化工作不包括___________。
程序员一般用(7)软件编写和修改程序。
阅读下列说明和HTML文本,分析其中嵌入的JavaScript脚本,将应填入(n)处的语句填到对应栏内。[说明]在文本框中实现时钟显示功能,格式如下:“-年-月-日小时:分:秒星期几”[HTML文本]<html>
随机试题
支付应用系统的核心是_______。()
A.脘腹满闷,喜温喜按B.脘腹痞闷,胸胁胀满C.脘腹痞塞不舒,身重困倦D.脘腹痞闷,舌红,口苦E.以上皆非肝胃不和证痞满的特点为
背景:某公司承建城市跨线桥,主桥长520m,桥宽22.15m,跨越现况河渠;桥梁中三跨上部结构为钢筋混凝土预应力连续梁,跨径组合为30m+35m+30m,其余部分为22m长T形简支梁。承台平面尺寸5m×26m,以群桩形式布置128根桩,采用沉桩施工。项目
下列属于高级社会性需要的有()。
设方程ylny—x+y=0确定函数y=y(x),求y’,y″在点(1,1)处的值。
甲为了骗取保险金,花1万元买来一辆二手名牌轿车,通过在某国有保险公司担任业务员的好友乙经办,向该保险公司谎报轿车价值为20万元,投保车辆盗抢、毁损险。之后,甲找到中学生丙(男,15岁),给丙5000元报酬,请丙将停在甲自家平房前的轿车烧毁。丙问为什么,甲说
社会主义时期处理民族问题的基本原则是,维护祖国统一,反对民族分裂,坚持民族平等、民族团结、各民族共同繁荣。对这一基本原则的正确理解是
已知下列非齐次线性方程组(Ⅰ),(Ⅱ):(1)求解方程组(Ⅰ),用其导出组的基础解系表示通解;(2)当(Ⅱ)中的参数m,n,t为何值时,方程组(Ⅰ)与(Ⅱ)同解.
()技术不能保障应用系统的完整性。
HarlemRenaissancereferstoaperiodlastingformorethan10years,duringwhichagroupofAfricanandAmericanwritersprodu
最新回复
(
0
)