中南大学C语言报告6

更新时间:2023-12-21 05:13:01 阅读量: 教育文库 文档下载

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

中南大学

C语言程序设计实验报告

实验题目 函数的定义与用法

学生姓名 樊列龙

指导教师 季桂树

学 院 信息科学与工程学院

专业班级 1132班

学生学号 0909113224

2012年 5 月 9 日

函数的定义与用法

一、 实验目的

(1) 掌握C语言函数的定义与调用的规则.

(2) 掌握函数的形参与实参的对应关系以及值传递的方式. (3) 掌握函数的嵌套与递归调用的方法. (4) 熟悉怎样运用函数实现指定的任务. (5) 熟悉全局变量和局部变量的概念和方法。

二、 实验过程

1 函数的定义与调用 ○

编辑如下程序:

#include

func(int a,int b) {

int c; c=a+b;

return(c); }

main() {

int x=6,y=7,z=8,r;

r=func((x--,y++,x+y),z--); printf(“%d”,r); } 运行结果:

2形式参数与实际参数 ○

- 1 -

输入两个数,要求输出其中值较大者。要求用函数来找到大数. 解:(1)先编写max函数

int max(int x,int y)

{

int z; z=x>y?x:y; return(z); {

(2)再编写主函数

#include

int main()

{

int max(int x,int y); int a,b,c;

printf(“please enter two integer numbers:”); scanf(“%d,%d”,&a,&b); c=max(a,b);

printf(max is %d\\n);

}

运行结果:

please enter two integer numbers:12 -34 max is 12

程序分析:

先定义max函数。第一行定义了一个函数名为max,函数类型为int.指定两个形参x和y,形参类型为int.

主函数中包含一个函数调用max(a,b)。max后面括号内的a和b是实参。A和b是在main 函数中定义的变量,x和y是函数max的形式参数。通过函数调用,在两个函数之间发生数据传递,实参a和

- 2 -

b的值传递给形式参数x和y,在max函数中把x和y中的大者赋给变量z,z的值作为函数值返回main函数,赋给变量c.

实参向形式数据传递是“值传递”,单向传递,只能由实参传给形参,而不能由形参传给实参。实参和形参在内存中占有不同的内存单元。在定义函数中指定的形参,在未出现函数调用时他们并不占内存单元,在发生函数调用时,函数max的形参临时分配内存单元。函数调用结束,形参单元被释放,实参单元仍然保持原有值不发生改变。 3函数的嵌套使用 ○

输入4个整数,找出其中最大的数。 编写如下程序:

#include int main() { int max4(int a,int b,int c,int d); int a,b,c,d,max; printf(“please enter 4 interger number:”); scanf(“%d%d%d%d”,&a,&b,&c,&d); max=max4(a,b,c,d); printf(“max=%d\\n”,max); return 0; } int max4(int a,int b,int c,int d); { int max2(int a,int b); int m; int=max2(a,b); int=max2(m,c); int=max2(m,d); return(m); } int max2(int a,int b); {if(a>=b) return a;

- 3 -

else return b; } 运行结果: please enter 4 interger number:12 45 -6 89 max=89 程序分析: 在主函数中调用max4函数,因此在开头要对其声明。在max4函数中三次调用了max2函数,因此在max4的开头要对max2坐声明。由于在主函数中没有直接调用max2函数,因此在主函数中不必对max2作声明。 max4函数的执行程序是这样的:第一次调用max2函数得到的函数是a和b中的大数,把它赋给变量m,第二次得到m和d的较大者,赋给m。第三次得到m和d的大者,这是一种递推方法。 程序改进: (1)可将max2函数的函数体改为只用一个return语句,返回一个条件表达式的值: int max2(int a,int b); {return(a>b?a:b);} (2)在max4函数中,三个调用max2的语句,可以用下一行代替:

- 4 -

m=max2(max2(max2(a,b),c),d); 甚至可以取消变量m,max4可写成: int max4(int a,int b,int c,int d); { int max2(int a,int b); return max2(max2(max2(a,b),c),d); } 由此可以看出,不仅要写出正确的程序,还要学习怎样使程序更加简练、专业和易读。

三、 实验小结

本次上机学习了C语言函数的相关知识,通过实践操作对C语言程序设计的基本思想方法有了初步的理解。并且体会到编写优秀的程序是需要一个过程的,只有经过不断的实践操作,不断的积累经验,才能在程序编写的过程中得心应手,从而编写出更加简练易读专业的程序。

- 5 -

m=max2(max2(max2(a,b),c),d); 甚至可以取消变量m,max4可写成: int max4(int a,int b,int c,int d); { int max2(int a,int b); return max2(max2(max2(a,b),c),d); } 由此可以看出,不仅要写出正确的程序,还要学习怎样使程序更加简练、专业和易读。

三、 实验小结

本次上机学习了C语言函数的相关知识,通过实践操作对C语言程序设计的基本思想方法有了初步的理解。并且体会到编写优秀的程序是需要一个过程的,只有经过不断的实践操作,不断的积累经验,才能在程序编写的过程中得心应手,从而编写出更加简练易读专业的程序。

- 5 -

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

Top