有如下程序  #include<stdio.h>  int sum(int dat A)   {   static int init=1;   return data +=init++;  }  main()  {   int i;   f

admin2022-10-24  19

问题 有如下程序
 #include<stdio.h>
 int sum(int dat A)
  {
    static int init=1;
    return data +=init++;
 }
 main()
 {
    int i;
    for(i=1;i<=3;i++)
     printf("%d,",sum(i));
 }
 程序运行后的输出结果是(          )。

选项 A、1,3,5,
B、1,2,3,
C、2,3,4,
D、2,4,6,

答案D

解析 程序中的sum函数定义了一个静态局部变量init,在整个程序的运行期间,init都占据着存储单元,即使退出函数,下一次再进入函数时,init仍保留着上一次调用时使用的值。所以main函数中,for循环3次调用函数sum,每次调用后,init的值都自增1。当i=1时,data=1,init初值为1,sum函数返回2,init自增为2;当i=2时,data=2,init为2,sum函数返回4,init自增为3;当i=3时,data=3,init为3,sum函数返回6。综上,程序输出“2,4,6,”。故本题答案为D选项。
转载请注明原文地址:https://jikaoti.com/ti/ynd0FFFM
0

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