首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
给定程序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
43
问题
给定程序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全国计算机二级
相关试题推荐
下列关于栈的描述中错误的是()。
以下程序运行后的输出结果是______。structNODE{inthum;structNODE*next;};main(){structNODEs[3]={{1,’\0’},{2,’\0’},{3,’\0’}},*p,*q
在下列语句中,其含义为“q为一个指针的函数,该指针指向整型数据”的定义语句是()。
下列程序的输出结果是()。main(){intp[8]={11,12,13,14,15,16,17,18},i=0,j=0;while(i++<7)if(p[i]%2)j+=p[i];printf("%dXn",j);}
以下程序中函数f的功能是在数组x的n个数(假定n个数互不相同)中找出最大最小数,将其中最小的数与第一个数对换,把最大的数与最后一个数对换。请填空。#include<stdio.h>voidf(intx[],intn){intp0,p1,i
阅读下面程序,则执行后的输出结果是______。#include"stdio.h"main(){intx,y,z;x=1;y=2;z=3;if(x>y)if(x>z)printf("%d",x);elseprintf("%d",y)
在执行下述程序时,若从键盘输入6和8,则结果为main(){inta,b,s;scanf("%d%d",&a,&b);S=aif(a<B)s=b;S*=S;printf("%d",s);}
以下程序的功能是:求出数组x中各相邻两个元素的和依次存放到a数组中,然后输出。请填空。main(){intx[10],a[9],I;for(I=0;I
下面程序的运行结果是【】。#include#defineSIZE12main(){chars[SIZE];intI;for(I=0;I
以下程序的运行结果是【】。#includemain(){FILE*fp;inta[10]={1,2,3,0,0},i;fp=fopen("d2.dat","wb");fwtite(a,sizeof(int),5
随机试题
用砂轮机进行手工磨削工件时,下列各项行为中,操作正确的是()。
工程竣工后,由于洪水等不可抗力造成的损坏,承担保修费用的单位是()。
徐先生现年45岁,在一家知名外资企业担任部门经理,每月工资收入为17000元。由于徐先生现住地与上班地点相距较远,加之公司附近小区可能有较好的升值空间,他决定在公司附近再买一套住房。徐先生经过慎重考虑看中了一套总价90万元的二居室新房,为此准备向银行贷款6
心理测验的保密涉及到()。
阅读材料(二)班上有一个文静、可爱的小女生,初一新生刚入学时,她的脸上总洋溢着甜甜的微笑。不久,笑容从她的脸上消失了,她每天默默地坐在位子上,很少言语,对班级的事情漠不关心。起初,我并不在意,认为这是她的性格所致。有一天,我惊异地发现,
20世纪以后的教育特点有:教育的终身化、全民化、民主化、多元化和()。
把下面的六个图形分为两类,使每一类图形都有各自的共同特征或规律,分类正确的一项是:
从1957年开始,我国社会主义建设所坚持的“三面红旗”是指()。
止暴制乱、恢复秩序是香港当前最紧迫的任务。贯彻落实“一国两制”方针,绝不能允许触碰的原则底线是()。
Perhapsthemostastonishingtheorytocomeoutofkinetics,thestudyofbodymovement,wassuggestedbyProfessorRayBirdwhis
最新回复
(
0
)