首页
登录
从业资格
阅读以下说明和C 程序代码,将应填入 (n) 处的字句写在答题纸的对应栏内。
阅读以下说明和C 程序代码,将应填入 (n) 处的字句写在答题纸的对应栏内。
练习题库
2022-08-02
45
问题
阅读以下说明和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("%ld\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[k/2+l]是否相等,若都相等,则是回文数:若其中有一处不等,则不是回文数。代码如下:
For (i=0; i If (str
!=str[ (2) ]) return 0;
因此,空(2)处应填入“k-1-i”。
根据题目描述,从最初输入的数开始,直到得到一个回文数时结束,因此对于数n,调用函数is Palm(n),根据返回值确定n是否为一个回文数,空(3)处应填入“lispalm(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://tihaiku.com/congyezige/2427894.html
本试题收录于:
初级程序员题库软件水平考试初中高级分类
初级程序员
软件水平考试初中高级
相关试题推荐
关于Revit插件,下面哪项是正确的?()A.Revit插件是一种软件程序,由A
根据《建筑工程设计信息模型分类和编码标准》,建筑信息模型分类表代码应采用()数字
使用()开发的程序称为Revit插件,也称为二次开发。A.Revitret B
根据《建筑工程设计信息模型分类和编码标准》,分类对象编码由表编码、大类代码、中类
通过应用程序菜单按钮-【选项】-【ViewCube】来对ViewCube外观进行
根据《建筑工程设计信息模型分类和编码标准》,分类对象编码由表编码、大类代码、中类
关于风管系统计算的描述,下面哪些描述是正确的?()A.程序自带计算功能可以实现同
根据《建筑工程设计信息模型分类和编码标准》,建筑信息模型分类表代码应采用()数字
下列选项中,属于BIM协调性功能之一,并且该功能通过BIM三维可视化控件及程序自
若程序P经编译并连接后可执行,则()。A.P是正确的程序 B.P中没有语法
随机试题
Canyou______yourselftotheweatherhere?A、fitB、adoptC、suitD、adaptD本题测试的是
ChildrenintheUKarenotreadingenoughathome,favouringtelevisionandc
在系统总线中,地址总线的位数()。A.与机器字长有关 B.与存储单元个数有关
刺激引起组织细胞兴奋需要的条件是A.刺激的强度要达到阈强度 B.用最小刺激强度
女性,28岁,明显基础代谢增高症状和交感神经兴奋症状,突眼,甲状腺Ⅲ度大,质软,
治疗外感风寒兼脾胃气滞胸脘满闷、恶心呕逆者,应选用的药物是()A.防风
强直性肌张力增高(铅管样强直)的病变部位在A:锥体外系 B:锥体系 C:小脑
小比例尺地图缩编时,根据居民地的人口数或行政等级来确定居民地取舍的方法是()。A
下列属于《中华人民共和国环境保护法》中所称“环境”范畴的是()。 A治安环
(2017年真题)期货公司执行非受托人的交易指令造成客户损失.客户没有予以追认的
最新回复
(
0
)