一、实验目的。
1)掌握c语言函数定义及调用的规则;
2)掌握递归函数的编写方法和运行过程;
3)理解变量的作用域和生存期。
二、实验内容及步骤。
1、程序改错。
输入已编好的源程序,源程序中包含有错误,先对源程序进行编译和连接,然后根据提示信息,修改程序中的错误,经过多次修改—编译—连接,直到编译、连接成功。最后运行程序,输出正确结果。
1)下述程序中,函数fun功能是:计算正整数num的各位上的数字之积。例如,若输入252,则输出应该是20;若输入202,则输出应该是0。
#include <>提示:有3处错误*/
#include <>
long fun(num)
long k=1;
dok*=num%10;
num\=10;
while (num)
return k;
void main()
long n;
scanf(“%ld”,&n);
printf(“%ld”,fun(n));
修改后程序**:
#include <>提示:有3处错误*/
#include <>
int num;
long fun(long num)
long k=1;
dok*=num%10;
num/=10;
while (num);
return k;
void main()
long n;
scanf("%ld",&n);
printf("%ld",fun(n));
2、编写程序模拟掷骰子游戏。已知掷骰子游戏的游戏规则为:每个骰子有6面,这些面包含个点,掷两枚骰子之后,计算点数之和。
如果第一次掷的点数和为7或11,则游戏者获胜;如果第一次掷的点数和为或12,则游戏者输;如果第一次掷的点数和为或10,则将这个和作为游戏者获胜需要掷出的点数,继续投骰子,直到掷到该点数时算是游戏者获胜。如果投掷7次仍未掷到该点数,则游戏者输。
程序**:#include <>
#include <>
#include <>
enum status;
int sum1();
int main()
int sum,dot,i=1;
enum status gamestatus;
srand(time(null));
sum=sum1();
switch(sum)
while(gamestatus==continue)
if(gamestatus==won)
printf("恭喜你,你赢了");
elseprintf("对不起,你输了");
return 0;
int sum1()
int n1,n2,sum;
n1=1+(rand()%6);
n2=1+(rand()%6);
sum=n1+n2;
printf("你掷的点数是: %d(第一个骰子) +d(第二个骰子) =d",n1,n2,sum);
return sum;
运行结果:3. 递归程序设计练习——计算最大公约数
利用计算最大公约数的三条性质,用递归方法计算两个整数的最大公约数。
性质1:如果x>y,则x和y的最大公约数与x-y和y的最大公约数相同
性质2:如果y>x,则x和y的最大公约数与x和y-x的最大公约数相同。
性质3:如果x=y,则x和y的最大公约数与x值和y值相同,即。
具体要求:主函数中随机输入x、y的值。
所有变量定义为整数变量。
键盘输入数据前要有提示。
要求用函数求最大公约数。
程序**:#include <>
void fun(int, int);
void main()
int a,b;
printf("请输入两个整数a和b:")
scanf("%d%d",&a,&b);
fun(a,b);
void fun(int c,int d)
if(d>c)
fun(d-c,c);
else if(d fun(c-d,d);
else if(c=d)
printf("它们的最大公约数是:%d",c);
运行结果:4. 定义一个带参数的宏,使两个参数的值互换。在主函数中输入两个数作为使用宏的实参,输出已交换后的两个值。
程序**:#include <>
#define s(a,b,t)
int main()
double a,b,t=0;
printf("请输入两个数a,b:")
scanf("%lf%lf",&a,&b);
s(a,b,t);
printf("a=%lf b=%lf",a,b);
return 0;
运行结果:通过这次实验我知道做程序重在思考,写程序并不难,关键要是有思想;所以以后要多看经典的源程序,多学习一些优秀的算法!争取努力成为一名优秀的程序员!
函数程序设计
四川师范大学物理与电子工程学院 2014级2班张文鹏。1 实验目的 1 掌握c语言函数的定义方法 函数的声明及函数的调用方法 2 了解主调函数和被调函数之间的参数传递方式。2 实验原理 在c语言函数库中,有些我们需要的函数在函数库中无法找到,这时我们就需要在主函数开始之前对我们需要的函数进行声明,也...
函数程序设计作业
上机作业7 1.编写一个函数,将字符串中的小写字母转换为大写字母,主函数输入字符串并输出结果。2.编写一个函数求n!在主函数中输入n,调用函数求n!输出结果。3.编写函数,求级数s 1 2 3 n,并在主函数中求 4.编写一个函数,求一维数组最大值。5.输入10个数,编写一个函数,按降序对其排序。6...
vfp程序设计作业 程序设计基础
实验报告。实验目的 1.掌握程序文件的建立 编辑和运行方法。2.熟练掌握交互式输入语句accept,input,wait的使用。3.掌握程序控制结构的编写。4.能正确解读基本程序。实验内容 实验教程 上机实例8 1 上机实例8 2 上机实例8 3 input 请输入存款年限 to nx do cas...