下面程序的输出结果是( )。 #include "stdio.h" fun (x int x { int y=0; static int z=5; z=x++,y++; return(Z); }

admin2010-05-22  34

问题 下面程序的输出结果是(  )。    #include "stdio.h"    fun  (x    int x    {  int y=0;    static int z=5;    z=x++,y++;    return(Z);    }    main()    {  int a=4,i,j;       for(i=0;i<2;i++)       j=fun(a++);       printf("%d",j);    }

选项 A、0
B、3
C、4
D、5

答案8

解析 本题在fun()函数中定义了一个静态局部变量z,在第一次调用此函数时,z被初始化为5,而以后的调用2都会保留上次调用后的值。主函数通过一个for循环,二次调用fun()函数,第1次调用实参表达式a++的值为4,执行z=x++,y++;语句,因运算符“=”的优先级高于“,”,故z的值为表达式x++的值,x++是先对z赋值再对x加1,则z的值为4。第二次调用实参表达式a++的值为5,返回结果也为5,所以最后输出结果是5。D为所选。
转载请注明原文地址:https://kaotiyun.com/show/AVWp777K
0

最新回复(0)