实验十函数应用答案_第1页
实验十函数应用答案_第2页
实验十函数应用答案_第3页
实验十函数应用答案_第4页
实验十函数应用答案_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、实验十 函数应用一实验目的1.掌握函数的定义和调用; 2.理解形参和实参的使用和传值调用;3.理解函数声明的使用;4.掌握函数的嵌套调用;5.了解函数的嵌套与递归调用,掌握递归函数的编写规律;6.了解数组元素、数组名作函数参数。二实验学时数2学时三实验步骤(一) 阅读程序1#include <stdio.h>int fun (int x, int y, int z) z=x * x + y * y; main() int a=38;fun(7,3,a);printf("%d",a);分析结果 运行结果 2#include <stdio.

2、h>void fun (int x,int y );main()int x=5,y=3; fun(x,y);printf("%d,%dn",x,y); void fun (int x,int y ) x=x+y;y=x-y;x=x-y;printf("%d,%dn",x,y); 分析结果 运行结果 3#include <stdio.h>int f (int a);main() int s 8 = 1,2,3,4,5,6 ,i, d=0; for (i=0; f( si ) ; i+) d+=si; printf(&q

3、uot;%dn",d);int f(int a) return a%2; 分析结果 运行结果 4. #include<stdio.h>long f( int g) switch(g) case 0:return 0; case 1: case 2: return 1; return ( f(g-1)+ f(g-2);main ( ) long int k; k = f(7);printf("nk= %dn",k);分析结果 运行结果 5. #include<stdio.h>int f(int b 4)

4、 int i,j,s=0; for(j=0;j<4;j+) i=j; if(i>2) i=3-j; s+=bij; return s;main( )int a44=1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16;printf("%dn",f(a) );分析结果 运行结果  (二)完成程序要求:依据题目要求,分析已给出的语句,填写空白但是不要增行或删行,改动程序的结构1. 请在以下程序第一行的下划线处填写适当内容,使程序能正确运行#include <stdio.h>double max(double a

5、,double b);/或者double max(double,double);main()double x,y;scanf("%lf%lf",&x,&y);printf("%.8lfn",max(x,y);double max(double a,double b)return (a>b ? a:b) ;2.以下函数的功能是:求x的y次方,请填空,并配写出主调函数。double fun( double x, int y)int i;double z;for(i=1, z=x; i<y;i+) z=z* x;return z;m

6、ain( ) double a; int b; scanf("%lf%d",&a,&b); printf("%lf的%d次方为%lf",a,b,fun(a,b); 3.mystrlen函数的功能是计算字符串的长度,并作为函数值返回。请填空,并配写主调函数。int mystrlen(char str )int i;for(i=0; stri!=0'i+);return(i);main ( ) char a81; scanf("%s",a); printf("所输入字符串的长度为%dn"

7、;,mystrlen(a);  (三)调试程序要求:调试运行下列程序是否正确,若有错,写出错在何处?填写正确的运行结果1.行号1 void func ( float a , float b ) /void-float2 main()3 float x , y ;4 float z 5 scanf(“%f , % f”,&x ,&y);6 z = func ( x , y ) ;7 printf ( “ z = % f n” , z ) ;8 9 float func ( float a , float b )10 float c ;11 c = a * a

8、+ b * b ;12 return c ;13 正确运行结果:错误错误所在行:应改为:2.函数sstrcmp()的功能是对两个字符串进行比较。当s数组中字符串和t数组中字符串相等时,返回值为0;当s数组中字符串大于t数组中字符串时,返回值大于0;当s数组中字符串小于t数组中字符串时,返回值小于0(功能等同于库函数strcmp())。行号1 int sstrcmp(char s ,char t)2 int i=0 , j=0 ;3 while(si&&tj&& si= tj ) ; 4 return si-tj;5 6 main()7 int x;8 char

9、s150,s250;9 scanf("%s%s",s1,s2);10 x= sstrcmp(s1,s2);11 printf("n%dn",x); 正确运行结果:错误错误所在行:应改为:应改为:int sstrcmp(char s ,char t) int i=0 , j=0 ; while(si&&tj&& si= tj )i+,j+; return si-tj; main() int x; char s150,s250; scanf("%s%s",s1,s2); x= sstrcmp(s1,s2);

10、 printf("n%dn",x); 3.以下程序的功能是用递归方法计算学生的年龄,已知第一位学生年龄最小,为10岁,其余学生一个比一个大2岁,求第12位学生的年龄。行号main()1 int age( int n)  2 int n =12;3 printf (“ Age is %dn” , age (n);4 5 int age(int n);6 int c;7 c = age (n-1)+2 ; 8 return ( c ) ;9 正确运行结果:错误错误所在行:应改为:#include <stdio.h>main() int age( int n

11、); int n=12; printf("Age is %dn",age (n); int age(int n) int c; if(n=1) return 10; c=age(n-1)+2; return ( c ) ; (四)编写程序1编写一个函数,选出能被3整除且至少一位是5的两位数,用主函数调用这个函数,并输出所有这样的两位数。2编写函数判断某数是否为素数,如果是素数,则返回1,否则返回0,在main函数中调用该函数,根据返回值判断是否为素数。1#include<stdio.h>int f(int x) int a,b; a=x/10; b=x%10; if(a=5|b=5)&&x%3=0) return 1; else return 0; main( )int i; for(i=15;i<=95;i+) if(f(i) printf("%4d",i);2 #include<stdio.h>int f(int x) int i,t=1; for(i=2;

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论