问题 填空题

有以下程序; int a=2; int f(int *A) {return(*A) ++;} main() { int s=0; { int a=5; s+=f(&A) } s+=f(&A) printf("%d\n",s) } 执行后的输出结果是 【8】

答案

参考答案:G

解析: 如果局部变量与全局变量重名,在局部变量的作用域,全局变量不起作用。所以在main函数中第一次调整函数f时a=5得s=5,第二次调用函数f时a=2得s=5+2=7。函数f在执行语句return(*A) ++时首先返回*A,然后将*A的值加1。

多项选择题
单项选择题 A1/A2型题