问题 单项选择题

有以下程序:
#include <stdio.h>
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)

执行后的输出结果是( )。

A) 10
B) 9

C) 7

D) 8

答案

参考答案:C

解析: 在一个函数内部定义的变量是内部变量,它只在本函数范围内有效,也就是说只有在本函数内才能使用这些变量。对于main函数中的{int a=5;s+=f(&a);},a只在花括号内有效。在函数之外定义的变量称为外部变量,外部变量是全局变量,它的有效范围是从定义该变量的位置开始到本源文件结束。程序开头的定义int a=2;使a成为全局变量,main函数中第二个s+ =f(&a);语句中的a就是这个全局变量。

选择题
单项选择题