C++编程练习:最大值函数与数组排序

需积分: 11 0 下载量 132 浏览量 更新于2024-09-16 收藏 3KB TXT 举报
该资源包含了三个C++编程练习题的答案,涵盖了函数定义、参数传递、数组操作以及排序算法的应用。 1. 第一个练习题是一个简单的最大值查找函数。`max`函数接受三个整数参数,并返回其中的最大值。在`main`函数中,用户输入三个整数并调用`max`函数,将结果输出到屏幕上。这个程序利用了条件语句(if语句)来比较数值并更新最大值。 ```cpp int max(int a, int b, int c=-1) { if (b > a) a = b; if (c > a) a = c; return a; } ``` 2. 第二个练习题实现了一个交换整数顺序的函数`px`,它接收三个整数引用作为参数,通过交换它们的值使得参数变量按升序排列。在`main`函数中,用户输入三个整数,调用`px`函数后,原始输入的顺序会被改变,然后按照升序输出。这里使用了引用类型(reference)以便直接修改传入的变量。 ```cpp void px(int &a, int &b, int &c) { int t; if (a > b) { t = a; a = b; b = t; } if (a > c) { t = a; a = c; c = t; } if (b > c) { t = b; b = c; c = t; } } ``` 3. 第三个练习题涉及到动态内存分配和数组操作。在`main`函数中,用户输入一个整数`n`表示数组大小,然后分别读取三个整数数组`a`、`b`和`c`。接着,分别调用三个函数`px`、`mx`和`nx`对整型、浮点型和双精度浮点型数组进行排序。排序函数采用冒泡排序算法,通过两层循环实现元素的比较和交换。最后,输出排序后的数组。 ```cpp void px(int n, int p[]) { for (int i = 0; i < n; i++) for (int j = i; j < n; j++) if (p[i] > p[j]) { // 冒泡排序 int temp = p[i]; p[i] = p[j]; p[j] = temp; } } // 类似的函数mx和nx分别用于浮点数和双精度浮点数数组的排序 ``` 总结来说,这些练习题展示了C++的基本语法,包括函数定义与调用、条件判断、引用参数、动态内存分配、数组操作以及简单的排序算法。通过这些例子,学习者可以加深对C++编程基础的理解。
2013-01-02 上传
C++课后习题及答案 一、 选择填空 1. 下列各种高级语言中,( )是面向对象的程序设计语言。 A.BASIC; B.PASCAL; C.C++ D.Ada 2. 下列各种高级语言中,( )是最早提出了对象的概念。 A.Algol 60; B.Simula 67; C.Smalltalk; D.C++ 3. 下述面向对象抽象的原理中,( )是不对的。 A. 数据抽象; B. 行为共享; C.进化; D. 兼容; 4. ( )不是面向对象系统所包含的要数。 A. 重载; B. 对象; C. 类; D. 继承; 5. 关于C++与C语言的关系的描述中,( )是错误的。 A. C语言是C++的一个子集; B. C语言与C++是兼容的; C. C++对C语言进行了一些改进; D. C++和C语言都是面向对象的; 6. 下面关于对象概念的描述中,( )是错误的。 A.对象就是C语言中的结构变量; B.对象代表着正在创建的系统中的一个实体; C. 对象是一个状态和操作(或方法)的封装体; D.对象之间的信息传递是通过消息进行的; 7. 下面关于类概念的描述中,( )是错误的。 A.类是抽象数据类型的实现; B.类是具有共同行为的若干对象的统一描述体; C.类是创建对象的样板; D.类就是C语言中的结构类型; 8. C++对C语言作了很多改进,下列描述中( )使得C语言发生了质变,即从面向过程变成为面向对象。 A.增加了一些新的运算符; B.允许函数重载,并允许设置缺省参数; C.规定函数说明必须用原型; D.引进了类和对象的概念; 9. 按照标识符的要求,( )符号不能组成标识符。 A.连接符; B. 下划线; C.大小写字母; D.数字字符; 10. 下列符号中,( )不可作为分隔符。 A.,; B.:;C.?; D.;