栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

【保姆级讲解】C语言---函数精华面试题荟

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

【保姆级讲解】C语言---函数精华面试题荟

 学不过瘾?配套更多面试题讲解视频请移步下方直通车https://www.bilibili.com/video/BV1E34y1a7WP/

1.写一个函数实现检测一个正整数是否是回数,如果是,返回1,不是返回0。如:12321 就是一个回数

#include 
#include 
#include 
#include 

int checkNumHs(int num)
{
	//1234321    1   2  3 4 3 2 1 
	int temp = num,i =0;
	char buff[10]={0};
	while(temp != 0)
	{
		buff[i] = temp%10;
		temp = temp/10;
		i++;
	}
	int checkflage =1;
	for(int j = 0; j < (i)/2 ;j++)
	{
		if(buff[j] != buff[i - 1- j] )
		{
			checkflage = 0;
			break;
		}
	}
	return checkflage;
}
int main()
{
	printf("%sn",checkNumHs(1234321)?"是回数":"不是回数");
	return 0;
}

 【函数面试】1-判断回数https://www.bilibili.com/video/BV1Ha411a7JS/

2。编写一个函数实现求一个正整数的阶乘,如果超过12,输出超过类型计算范围,返回0;如果在 1-12之间,则计算出其阶乘,返回阶乘值

#include 
#include 
#include 
#include 

int getFactorial(int num)
{
	int MUL =1;
	if(num > 12)
	{
		printf("超出范围");
		return 0;
	}
	else
	{
		for(int i = 1; i <= num; i++)
		{
			MUL *= i;
		}
	}
	return MUL;
}
int main()
{
	printf("%dn",getFactorial(10));
	return 0;
}

【函数面试】2-求阶乘值https://www.bilibili.com/video/BV1ba411a7ss/ 

3.判断一个数是否是水仙花数 
打印所有水仙花数。所谓水仙花是指一个三位数,其各位数字的立方和等于该数(使用子函数实现)

#include 
#include 
#include 
#include 
//打印所有水仙花数。所谓水仙花是指一个三位数,其各位数字的立方和等于该数。
//例:153=1*1*1+5*5*5+3*3*3=1+125+27
unsigned short checkNarcissus(int num);

unsigned short checkNarcissus(int num)
{
	int bai = num/100;
	int shi = num%100/10;
	int ge = num %10;
	if(bai*bai*bai+shi*shi*shi +ge*ge*ge == num)
		return 1;
	else 
		return 0;
}
//检验三位数值中的水仙花数
void check100_999_Narcissus(void)
{
	for(int i = 100; i< 1000; i++)
	{
		if(checkNarcissus(i))
		{
			printf("%d:水仙花数值n",i);
		}
	}
}
int main()
{
	check100_999_Narcissus();
	return 0;
}

【函数面试】3-水仙花https://www.bilibili.com/video/BV1q5411R7iB/ 

4.使用子函数编写一个200~400之间不能被3整除的数的和。

1)无返回值,无形式参数
2)有返回值,无形式参数
3)有返回值,有形式参数
#include 
#include 
#include 
#include 
//练习:使用子函数编写一个200~400之间不能被3整除的数的和。
//1)无返回值,无形式参数
void function200_400DEV3(void)
{
	int sum = 0;
	for(int i = 200 ; i <= 400; i++)
	{
		if(i % 3 == 0)
		{
			sum +=i;
		}
	}
	printf("%dn",sum);
}
//2)有返回值,无形式参数
int function200_400DEV3_rev(void)
{
	int sum = 0;
	for(int i = 200 ; i <= 400; i++)
	{
		if(i % 3 == 0)
		{
			sum +=i;
		}
	}
	return sum;
}
//3)有返回值,有形式参数
int functionEV3_rev(int start,int end)
{
	int sum = 0;
	for(int i = start ; i <= end; i++)
	{
		if(i % 3 == 0)
		{
			sum +=i;
		}
	}
	return sum;
}
int main()
{
	function200_400DEV3();
	printf("%dn",function200_400DEV3_rev());
	printf("%dn",functionEV3_rev(200,400));
	return 0;
}

【函数面试】4-三种子函数条件写法https://www.bilibili.com/video/BV1kY4y1k7Pa/

5.有一对兔子,从出生后第3个月开始,每一个月生一对兔子,新生的小兔子在长到第3个月开始每个月又生一对兔子,假如兔子不死,问每个月的兔子总数是多少。
规律: 
1
1
1(1)            			 
1(1+1)
1(1+1+1) 1(1) 
1(4)     1(2) 1(1)
1(5)     1(3) 1(2) 1(1)
…….
1、1、2、3、5、8…. 斐波那锲数列;
自第三个月开始,当月的兔子的数量是前两个月兔子的数量之和

#include 
#include 
#include 
#include 
int getSum(int n)
{
  if(n > 2) return getSum(n-1)+getSum(n-2);
  else if(n ==2) return 1;
  else return 1;
}
int main()
{
	printf("%dn",getSum(5));
	return 0;
}

【函数面试】5-递归函数兔子问题计算https://www.bilibili.com/video/BV11r4y1b7VV/学不过瘾?配套更多面试题讲解视频请移步下方直通车https://www.bilibili.com/video/BV1E34y1a7WP/

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/856278.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号