实验十函数(1) 级 姓名 指导老师 成绩 第 机房 号机器时间: 实验目的:1.学会函数的定义和调用方法 2.掌握形参和实参的使用和传值调用, 3.了解函数声明的使用。 实验要求:每次实验前,学生要先预习实验内容,写出分析结果或程序,经实验指导 老师检查后,上机运行、调试程序,得出最终正确结果。 实验内容 、读程序 要求:读懂程序,写出分析结果;上机运行程序,得到运行结果,比较之。 fun (int x, int y, int z) z=x *x+y* Yi int a=31 fun(5,2,a); printf("bd", a)i 分析结果 t include int func(int a, int b i return(a+b)
实验十 函数(1) 班级______________姓名___________指导老师_____________成绩___________ 第_____________机房___________号机器 时间:________________________ 实验目的:1. 学会函数的定义和调用方法。 2. 掌握形参和实参的使用和传值调用。 3. 了解函数声明的使用。 实验要求:每次实验前,学生要先预习实验内容,写出分析结果或程序,经实验指导 老师检查后,上机运行、调试程序,得出最终正确结果。 实 验 内 容 一、读程序 要求:读懂程序,写出分析结果;上机运行程序,得到运行结果,比较之。 1. #include fun (int x, int y, int z) { z=x * x + y * y; return(z); } main() { int a=31; fun(5,2,a); printf(“%d”,a); } 分析结果 运行结果 2. # include int func(int a,int b) { return(a+b); }
第一部分c语言程序设计上机指导 main() printf(”dln”,x); 分析结果 运行结果 include float fun(int x, int y) printf("83.1 f \n", fun((int)fun(a+c, b), a-c 分析结果 运行结果 include fun (int x, int y int x=2, y=3 fun(x, y) printf(“%a,dn”,x,y) fun (int x, int y y=x-Yi x=x-yi printf(“数d,旨d,",x,y) 分析结果 运行结果
第一部分 C 语言程序设计上机指导 ·53· ·53· main ( ) { int x=2,y=5,z=8,r; r=func(func(x,y) , z); printf(“%d\n”,r); } 分析结果 运行结果 3. # include float fun(int x,int y) { return(x+y); } main() { int a=2,b=5,c=8; printf(“%3.1 f \n”,fun( (int)fun(a+c , b) , a-c ) ; } 分析结果 运行结果 4. # include fun (int x,int y ); main() { int x=2,y=3; fun(x,y); printf(“%d,%d\n”,x,y); } fun (int x,int y ) { x=x+y; y=x-y; x=x-y; printf(“%d,%d,”,x,y); } 分析结果 运行结果
C语言程序设计上机指导与同步训练 include i double x,y; printf("glf\n", max(x, y))i double max(double ouble b) return 2.以下函数的功能是求x的y次方,请填空,并写出主调函数。 #include int y) double z for (i=l, z=x; i<y; i++) z=z*
·54· C 语言程序设计上机指导与同步训练 ·54· 5. # include void f(int x , int y) { int t; if(x int f (int a) ; main() { int s[ 8 ] = {1,3,5,2,4,6} , i , d=0; for (i=0; f( s[i] ) ; i++) d+=s[i]; printf("%d\n",d); } int f(int a) { return a%2; } 二、完成程序 要求:根据要求,分析给出的上下语句,填写程序。 1. 请在以下程序第一行的下划线处填写适当内容,使程序能正确运行。 #include ___________________________ main() { double x,y; scanf("%1f%1f",&x,&y); printf("%1f\n",max(x,y)); } double max(double a,double b) { return (a>b ? a:b) ; } 2. 以下函数的功能是求 x 的 y 次方,请填空,并写出主调函数。 #include double fun( double x, int y) { int i; double z; for(i=1, z=x; i<y;i++) z=z* ______________;
第一部分c语言程序设计上机指导 3.以下函数的功能是计算s=1+ 3!”m,请填空。 double fun(int n) double s=0. 0 4.以下程序的功能是调用函数fun计算m=1-2+3-4+…+9-10,并输出结果。请填空 tdi. h> 三、调试程序 要求:分析下列程序是否正确,如有错,错在哪里?应如何改正?如正确,运行结果 如何?上机调试之 id f ( float n)
第一部分 C 语言程序设计上机指导 ·55· ·55· return z; } main( ) { } 3. 以下函数的功能是计算 s=1+ 1 2! + 1 3! +…+ 1 n! ,请填空。 # include double fun(int n) { double s=0.0 , fac=1.0; int i; for(i=1,i int fun(int n) ; main() { printf("m=%d\n", _______________ ); } int fun(int n) { int n=0,f=1, i; for (i=1; i<=n; i++) { i +=i * f; f = ____________ ; } return m; } 三、调试程序 要求:分析下列程序是否正确,如有错,错在哪里?应如何改正?如正确,运行结果 如何?上机调试之。 1. void f (float n); main( ) { float x = 5.2 ; f ( x ); } void f( n)
C语言程序设计上机指导与同步训练 printf("暑f\n",n); 正确 错误所在 应改为 main() int x,y: int z canf("旨ad,d",&x Max (x printf max 1s Max( int a int b) [ intc return (c)i 运行结果: 正确 错误所在 func float a, float b main( I float x,y i float z i printf 号f\n float a, float b) a a +b*b return C 运行结果: 正确 错误所在 错误
·56· C 语言程序设计上机指导与同步训练 ·56· { printf("%f\n",n); } 运行结果: 正确 错误所在: 错误 应改为: 2. main() { int x , y ; int z ; scanf(“%d ,%d ”,&x , &y ); Max ( x , y ) ; printf ( “ max is % d \n “ , z ) ; } Max ( int a , int b) { int c ; c = ( a > b ) ? a : b ; return ( c ) ; } 运行结果: 正确 错误所在: 错误 应改为: 3. func ( float a , float b ) main() { float x , y ; float z ; scanf(“%f , % f”,&x ,&y); z = func ( x , y ) ; printf ( “ z = % f \n” , z ) ; } func ( float a , float b ) { float c ; c = a * a + b * b ; return c ; } 运行结果: 正确 错误所在: 错误 应改为:
第一部分c语言程序设计上机指导 57 float add( a, b, c)i main() float x,y,z float scanf(”号f,旨f,王",&x,&y,&z); w= add (x,y,z )i printf float add (float a, float b, float c) I float d b return( d) 运行结果 正确 错误所在: 错误 应改为 四、写程序 1.编写一个函数,选出能被3整除且至少一位上数字是5的两位数,用主函数调用这 个函数,并输出所有这样的两位数。 2.编写一个函数,计算某日是该年的第几天?在主函数中输入要计算的该日的年 月、日,在主函数中输出该日是该年的第几天?
第一部分 C 语言程序设计上机指导 ·57· ·57· 4. float add ( a , b, c ); main() { float x , y ,z ; float w ; scanf(“%f , % f , % f”,&x ,&y,&z); w = add ( x , y,z ) ; printf ( “ w = % f \n” , w ) ; } float add(float a ,float b,float c ) { float d ; d = a * b * c ; return ( d ) ; } 运行结果: 正确 错误所在: 错误 应改为: 四、写程序 1. 编写一个函数,选出能被 3 整除且至少一位上数字是 5 的两位数,用主函数调用这 个函数,并输出所有这样的两位数。 2. 编写一个函数,计算某日是该年的第几天? 在主函数中输入要计算的该日的年、 月、日,在主函数中输出该日是该年的第几天?