[Basic C++] call-by-reference
- 题目描述
- 答题区域
- 提交记录
- 成绩报告
- 排名情况
- 标准答案
- 相关讨论
出题
邮箱
:
:
贺子阳
1499677880@qq.com
评测
截止时间
:
:
实时评测
2018-03-27 10:00
空间限制
时间限制
:
:
32MB
1000ms
Description
有如下一段程序:
void printtotal(int total) {
printf("Total in Main: %d\n", total);
}
int main() {
int x, y, total;
x = 10;
y = 5;
total = 0;
printtotal(total);
addxy(x, y, total);
printtotal(total);
subxy(x, y, total);
printtotal(total);
return 0;
}
请补充函数 addxy 和 subxy的声明和实现.
addxy形参中total使用按值传递,函数中输出Total from inside addxy: (具体数字)
subxy形参中total使用按引用传递,将会修改主函数作用域中的total值,函数中输出Total from inside subxy: (具体数字)
Input
None
Output
Total in Main: 0
Total from inside addxy: 15
Total in Main: 0
Total from inside subxy: 5
Total in Main: 5
标准答案:
-
source.h
-
framework.cpp
1
#include <stdio.h>
2
#include "source.h"
3
4
5
void printtotal(int total) {
printtotal(int total) {
6
printf("Total in Main: %d\n", total);
printf("Total in Main: %d\n", total);
7
8
}
9
int main() {
main() {
10
11
int x, y, total;
int x, y, total;
12
x = 10;
x = 10;
13
y = 5;
y = 5;
14
total = 0;
total = 0;
15
16
printtotal(total);
printtotal(total);
17
addxy(x, y, total);
addxy(x, y, total);
18
19
printtotal(total);
printtotal(total);
20
21
subxy(x, y, total);
subxy(x, y, total);
22
printtotal(total);
printtotal(total);
23
return 0;
return 0;
24
}
25
-
source.h
-
framework.cpp
1
<span style="color:#75715e">// Problem#: 17680</span>
2
<span style="color:#75715e">// Submission#: 4639413</span>
3
<span style="color:#75715e">// The source code is licensed under Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported License</span>
4
<span style="color:#75715e">// URI: http://creativecommons.org/licenses/by-nc-sa/3.0/</span>
5
<span style="color:#75715e">// All Copyright reserved by Informatic Lab of Sun Yat-sen University</span>
6
#include <iostream>
7
using namespace std;
namespace std;
8
int addxy(int,int,int);
addxy(int,int,int);
9
int subxy(int&a,int&b,int&c);
subxy(int&a,int&b,int&c);
10
11
int addxy(int a, int b, int c) {
addxy(int a, int b, int c) {
12
c = a + b;
c = a + b;
13
cout << "Total from inside addxy: " << c << endl;
cout << "Total from inside addxy: " << c << endl;
14
}
15
16
int subxy(int&a,int&b,int&c) {
subxy(int&a,int&b,int&c) {
17
c = a - b;
c = a - b;
18
cout << "Total from inside subxy: " << c << endl;
cout << "Total from inside subxy: " << c << endl;
19
}
20