首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
给定程序MODI1.C中,函数fun的功能是:判断输入的任何一个正整数n,是否等于某个连续正整数序列之和。若是,则输出所有可能的序列,否则输出“不能分解”。 例如:当输入100时,输出: 100=9+10+11+12+13+14+15+16 100=18
给定程序MODI1.C中,函数fun的功能是:判断输入的任何一个正整数n,是否等于某个连续正整数序列之和。若是,则输出所有可能的序列,否则输出“不能分解”。 例如:当输入100时,输出: 100=9+10+11+12+13+14+15+16 100=18
admin
2017-02-24
61
问题
给定程序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,flag=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);
flag=1;
}
}
if(flag=0)
printf("不能分解\n");
}
main()
{ int n;
printf("请输入一个整数:");
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://kaotiyun.com/show/mMDp777K
本试题收录于:
二级C语言题库NCRE全国计算机二级分类
0
二级C语言
NCRE全国计算机二级
相关试题推荐
下列叙述中错误的是()。
有以下程序#include<stdio.h>main(){FILE*fp;inti=20,j=30,k,n;fp=fopen("d1.dat","w");fprintf(fp,"%d\n",i;fprintf(f
有以下程序#include<string.h>main(){charp[20]={’a’,’b’,’c’,’d’},q[]="abc",r[]="abcde";strcat(p,r);strcpy(p+strlen(q),
有如下程序main(){intn=9;while(n>6){n--;printf("%d",n);}}该程序的输出结果是
以下程序的运行结果是【】。#includemain(){FILE*fp;inta[10]={1,2,3,0,0},i;fp=fopen("d2.dat","wb");fwtite(a,sizeof(int),5
阅读以下程序及对程序功能的描述,其中正确的是#includemain(){FILE*in,*out;charch,infile[10],outfile[10];printf("Entertheinfilename:\n"
设有以下说明语句structex{intx;floaty;charz;}example;则下面的叙述中不正确的是
对下述程序的判断中,正确的是#includevoidmain(){char*p,s[128];p=s;while(strcmp(s,"End")){printf("Inputastring:");gets(s);w
若要求定义具有10个int型元素的一维数组a,则以下定义语句中错误的是
若变量均已正确定义并赋值,以下合法的C语言赋值语句是
随机试题
设总体X的分布中带有未知参数0,X1,X2,…,Xn为样本,(X1,X2,…,Xn)和(X1,X2,…,Xn)是参数θ的两个无偏估计.对任意的样本容量n,若为比有效的估计量,则必有()
向日葵、甜菜、高粱和棉花属耐酸性植物。()
一个气缸内有一定量的单原子分子理想气体,在膨胀过程中对外界做功209J,此过程中气体的内能增加120J,则外界传给气体的热量为()。
先张法预应力构件适用的条件是()。
有关内燃机的主要性能指标的描述正确的是()。
根据《企业会计准则第22号——金融工具确认和计量》,长期应付债券溢价折价摊销,应采用的方法是()。
已知:某公司2011年第1~3月实际销售额分别为38000万元、36000万元和41000万元,预计4月份销售额为40000万元。每月销售收入中有70%能于当月收现,20%于次月收现10%于第3个月收现。假定该公司销售的产品在流通环节只需交纳消费税.税率为
老王围着边长为50米的正六边形的草地跑步,他从某个角点出发,跑了500米之后,距离出发点多少米?
根据马克思主义法学观,原始社会的氏族习惯不属于法律的范畴,其主要原因有()。(2012年多选47)
Whatarethetwospeakersmainlydiscussing?Whyisthestudentunfamiliarwiththebookstore’spolicy?
最新回复
(
0
)