首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
数列中,第一项为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
30
问题
数列中,第一项为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全国计算机二级
相关试题推荐
若已定义: int a[]={0,1,2,3,4,5,6,7,8,9},*p=a,i; 其中0≤i≤9,则对a数组元素不正确的引用是______。
有以下程序 main() { int x[]={1,3,5,7,2,4,6,0),i,j,k; for (i=o; i<3; i++) for(j=2;j>=i;j--) if(x[j+1]>x[j]){k=x[j]; x[j]=x(j+1); x[j+1
若按功能划分,软件测试的方法通常分为白盒测试方法和______测试方法。
给定程序MODI1.C中函数Creatlink的功能是创建带头结点的单向链表,并为各结点数据赋0~m-1的值。#include<Stdio.h>#include<conio.h>#include<stdlib.h>typed
语句printf("a\bhow\’s\\\bhe\n");的输出结果是______。(说明:’b’是退格符)
在一个顺序存储的循环队列中,队头指针指向队头元素的______。
若有以下定义:inta[8];则a数组元素的下标上限为______,下限为______。
以下程序中,fun()函数的功能是求3行4列二维数组每行元素中的最大值,请填空。voidfun(int,int,int(*)[4],int*);main(){inta[3][4]={{12,41,36,28},{19,33
以下程序中函数f的功能是在数组x的n个数(假定n个数互不相同)中找出最大最小数,将其中最小的数与第一个数对换,把最大的数与最后一个数对换。请填空。#include<stdio.h>voidf(intx[],intn){
读取二进制文件的函数调用形式为:fread(buffer,size,count,fp);,其中buffer代表的是
随机试题
“虎落平阳遭犬欺”啊,这种心理防御机制中属于
婴儿体内较年长者含水相对较多,主要增多部分为
肝硬化患者出现血性腹水,但无腹痛及发热,应首先考虑
枕叶肿瘤所致精神障碍的最特定的症状是
对于合同执行者而言,合同跟踪的对象有()。索赔费用的计算方法有()。
已知A、B两地之间有铁路、公路、民航等多种运输方式。假设在去年4月份,A、B两地间民航票价下降10%,当月该线路民航运量上升5%,A、B两地间铁路运量下降4%。则去年4月份A、B两地间铁路、民航运输需求的交叉弹性系数为()。
从公司角度考虑,公司应该多留留存收益,减少发放股利,这样有利于股东财富最大化。()
当期档案是指那些记录内容经常变化,只供当期审计使用的审计档案。 ( )
在下列关系运算中,不改变关系表中的属性个数但能减少元组个数的是
A、Alotofexperienceinthefield.B、Muchcontactwithnewly-openedcompanies.C、Agoodmanneroftalkingwithothers.D、Interp
最新回复
(
0
)