题目内容 (请给出正确答案)
[主观题]

程序改错: 任意输入一个3的倍数的正整数,先把这个数的...

程序改错: 任意输入一个3的倍数的正整数,先把这个数的每一个数位上的数字都计算其立方,再将各位数字相加,得到一个新数,然后把这个新数的每一个数位上的数字再计算其立方,再将各位数字相加,......,重复运算下去,结果为153。如果换另一个3的倍数试一试,仍然可以得到同样的结论,因此153被称为“数字黑洞”。 例如,63是3的倍数,按上面的规律运算如下: 6^3+3^3=216+27=243 2^3+4^3+3^3=8+64+27=99 9^3+9^3=729+729=1458 1^3+4^3+5^3+8^3=1+64+125+512=702 7^3+0^3+2^3=351 3^3+5^3+1^3=153 1^3+5^3+3^3=153 下面程序的功能是:验证任意的是3的倍数的正整数都是“数字黑洞”,并输出验证的步数。当输入非法字符或者小于等于0的数时,重新输入该数。目前程序有错误,请修改正确。 程序正确的运行结果示例1: Input n: a↙ Input n: -1↙ Input n: 0↙ Input n: 27↙ 27 351 153 27 is a daffodil number 程序正确的运行结果示例2: Input n:20↙ 20 is not a daffodil number

暂无答案
如搜索结果不匹配,请 联系老师 获取答案
您可能会需要:
您的账号:,可能会需要:
您的账号:
发送账号密码至手机
发送
更多“程序改错: 任意输入一个3的倍数的正整数,先把这个数的...”相关的问题

第1题

下面程序的功能:输入一个3*3的整数矩阵,输出正对角线...

下面程序的功能:输入一个3*3的整数矩阵,输出正对角线上元素之和。 #include <stdio.h> int main () { int a[3][3],i,j,sum=0; printf("输入一个3*3的整数矩阵\n"); for(i=0;i<3;i++) for(j="0;j&lt;3;j++)" scanf("%d",&a[i][j]); printf("\n对角线上元素之和为:\n"); for(i="0;i&lt;=3;i++)" 计算对角线上元素之和 if(j="i)" sum="sum+a[i][j];" printf("%d",sum); return 0; } 请判断:在“计算对角线上元素之和”这段程序中,共有2处错误,对吗? 修改正确后,运行如下图 src="http://static.jiandati.com/17be900-chaoxing2016-158274.jpeg">

点击查看答案

第2题

从键盘任意输入一个3位整数,编程计算并输出它的逆序数...

从键盘任意输入一个3位整数,编程计算并输出它的逆序数(忽略整数前的正负号)。例如,输入-123,则忽略负号,由123分离出其百位1、十位2、个位3,然后计算3*100+2*10+1 = 321,并输出321。按要求在空白处填写适当的表达式或语句,使程序完整并符合题目要求。#include <math.h> #include <stdio.h> int main() { int x, b0, b1, b2, y; printf("Input x:"); scanf("%d", &x); x = (int)fabs(x); b2 = ________; /* 计算百位数字 */ b1 = _________; /* 计算十位数字 */ b0 = _________; /* 计算个位数字 */ y = b2 + b1*10 + b0*100; printf("y = %d\n",y); return 0; }

A、第10行: x / 100 第12行: (x - b2 * 100) / 10 第14行: x % 10

B、第10行: x % 100 第12行: (x - b2 * 100) / 10 第14行: x / 10

C、第10行: x / 100 第12行: (x - b2 * 100) % 10 第14行: x / 10

D、第10行: x / 10 第12行: (x - b2 * 10) / 10 第14行: x % 100

点击查看答案

第3题

利用InputBox函数(如图1)输入一个合法的3位正整数,然...

利用InputBox函数(如图1)输入一个合法的3位正整数,然后求该数逆序并利用Print方法在窗体输出。例如,输入123,输出是321,要求(按图2样例)输出原输入的数和逆序后的结果。 程序要求判断若输入的数不是3位数,用MsgBox显示提示信息,如图3所示,结束程序运行。图1 图2图3 保存工程和窗体,窗体文件名为:昵称-3-2.frm;工程名为:昵称-3-2.vbp。将工程文件和窗体文件压缩成:昵称-3-2.rar,以附件形式提交。 提示: ① 利用 “Mod”和 “\” 运算符将3位数分离出它的百位、十位和个位,然后利用乘法和加法得到逆序的3位数。

点击查看答案

第4题

下面程序的功能是从键盘任意输入一个4位数x,编程计算x...

下面程序的功能是从键盘任意输入一个4位数x,编程计算x的每一位数字相加之和(忽略整数前的正负号)。例如,输入x为1234,则由1234分离出其千位1、百位2、十位3、个位4,然后计算1+2+3+4=10,并输出10。程序的运行结果如下: Input data is:-4213↙ The sum of the total bit is 10 按要求在空白处填写适当的表达式或语句,使程序完整并符合题目要求。 #include <stdio.h> #include <math.h> int main() { int i1, i2, i3, i4, k, n; printf("Input data is:"); scanf("%d", &n); k = fabs(n); //取绝对值 i1 = ___________; //分离出千位 i2 = ___________; //分离出百位 i3 = ___________; //分离出十位 i4 = ___________; //分离出个位 printf("The sum of the total bit is %d\n", i1 + i2 + i3 + i4); return 0; }

A、第9行: k / 1000 第10行: (k - i1 * 1000) / 100 第11行: (k - i1 * 1000 - i2 * 100) / 10 第12行: k % 10

B、第9行: k % 1000 第10行: (k - i1 * 100) / 10 第11行: (k - i1 * 1000 - i2 * 100) % 10 第12行: k % 10

