C语言-函数调用练习(附答案)

目录

1.编写判断素数的函数,主函数输入10个整数,素数输出,要求每行最多出5个。

2.比较三个数大小。

3.使用函数统计指定数字的个数,读入一个整数,统计并输出该数中“2”的个数,要求定义并调用函数countdigit(number,digit),它的功能是统计整数number。例如:countdigit(12922,2),返回值是3。

4.写两个函数,分别求两个整数的最大公约数和最小公倍数,用主函数调用这两个函数,并输出结果。两个整数由键盘输入。

5.写一个函数,输入一个十六进制数,输出相应的十进制数。

6. 汉诺塔问题

7. 编写递归函数reverse(int n)实现将整数n逆序输出。

8.编写递归函数calc_pow ( double x, int n )实现一个计算x n(n≥1)的函数

9. 编写递归函数int fib(int n)求Fabonacci数列.

10.有一个3*4的矩阵,求所有元素中的最大值


1.编写判断素数的函数,主函数输入10个整数,素数输出,要求每行最多出5个。

#include<stdio.h>
int ss(int j)
{
	int flag=1;
	int i;
	for(i=2;i<j;i++)
		if(j%2==0)
		{flag=0;break;}
		if(flag==0)
			return 0;
		else return 1;}		
int main()
{
		int a,n=0,i;
		for(i=1;i<=10;i++)
		{
			scanf("%d",&a);
			if(ss(a))
			{printf("%d ",a);
			n++;}
			if(n==5)
				printf("\n");}
return 0;}

 

2.比较三个数大小。

#include<stdio.h>

int max(int x,int y) 
{
	if(x>y)
	return x;
	else
	return y; 
}


int main()
{
	int a,b,c;
	scanf("%d%d%d",&a,&b,&c);
	printf("%d",max(a,max(b,c)));
	return 0;
	
}

3.使用函数统计指定数字的个数,读入一个整数,统计并输出该数中“2”的个数,要求定义并调用函数countdigit(number,digit),它的功能是统计整数number。例如:countdigit(12922,2),返回值是3。

#include<stdio.h>

int countdigit(int number,int digit)
{
	int n=0;
	int a;
	while(number!=0){
		a=number%10;
		number = number/10;
		if(a==digit) 
		n++;}
		return n;
	}	

int main()
{
int number,digit;
scanf("%d%d",&number,&digit);
printf("%d",countdigit(number,digit));

return 0;	
}

4.写两个函数,分别求两个整数的最大公约数和最小公倍数,用主函数调用这两个函数,并输出结果。两个整数由键盘输入。

#include<stdio.h>
int max(int x,int y)
{
	int z;
	while(y!=0){
		z=x%y;		
		x=y;	
		y=z;
			
	}
	return x;	
	}
	
int min(int x,int y)
{
	int n;
	n=(x*y)/max(x,y);
	return n;	
}

int main()
{
	int x,y;
	int t;
	scanf("%d%d",&x,&y);
	if(x<y){
		t=x;
		x=y;
		y=t;
	}
	
	printf("最大公约数%d,最小公倍数%d",max(x,y),min(x,y)); 

}

5.写一个函数,输入一个十六进制数,输出相应的十进制数。

#include <stdio.h>
#include <string.h>
#include <math.h>

int main()
 {
 char a[1000];
  int f1(char a[]); 
 gets(a);
 printf("%d\n",f1(a));
 return 0;}


 int f1(char a[])
{
  int n,i,num=0;
  n=strlen(a);
  for(i=n-1;i>=0;i--)
  {
   if(a[i]>='0'&&a[i]<='9')
    num+=(a[i]-'0')*pow(16,n-1-i);
    else if(a[i]>='A'&&a[i]<='F')
      num+=(10+(a[i]-'A'))*pow(16,n-1-i);
     else if(a[i]>='a'&&a[i]<='f')
          num+=(10+(a[i]-'a'))*pow(16,n-1-i);
return num;} 
}

6. 汉诺塔问题

