题目
如果输入 11 和 22 以下程序的执行结果是 ()# include <stdio.h> void swap(int,int);int main(void) ( int a,b; scanf("%d%d",&a,&b); swap(a,b); printf("%d%d",a,b); return 0; ) void swap(int x,int y)( int t; t=x;x=y;y=t;) A 11 11 C 22 11 B 22 22 D 11 22
如果输入 11 和 22 以下程序的执行结果是 ()
# include <stdio.h>
void swap(int,int);
int main(void)
{
int a,b;
scanf("%d%d",&a,&b);
swap(a,b);
printf("%d%d",a,b);
return 0;
}
void swap(int x,int y)
{
int t;
t=x;x=y;y=t;
}
A 11 11
C 22 11
B 22 22
D 11 22
题目解答
答案
答案:D
因为 swap 函数中的 x 和 y 是形参,它们只是 a 和 b 的副本,函数中对它们的修改不会影响到 a 和 b 的值。
解析
步骤 1:输入值
程序首先通过 `scanf` 函数读取两个整数输入,分别为 11 和 22,分别赋值给变量 `a` 和 `b`。
步骤 2:调用 `swap` 函数
程序调用 `swap` 函数,传入 `a` 和 `b` 的值,即 11 和 22。在 `swap` 函数中,`x` 和 `y` 分别被赋值为 11 和 22。
步骤 3:交换 `x` 和 `y` 的值
在 `swap` 函数内部,通过一个临时变量 `t` 来交换 `x` 和 `y` 的值。具体操作为:`t` 被赋值为 `x` 的值(11),然后 `x` 被赋值为 `y` 的值(22),最后 `y` 被赋值为 `t` 的值(11)。此时,`x` 和 `y` 的值分别为 22 和 11。
步骤 4:返回主函数
`swap` 函数执行完毕后,返回到主函数。由于 `swap` 函数中的 `x` 和 `y` 是形参,它们只是 `a` 和 `b` 的副本,函数中对它们的修改不会影响到 `a` 和 `b` 的值。因此,`a` 和 `b` 的值仍然为 11 和 22。
步骤 5:输出结果
程序通过 `printf` 函数输出 `a` 和 `b` 的值,即 11 和 22。
程序首先通过 `scanf` 函数读取两个整数输入,分别为 11 和 22,分别赋值给变量 `a` 和 `b`。
步骤 2:调用 `swap` 函数
程序调用 `swap` 函数,传入 `a` 和 `b` 的值,即 11 和 22。在 `swap` 函数中,`x` 和 `y` 分别被赋值为 11 和 22。
步骤 3:交换 `x` 和 `y` 的值
在 `swap` 函数内部,通过一个临时变量 `t` 来交换 `x` 和 `y` 的值。具体操作为:`t` 被赋值为 `x` 的值(11),然后 `x` 被赋值为 `y` 的值(22),最后 `y` 被赋值为 `t` 的值(11)。此时,`x` 和 `y` 的值分别为 22 和 11。
步骤 4:返回主函数
`swap` 函数执行完毕后,返回到主函数。由于 `swap` 函数中的 `x` 和 `y` 是形参,它们只是 `a` 和 `b` 的副本,函数中对它们的修改不会影响到 `a` 和 `b` 的值。因此,`a` 和 `b` 的值仍然为 11 和 22。
步骤 5:输出结果
程序通过 `printf` 函数输出 `a` 和 `b` 的值,即 11 和 22。