C、第9行: k % 100 第10行: (k - i1 * 1000) / 100 第11行: k / 10 第12行: (k - i1 * 100 - i2 * 10) / 10

D、第9行: k % 10 第10行: (k - i1 * 1000) / 10 第11行: (k - i1 * 1000 - i2 * 100) / 10 第12行: k / 10

点击查看答案

第5题

一个正整数如果恰好等于它的除自身外的因数之和,这个...

一个正整数如果恰好等于它的除自身外的因数之和,这个数称为“完数”。例如,6的因数有1、2、3,且6=1+2+3,因此6是“完数”。 编写判别完数的函数wanshu(int x):功能判断x是否为完数,如果是,则返回1,不是,则返回0。 编写main()中让x从1循环至1000,并调wanshu函数,如果返回值为1,则输出该数。 请完善下面的程序:(有3个空,答案一行写一个,不要添加多余的空格) #include <stdio.h> int wanshu(int x) { int i,r=0; for(i=1;i <x;i++) { if ( ) r="r+i;" 将因数累加进r中 } (r="=x)" 判断x是否是完数 return 1; else ; int main() i; for (i="1;i&lt;=1000;i++)" printf("%d是完数\n",i); 0;>

点击查看答案

第6题

一个正整数如果恰好等于它的除自身外的因数之和,这个...

一个正整数如果恰好等于它的除自身外的因数之和,这个数称为“完数”。例如,6的因数有1、2、3,且6=1+2+3,因此6是“完数”。 编写判别完数的函数wanshu(int x):功能判断x是否为完数,如果是,则返回1,不是,则返回0。 编写main()中让x从1循环至1000,并调wanshu函数,如果返回值为1,则输出该数。 请完善下面的程序:(有3个空,答案一行写一个,不要添加多余的空格) #include <stdio.h> int wanshu(int x) { int i,r=0; for(i=1;i <x;i++) { if ( ) 判断x能整除i? 即判断i是否是x的因数 r="r+i;" 将因数累加进r中 } (r="=x)" 判断因数和是否等于x,是则返回1,不是,返回0 return 1; else ; int main() i; for (i="1;i&lt;=1000;i++)" 调用wanshu函数,根据函数值,判断i是否为完数, printf("%d是完数\n",i); 0;>

点击查看答案

第7题

以下程序,数组a中存放一个递增序列,输入一个整数x 并...

以下程序,数组a中存放一个递增序列,输入一个整数x 并将它插入到数组a中,使之仍为一个递增序列,请在划线处填空。整数,已经按照从小到大顺序排列好,现在另外给一个整数x,以下insert函数的功能是将x插入到数组a中,并使数组a仍然有序。 请将3个空白位置的答案分3行写出来,并提交。 #include <stdio.h> int main() { Int a[10]={1,3,5,7,9,11,13,15,17,19}; Int x, n, i, p; n=10; scanf(“%d”, &x); p = ; for(i=0;i<10;i++) 确定新元素位置p { if(x a[i]) p="i;" } for(i="n-1;i">=p; i--) a[i+1] = a[i]; //依次后移 // 插入新元素 for(i=0;i<=n;i++) printf("%5d" , a[i]); printf("\n");>

点击查看答案

第8题

将一个正整数分解质因数。 算法分析提示:对n进行分解质...

将一个正整数分解质因数。 算法分析提示:对n进行分解质因数,应先找到一个最小的质数k,然后按下述步骤完成: (1) 如果这个质数恰等于n,则说明分解质因数的过程已经结束,打印出即可。 (2) 如果n不等于最小的质数k,但n能被k整除,则应打印出k的值,并用n除以k的商,作为新的正整数n,重复执行第一步。 (3)如果n不能被k整除,则用k+1作为k的值,重复执行第一步。 C的源程序如下: /*题目:将一个正整数分解质因数。例如:输入90,打印出90=2*3*3*5。*/ #include "stdio.h" int main() { int n,i; printf("\nplease input a number:\n"); scanf("%d",&n); printf("%d=",n); for(i=2; 【1】 ;i++) { while( 【2】 ) { if(n%i==0) { printf("%d*",i); n=n/i; } else 【3】; } } printf("%d",n); } 请按照表格1中“期待的输出”要求,将程序空缺的【1】、【2】、【3】语句补充完整,并调试运行,针对每一组输入,将对应的输出填写在答题框中,注意标记小组成员姓名。 表格1 输入 期待的输出 说明 90 90=2*3*3*5 按照格式输出 123 1234 200 2 0

点击查看答案

第9题

判断3的倍数。输入一个整数n,判断n是否是3的倍数,若是3的倍数输出“Yes”,若为偶数,输出“No”。
点击查看答案

第10题

一个数既是2的倍数,又是3的倍数,这个数最小是( )。

A、2

B、3

C、6

D、0

点击查看答案
热门考试 全部 >
相关试卷 全部 >
账号:
你好,尊敬的上学吧用户
发送账号至手机
获取验证码
发送
温馨提示
该问题答案仅针对搜题卡用户开放,请点击购买搜题卡。
马上购买搜题卡
我已购买搜题卡, 登录账号 继续查看答案
重置密码
确认修改
谢谢您的反馈

您认为本题答案有误,我们将认真、仔细核查,
如果您知道正确答案,欢迎您来纠错

警告:系统检测到您的账号存在安全风险

为了保护您的账号安全,请在“上学吧”公众号进行验证,点击“官网服务”-“账号验证”后输入验证码“”完成验证,验证成功后方可继续查看答案!

微信搜一搜
上学吧
点击打开微信
警告:系统检测到您的账号存在安全风险
抱歉,您的账号因涉嫌违反上学吧购买须知被冻结。您可在“上学吧”微信公众号中的“官网服务”-“账号解封申请”申请解封,或联系客服
微信搜一搜
上学吧
点击打开微信