C语言选择题23?

来源:百度知道 编辑:UC知道 时间:2024/06/23 07:34:50
23.以下程序的输出结果是( )
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主函数调用函数f
m赋值为3,n赋值为7
for循环两次终止
第一次循环所得s=0+a[3]=0+4=4
第二次循环s=4+a[5]=4+6=10
循环结束,返回s

答案A,原因:main函数调用f(),把a,3,7传给f(),使b[]=a[],m=3,n=7.然后执行for循环,i可以取两个数,3和5.第一次,s=0+b[3]=4;第二次,s=4+b[5]=10,最后把s返回给x,输出10

A函数应该不要去解释拉
就是FOR循环的问题把
步长为2,X=F(A,3,7)
代到函数中时,M=3,N=7,取的数字是A〔3〕=4,A〔5〕=6,A〔7〕取不到的!所以是S=4+6=10;