以下程序运行后的输出结果是【 】 #include <stdio, h> fun( int a) { int b = 0; static int c = 3; b++;c++; return(a + b + c); } main(

admin2013-02-23  19

问题 以下程序运行后的输出结果是【  】  
#include <stdio, h> fun( int a)
{   int b = 0; static int c = 3;
    b++;c++;
    return(a + b + c);
}
main( )
    int i,a = 5;
    for(i =0;i <3;i ++ ) prinff("% d% d" ,i,fun(a) );
    printf(" \n" );
}

选项

答案10111212

解析 用static关键字声明的变量称为静态局部变量。静态局部变量只在编译时赋一次初值,以后再次调用函数时不再重新赋初值,而是保留上次函数调用结束时的值。程序中的变量 c为静态变量,当再次调用fun函数时,变量c不再被赋初值,变量c的值为上次调用fun函数时所保留下来的值,具体在程序运行过程中的体现如下:
当i=0时,第一次调用fun(5),这时a=5,b=0,c=3,执行b++,c++,得到b=1,c=4,则 a+b+c=10,返回主函数输出010;当i=1时,第二次调用fun(5),这时a=5,b=0,c=4,执行b++,c++,得到b=1,c=5,则a+b+c=11,返回主函数输出111;当i=2时,第三次调用 fun(5),这时a=5,b=0,c=5,执行b++,c++,得到b=1,c=6,则a+b+c=12,返回主函数输出212;当i=3时,循环结束,所以输出结果为:010111212。
转载请注明原文地址:https://jikaoti.com/ti/FUB0FFFM
0

最新回复(0)