首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
给定程序MODI1.C中,函数fun的功能是:判断输入的任何一个正整数n,是否等于某个连续正整数序列之和。若是,则输出所有可能的序列,否则输出“不能分解”。 例如:当输入100时,输出: 100 =9+10+11+12+13+14+15+16 100 =1
给定程序MODI1.C中,函数fun的功能是:判断输入的任何一个正整数n,是否等于某个连续正整数序列之和。若是,则输出所有可能的序列,否则输出“不能分解”。 例如:当输入100时,输出: 100 =9+10+11+12+13+14+15+16 100 =1
admin
2017-09-23
42
问题
给定程序MODI1.C中,函数fun的功能是:判断输入的任何一个正整数n,是否等于某个连续正整数序列之和。若是,则输出所有可能的序列,否则输出“不能分解”。
例如:当输入100时,输出:
100 =9+10+11+12+13+14+15+16
100 =18+19+20+21+22
请改正函数fun中指定部位的错误,使它能得出正确的结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。
试题程序:
#include < stdio.h >
void fun ( int n )
{ int j, b, c, m, f1ag=0;
for(b=1;b < =n/2;b++){
/*********found*********/
n=m;
c=b;
while(m!=0&&m >=c){
/*********found*********/
m=m—c;c++
}
/*********found*********/
if(m!=0)
{printf("%d=",n);
for(j=b;j < c一1;j++)
printf("%d+",j);
printf("%d\n",j);
f1ag=1;
}
}
if(f1ag=0)
printf("不能分解\n");
}
main()
{ int n;
printi("请输入一个整数:");
scanf("%d",&n);
fun(n);
}
选项
答案
(1)m=n; (2)m=m一c;c++; (3)if(m==0)
解析
(1)每次循环,程序需要对n执行减去连续的正整数序列来判断n是否刚好为0,即n是否是连续的正整数序列之和,所以需要使用临时变量m寄存n的值,每次循环对m执行减运算操作,不满足继续下一轮。另外,程序声明变量m时,未初始化它的值,所以此处应该修改为:m=n。
(2)语法错误。C语言中每个语句必须以分号结束,所以应修改为:m=m一c;c++;。
(3)题目判断n是否是连续的正整数序列之和,若是,则输出所有序列,程序中m依次减去连续的正整数,当m为0时,表示m(即n)满足条件,再输出当前序列中的每个正整数,所以此处判断条件反了,应修改为:if(m=0)。
转载请注明原文地址:https://jikaoti.com/ti/VZa0FFFM
本试题收录于:
二级C语言题库NCRE全国计算机二级分类
0
二级C语言
NCRE全国计算机二级
相关试题推荐
下面程序的输m结果是()。typedefunion{doublex[3];inty[4];charz[10];}M;Mt;main(){Printf("%d\n",sizeof
阅读以下程序#include<stdio.h>main(){IntCase;floatprintF;printf("请输入2个数:");scanf("%d%f",&Case,&printF);print
数据字典是各类数据描述的集合,它通常包括5个部分,即数据项、数据结构、数据流、()和处理过程。
以下程序中函数sort的功能足对a数组中的数据进行由大到小的排序voidsort(inta[],intn){inti,j,t;for(i=0;i<n-1;i++)for(j=i+1;j<n;j++)if(a[
下列程序的运行结果是()。#include<stdio.h>voidsub(int*s,int*y){staticintm=4;*y=s[0];m++;}voidmain(){
下面程序的运行结果是()。for(i=3;i<7;i++)printf((i%2)?("**%d\a"):("##%d\n"),i);
若有定义:intx=1,y=2;floata=3.7,b=2.1;则(x+y)%2+(int)a/(int)b表达式的值为()。
在16位编译系统上,若有定义inta[]={10,20,30},*p=&a;,当执行p++后,下列说法错误的是()。
在关系数据库中,把数据表示成二维表,每一个二维表称为()。
在将E-R图转换到关系模式时,实体和联系都可以表示成【】。
随机试题
A、Calltheorganizersoftheactivities.B、Cometotheclubinperson.C、Visitthewebsiteoftheclub.D、Getabrochureofthe
胃大部切除术后(毕Ⅱ式)上腹饱胀,呕吐含胆汁的食物。最可能出现的并发症是
具有补肝肾、活血、利尿功效的药物是
关于子宫的解剖,正确的是
注册咨询工程师(投资)应具备的知识内容主要包括()。
公民被依法宣告失踪后,产生的法律后果是()。
在2006年度资产负债表日至财务报告批准报出日之间发生的下列事项中,属于资产负债表日后非调整事项的是()。
下列希腊神话人物中,作为太阳神被人们接受的是()。
人民检察院审查批准逮捕犯罪嫌疑人由( )决定。
A、Livercancer.B、Lungcancer.C、Braincancer.D、Skincancer.B细节题。短文开头提到,全世界每年有超过一百万人死于lungcaner,而肺癌也是癌症病人死亡的主要原因,故答案为[B]。
最新回复
(
0
)