有以下程序
    


#include <stdio.h>
int b=2;
int fun(int *k )
{ b=*k+b;
return (b);
}
int main()
{
int a[10]={1,2,3,4,5,6,7,8}, i;
for(i=2;i<4;i++)
{
b=fun(&a[i])+b;
printf("%d ",b);
}
printf("\n");
return 0;
}

程序运行后的输出结果是


啊啊啊

【每日一题】循环_留言板

啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊阿啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊


做完再看答案~~


啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊阿啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊



【答案】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选项正确。


【程序运行】

【每日一题】循环_程序运行_02



【运行过程】

【每日一题】循环_留言板_03


留言板