HM052 换了形参
HM052 换了形参
来源: 第 52 集 函数-值传递
难度: 入门
时间限制: 1s
空间限制: 64MB
题目描述
值传递指的是:调用函数时,实参把自己的数值拷贝给形参。目前所学的传递方式都是值传递。
值传递有一条必须记住的性质:形参里发生任何改变,都不会影响实参。因为实参 \(a\)、\(b\) 在内存里各有一份空间,形参 number1、number2 是另外两份空间;调用时只是把 \(a\) 的值抄给 number1、把 \(b\) 的值抄给 number2。函数里再用临时变量把两个形参对调,改的只是这两份拷贝,外面的 \(a\)、\(b\) 从头到尾都不变。
请定义无返回值的函数 swapNumber:返回类型写成 void,表示不需要返回值。void 函数里不要写 return 100 这种带值的返回,类型对不上;可以写单独的 return;,也可以什么都不写。函数体内先用临时变量交换两个形参,再输出交换后的形参。
读入实参 \(a\)、\(b\)。先输出调用前的实参,再调用交换函数(函数内输出交换后的形参),最后再输出调用后的实参。你会看到外面两个数没有被换走。
输入格式
一行两个整数 \(a\)、\(b\)(\(-10^9 \le a,b \le 10^9\))。
输出格式
共三行,每行两个整数,相邻整数之间一个空格,行末换行:
- 调用前的实参 \(a\)、\(b\);
- 函数内部交换之后的两个形参;
- 调用后的实参 \(a\)、\(b\)(应与第一行相同)。
样例
输入 #1
10 20
输出 #1
10 20
20 10
10 20
输入 #2
1 1
输出 #2
1 1
1 1
1 1
说明
样例 1:函数里边 number1、number2 变成 \(20\)、\(10\),但 main 里的 \(a\)、\(b\) 仍是 \(10\)、\(20\)。交换必须发生在函数的形参上,并且必须通过函数调用完成,不能只在 main 里交换两个变量。
信息
- ID
- 1051
- 难度
- (无)
- 分类
- (无)
- 标签
- (无)
- 递交数
- 0
- 已通过
- 0
- 通过率
- ?
- 上传者