计算机二级 C语言 函数 谢谢!
有以下程序#include<stdio.h>doublef(intn){inti;doubles;s=1.0;for(i=1;i<=n;i++)s+=1.0/i;retu...
有以下程序
#include<stdio.h>
double f(int n)
{ int i; double s;
s=1.0;
for(i=1;i<=n;i++) s+=1.0/i;
return s;
}
main(
{ int i,m=3; double a=0.0;
for(i=0;i<m;i++)a+=f(i);
printf("%f\n",a);
}
程序的输出结果是多少
求详细解释
运算过程 不胜感激 谢谢!! 展开
#include<stdio.h>
double f(int n)
{ int i; double s;
s=1.0;
for(i=1;i<=n;i++) s+=1.0/i;
return s;
}
main(
{ int i,m=3; double a=0.0;
for(i=0;i<m;i++)a+=f(i);
printf("%f\n",a);
}
程序的输出结果是多少
求详细解释
运算过程 不胜感激 谢谢!! 展开
3个回答
展开全部
更多追问追答
追问
n是什么 for语句中必须得<=n才能进行循环可是n是什么 不知道n的值 怎么判别能否进行循环呢?
追答
函数f里面n的值是参数传进来的
而main函数里面用了f(i),那么函数f在运行的时候,n的值就是当时main函数的循环中i的值(但注意只是值相同,并不是同一变量,所以n的值如果在f函数中发生了改变,是无法同时改变main函数中i的值的)
函数f中n的值为0的时候,肯定是没法循环的,因1<=0这个逻辑表达式的结果为逻辑假
函数f中n的值为1的时候,在该函数中就只有i为1的这一次循环,当i++执行后i的值为2时2<=1的值为逻辑假,循环将结束
函数f中n的值为2的时候,在该函数中就会有i为1和2这两次循环,当i的值变为3的时候就会结束
另外,全局函数main中的循环变量i和函数f中的循环变量i完全不是一回事,必须当作两个不同的变量来看待
展开全部
如果D选项的逗号不是你疏忽而漏掉的话
A、编译错误,“字符串”,传递参数的不匹配
B、编译错误,返回类型的错误,void函数是没有返回值的
C、传递给fun函数的为'5'和2.8
D、没有逗号,编译错误,如果有逗号的话,ch的值为ACSII码为32的字符
A、编译错误,“字符串”,传递参数的不匹配
B、编译错误,返回类型的错误,void函数是没有返回值的
C、传递给fun函数的为'5'和2.8
D、没有逗号,编译错误,如果有逗号的话,ch的值为ACSII码为32的字符
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2015-01-28
展开全部
#include<stdio.h>
double f (int n)
{
int i;
double s;
s=1.0;
for(i=1;i<=n;i++) 循环n次
s+=1.0/i; s=s+1.0/i s=s+1.0除以i
return s;
}
main(
{
int i, m=3;
double a=0.0;
for(i=0;i<m;i++)
a+=f(i); a=a+f(i) f(i)调用上面的函数,i即为上面的n
printf("%f\n",a);
}
具体运算结果自己试试
double f (int n)
{
int i;
double s;
s=1.0;
for(i=1;i<=n;i++) 循环n次
s+=1.0/i; s=s+1.0/i s=s+1.0除以i
return s;
}
main(
{
int i, m=3;
double a=0.0;
for(i=0;i<m;i++)
a+=f(i); a=a+f(i) f(i)调用上面的函数,i即为上面的n
printf("%f\n",a);
}
具体运算结果自己试试
追问
n是什么 for语句中必须得<=n才能进行循环可是n是什么 不知道n的值 怎么判别能否进行循环呢?
追答
f是一个函数,参数时n,当a+=f(i)时调用f函数,其中的参数是i,例如:当i=2, a+=f(i)运行时,由于f(2)不知道是什么,这时调用函数double f (int n) ,其中n为2,进行循环,这里面的n控制循环次数,即循环2次。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询