c语言的一道题

c语言
include<stdio.h>
double f(double x);
main()
{double a=0;int i;
for(i=0;i<30;i+=10) a+=f((double)i);
printf("%5.0f\n",a);
}
double f(double x)
{return x*x+1;}程序运行后的输出结果是( )。
A)503 B)401 C)500 D)1404
选A
不明白f(double x)的意思
还有a+=f((double)i);这句话的意思

选择A.
f(double x)的意思是x为函数f的形式参数。
a+=f((double)i)的意思是将i值转化为double类型后传递个函数f,并将函数运行的结果累加到a值上。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2018-09-11
8 这是递归调用函数!函数返回值通过指针s返回! 6开始,函数返回值为 f(6,*)=f(5,*)+f(4,*) f(5,*)=f(4,*)+f(3,*) f(4,*)=f(3,*)+f(2,*) f(3,*)=f(2,*)+f(1,*) f(2,*)=1;这时候返回,不再继续 f(1,*)=1;这时候返回,不再继续 f(6,*)=5*f(2,*)+3*f(1,*)=5+3=8 错误之处://应为|| 判断了==1,==2,如果刚开始n是0或负值那么函数永远不会返回类似于死循环!
第2个回答  2018-09-11
A)正确先A)——f(double x)是个函数,有一个double型形式参数x。
a+=f((double)i);的意思是a=a+函数f的。本回答被提问者采纳
第3个回答  2018-09-11

选择A.503

第4个回答  2018-09-11
double f(double x),定义函数f,这个是定义函数的标准形式。f(double x)表示定义双精度型形参x。
a+=f((double)x);
每次将函数计算的值累加到a。由于主函数定义的i是整型,而形参类型是双精度,因此需要用(double)将x强制转换为双精度型。
程序执行:1+101+401=503,选A

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网