在GATE CS考试中提出了以下问题。
null
1.使用C语言(GATE CS 2002) a) 当前激活记录和主服务器的激活记录之间最多存在一条激活记录 b) 当前激活记录和main的激活记录之间的激活记录数取决于实际的函数调用顺序。 c) 全局变量的可见性取决于实际的函数调用顺序。 d) 递归要求在调用递归函数之前,将递归函数的激活记录保存在不同的堆栈上。
答复(b) a) –>在C语言中没有这样的限制 b) 是的 c) –>错。在C语言中,变量的作用域是静态的,而不是动态的。 c) –>错。激活记录存储在同一堆栈上。
2、考虑下面的C程序。
# include <stdio.h> # define print(x) printf ("%d", x) int x; void Q( int z) { z += x; print(z); } void P( int *y) { int x = *y+2; Q(x); *y = x-1; print(x); } main( void ) { x=5; P(&x); print(x); getchar (); } |
该程序的输出为(GATE CS 2003) a) 1276年 b) 22 12 11 c) 14 6 6 d) 766
答复(a)
注意main()和Q()正在访问全局变量x。在P()内部,指针变量y也保存全局变量x的地址,但P()中的x是它自己的局部变量。
请看 门角 所有上一年的论文/解决方案/解释、教学大纲、重要日期、笔记等。
如果您发现任何答案/解释不正确,或者您想分享有关上述主题的更多信息,请发表评论。
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END