以下程序的输出结果是( )。 #inc1ude void prt (int*x,int *y,int *z) {printf("%d,%d,%d\n",+++x,++*y,*(z++));} main() {

admin2020-01-10  15

问题 以下程序的输出结果是(    )。
    #inc1ude
    void prt (int*x,int *y,int *z)
    {printf("%d,%d,%d\n",+++x,++*y,*(z++));}
    main()
    {int a=10,b=40,c=20;
    prt (&a,&b,&c);
    prt (&a,&b,&c);)

选项 A、11,42,31
B、11,41,2012,22,41
    12,42,20
C、11,21,40
D、11,41,2111,21,21
    12,42,22

答案B

解析 本题考查的是函数参数的传递及自加运算符。主函数中第一次调用函数“pr (&a,&b,&c); ”,此函数申的输出语句“printf("%d,%d,%d\n",++*x,++*y,*(z++));”使得a和b的值均加1,而“*(z++)”由于先执行“z++”所以c的值不变;第二次调用函数“prt (&a,&b,&c); ”使得a和b在上一次的基础上再各自加1(因为形参和实参进行的是地址传递),而c的值仍不变。
转载请注明原文地址:https://kaotiyun.com/show/CUCp777K
0

最新回复(0)