HM052 换了形参

HM052 换了形参

HM052 换了形参

来源: 第 52 集 函数-值传递

难度: 入门

时间限制: 1s

空间限制: 64MB

题目描述

值传递指的是:调用函数时,实参把自己的数值拷贝给形参。目前所学的传递方式都是值传递。

值传递有一条必须记住的性质:形参里发生任何改变,都不会影响实参。因为实参 \(a\)、\(b\) 在内存里各有一份空间,形参 number1number2 是另外两份空间;调用时只是把 \(a\) 的值抄给 number1、把 \(b\) 的值抄给 number2。函数里再用临时变量把两个形参对调,改的只是这两份拷贝,外面的 \(a\)、\(b\) 从头到尾都不变。

请定义无返回值的函数 swapNumber:返回类型写成 void,表示不需要返回值。void 函数里不要写 return 100 这种带值的返回,类型对不上;可以写单独的 return;,也可以什么都不写。函数体内先用临时变量交换两个形参,再输出交换后的形参。

读入实参 \(a\)、\(b\)。先输出调用前的实参,再调用交换函数(函数内输出交换后的形参),最后再输出调用后的实参。你会看到外面两个数没有被换走。

输入格式

一行两个整数 \(a\)、\(b\)(\(-10^9 \le a,b \le 10^9\))。

输出格式

共三行,每行两个整数,相邻整数之间一个空格,行末换行:

  1. 调用前的实参 \(a\)、\(b\);
  2. 函数内部交换之后的两个形参;
  3. 调用后的实参 \(a\)、\(b\)(应与第一行相同)。

样例

输入 #1

10 20

输出 #1

10 20
20 10
10 20

输入 #2

1 1

输出 #2

1 1
1 1
1 1

说明

样例 1:函数里边 number1number2 变成 \(20\)、\(10\),但 main 里的 \(a\)、\(b\) 仍是 \(10\)、\(20\)。交换必须发生在函数的形参上,并且必须通过函数调用完成,不能只在 main 里交换两个变量。

信息

ID
1051
难度
(无)
分类
(无)
标签
(无)
递交数
0
已通过
0
通过率
?
上传者