有以下程序 #include int b=2; int fun(int *k ) { b=*k+b; return(B); } main() { int a[10]={1,2,3,4,5,6,7,8}, i; for(i=2;i

admin2015-07-31  32

问题 有以下程序
#include
int  b=2;
int fun(int *k )
{  b=*k+b; return(B); }
main()
{  int a[10]={1,2,3,4,5,6,7,8}, i;
for(i=2;i<4;i++) {b=fun(&a)+b; printf("%d ",b);}
printf("\n");
}
程序运行后的输出结果是

选项 A、8  10
B、10  28
C、10  12
D、10  16

答案B

解析 主函数中循环执行2次,fun函数被调用2次?b是全局变量,整个程序均可使用?第1次调用:fun(&a[2]),形参指针k获得a[2]的地址,则*k为a[2]的值?返回值:b=a[2]+2=3+2=5;主程序中:b=fun(&a[2])+b=5+5=10;第2次调用:fun(&a[3]),返回值:b=4+10=14;主程序中:b=fun(&a[3])+b=14+14=28?因此B选项正确。
转载请注明原文地址:https://jikaoti.com/ti/3Oi0FFFM
0

最新回复(0)