资源描述:
《c语言函数实验报告模版》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、第六次实验函数一、实验要求1.掌握函数定义和调用的方法2.掌握函数嵌套调用和递归调用的方法3.理解实参与形参的对应关系以及“值传递”调用函数的方法4.理解变量作用域和存在期的概念,掌握全局变量和局部变量、动态变量和静态变量的定义、说明和使用方法二、实验内容(要求粘贴正确程序及测试结果)1、完善所给的程序,通过定义一个max3函数实现求三个数中的最大值的功能。#includeintmax3(inta,intb,intc);/*函数声明*/voidmain(){inta,b,c;intmax;printf("Pleaseinputthreenumbers:")
2、;scanf("%d%d%d",&a,&b,&c);max=max3(a,b,c);/*调用max3函数,其中a,b,c作为其参数,max用于保存max3函数的返回值*/printf("themaximumnumberof%d,%d,%dis%d",a,b,c,max);}/*可在此编写max3函数,实现求三个数中的最大值的功能*/max3(inta,intb,intc){intm;m=a>b?a:b;m=m>c?m:c;returnm;}2、在循环结构程序设计实验的第6题求完数中,要求编写程序判断1~1000之内的哪些数是完数。现要求改写该程序,新的程序中需要定义一个
3、intwanshu(intnum)函数,该函数功能是判断函数参数num是否为完数,如果是则函数返回值为1,否则为0。完成wanshu函数定义后,在新的程序中调用wanshu函数,使得新的改写的程序能判断1~1000之内的哪些数是完数。#includeintwanshu(intnum);/*函数声明*/voidmain(){inti;for(i=1;i<=1000;i++){if(wanshu(i))/*调用wanshu函数,其中i作为其参数,若调用后返回值为1则说明是完数,否则不是*/printf("%d是完数",i);}}/*可在此编写wanshu函
4、数,实现一个数n是否是完数*/intwanshu(intnum){ints=0,i;for(i=1;i#include//判断一个整数是否为素数intprime(intnum){inti;if(num
5、==1
6、
7、num==0)return0;for(i=2;i<=sqrt(num);i++){if(num%i==0)return0;}return1;}voidmain(){inti;for(i=1;i<=1000;i++){if(prime(i))printf("%4d",i);}}例如:若n=10,则A10=0.617977三、实验小结一、实验目的和要求1.掌握一维数组、二维数组的定义、使用及初始化2.字符型数组使用3.学习数组作为函数参数的用法4.掌握与数组有关的常用排序算法二、实验内容(要求每题都复制程序并粘贴测试结果)1、编程实现如下功能:输入以!作为结束的字符串
8、,并统计该字符串中字母、数字、其他字符的个数。注:一般可以使用gets函数gets(str)将输入字符串保存至str字符数组中,该函数以回车作为输入结束符;在本题中,需要使用!作为输入的结束符,可考虑:#include"stdlib.h"#include"stdio.h"intnumOfLetter=0,numOfNumber=0,numOfElse=0;//分别表示字母、数字、其他字符的个数voidtest(){charc;while(1){scanf("%c",&c);if(c=='!'){break;}if(c>='a'&&c<='z'
9、
10、c>='A'&&c<='Z'
11、){numOfLetter++;}elseif(c>='0'&&c<='9'){numOfNumber++;}else{numOfElse++;}}}voidmain(){test();printf("D:%d",numOfNumber);printf("A:%d",numOfLetter);printf("O:%d",numOfElse);}方法一、参考P39第2题的形式,循环输入字符(直到!)并进行处理。方法二、使用scanf(“%c”,&str[i])形式将字符串输入到str数组里,并依次判断st