C语言实验报告(函数应用)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
C语言程序设计II实验报告题目:实验五函数应用
院系名称:计算机学院
专业名称:计算机科学与技术
班级:
学号:
学生姓名:
指导教师:
实验日期:2017年4月1日
报告提交截止日期:2017年4月11日
一、实验目的
1、掌握C语言函数的定义方法、函数的声明及函数的调用方法及
调用过程;
2、掌握主调函数和被调函数之间的参数传递方式;
二、实验内容与要求:
1、求两个整数的最大公约数和最小公倍数。用一个函数求最大公约数,用
另一个函数根据求出的最大公约数求最小公倍数。(提示:设两个整数是
a,b,最大公约数是p,最小公倍数是q,那么ab=pq)
2、用牛顿迭代法求方程f(x)=ax3+bx2+cx+d=0的根。系数a、b、c、d由主
函数输入。求根过程写成函数。(提示:牛顿迭代法是先给定方程f(x)=0
的一个较好的初始近似根x0,然后重复使用迭代公式:
求x的近似解,直至相邻两次的近似解相差很小为止,如差值的绝对值
小于1e-07。x0可以从键盘输入或直接设定。)
3、定义一个函数,功能是计算n个学生的成绩中高于平均成绩的人数,并
作为函数返回值。用主函数来调用它。统计30个学生成绩中高于平均成
绩的有多少人。
4、
∑=
+
+
+
=
=
n
i
n
p
p
p
i
p
n
s
1
)
(
)2(
)1(
)(
)
(Λ
Λ,!
)(i
i
p=
5、编写和调用函数,给定圆筒的内径、外径和高,计算该圆筒的体积;给
定圆锥的高、底面半径,计算该圆锥的体积和表面积。
6、编写和调用函数,求出10000以内的所有素数、绝对素数、水仙花数、
完全数(或称完数)、互满数。
提示:一个素数经过任意次调换位,仍然为素数,则称其为绝对素数,
例如13和31就是一个绝对素数。水仙花数是指一个三位整数,其各位
数字立方之和等于该数。例如,153就是一个水仙花数:153=1*1*1+
5*5*5+3*3*3。完全数是指一个数正好是它的所有约数(本身除外)之和。
例如,6就是一个完全数,因为6的因子有1、2、3,并且6=1+2+3。
如果有两个数,每一个数的所有约数(除它本身以外)之和正好等于对
方,则称这两个数为互满数。
三、实验结果
{a=a+b;b=a-b;a=a-b;
}
for(i=a;i>=1;i--)
if(a%i==0&&b%i==0)
return i;
}
int s(int a,int b,int i)
{return a*b/i;
}
main()
{
int a,b;
while(1)
{
scanf("%d%d",&a,&b);
printf("最大公约数:%d\n最小公倍数:%d\n",f(a,b),s(a,b,f(a,b)));
}}
实验测试结果(使用截图,图形格式JPEG。截图不要包含源代码):
讨论(文本):
2
题目内容与要求:用牛顿迭代法求方程f(x)=ax 3
+bx 2
+cx+d=0的根。系数a 、b 、c 、d 由主函数输入。求根过程写成函数。(提示:牛顿迭代法是先给定方程f(x)=0的一个较好的初始近似根x 0,然后重复使用迭代公式:
)
(')
(000x f x f x x -
=
求x 的近似解,直至相邻两次的近似解相差很小为止,如差值的绝对值小于1e-07。x 0可以从键盘输入或直接设定。)
算法简要描述(文本):通过构造函数实现题中给的公式。 源代码标识符说明(文本):a,b,c,d,存系数x 存根。 源代码(粘贴程序,注意缩进,不得使用截图):
#include"stdio.h" #include"math.h"
float f1(float a,float b,float c,float d,float x) {return (a*x*x*x+b*x*x+c*x+d);
}
float f2(float a,float b,float c,float x)
{return (3*a*x*x+2*b*x+c);
}
main()
{
while(1)
{float a,b,c,d,x,y,m,n;
scanf("%f%f%f%f%f",&a,&b,&c,&d,&x);
do
{x=y;
m=f1(a,b,c,d,x);n=f2(a,b,c,x);
y=x-(m/n);
}while(fabs(x-y)>=1e-7);
printf("%.2f\n",y);
}}
实验测试结果(使用截图,图形格式JPEG。截图不要包含源代码):
讨论(文本):
3 题目内容与要求:定义一个函数,功能是计算n个学生的成绩中高于平均成绩
的人数,并作为函数返回值。用主函数来调用它。统计30个学生成绩中高于平均成绩的有多少人。
算法简要描述(文本):构造函数求出平均值,再和平均值一一比较。
源代码标识符说明(文本):p指针变量操作数组。q存大于平均值成绩的个数。
源代码(粘贴程序,注意缩进,不得使用截图):#include"stdio.h"
int f(float *p,int n)
{int i,q=0;float s=0;
for(i=0;i s+=*(p+i); for(i=0;i {if(*(p+i)>(s/n)) q++;