函数程序设计

发布 2022-06-29 09:15:28 阅读 5445

一、实验目的。

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...