有以下程序 #include<stdio.h> void fun(int*a,int*B) { int*c; c=a;a=b;b=c; } main()

admin2009-09-28  28

问题 有以下程序         #include<stdio.h>         void fun(int*a,int*B)         { int*c;           c=a;a=b;b=c;         }         main()         {  int x=3, y=5,*p=&x, *q=&y;            fun(p,q); printf("%d,%d,",*p,*q);            fun(&x,&y); printf(" %d,%d\n",*p,*q);         }         程序运行后的输出结果是______。         

选项 A、3,5,5,3
B、3,5,3,5
C、5,3,3,5
D、5,3,5,3

答案B

解析 本题主要考查的是函数的实参和形参之间的传递关系,C语言中实参变量和形参变量之间的数据传递是单向的“值传递”方式。指针变量作函数参数也要遵循这一规则。调用函数不可能改变实参指针变量的值。所以x和y的地址并没有改变,即p和q也没有改变,因此,选项B是正确的。
转载请注明原文地址:https://jikaoti.com/ti/1HI0FFFM
0

最新回复(0)