全部问题 > 当前问题

有大神能解释一下吗??这题看不懂诶

莹莹 2015-8-26 17:06:14

共 9 个回答

嘿嘿大人 2015-8-26 17:09:21

执行fun1时将5,6传入fun1输出了5,6,执行fun2时给ab赋值分别为3和4,回到主函数输出,3,4,所以输出结果是5634

小太阳 2015-8-26 17:11:46

从主函数看起,首先fun1(5,6)调用,所以fun1函数中,输出a、b的值是5、6;再看主函数,fun2()调用,再看fun2,输出3,4

最佳答案

lucas 2015-8-26 17:11:58

函数fun1的功能是 输出a,b的值。

函数fun2的功能是 改变a,b的值。

执行fun1(5,6)是输出56

执行fun2()后,将a=3,b=4.


莹莹 2015-8-26 17:15:16

回复 嘿嘿大人:是先看

main()

{ fun1(5,6); fun2(); 

 printf("%d%d\n",a,b);

}

然后要输出a,b所以回到

void fun1(int a, int b)

{ printf("%d%d",a,b); }

先算

fun1(5,6)

所以a=5,b=6

是这样吗

莹莹 2015-8-26 17:16:49

回复 lucas:明白了,谢谢

莹莹 2015-8-26 17:17:06

回复 小太阳  

嘿嘿大人 2015-8-26 17:17:36

所有函数都只能从主函数main开始看,看到调用哪个函数就跳转到那个函数的定义里面去执行,这道题先写的是fun1,所以先执行fun1然后执行完毕后跳转回主函数,此时又要调用fun2,又跳转到fun2里面去执行赋值语句,然后跳回主函数,执行printf语句

莹莹 2015-8-26 17:19:25

回复 嘿嘿大人:嗯嗯,明白咯

嘿嘿大人 2015-8-26 17:28:08

回复 莹莹:明白就好,嘿嘿

问题来自: 形参和实参
有以下程序:
#include <stdio.h>
int a=1,b=2;
void fun1(int a, int b)
{ printf("%d%d",a,b); }
void fun2()
{ a=3; b=4; }
main()
{ fun1(5,6); fun2();
  printf("%d%d\n",a,b);
}
程序运行后的输出结果是 ______ 。
A. 1256
B. 5634
C. 5612
D. 3456
答案:B
解析:fun1输出的是形参a、b,所以输出56;fun2赋值的是全局变量a、b,在一个源文件中,全局变量被“屏蔽”,所以最后输出34。连在一起是5634。因此选B。