学生实验报告学号:日期:2014-06-22系别计算机科学与技术专业计算机科学与技术(师)班级姓名课程名称程序设计基础课程类型专业课学时数2实验名称函数实验目的:掌握C语言函数的定义与调用方法;理解C语言函数的调用过程;学会编写函数构造程序.。实验要求:实验后写实验报告。1.实验内容:1.阅读下列程序并执行,理解程序的功能并记录程序运行结果#includestdio.hintx,y;voidnum(){inta=15,b=10;x=a-b;y=a+b;}voidmain(){inta=7,b=5;x=a+b;y=a-b;num();printf(%d,%d\n,x,y);}运行结果:2、阅读下面程序并执行,理解程序并记录程序运行结果#includestdio.hvoidmain(){inta=2,i;for(i=0;i3;i++)printf(%4d,f(a));}f(inta){intb=0;intc=3;b++;c++;return(a+b+c);}运行结果:3、调试运行教材146页-156页例7.1-例7.3页程序,理解并掌握程序改进所采用的程序设计技术。7.1题#includestdio.h/*函数功能:用迭代法计算n!*/longFact(intn){inti;longresult=1;for(i=2;i=n;i++){result*=i;}returnresult;}intmain(){intm;longret;printf(Inputm:);scanf(%d,&m);ret=Fact(m);printf(%d!=%ld\n,m,ret);return0;}运行结果:7.2题#includestdio.hlongFact(intn);intmain(){intm;longret;printf(Inputm:);scanf(%d,&m);ret=Fact(m);if(ret==-1)printf(Inputdateerror!\n);elseprintf(%d!=%ld\n,m,ret);return0;}/*函数功能:用迭代法计算n!当你n=0时,返回n!的值;否则返回-1*/longFact(intn){inti;longresult=1;if(n0){return-1;}else{for(i=2;i=n;i++)result*=i;returnresult;}}运行结果:7.3题#includestdio.hunsignedlongFact(unsignedintn);intmain(){intm;do{printf(Inputm(m0):);scanf(%d,&m);}while(m0);/*增加对输入数据的限制,确保输入的数据未无符号整数*/printf(%d!=%lu\n,m,Fact(m));/*无符号长整形格式输出阶乘值*/return0;}/*函数功能:用迭代法计算无符号整型变量n的阶乘*/unsignedlongFact(unsignedintn){unsignedinti;unsignedlongresult=1;for(i=2;i=n;i++)result*=i;returnresult;}运行结果;4、编程设计教材186页7.7题(1)、(2),并在VCC++环境下运行.7.7(1)穷举法:源程序#includestdio.hintGcd(inta,intb);/*函数声明*/intmain(){inta,b,t;printf(Inputtwonumbers\n:);scanf(%d,%d,&a,&b);printf(%d\n,Gcd(a,b));/*调用函数*/}/*计算量个正整数的最大公约数*/intGcd(inta,intb){intt,c;if(ab){c=a;}else{c=b;}for(t=c;;t--)/*最大数不会比这两个数的最小值大*/{a%t==0;b%t==0;if(a%t==0&&b%t==0)returnt;}}在VCC++环境下运行:运行结果:(2)欧几里得算法#includestdio.hintGcd(inta,intb);/*函数声明*/intmain(){inta,b;printf(Inputtwonumbers(ab):);scanf(%d,%d,&a,&b);do{printf(Error!\n);printf(Inputtwonumbers(ab):);scanf(%d,%d,&a,&b);}while(a=0||b=0||ab);printf(%d\n,Gcd(a,b));/*调用函数*/}/*函数功能:计算量个正整数的最大公约数*/intGcd(inta,intb){intr;intc;r=a%b;if(r==0)returnb;elsewhile(r!=0){c=b;/*保存当前的除数*/b=r;/*将当前的余数复制给下一次运算的除数*/a=c;/*将当前的除数福中给下一次运算的被除数*/r=a%b;/*记录当前的余数*/}returnb;/*输出两数的最大公约数*/}在VCC++环境下运行;实验总结:通过本节实验课,进一步熟悉了函数的基本用法与功能,初步学会了函数的调用方法,并且掌握了用迭代法编程计算一些简单的实际问题。函数是程序的基本单元,要学好这门课就要从基本工作做起,学好每一块语言知识,慢慢总结经验,掌握更多的编程技巧。-成绩批阅老师批阅日期