首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
以下给定程序中,函数fun的功能是:判断输入的任何一个正整数n,是否等于某个连续正整数序列之和。若是,则输出所有可能的序列。否则输出“不能分解”。 例如:当输入100时,输出: 100=9+10+11+12+13+14+15+16 100
以下给定程序中,函数fun的功能是:判断输入的任何一个正整数n,是否等于某个连续正整数序列之和。若是,则输出所有可能的序列。否则输出“不能分解”。 例如:当输入100时,输出: 100=9+10+11+12+13+14+15+16 100
admin
2020-01-10
59
问题
以下给定程序中,函数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/vHCp777K
本试题收录于:
二级C语言题库NCRE全国计算机二级分类
0
二级C语言
NCRE全国计算机二级
相关试题推荐
下列程序定义了N×N的二维数组,并在主函数中自动赋值。请编写函数fun(inta[][N],intin),该函数的功能是使数组右上半三角元素中的值乘以m。例如,若m的值为2,a数组中的值为:则返回主程序后a数组中的值应为:注意:部分源程序在文
以下选项中与if(a=1)a++;elsea=b;语句功能不同的语句是()。
有以下程序#include<stdio.h>intfun(inta,intb){if(b==0)returna;elsereturn(fun(--a,--b));}main()
运行下面的程序,输入字符串“MicrosoftVisualStudio”,则程序的执行结果是()。#include<stdio.h>main(){charChr[20];scanf(’’%s’’,&Ch
若变量已正确定义,以下选项中非法的表达式是
以下函数按每行8个输出数组中的数据:voidfun(int*w,intn){inti;for(i=0;i<n;i++){_______________printf("%d",w
线性表的长度为n。在最坏情况下,比较次数为n一1的算法是
在数据库设计中,将E—R图转换成关系数据模型的过程属于
算法应当具有的特性不包括()。
随机试题
世界上没有哪个国家不主张爱国,没有哪个国家的人民不把爱国主义当作伟大的精神品格而加以敬仰和推崇。爱国主义是()
治疗较小的淋巴外渗时,在波动明显处用注射器抽出淋巴液后再注入
有关动物病理剖检,下列描述错误的是()。
A.甲硝唑B.双氯芬酸C.磺胺甲噁唑D.西咪替丁E.灰黄霉素食醋可使药物溶解度降低、析出结晶对尿路产生刺激性的药品是()。
项目融资的特点有()。
职工的福利基金按照职工工资总额的()提取。
中国公民景某2013年1~12月的收入情况如下:(1)每月取得工资4500元,其中5月份通过民政部门向农村义务教育捐赠4000元。(2)当年装修房屋提取住房公积金45000元。(3)7月1日起将市区内闲置的一处商铺出租,租期1年,每
针对注册会计师完成内部控制审计工作后所出具的内部控制审计报告,以下说法中,恰当的有()。
标志着无产阶级登上历史舞台的三大工人运动是()。
WhatdoAmericanparentsexpecttheirchildrentoacquireinschool?Emerson,accordingtothepassage,isprobablya(n)______
最新回复
(
0
)