问题 单项选择题

以下程序的输出结果是 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 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

答案

参考答案:A

解析:在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。

单项选择题
选择题