以下程序的输出结果是( )。 #include<stdio.h> void prt(int *x,int *y,int *z) {printf("%d,%d,%d\n",++*x,++*y,*(z++));) m

admin2021-02-25  14

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

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

答案B

解析 本题考查的是函数参数的传递及自-力口运算符。主函数中第一次调用函数prt(&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/11tp777K
0

最新回复(0)