实验六 函数(1)
- 格式:doc
- 大小:109.00 KB
- 文档页数:4
实验六 函数(1)
【实验目的】:
1、 掌握自定义函数的一般结构及定义函数的方法;
2、 掌握函数的形式参数、实际参数、函数返回值等重要概念;
3、 掌握函数实参与形参间的“值传递”方式;
4、 掌握函数声明、函数调用的一般方法。
5、 掌握模块化程序设计思想,会采用C语言中函数进行模块化程序设计。
【实验时数】:2学时
【实验内容】:
一、 新建文件夹
首先在各自对应的计算机K盘对应文件中新建一个文件夹,文件夹的名字为“班级+学
号的后两位+姓名”,如食品1071班、学号后两位是02的、姓名为“张三”的同学,则其
对应的文件夹名字是:食品107102张三。然后在刚才建好的文件夹里面再建立一个文件夹,
文件夹为“第9次”
以下实验内容的运行结果需保存在所建的“第9次”文件夹内,并按题目的要求完成。
希望同学们在做以下实验之前,先认真分析程序的运行结果,后再上机验证。
二、实验内容:
[程序一]:下面函数是实现求[1,3000]能被17或23整除的整数的个数。请补充完整,并
上机调试。(需要存盘)
将补充完整的程序以文件名blank.c保存在你刚才新建好的文件夹中。
[程序二]: 编写一函数接受主调函数实参n(这里n=5)并打印如下图形,编写主函数由键
盘输入n并调用函数打印图形。(需要存盘).
将编写好的程序以文件名print_1.c保存在你刚才新建好的文件夹里。
【算法提示】:
① 定义函数printg,有1个整型的形式参数n,无返回值;
② 找出主、次对角线上‘0’的规律,使用双层循环控制循环n*n次;
③ 循环内部主、次对角线上打印‘0’,否则打印‘*’;
④ 编写主函数调用。
【特别强调】:所有的题目都可以用一个主函数实现,但是因为C程序是一种模块化的结构
程序,所以实际设计程序时,应该分解成主调函数和被调函数两部分,一般情况下,主
调函数是main(),被调函数是子函数,如本题中的printg()函数。如此说来,本道题
目就可编写成如下结构形式所示:
程序三]: 写两个函数,分别求出两个整数的最大公约数和最小公倍数,用主函数调用这两
个函数,并输出结果,两个整数由键盘输入。(该题是教材P101习题6的第1题)
(需要存盘)将编写好的程序以文件名multiple.c保存在你刚才新建好的文件夹里。
【算法提示】:
① 设两个整数为u和v,用辗转相除法求最大公约数的算法描述如下图所示:
v>u?
交换u、v,使大者u为被除数
(r=(u%v))!=0
使除数v变为被除数u(用语句u=v实现),
余数r为除数(用语句v=r实现)
Y
Y
返回v
N
N
② u和v的最小公倍数等于(u*v)/最大公约数;
③ 分别定义两个函数hcf( )即最大公约数函数和gcd( )即最小公倍数函数,两个函数的
形参均有两个,分别是u和v,形参的数据类型以及函数hcf()和gcd()的返回
值类型均为整型;
④ 编写主函数调用。
[程序四]:写一个判断是否是素数的函数。在主函数输入一个整数,并输出是否是素数的信
息。同时将编写好的程序以文件名primefun.c保存在你刚才新建好的文件夹里。
(需要存盘)
[程序五]: 编写程序:fun函数可求表达式: s = aaa„aa - „ - aaa- aa- a 的值。
(其中aaa„aa表示n个a,a和n的值在1到9之间),a和n作fun函数的形参,
表达式的值传回main函数输出。(需要存盘)
将编写好的程序以文件名printa.c保存在你刚才新建好的文件夹里。
[程序六]: 编写程序求表达式!......!3!2132nxxxxSn的值。 (需要存盘)
【要求】:
① 在主函数中输入变量x与n的值,通过调用函数fS实现题目要求;
② 使用函数float fS(int n, float x)求表达式的值。
将编写好的程序以文件名Taile.c保存在你刚才新建好的文件夹里。