《C++语言》作业题 编写一个程序,由用户输入两个整数val和van2输出稍大于vall而又是va2整倍 数的数。其计算公式为: all +val2- l val2 2.编写一个程序将用户输入的华氏温度转换成摄氏温度。其计算公式为: (F-32)×5/9 3.编写一个程序,要求用户输入一个不超过5位的整数,计算并输出该数的各位之和。 比如,若用户输入的整数为1995,则输出应为24。 4.编写程序打印出所有的水仙花数。所谓“水仙花数”是指一个三位数,其各位数的 立方和等于该数本身。例如,153=13+3+53,所以153是一个水仙花数。 5.编写程序输出1000以内所有的完数。所谓“完数”是指与其因子之和相等的数。 例如6=1+2+3,而1、2和3均是6的因子。该程序要求以如下形式输出: 6.编写程序输出100以内的 Fibonacci(裴波那契)数列。所谓“ Fibonacci数列”是 指形如 ao=0,a1=1,…,an=an1+an2, 的数列。 7.编写一个递归函数输出 Fibonacci数列的前n项。 8.定义一个带有三个参数的宏MN,该宏的值为三个参数中最小者的值。考虑如何该 宏使其在任何情况下都不出现二义性。 9.将习题4-2中的三个函数分别写入三个源文件中,然后编写一个调用这三个函数的 主程序,在主程序中利用嵌入预处理指令将上述三个文件插入到主函数前面。 10.将习题1、2分别改写成两个函数,为它们设置相应的参数,并将这两个函数的函 数原型写入一个头文件中,而在主程序中只,嵌入该头文件,然后单独将主程序编译成OB 文件。试试该程序是否仍能编译通过。 1l.定义一个可存放30个实数的一维数组来存放一个班(不超过30个人)某门功课 的成绩,成绩由用户输入。设计一个循环过程,根据用户输入的学号(1~20)输出对应学生 的成绩,用户输入0时程序结束。 12.设计一个二维数组foa306,存放一个学生班(不超过30个人)中每人的5门 功课成绩及平均成绩。成绩由用户输入,平均成绩由计算而得。设计一个循环过程,根据用 户输入的号码(1~30)输出对应学生的各门成绩及平均成绩。 13.编写一个函数,实现C+库函数 strlen()的功能 14.编写一个递归函数,将一个字符串按其逆序输出。比如,设源串为" abcdef",则输 出为 fedcba 15.编写一个函数,测试一个指定字符是否存在于一个指定字符串中。若是,则返回 该字符在串中第一次出现的位置(提示:函数的返回值的类型为字符型指针)
《C++语言》作业题 1. 编写一个程序,由用户输入两个整数 val1 和 val2 输出稍大于 val1 而又是 val2 整倍 数的数。其计算公式为: val1 + val2 - val1 % val2 2. 编写一个程序将用户输入的华氏温度转换成摄氏温度。其计算公式为: C = (F – 32) 5 / 9 3. 编写一个程序,要求用户输入一个不超过 5 位的整数,计算并输出该数的各位之和。 比如,若用户输入的整数为 1995,则输出应为 24。 4. 编写程序打印出所有的水仙花数。所谓“水仙花数”是指一个三位数,其各位数的 立方和等于该数本身。例如,153 = 13 + 33 + 53,所以 153 是一个水仙花数。 5. 编写程序输出 1000 以内所有的完数。所谓“完数”是指与其因子之和相等的数。 例如 6 = 1 + 2 + 3,而 1、2 和 3 均是 6 的因子。该程序要求以如下形式输出: 6-->1, 2, 3 6. 编写程序输出 100 以内的 Fibonacci(裴波那契)数列。所谓“Fibonacci 数列”是 指形如: a0 = 0, a1 = 1, …, an = an-1 + an-2, … 的数列。 7. 编写一个递归函数输出 Fibonacci 数列的前 n 项。 8. 定义一个带有三个参数的宏 MIN,该宏的值为三个参数中最小者的值。考虑如何该 宏使其在任何情况下都不出现二义性。 9. 将习题 4-2 中的三个函数分别写入三个源文件中,然后编写一个调用这三个函数的 主程序,在主程序中利用嵌入预处理指令将上述三个文件插入到主函数前面。 10. 将习题 1、2 分别改写成两个函数,为它们设置相应的参数,并将这两个函数的函 数原型写入一个头文件中,而在主程序中只,嵌入该头文件,然后单独将主程序编译成 .OBJ 文件。试试该程序是否仍能编译通过。 11. 定义一个可存放 30 个实数的一维数组来存放一个班(不超过 30 个人)某门功课 的成绩,成绩由用户输入。设计一个循环过程,根据用户输入的学号(1~20)输出对应学生 的成绩,用户输入 0 时程序结束。 12. 设计一个二维数组 float[30][6],存放一个学生班(不超过 30 个人)中每人的 5 门 功课成绩及平均成绩。成绩由用户输入,平均成绩由计算而得。设计一个循环过程,根据用 户输入的号码(1~30)输出对应学生的各门成绩及平均成绩。 13. 编写一个函数,实现 C++库函数 strlen( )的功能。 14. 编写一个递归函数,将一个字符串按其逆序输出。比如,设源串为"abcdef",则输 出为 fedcba。 15. 编写一个函数,测试一个指定字符是否存在于一个指定字符串中。若是,则返回 该字符在串中第一次出现的位置(提示:函数的返回值的类型为字符型指针)
16.编写一个函数 isSu( char *str1,char*st2),该函数测试sr1是否是s2的子串。若 是,则返回sr1在st2中第一个字符的位置。 17.利用动态内存分配重新编写习题11所要求的程序,要求能处理任何人数的学生成 绩。人数由用户输入 18.说明一个表示日期的结构,其成员包括年、月、日。考虑应为该结构定义哪些操 作函数。 19.设计一个纪录书籍的结构,其成员包括书号、书名、作者、出版社和出版日期(利 用上一题中说明的结构)。设一批书籍的纪录存放在一个单链表中,编写函数输出与给定关 键字相匹配的所有书籍的纪录。比如,设某给定关键字为一个作者的姓名,则将该作者的所 有著作都显示出来 20.将习题19中的书籍结构改写为类。 21.为习题20添加构造函数和析构函数。 22.从 Person类中派生一个学生( Student)类,新增的属性有:学号(无符号长整型) 专业(字符型指针,以便于为其内容动态分配内存)、学院(字符型指针),并为该类定义相 应的方法。 23.从 Person类中派生一个职工( Worker)类,新增的属性有:工种(字符型指针 以便于为其内容动态分配内存)、部门(字符型指针),并为该类定义相应的方法 24.从学生类和职工类多重派生一个职工大学生( Worker- Student)类 注:为了方便使用,将 Person类中的各属性改为保护的,并将新类中的属性也作同样 的处理,以便进一步派生 25.修改学生类和职工类,以保证在职工大学生类中仅存在 Person类的一个副本 26.修改 Restart程序,将数组类Aray的所有成员函数均测试到 27.为学生类说明一个静态数据成员——学校名称,并提供相应的静态接口。 28.将1122中的Obie类尽可能地作进一步的完善,然后将它用作 Person类的基类 并在 Person类及其派生类中分别实现从 Object类中继承来的虚函数。 29.为 Person类及其派生类重载“=”运算符 30.为 Person类及其派生类定义相应的转换函数。 31.为字符串类添加插入和提取运算符 32.为字符串类添加插入和提取运算符重载。 33.编写一个程序,将10个学生的基本情况写入一个二进制文件中。 34.设计一个通用的数组模板类 注:该题为选作题
16. 编写一个函数 isSub(char *str1, char *str2),该函数测试 str1 是否是 str2 的子串。若 是,则返回 str1 在 str2 中第一个字符的位置。 17. 利用动态内存分配重新编写习题 11 所要求的程序,要求能处理任何人数的学生成 绩。人数由用户输入。 18. 说明一个表示日期的结构,其成员包括年、月、日。考虑应为该结构定义哪些操 作函数。 19. 设计一个纪录书籍的结构,其成员包括书号、书名、作者、出版社和出版日期(利 用上一题中说明的结构)。设一批书籍的纪录存放在一个单链表中,编写函数输出与给定关 键字相匹配的所有书籍的纪录。比如,设某给定关键字为一个作者的姓名,则将该作者的所 有著作都显示出来。 20. 将习题 19 中的书籍结构改写为类。 21. 为习题 20 添加构造函数和析构函数。 22. 从 Person 类中派生一个学生(Student)类,新增的属性有:学号(无符号长整型)、 专业(字符型指针,以便于为其内容动态分配内存)、学院(字符型指针),并为该类定义相 应的方法。 23. 从 Person 类中派生一个职工(Worker)类,新增的属性有:工种(字符型指针, 以便于为其内容动态分配内存)、部门(字符型指针),并为该类定义相应的方法。 24. 从学生类和职工类多重派生一个职工大学生(Worker-Student)类。 注:为了方便使用,将 Person 类中的各属性改为保护的,并将新类中的属性也作同样 的处理,以便进一步派生。 25. 修改学生类和职工类,以保证在职工大学生类中仅存在 Person 类的一个副本。 26. 修改 TestArr 程序,将数组类 Array 的所有成员函数均测试到。 27. 为“学生”类说明一个静态数据成员——学校名称,并提供相应的静态接口。 28. 将 11.2.2 中的 Object 类尽可能地作进一步的完善,然后将它用作 Person 类的基类 并在 Person 类及其派生类中分别实现从 Object 类中继承来的虚函数。 29. 为 Person 类及其派生类重载“==”运算符。 30. 为 Person 类及其派生类定义相应的转换函数。 31. 为字符串类添加插入和提取运算符。 32. 为字符串类添加插入和提取运算符重载。 33. 编写一个程序,将 10 个学生的基本情况写入一个二进制文件中。 34. 设计一个通用的数组模板类。 注:该题为选作题