以下程序的运行结果是______

来源:百度知道 编辑:UC知道 时间:2024/06/28 11:59:21
int x1=30,x2=40;
main()
{int x3=10,x4=20;
sub(x3,x4);
sub(x2,x1);
printf("%d,%d,%d,%d\n",x3,x4,x1,x2);
}

sub(int x;int y)
{x1=x;
x=y;
y=x1;
}

请高手帮忙怎么选择?
并做适当的解释,本人的基础不是很好!!!

有几处错误我帮你改了
10,20,40,40

#include<stdio.h>
void sub(int x,int y);
int x1=30,x2=40;
main()
{int x3=10,x4=20;
sub(x3,x4);
sub(x2,x1);
printf("%d,%d,%d,%d\n",x3,x4,x1,x2);
}

void sub(int x,int y)
{x1=x;
x=y;
y=x1;
}

你的程序有点问题,我帮你改了一下!!
#include<stdio.h>
void sub(int x,int y);
int x1=30,x2=40;
void main()
{int x3=10,x4=20;
sub(x3,x4);
sub(x2,x1);
printf("%d,%d,%d,%d\n",x3,x4,x1,x2);
getch();
}

void sub(int x,int y)
{x1=x;
x=y;
y=x1;
}

程序的运行结果是:10,20,40,40.
程序必须包含头文件,函数调用之前要先声明,
第一次调用sub函数的时候只是x3,x4的值传给x,y,但是有主函数中x3,x4的值本身是没变的,可是要注意x1,x2是全局变量,所以此时x1被x3赋值为10;第二次调用的时候,本来对x1,x2的值是没有影响的,但是x1被x2赋值,故最终结果为x1等于40.
你可以试着用我这种方法分析一下每次调用后的值的变化.
#include<stdio.h>
void sub(int x,int y);
int x1=30,x2=40;
void main()