函数调用实验例题

  • Post author:
  • Post category:其他



目录


一,实验目的:


二,实验内容:


1.例题一;


2.例题二;


3.例题三;


三,代码展示:

一,实验目的:

1.掌握函数的定义和调用方法;

2.掌握什么时函数原型,在何种情况下必须使用函数原型;

二,实验内容:

1.例题一;

1. 写一个判断素数的函数,在主函数中输入一个整数,输出是否是素数的信息。

1)分析:这个题目的关键在于函数的调用和返回。函数调用结束后应当用return语句返回相应的值。

2)根据上述分析写出源程序,并上机调试。

2.例题二;

2.按照如下公式计算e的近似值,n的值由键盘输入。

e=s(n)=1+ 2!3!…+n!

1)分析:这个题目主要用到了函数的嵌套调用。观察公式我们可以将公式的右半部分分解成三个函数:主函数main()、一求阶乘函数fac()和求和函数sum()。首先系统调用主函数,再由主函数调用求和函数:利用一个循环根据n的值,求和函数再多次调用求阶乘函数,而求阶乘函数再根据n的值利用循环完成求阶乘运算。调用完成后求阶乘函数将值返回到求和函数,求和函数将值返回给主函数。 int fau Lint n)

2)根据上述分析写出源程序,并上机调试。

3.例题三;

3定义函数GetData()用于接收键盘输入的一组整型数据,并放入一个数组中;另

外再定义一个函数Sort()用于对输入的这一组数据进行降序排列。主函数先后调用

GetData和Sort函数,输出最后的排序结果。

三,代码展示:

例题1;

#include<stdio.h>
    int sushu(int n);
main()
{
   int m;
   printf("输入一个整数\n");
    scanf("%d", &m);
    if(sushu(m)==1)
        printf("是素数\n");
    else
        printf("不是素数\n");
}
int sushu(int n)
{
    if(n == 1)  return 0;
    int i;
    for(i=2;i<=n/2;i++)
	{
        if(n % i == 0)  return 0;
    }
    return 1;
}

例题2;

#include<stdio.h>
int fac(int n);
float sum(int n);
int main()
{
	int n;
	float e;
	printf("请输入一个整数:\n");
	scanf("%d",&n);
	e=sum(fac(n));
	printf("%f",e);
}
int fac(int n)
{
	if(n==0||n==1) return 1;
	else return (n*fac(n-1));
}
float sum(int n)
{
	float s=1.0;
	int i;
	for(i=1;i<=n;i++)
	s+=1.0/fac(i);
	return s;
}

例题3;

#include<stdio.h>
#define N 10
void GetData(int a[],int n);
void Sort(int a[],int n);
int main()
{
	int i,a[N];
	GetData(a,N);
	Sort(a,N);
	printf("降序排列后为:");
	for(i=0;i<N;i++)
	   printf("%d ",a[i]);
}
void GetData(int a[],int n)
{
	int i;
	printf("请输入%d个数字并用空格键隔开:\n",N);
	for(i=0;i<N;i++)
	scanf("%d",&a[i]);
}
void Sort(int a[],int n)
{
	int i,j,k,t;
	for(i=0;i<N-1;i++)
	{
		k=i;
		for(j=i+1;j<N;j++)
		if(a[j]>a[k])
		k=j;
		if(k!=i)
		{
			t=a[i];
			a[i]=a[k];
			a[k]=t;
		}
	}
}



版权声明:本文为zzy_1314521原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。