有下列程序  #include<stdio.h>  int a=1;  int func(int d)  { int b=1;   static int c=1:   a++;b++;++c;++d;   return a+b+c+d:  }

admin2022-10-24  22

问题 有下列程序
 #include<stdio.h>
 int a=1;
 int func(int d)
 {  int b=1;
    static int c=1:
    a++;b++;++c;++d;
    return a+b+c+d:
 }
 main()
 {  int k,a=4;
    for(k=0;k<3;k++)
     printf("%d,",func(a));
 }
 程序执行后的输出结果是(          )。

选项 A、11,13,15,
B、11,12,13,
C、11,14,17,
D、11,15,19,

答案A

解析 程序中定义了全局变量a,初值为1。func函数中定义了局部变量b和静态局部变量c,初值都为1,并将全局变量a、局部变量b、静态局部变量c、参数d的值都自增1,然后返回它们的和。main函数定义局部变量a,初值为4,在main函数作用域中,局部变量a屏蔽全局变量a。for循环3次调用func函数,输出调用后的返回值。第1次调用时,func函数中a=1,b=1,c=1,d=4,自增后的和返回,返回值为11;第2次调用时,func函数中a=2,b=1,c=2,d=4,自增后的和返回,返回值为13;第3次调用时,func函数中a=3,b=1,c=3,d=4,自增后的和返回,返回值为15。故本题答案为A选项。
转载请注明原文地址:https://jikaoti.com/ti/Ond0FFFM
0

相关试题推荐
最新回复(0)