第七章 用函数实现模块化程序设计
例7.1 想输出以下的结果,用函数调用实现。
例7.2 输入两个整数,要求输出其中值较大者。要求用函数来找到大数。
例7.3 将例7.2稍作改动,将在max函数中定义的变量z改为float型。函数返回值的类型与指定的函数类型不同,分析其处理方法。
例7.4 输入两个实数,用一个函数求出它们之和。
例7.5 输入四个整数,找出其中最大的数。用函数的嵌套调用来处理。
例7.6 有5个学生坐在一起,问5个学生多少岁,他说比第四个学生大两岁。问第4个学生岁数,他说比第三个学生大两岁。问第3个学生,又说比第2个学生大2岁。问第2个学生,说比第1个学生大两岁。最后问第1个学生,他说是10岁。请问第5个学生多大。
例7.7 用递归方法求n!。
例7.8 汉诺塔问题。这是一个古典的数学问题,是一个用递归方法解题的典型例子。问题是这样的:古代有一梵塔,塔内有三座A,B,C。开始时A座上有64个盘子,盘子大小不等,大的在下,小的在上。有一个老和尚想把这64个盘子从A座移到C座,但规定每次只允许移动一个盘,且在移动过程中在3个座上都始终保持大盘在下,小盘在上。在移动过程中可以利用B座。要求编程序输出移动盘子的步骤。
例7.9 输入10个数,要求输出其中值最大的元素和该数是第几个数。
例7.10 有一个一维数组score,内放10个学生成绩,求平均值。
例7.11 有两个班级,分别有35名和30名学生,调用一个average函数,分别求这两个班的学生的平均成绩。
例7.12 用选择法对数组中10个整数按有小到大排序
例7.13 有一个3*4的矩阵,求所有元素中的最大值。
例7.14 有一个一维数组,内放10个学生成绩,写一个函数,当主函数调用此函数后能求出平均分、最高分和最低分。
例7.15 若外部变量与局部变量同名,分析结果。
例7.16 考察静态局部变量的值。
例7.17 输出1到5的阶乘值。
例7.18 调用函数,求3个整数中的大者。
例7.19 给定b的值,输入a和m,求a*b和a^m的值。
例7.20 有一个字符串,内有若干个字符,现输入一个字符,要求程序将字符串中该字符删去。用外部函数实现。
例7.1 想输出以下的结果,用函数调用实现。
#include<stdio.h>
int main()
{ void print_star();
void print_message();
print_star();
print_message();
print_star();
return 0;
}
void print_star()
{
printf("*******************\n");
}
void print_message()
{
printf(" How do you do!\n");
}
运行结果如下:
例7.2 输入两个整数,要求输出其中值较大者。要求用函数来找到大数。