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å¼ä¸ã
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的。本回答被提问者采纳
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
a+=f((double)x);
每次将函数计算的值累加到a。由于主函数定义的i是整型,而形参类型是双精度,因此需要用(double)将x强制转换为双精度型。
程序执行:1+101+401=503,选A