题目 2:类型系统与内存管理 [10 分] a) 数据类型 [3 分] 以下示例展示了使用数据类型时可能遇到的挑战。 请简要描述每个函数中存在的问题,然后以防御性编程(defensive programming)的方式修改 main() 函数,使得这些问题不再发生。
#include <iostream>
// 示例 1:假设 i = 1
int add(int i) {
short result = 32767 + i;
return result;
}
// 示例 2:假设 a = -10
bool greater5(int a) {
unsigned int b = 5;
if (a > b) {
return true;
} else {
return false;
}
}
// 示例 3:假设 i = 0
unsigned int dec(unsigned int i) {
i--;
return i;
}
int main() {
// 读取输入数据
int x, y, z;
std::cin >> x >> y >> z;
// 问题 1
std::cout << add(x) << "\n";
// 问题 2
std::cout << greater5(y) << "\n";
// 问题 3
std::cout << dec(z) << "\n";
return 0;
}
—— 本文来自火龙信奥(义乌睿码科技):义乌青少年信息学奥赛与编程教育平台,专注 CSP-J/S、NOIP、GESP 竞赛培训,线上线下融合教学,助力编程升学。网址:hlcoding.com