实验五 函数与编译预处理 下载本文

实验五 函数与编译预处理

实验课程名:高级语言程序设计(C)

专业班级: 学号: 姓名:

实验时间: 实验地点: 指导教师: 一、实验目的和要求 1. 掌握定义函数的方法。 2. 掌握函数实参与形参的对应关系以及“值传递”的方法。 3. 掌握函数的嵌套调用和递归调用的方法。 4. 掌握全局变量和局部变量,动态变量、静态变量的概念和使用方法。 二、实验内容 1、任务名称: 阅读c60101.c程序,通过调试该程序,熟悉函数的调用方法及单步跟踪键F7和F8的不同。 源代码:#include void main() { void fun(int i, int j, int k); int x,y,z; x=y=z=6; fun(x,y,z); printf(\} void fun(int i, int j, int k) { int t; t=(i+j+k)*2; printf(\} 运行结果:(需要截图) 运行结果分析:对于实参,在调用函数中对其进行定义时,不仅指明它的类型,而且系统还为其分配存储单元 2、任务名称阅读c60102.c程序,注意在调试时F11和F10的区别,还要注意函数调用过程中形参、实参的关系。 源代码:#include void main() { int x=10,y=20; void swap (int ,int); printf(\

swap(x,y); printf(\ } void swap (int m,int n) { int temp; printf(\temp=m;m=n;n=temp; printf(\} 运行结果:(需要截图) 运行结果分析:形参具有“用之则建,用完则撤”的特点 3、任务名称: 程序c60103.c是实现求素数的,请填空完成该程序,并上机运行测试。 源代码:#include #include void main() { int m; void prime(int); printf(\scanf(\ prime(m); printf(\ } void prime(int n) { int i,k; k=sqrt(n); for(i=2;i<=k;i++) if (n%i==0) break; if(i>=k+1) printf(\else printf(\} 运行结果:(需要 截图)运行结果分析:素数函数 4、任务名称: 程序c60104.c的功能是从键盘上输入的若干个数并求出最大值。请填空完成该程序。 源代码:#include

void main( ) { int i; int s[10], max; int Findmax( int x[], int n ); printf(\ for(i=0;i<10;i++) scanf(\ max=Findmax(s,10); for (i=0;i<10; i++) printf(\ printf(\ max is %d\\n \} int Findmax( int x[ ], int n ) { int max,i; max=x[0]; for ( i=1; i void main( ) { int i , k; void sort(int x[],int n); float s[100], j ; printf(\ for (i=0; scanf(\ s[i]=j; sort(s, i); for (k=0; k

{ min=i; for(j=i+1;j void main( ) { float fac(int n); int n,m; float C; printf(\输出两个整数:\ scanf(\ if(m>n) {C=fac(m)/(fac(n)*fac((m-n))); printf(\ else printf(\数据错误\ printf(\} float fac(int n) {float f; if(n<0) { printf(\错误\} else if (n==0||n==1)

f=1; else f=fac(n-1)*n; return(f); } 运行结果:(需要截图) 运行结果分析:主函数中调用三次即可求得 7、任务名称: 阅读如下递归程序c60107.c,其功能是什么?上机调试。 源代码:#include void main( ) { int m, k; void dtoo( int n ,int r ); printf(\ scanf(\ printf( \ a number in (2,8,16):\ scanf(\ dtoo(m,k); } void dtoo( int n ,int r ) { if(n>=r) dtoo(n/r,r); printf(\ } 运行结果:(需要截图)运行结果分析:求余 8、任务名称: 预习c60201.c程序,写出预习结果,上机验证并写出分析 源代码:# define LOW 10 # define HIGH 5 # define CHANGE 2 int i = LOW ; #include void main( ) { int workover ( int i ) , reset ( int i ); int i = HIGH ; reset ( i / 2) ; printf(\ reset ( i = i / 2) ;