若有程序fun(int a, int b){ static int c=0; c+=a+ b; returm c;}main(){ int x=5,y=3,z=7,r; r=fun((y, x+ y),z); r=fun

admin2009-01-15  24

问题 若有程序fun(int a, int b){    static int c=0;    c+=a+ b;    returm c;}main(){    int x=5,y=3,z=7,r;    r=fun((y, x+ y),z);    r=fun (x, y);    printf("%d\n", r);}

选项 A、23
B、15
C、19
D、18

答案1

解析 static声明的外部变量只限于被本文引用,而不能被其他文件引用。用static来声明一个变量的作用有:①对局部变量用static声明,则为该变量分配的空间在整个程序执行期间始终存在;②全部变量用static声明,则该变量的作用域只限于本文件模块(即被声明的文件中)。调用第一个fun,其两个实参的值为(3,5+3)与7即8与7,在函数fun执行结束返回15。第二次调用fun时,由于static为静态类型,其值保留,执行fun(5,3)后,其返回值为23,故选A。
转载请注明原文地址:https://kaotiyun.com/show/tTXp777K
0

最新回复(0)