### C++ 面向对象程序设计课后习题答案解析 #### 第一章:基本概念与简单程序设计 在这一章节中,我们将通过具体的代码示例来学习C++的基本语法和面向对象的基础知识。 ##### 习题5:输出字符串 ```cpp #include<iostream> using namespace std; int main() { cout<<"This"<<"is"; // 连续使用多个cout语句,可以将字符串拼接输出。 cout<<"a"<<"C++"; // 使用双引号包含的字符串可以通过这种方式进行拼接。 cout<<"program."<<endl; // endl用于换行。 return 0; } ``` **知识点总结**: 1. **标准库头文件**:`#include <iostream>`引入了输入输出流相关的类和函数,如`cout`和`cin`。 2. **命名空间**:`using namespace std;`声明使我们可以直接使用`std`命名空间中的标识符,无需前缀`std::`。 3. **主函数**:`int main()`是程序的入口点。 4. **输出语句**:`cout`是标准输出流对象,用于屏幕输出;使用`<<`操作符连接数据项,可以将它们按顺序输出到屏幕上。 5. **字符串拼接**:连续使用多个`cout`语句,可以在输出时自动拼接字符串。 --- ##### 习题6:简单的算术运算 ```cpp #include<iostream> using namespace std; int main() { int a, b, c; // 定义变量 a = 10; // 直接赋值 b = 23; // 直接赋值 c = a + b; // 表达式计算 cout << "a+b="; // 输出提示 cout << c; // 输出结果 cout << endl; // 换行 return 0; } ``` **知识点总结**: 1. **变量定义**:使用`int a, b, c;`声明整型变量。 2. **赋值语句**:通过`= `为变量赋值。 3. **表达式计算**:`c = a + b;`计算两个整数相加的结果并存储在`c`中。 4. **混合输出**:可以先输出文本,再输出变量值。 --- ##### 习题7:函数调用与参数传递 ```cpp #include<iostream> using namespace std; int f(int x, int y, int z) // 函数定义 { int m; if (x < y) m = x; // 条件判断 else m = y; if (z < m) m = z; return m; // 返回最小值 } int main() { int a, b, c; cin >> a >> b >> c; // 输入三个整数 c = f(a, b, c); // 调用函数 cout << c << endl; // 输出最小值 return 0; } ``` **知识点总结**: 1. **函数定义**:使用关键字`int`指定返回类型,然后是函数名和参数列表。 2. **条件判断**:使用`if`语句来进行条件判断。 3. **函数调用**:在`main`函数中通过`f(a, b, c)`来调用函数,并将结果赋值给`c`。 4. **输入读取**:`cin >> a >> b >> c;`从标准输入读取三个整数并分别赋值给变量`a`、`b`和`c`。 --- ##### 习题8:用户输入与输出 ```cpp #include<iostream> using namespace std; int main() { int a, b, c; cin >> a >> b; // 输入两个整数 c = a + b; // 计算结果 cout << "a+b=" << a + b << endl; // 输出结果 return 0; } ``` **知识点总结**: 1. **变量定义**:定义两个整型变量`a`和`b`。 2. **输入读取**:`cin >> a >> b;`从标准输入读取两个整数。 3. **表达式计算**:`c = a + b;`计算结果并存储在变量`c`中。 4. **输出结果**:使用`cout`输出表达式的值而不是变量值。 --- ##### 习题9:函数定义与调用 ```cpp #include<iostream> using namespace std; int add(int x, int y) // 函数定义 { int c; c = x + y; return c; // 返回和 } int main() { int a, b, c; cin >> a >> b; // 输入两个整数 c = add(a, b); // 调用函数 cout << "a+b=" << c << endl; // 输出结果 return 0; } ``` **知识点总结**: 1. **函数定义**:定义一个名为`add`的函数,它接收两个整型参数,并返回它们的和。 2. **函数调用**:在`main`函数中通过`add(a, b)`调用函数,并将结果赋值给`c`。 3. **变量定义与输入读取**:定义变量`a`和`b`,并通过`cin`从标准输入读取值。 --- ##### 习题10:排序算法 ```cpp #include<iostream> using namespace std; void sort(int &x, int &y, int &z) // 函数定义 { int temp; if (x > y) {temp = x; x = y; y = temp;} // 交换x和y if (z < x) cout << z << ',' << x << ',' << y << endl; else if (z < y) cout << x << ',' << z << ',' << y << endl; else cout << x << ',' << y << ',' << z << endl; } int main() { int x, y, z; cin >> x >> y >> z; // 输入三个整数 sort(x, y, z); // 调用排序函数 return 0; } ``` **知识点总结**: 1. **引用参数**:函数参数使用引用(`int &x`),可以直接修改传递进来的变量的值。 2. **条件判断与排序逻辑**:根据输入的三个数的大小关系,进行相应的排序输出。 3. **函数调用**:在`main`函数中通过`sort(x, y, z)`调用函数,对输入的三个整数进行排序。 --- ##### 习题11:重载函数 ```cpp #include<iostream> using namespace std; int max(int a, int b, int c = 0) // 函数定义 { if (b > a) a = b; if (c > a) a = c; return a; // 返回最大值 } int main() { int a, b, c; cin >> a >> b >> c; // 输入三个整数 cout << "max(a,b,c)=" << max(a, b, c) << endl; // 调用重载函数 cout << "max(a,b)=" << max(a, b) << endl; // 调用重载函数 return 0; } ``` **知识点总结**: 1. **函数重载**:函数`max`通过不同的参数列表实现重载。 2. **默认参数**:`int c = 0`表示`c`有一个默认值0,当调用函数时不传入第三个参数时,将使用默认值。 3. **函数调用**:通过`max(a, b, c)`和`max(a, b)`分别调用带有不同参数列表的函数。 --- ##### 习题12:交换变量值 ```cpp #include<iostream> using namespace std; void change(int &r1, int &r2) // 函数定义 { int temp; temp = r1; r1 = r2; r2 = temp; } int main() { int a, b; cin >> a >> b; // 输入两个整数 if (a < b) change(a, b); // 调用交换函数 cout << "max=" << a << "min=" << b << endl; // 输出结果 return 0; } ``` **知识点总结**: 1. **引用参数**:函数参数使用引用(`int &r1, int &r2`),可以直接修改传递进来的变量的值。 2. **函数调用**:在`main`函数中通过`change(a, b)`调用函数,对输入的两个整数进行交换。 3. **条件判断**:使用`if (a < b)`判断是否需要交换两个数的值。 --- ##### 习题13:引用参数与排序 ```cpp #include<iostream> using namespace std; void sort(int &i, int &j, int &k) // 函数定义 { void change(int &x, int &y); // 声明内部使用的函数 if (i > j) change(i, j); if (i > k) change(i, k); if (j > k) change(j, k); } void change(int &x, int &y) // 内部使用的函数 { int temp; temp = x; x = y; y = temp; } int main() { int a, b, c, a1, b1, c1; cout << "Please enter 3 integers:"; // 提示输入 cin >> a >> b >> c; // 输入三个整数 a1 = a; b1 = b; c1 = c; // 复制原始值 sort(a1, b1, c1); // 调用排序函数 cout << a << "" << b << "" << c << " in sorted order is" // 输出排序后的结果 << a1 << "" << b1 << "" << c1 << endl; return 0; } ``` **知识点总结**: 1. **引用参数**:函数参数使用引用(`int &i, int &j, int &k`),可以直接修改传递进来的变量的值。 2. **内部函数**:在函数`sort`内部定义了一个函数`change`,用于交换两个整数的值。 3. **函数调用**:在`main`函数中通过`sort(a1, b1, c1)`调用排序函数,对输入的三个整数进行排序。 4. **变量复制**:在调用排序函数之前,使用`a1 = a; b1 = b; c1 = c;`复制原始值,以保持原始值不变。 以上就是C++面向对象程序设计第一章中涉及的部分习题及其解答。通过这些习题,我们可以更好地理解C++的基本语法以及面向对象编程的一些基本概念。
剩余56页未读,继续阅读
- 粉丝: 62
- 资源: 5
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助