学不过瘾?配套更多面试题讲解视频请移步下方直通车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/