#include<stdio.h>
void hanio(int n,char a,char b,char c);
int main()
{ int n;
 char a,b,c;
scanf("%d",&n);
hanio(n,'a','b','c');
return 0;
}

void hanio(int n,char a,char b,char c)
{if (n==1)
printf("%c->%c\n",a,b);
 else
  {hanio(n-1,a,c,b);
printf("%c->%c\n",a,b);
hanio(n-1,c,b,a); }
}

7. 编写递归函数reverse(int n)实现将整数n逆序输出。

#include<stdio.h>
int reverse(int n)
{
	int m=0;
	while(n!=0)
	{
		m=m*10+n%10;
		n=n/10;
	}
	return m;
}

int main()
{
 int n;
 scanf("%d",&n);
  printf("%d\n",reverse(n));
 return 0;
}

8.编写递归函数calc_pow ( double x, int n )实现一个计算x n(n≥1)的函数

#include<stdio.h>
double calc_pow(double x,int n)
{
 if(n>=1)
 return (x*calc_pow(x,n-1));
 else return 1;
}

int main()
{
 double x;
 int n;
 scanf("%lf%d",&x,&n);
 printf("%.0f\n",calc_pow(x,n));
 return 0;}

9. 编写递归函数int fib(int n)求Fabonacci数列.

Fabonacci数列的定义为:

   f(n)=f(n-2)+f(n-1)  (n>=2)   其中 f(1)=1,f(2)=1。

如输入3   (n=3)

则输出

fit(1)=1

fit(2)=1

fit(3)=2

#include<stdio.h>
int f(int n)
{
    int t;
   if(n==1||n==2) 
	   t=1;
 else
	t=f(n-1)+f(n-2);
    return t;
}
int main()
{
 int i,n;
 scanf("%d",&n);
 for(i=1;i<=n;i++)
printf("f(%d)=%d\n",i,f(i));
 return 0;}

10.有一个3*4的矩阵,求所有元素中的最大值

#include<stdio.h>
int main()
{
	float a[3][4];
	int i,j,max;
for(i=0;i<3;i++)
{
	for(j=0;j<4;j++)
		scanf("%d",&a[i][j]);}
	printf("%d\n",max);
	return 0;}

int max(float b[][4]);
{	int i,j,max;
max=a[0][0];
for(i=0;i<3;i++)
	for(j=0;j<4;j++)
	{
		if(max<a[i][j])
			max=a[i][j];
	}
	return max;}

  • 17
    点赞
  • 111
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
函数C语言中非常重要的概念,它允许我们将一系列操作封装起来,实现代码的重用和模块化。函数的参数和返回值是函数中的关键部分,它们决定了函数的输入和输出。 首先,函数的参数是在定义函数时声明的,它可以是任何合法的C数据类型,包括整型、浮点型、字符型、指针型等。函数的参数允许我们将外部的数据传递给函数内部进行处理,使得函数可以适应不同的输入数据,增加了函数的灵活性和通用性。 其次,函数的返回值是函数执行完毕后返回给调用者的结果,它也可以是任何C数据类型。通过返回值,函数可以向调用者传递处理完毕的结果,从而实现函数与外部环境的数据交换。返回值还可以帮助我们进行错误处理和状态判断,例如返回-1表示函数执行失败,返回0表示函数执行成功等。 在教学中,我们可以通过实际案例来演示函数参数和返回值的使用。比如定义一个计算两个数之和的函数,可以将两个数作为参数传递给函数,然后函数返回两数之和作为结果。这样的案例可以让学生清楚地理解函数参数和返回值的作用与用法。 另外,在教学中我们也可以通过练习来巩固学生对函数参数和返回值的理解和掌握。比如设计一些函数调用的题目,要求学生分析函数的参数和返回值,并正确进行函数调用和结果输出。通过这样的练习,学生可以更好地掌握函数参数和返回值的相关知识。 总之,函数参数和返回值是C语言中非常重要的概念,它们决定了函数的输入和输出,对于理解和掌握函数使用非常关键。在教学中,我们可以通过案例演示和练习巩固来帮助学生更好地理解和应用函数参数和返回值。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值