A-A+

有以下程序 intd=1; yoidfun(intP) { intd=5: d+=p++;

2022-08-12 19:00:35 问答库 阅读 197 次

问题详情

有以下程序 intd=1; yoidfun(intP) { intd=5: d+=p++; printf(%d,d);) main(){ inta=3: fun(a); d+=a++: printf(%dn,d);} 程序的输出结果是
A.96
B.94
C.84
D.85

请帮忙给出正确答案和分析,谢谢!

参考答案

正确答案:C
代码考查点为全局变量和局部变量的同名问题,若全局变量和某个函数中的局部变量同名,则在该函数中,此全局变量被屏蔽,在该函数内,访问的是局部变量,与同名的全局变量不发生任何关系。主函数执行。fun(3)时候,执行调用函数fun,使用局部变量d=5,执行d+=p++,相当于d:d+(p++),得到d的值为8,输出。函数调用结束,转到主函数,继续执行d+=a++,此时d为全局变量,执行语句以后,d值为4。

考点:程序