导航菜单
首页 >  c语言专升本真题湖北  > 2023年湖北省专升本考试C语言程序程序设计大题真题解析(湖北师范大学)

2023年湖北省专升本考试C语言程序程序设计大题真题解析(湖北师范大学)

        在过去的2023年湖北省专升本考试中,出现了许多不同的考试题目,学长看过一些学校的题目后,认为含金量最高的还是湖北师范大学的这几道程序设计题,今天就来跟学长一起看看这道题目吧。

        求两数的最大公约数。(题目是参加考试的学弟告诉我的,也许描述的不是那么准确,但一重点一定是求最大公约数)

        在做这道题之前我们需要知道什么是最大公约数,以及用什么样的办法求:

最大公约数:能够被所指定的两个数同时除尽的,最大因子即这两个数的最大公约数。

解题算法:辗转相除法,辗转相除法是求两个数的最大公约数的最便捷的方法,其思路也不复杂。

//递归最大公约数#include//定义一个函数用来求两个数的最大公约数,它有两个int类型的形参,分别接收来自主函数中传递的出属于被除数的值int com_max(int x,int y){//判断两个数的大小,大的做被除数,小的做除数,因为小除大得到的肯定不是一个大于1的整数if(x > y){//使大数等于两数相除后的余数x = x % y;//判断这个余数是否为0,不是的话就再次调用这个函数本身达到一个递归的效果if(x != 0){com_max(x,y);}else{//如果余数为0,那么就返回除数,因为被除数被除数除尽了,那么说明该除数就是这两个数的最大公倍数,函数结束return y;} }else{ //如果y大于x那么和上面的思路一样,大数做被除数,小数做除数y = y % x; //使大数等于两数相除后的余数//判断余数是否为0,不是的话就再次调用函数本身,达到递归的目的if(y != 0){com_max(x,y);}else{//余数为0的话,那么就返回除数return x;}}}int main(){//定义三个变量,a,b用来接收从键盘上获取到的数值,flag用来接收函数调用的返回值int a,b,flag;//为变量a,b赋值scanf("%d%d",&a,&b);//调用函数com_max,传入a,b的值flag = com_max(a,b);//打印输出两数的最大公约数printf("The maximum common divisor of %d and %d is %d",a,b,flag);return 0;}

         程序的思路并不复杂,可以说非常简单,但是这是我觉得有意思的地方是湖师大没有选择去出一道《谭浩强C语言程序设计第五版》这本书上的题,而是选择出了一道书本之外的题目,这就说明在考考生平时的刷题量,以及算法了解。我看其他学校考的是冒泡排序和求5的阶乘,实际上那就是书上的例题,如果看书认真的同学应该能够很轻松的做出来。所以有24年备战的同学可以好好看看书,多多刷刷题,其实专升本考试也就那么回事,比高考简单多了,加油吧,年!

        本期内容,到这里就结束了。关于23年专升本考题的真题解析还剩最后一道,(小声逼逼,这些都是学长我从参加考试的学弟学妹或者其他所在学校的学长学姐哪里打听过来的,学长能力有限,只能做到这么多啦,希望能帮到你们)这最后一道也是来自湖北师范大学的,一道难度等级在我所讲解过的这些题目里排S级题目,想看的同学可以点击我的专栏《C语言学习之路》查看,那我们下期见。

相关推荐: