首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
使用VC++2010打开考生文件夹下modi1中的解决方案。此解决方案的项目中包含一个源程序文件modi1.c。在此程序中,函数fun的功能是:判断输入的任何一个正整数n,是否等于某个连续正整数序列之和。若是,则输出所有可能的序列,否则输出“不能分解”。
使用VC++2010打开考生文件夹下modi1中的解决方案。此解决方案的项目中包含一个源程序文件modi1.c。在此程序中,函数fun的功能是:判断输入的任何一个正整数n,是否等于某个连续正整数序列之和。若是,则输出所有可能的序列,否则输出“不能分解”。
admin
2021-06-15
54
问题
使用VC++2010打开考生文件夹下modi1中的解决方案。此解决方案的项目中包含一个源程序文件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("请输入一个整数:");
scarlf("%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/Vwtp777K
本试题收录于:
二级C语言题库NCRE全国计算机二级分类
0
二级C语言
NCRE全国计算机二级
相关试题推荐
下面不属于结构化程序设计原则的是()。
有以下程序(strcat函数用以连接两个字符串)#include<stdio.h>#include<string.h>main(){chara[201="ABCD\OEFG\0",b[]="IJK";strcat(a,b);printf("%s
若有以下程序#includemain(){inti,j=0;chara[]="Howareyou!",b[10];for(i=0;a[i];i++)if(a[i]=’’)b[j++]=a[
有以下程序:#include<stdio.h>voidfun(char*a,char*b){while(*a==′*′)a++;while(*b=*a){b++;a++;}}main(){char*s=″*****a
若变量已正确定义,则语句S=32;s^=32;printf(“%d”,s);的输出结果是()。
有以下程序#include<stdio.h>voidfun(char**p){++p;printf("%s\n",*p);}main(){char*a[]=("Morning","Afternoon","Evening",
深度为7的二叉树共有127个结点,则下列说法中错误的是()。
程序中已构成如下图所示的不带头结点的单向链表结构,指针变量S、P、q均已正确定义,并用于指向链表结点,指针变量S总是作为头指针指向链表的第一个结点。若有以下程序段:q=s;S=S->next;p=s;while(p->next)p=p->next;
以下正确的说法是()。
在C程序中,下列说法正确的是()。
随机试题
A、Torelieveitstrafficcongestion.B、Tolessenitsenvironmentalproblem.C、Toguaranteedriverssafetyontheroad.D、Toimpr
市场拾遗补阙战略成功的关键在于()
女性患者,36岁,以“眼睑及双下肢水肿、尿少伴关节肿痛、肌无力3个月”来诊。查体:腹壁及下肢皮肤见片状出血疹,颈部可触及数个肿大淋巴结,双眼睑水肿,双肺下呼吸音减弱,可闻及细小捻发音。心界略向左扩大,心音低,心律齐,未闻及杂音。腹软,肝脾未触及。双下肢指压
债券互换的类型包括()。Ⅰ.替代互换Ⅱ.利率互换Ⅲ.市场间利差互换Ⅳ.税差激发互换
关于职业纪律,正确的认识是()
加强新时期的党风廉政建设和反腐败斗争,教育是基础,制度是保证,监督是关键。()
设un=(一1)nln(1+),则级数
A.carefulB.acrossC.MondayD.restE.babyF.arriveG.answertoreachaplace
Mr,andMrs.RajahHassimweregoingtoeatout.Mr.Hassimtelephonedinthemorningandreserved(预定)atableinSpringRestau
Gettingteenagerstopayattentiontothedirtylaundryontheirbedroomfloorishardenough,sohowcanparentsgettheirkids
最新回复
(
0
)