单选题 以下程序的输出结果是______。
#include<stdio.h>
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.
B.
C.
D.
【正确答案】 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的值仍不变。