C语言程序设计 实验报告5--函数

更新时间:2024-06-25 08:58:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

福建农林大学金山学院实验报告

系(教研室): 专业: 年级:

实验课程: 姓名: 学号: 实验室号: _

计算机号: 实验时间: 指导教师签字: 成绩:

实验5:函数

一、 实验目的和要求

1.掌握定义函数的方法

2.掌握函数实参与形参的对应关系,以及“值传递”的方式 3.掌握函数递归调用的方法

二、 实验内容和原理

1. 写一个判素数的函数,在主函数输入一个整数,输出是否素数的信息。

2. 编写一个函数,将一个字符串中的元音字母复制到另一个字符串中,然后输出。 3. 用递归调用的方法写一个求n! 的函数,在主函数中输入一个整数,输出该数的阶乘。 4. 函数编写,使其按给出的表达式计算分段函数。|X|表示X的绝对值(利用 fabs( x )

函数求浮点数x的绝对值)。 0.336x+0.015x+3.541 x < 1

2

fun(x)= 567 1 ≤ x ≤ 3

1.55(|10-x|+ 0.3) x > 30 例如:fun( 0.3 ) = 3.643 fun( 1.5 ) = 567.000 fun( 5.15 )= 7.982

5. 编写函数,求1+3+5+7+?+99。

6. 写两个函数,分别求两个整数的最大公约数和最小公倍数,用主函数调用这两个函

数,并输出结果。

三、 实验环境

1. 硬件:PC机;

2. 软件:Windows操作系统、Visual C++ 6.0 。

四、 算法描述及实验步骤

1、 用scanf函数输入,用for(i=2;i<=sqrt(n)&&flag==1;i++)判断该数是不是素数,当n到能

整除i时,输出0结束,最后判断完输出相应的语句。

2、 用char来输入一个空字符串,用gets获得另一个字符串,用 for语句,另i=0,j=0且s[i]

从1开始,当s[i]==大小写aeiou中的任意一个,若是j++,用c[j]=s[i]复制字母,最后输出字符串。

3、 先用scanf函数输入n,调用fac函数来求值,用for语句来选择条件,当n<0时输出错

误,当n=0或1时,时递归终结,若fac f=fac(n-1)*n,求值最后返回结束。

4、 用scanf函数输入x,调用fabs绝对值函数用if语句的嵌套来算出各个区间不同算式所

对应的值,用fun函数反复调用函数,最后返回结束。

5、 定义i、s、n,用for语句对i进行限制,i=1;i<=n;i=i+2 ,再用s=s+i老、i求和,最后

输出且将n赋值为99。

6、先对hcf和lcd函数进行声明且定义uvhl,将u和v比较,另u为大者,让u当被除数,用while((r=u%v)!=0)让除数v为被除数u,余数r为除数v,然后输出最大公约数人,和最小公倍数u*v/最大公约数r,结束。

五、 调试过程

第四题中,漏掉了scanf函数输入,导致编程错误。

六、 实验结果

1、

2、

3、

4、5、

、、

6、

七、 总结

6、 通过这次上机实验让我更深一步的连接和掌握定义函数的方法、函数的递归调用、怎么

样实际的去运用函数编程解决题目。

附录:

1、#include #include int main ( ) {int prime(int); int n;

printf(\scanf(\if(prime(n))

printf(\else

printf(\return 0; }

int prime(int n) {int flag=1,i;

for(i=2;i<=sqrt(n)&&flag==1;i++) if(n%i==0) flag=0; return(flag); }

2、#include int main ()

{void cpy(char[],char[]); char str[80],c[80]; printf(\ gets(str); cpy(str,c);

printf(\ return 0; }

void cpy (char s[],char c[]) { int i,j;

for (i=0,j=0;s[i]!='\\0';i++)

if(s[i]=='a'||s[i]=='A'||s[i]=='e'||s[i]=='E'||s[i]=='i'||s[i]=='I'||s[i]=='o'||s[i]=='O'||s[i]=='u'||s[i]=='U') {c[j]=s[i]; j++; }

c[j]='\\0'; }

3、#include int main ()

{ long fac(int n); int n; long y;

printf(\ scanf(\ y=fac(n);

printf(\ return 0; }

long fac(int n) {

long f; if(n<0)

printf(\ else if(n==0||n==1) f=1;

else f=fac(n-1)*n; return(f); }

4、#include #include int main ()

{float fun(float x); float x,y;

printf(\请输入数值:\ scanf(\ y=fun(x); printf(\

%f,%6.3f\\n\}

float fun(float x) {float f; if(x<1)

f=0.336*x+0.015*x*x+3.541; else if(x>3)

f=1.55*(fabs(10-x)+0.3); else f=567; return(f); }

5、#include int sum(int n) {int s=0; int i;

for(i=1;i<=n;i=i+2) s=s+i; return s; }

int main()

{printf(\

}

6、#include int main ()

{int hcf(int,int); int lcd(int,int,int); int u,v,h,l;

scanf(\ h=hcf(u,v);

printf(\ l=lcd(u,v,h);

printf(\ return 0; }

int hcf(int u,int v) {int t,r; if(v>u)

{t=u;u=v;v=t;} while((r=u%v)!=0) { u=v; v=r;} return (v); }

int lcd(int u,int v,int h) { return(u*v/h); }

本文来源:https://www.bwwdw.com/article/6px3.html

Top