当前位置: 首页 > 问题分类 > 计算机类考试 > 软考中级 > 问题详情
问题

有一段C程序如下,执行后,其运行结果为(52)。 int f(int a){ auto int b = 0; static int c = 3; b ++; c++; return(a+b+c); } main(){ int a=2,i; for(i=0; i3; i++)printf("%d, ",f(a)); }

A.7,8,9,

B.7,7,7,

C.6,7,8,

D.9,8,7,

参考答案
正确答案:A
解析:本题考查考生对C语言中动态存储变量和静态存储变量的理解。本题中函数f内的变量b属于动态存储类型,在函数调用开始时分配动态存储空间,函数结束时释放该空间;变量c为静态存储类型,在静态存储区内分配存储单元,在整个运行期间都不释放。在第一次调用f函数时,b的初值为0,c的初值3,第一次调用结束时,b=1,c=4,a+b+c=7,由于c是局部静态变量,在函数调用结束后,它并不释放,仍保留为4。在第二次调用f函数结束时,b=1,c=5,a+b+c=8;在第三次调用f函数结束时,b=1,c=6,a+b+c=9。所以,该段C程序执行后,运行结果为“7,8,9,”。
您可能感兴趣的试题
  • 有一段C程序如下,执行后,其运行结果为(52)。int f(int a){autoint b = 0;staticint c = 3;b ++; c

    有一段C程序如下,执行后,其运行结果为(52)。 int f(int a){ auto int b = 0; static int c = 3; b ++; c++; return(a+b+c); } main(){ int a=2,i; for(i=0; i3; i++)printf("%d, ",f(a)); }

    A.7,8,9,

    B.7,7,7,

    C.6,7,8,

    D.9,8,7,

  • 有一段C程序如下,执行后,其运行结果为(52)。int f(int a){autoint b = 0;staticint c = 3;b ++; c

    有一段C程序如下,执行后,其运行结果为(52)。 int f(int a){ auto int b = 0; static int c = 3; b ++; c++; return(a+b+c); } main(){ int a=2,i; for(i=0; i3; i++)printf("%d, ",f(a)); }

    A.7,8,9,

    B.7,7,7,

    C.6,7,8,

    D.9,8,7,

  • 有一段C程序如下,执行后,其运行结果为(52)。int f(int a){autoint b = 0;staticint c = 3;b ++; c

    有一段C程序如下,执行后,其运行结果为(52)。 int f(int a){ auto int b = 0; static int c = 3; b ++; c++; return(a+b+c); } main(){ int a=2,i; for(i=0; i3; i++)printf("%d, ",f(a)); }

    A.7,8,9,

    B.7,7,7,

    C.6,7,8,

    D.9,8,7,

  • 有一段C程序如下,执行后,其运行结果为(52)。int f(int a){autoint b = 0;staticint c = 3;b ++; c

    有一段C程序如下,执行后,其运行结果为(52)。 int f(int a){ auto int b = 0; static int c = 3; b ++; c++; return(a+b+c); } main(){ int a=2,i; for(i=0; i3; i++)printf("%d, ",f(a)); }

    A.7,8,9,

    B.7,7,7,

    C.6,7,8,

    D.9,8,7,

×
验证