首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
数列中,第一项为3,后一项都比前一项的值增5。下列给定程序中,函数fun()的功能是:计算前n(4≤n≤50)项的累计和。在累加过程中把那些被4除后余2的当前累加值放入数组中,符合此条件的累加值的个数作为函数值返回主函数里。如,当n的值为20时,该数列为3
数列中,第一项为3,后一项都比前一项的值增5。下列给定程序中,函数fun()的功能是:计算前n(4≤n≤50)项的累计和。在累加过程中把那些被4除后余2的当前累加值放入数组中,符合此条件的累加值的个数作为函数值返回主函数里。如,当n的值为20时,该数列为3
admin
2013-06-12
54
问题
数列中,第一项为3,后一项都比前一项的值增5。下列给定程序中,函数fun()的功能是:计算前n(4≤n≤50)项的累计和。在累加过程中把那些被4除后余2的当前累加值放入数组中,符合此条件的累加值的个数作为函数值返回主函数里。如,当n的值为20时,该数列为3,8,13,18,23,28,…, 93,98。符合此条件的累加值应为42,126,366,570,1010。
请改正程序中的错误,使它能得出正确的结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。
试题程序:
# include <stdio. h>
# define N 20
int fun(iht n, int *a)
/*************found*************/
{ int i, j, k, sum;
sum=0;
for(k=3, i=0;i<n; i++, k+=5)
{ sum=sum+ k;
/************found***************/
if (sum%4=2)
a [j++] =sum;
}
/*************found**************/
return j;
}
main ( )
{ int a[N],d, n, i;
printf("\nEnter n(4<=n<=50): ");
scanf("%d", &n);
d=fun(n, a);
printf("\n\n The result :\n ");
for(i=0;i<d; i++) printf("%6d ",a
);
printf("\n\n ");
}
选项
答案
(1)错误:int i, j, k, sum; 正确:int i, j=0,k,sum; (2)错误:if(sum%4=2) 正确:if(sum%4=2) (3)错误:return j; 正确:return j++;
解析
按照老办法,我们先看数学思路,该题是一个公差为5的等差数列,简单吧,要是用数学的办法解决也就是一个公式两个符号,迎刃而解,所以这样很有规律的等差数列前n项和用C语言来求的话,也相当简单,关键看细节! i,k, sum 都分别定义了,那j呢?所以,正确的应该是int i,j=0,k,sum;,再往下看,if(sum%4=2)是在说明题干中“在累加过程中把那些被4除后余2的当前累加值放入数组中,符合此条件的累加值的个数作为函数值返回主函数”,那么“余2”的表示方法呢?不用看就知道应该是if(sum%4==2),后面的返回错误就不提了吧,看看a[j++]=sum;语句,难道还能返回给j吗?
转载请注明原文地址:https://kaotiyun.com/show/crJp777K
本试题收录于:
二级C语言题库NCRE全国计算机二级分类
0
二级C语言
NCRE全国计算机二级
相关试题推荐
以下正确的数组定义语句是______。
已知指针p的指向如下图所示,则执行语句“--p;”后p的值是______。
以下程序中,函数SumColumMin的功能是:求出M行N列二维数组每列元素中的最小值,并计算它们的和值。和值通过形参传回主函数输出。请填空。#defineM2#defineN4voidSumColumM
有以下程序 #include <stdio.h> main() { FILE *fp1; fp1=fopen("f1.txt","w"); fprintf(fp1,"abc"); fclose(fp1); } 若文本文件f1.txt中原有内容为:good,
串的长度是______。
以下程序中,fun()函数的功能是求3行4列二维数组每行元素中的最大值,请填空。voidfun(int,int,int(*)[4],int*);main(){inta[3][4]={{12,41,36,28},{19,33
以下函数返回a所指数组中最小值所在的下标值。请完善下列程序。fun(int*a,intn){inti,j=0,p;p=j;for(i=j;i<n;i++)if(a[i]<a[p]______;retu
以下程序的功能是:输出a、b、c三个变量中的最小值。#include<stdio.h>main(){inta,b,c,t1,t2;scanf("%d%d%d"
读取二进制文件的函数调用形式为:fread(buffer,size,count,fp);,其中buffer代表的是
随机试题
A、经尿道肿瘤切除术B、膀胱部分切除术或全切术C、两者均有D、两者均无T1期膀胱肿瘤的手术方法______。
A.半夏B.天南星C.白芥子D.川贝母E.桔梗
(2006年)热力学中常用的状态参数有()。
甲公司为上市公司,该公司内部审计部门在对其2016年度财务报表进行内审时,对以下交易或事项的会计处理提出疑问:(1)2016年3月31日,甲公司与丙公司签订合同,自丙公司购买不需安装的设备供管理部门使用,合同价款为6000万元,该设备当日运抵甲公司并投入
格式条款是当事人为了重复使用而预先拟定,并在订立合同时未与对方协商的条款。关于格式条款,下列说法错误的是()。
我们每一个人生来都是一样_______的,而且在我们的身上还随带着很多不好的东西。譬如我们每一个人都爱争强斗狠,但是又爱贪懒好闲,这便种下了_______的种子。填入横线部分最恰当的一项是()。
明朝科举考试规定只能在四书五经中命题。其中,五经是()。
1883年,由普列汉诺夫在瑞士日内瓦创立的俄国第一个马克思主义团体是()。
A、 B、 C、 D、 A
(1)打开表单one,向其中添加一个组合框(Comb01),并将其设置为下拉列表框。(2)在表单one中,通过RowSource和RowSourceType属性手工指定组合框Comb01的显示条目为“上海”、“北京”(不要使用命令指定这两个属性)。(3
最新回复
(
0
)