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

admin2022-04-01  23

问题 有下列程序
 #include <stdio.h>
 int a=1;
 int func(int D)
 {  int b=1;
    static int c=1:
    a++;b++;++c;++d;
    returna+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()函数,输出调用后的返回值,第一次调用时,func()函数中a=1,b=1,c=1,d=4,自增后的和返回,返回值为11;第二次调用时,func()函数中a=2,b=1,c=2,d=4,自增后的和返回,返回值为13;第三次调用时,func()函数中a=3,b=1,c=3,d=4,自增后的和返回,返回值为15,本题答案为A。
转载请注明原文地址:https://kaotiyun.com/show/61kp777K
0

最新回复(0)