main( )
{ int x=1, y=2;
fun(&y, &x);
printf("%d %d", x, y);
}
A、2 1 1 2
B、1 2 3 4
C、2 1 4 3
D、1 2 1 2
小菜鸟 自学的 为什么还会有 4,3输出啊
追答首先程序入口是:main( )函数,然后声明了变量x=1, y=2; 下一步fun(&y, &x);程序就会跳转到fun这个函数中去,fun函数中y的地址传递给x,把x的地址传递给y,此时 x=2,y=1; 所以fun函数中输出2,1.然后*x=3;*y=4;给x,y赋值,但是fun(&y, &x);是把y的地址传递给x,把x的地址传递给y),所以运行到x=3;*y=4;时其实主函数main中的x=4,y=3的,然后回到main函数中,输出的就是4,3。
好好研究一下fun函数。
void fun( int *x, int *y)
{
printf("%d %d",*x,*y);
*x=3;
*y=4;
}
...void fun( int *x, int *y) { printf("%d %d",*x,*y);*...
下列程序段的输出结果是:( ).void fun( int *x, int *y){ printf("%d %d",*x,*y);*x=3;*y=4;} main( ){ int x=1, y=2;fun(&y, &x);printf("%d %d", x, y);} 应该选择C fun(&y, &x);把y的地址传递给x,把x的地址传递给y,即运行到printf("%d %d",*x,...
void fun(int *x,int *y) {printf("%d%d", *x=3,*y=4;}
fun(&y,&x); 参数为地址传送,void fun(int *x,int *y)接收的是(x=&y,y=&x) 输出是y x也就是2 1 将地址赋的值更改为*x=3,*y=4;相当于主函数的y=3,x=4.返回主函数输出的是4 3 故最后输出结假果:2143 答案是A
{ printf("%d %d", *x, *y); *x=3; *y=4;}
void fun(int *x, int *y) \/\/调用时是fun(&y,&x),先出入y,后传入x的 { printf("%d %d", *x, *y); *x=3; *y=4;} \/\/*x指向main中的y的地址,*y指向main中的x的地址 所以最后输出2 14 3
2020年计算机二级MySQL考试每日一练(6月28日)
答案:B 4.有以下程序段:int x=3;do {printf("%d",x-=2);)while(!(--x));其输出结果是( )。A.1 B.3 0 C.1 -2 D.死循环 答案:C 5.下列程序的输出结果是( )。void fun(int*X,int y){ printf("%d%d",*x,*y);*x=3;*y=1;} main(){ int x=1,y=2;fun(&...
以下程序段的输出结果是 #include <stdio.h> int fun(int x,int y){...
以下程序段的输出结果是 :8
C语言 以下程序的运行结果为( ) void fun(int n) { if(n) fun(n-1...
先递归,再打印,当n为0的时候结束打印,但0还是会执行后续的输出 于是是从0打印到5 选c
void fun(int x,int y) {x=x+y;y=x-y;x=x-y; printf("%d,%d,",x,y...
结果为:3,2,2,3 void fun(int x,int y)\/\/ 由于这里传入参数不是指针,引用,所以这里x,y只是main函数中x,y值的一个拷贝,所以修改后不会对main中x,y的值有影响。{x=x+y;y=x-y;x=x-y;printf("%d,%d,",x,y);} \/\/ 这里输出:3,2,main(){ int x=2,y=3;fun(x,y);...
{ printf("%d %d", *x, *y); *x=3; *y=4;}
函数fun()的参数传递方式是传递存储单元的地址,因此在fun()函数中,是x->B,y->A,则*x=(B)=2,*y=(A)=1,当运行到*x=3;*y=4时,实际上是令(B)=3,(A)=4。回到main()后,由于主程序中仍然是x->A,y->B的关系,所以此时x=4,y=3 这个问题主要是理解变量的作用域和指针...
以下程序的输出结果是【 】。 void fun(int *a, int *b) { int *k...
结果没变还是3 6 x y分别是指向a b的指针,fun函数只是交换了x y指向指向的地址,不影响a b的值
void fun(int *n) { while((*n)--); printf("%d",++(*n));} void ma...
下列程序的输出结果是__0___原因如下:在main函数中,将&a伪作参数传递给fun(int *n) ,所以指针n指向了a的地址,*n的值即为a的值,也就是100 在fun函数中,while((*n)--);注意,这个while语句后面有一个;分号,所以这一个while循环的作用是:将*n的值循环递减,直到(*n)--的值为0。...