以下程序的输出结果是 f(int b[],int m,int n) { int i,s=0; for(i=m;i<n;i=i+2)s=s+b[i]; return s; } main() { int

admin2010-01-10  16

问题 以下程序的输出结果是    f(int b[],int m,int n)    {  int i,s=0;       for(i=m;i<n;i=i+2)s=s+b;       return s;    }    main()    {  int x,a[]={1,2,3,4,5,6,7,8,9};       x=f(a,3,7);       printf(“%d\n”,x);    }

选项 A、10
B、18
C、8
D、15

答案1

解析 在main()函数中定义了一个变量x,以及一个有9个元素的数组a,并且每个元素分别赋初值为1、2、3、4、5、6、7、8和9。执行函数调用f(a,3,7),把a的首地址赋给形参b,把3和7分别赋给形参m和n。在f()函数中,for循环执行了2次:第一次,i的值为3,相当于执行了语句“s=s+b[3],b[3]的值就是a[3]的值4,故s的值变为4;第二次,i值为5,相当于执行了语句“s=s+b[5];”,b[5]的值6,故s的值变为10。把s作为函数值返回并赋值给x。
转载请注明原文地址:https://kaotiyun.com/show/JLWp777K
0

最新回复(0)