38-编程练习
9.11 编程练习
1.设计一个函数 min(x, y) ,返回两个 double 类型值的较小值。在一个简单的驱动程序中测试该函数。
2.设计一个函数 chline(ch, i, j) ,打印指定的字符 j 行 i 列。在一个简单的驱动程序中测试该函数。
3.编写一个函数,接受3个参数:一个字符和两个整数。字符参数是待打印的字符,第1个整数指定一行中打印字符的次数,第2个整数指定打印指定字符的行数。编写一个调用该函数的程序。
4.两数的调和平均数这样计算:先得到两数的倒数,然后计算两个倒数的平均值,最后取计算结果的倒数。编写一个函数,接受两个 double 类型的参数,返回这两个参数的调和平均数。
5.编写并测试一个函数 larger_of() ,该函数把两个 double 类型变量的值替换为较大的值。例如, larger_of(x, y) 会把 x 和 y 中较大的值重新赋给两个变量。
6.编写并测试一个函数,该函数以3个 double 变量的地址作为参数,把最小值放入第1个变量,中间值放入第2个变量,最大值放入第3个变量。
7.编写一个函数,从标准输入中读取字符,直到遇到文件结尾。程序要报告每个字符是否是字母。如果是,还要报告该字母在字母表中的数值位置。例如, c 和 C 在字母表中的位置都是 3 。合并一个函数,以一个字符作为参数,如果该字符是一个字母则返回一个数值位置,否则返回 -1 。
8.第6章的程序清单6.20中, power() 函数返回一个 double 类型数的正整数次幂。改进该函数,使其能正确计算负幂。另外,函数要处理 0 的任何次幂都为 0 ,任何数的 0 次幂都为 1 (函数应报告 0 的 0 次幂未定义,因此把该值处理为 1 )。要使用一个循环,并在程序中测试该函数。
9.使用递归函数重写编程练习8。
10.为了让程序清单9.8中的 to_binary() 函数更通用,编写一个 to_base_n() 函数接受两个参数,且第二个参数在 2 ~ 10 范围内,然后以第 2 个参数中指定的进制打印第 1 个参数的数值。例如, to_base_n(129 , 8) 显示的结果为 201 ,也就是 129 的八进制数。在一个完整的程序中测试该函数。
11.编写并测试 Fibonacci() 函数,该函数用循环代替递归计算斐波那契数。
