大学生必学练习题

您所在的位置:网站首页 c语言机器人编程基础题库 大学生必学练习题

大学生必学练习题

2024-07-13 07:03| 来源: 网络整理| 查看: 265

我是陈皮,一个在互联网 Coding 的 ITer,微信搜索「陈皮的JavaLib」第一时间阅读最新文章,回复【资料】,即可获得我精心整理的技术资料,电子书籍,一线大厂面试资料和优秀简历模板。

文章目录 引言回文数汉诺塔无重复数字判断星期几字符串反转数字排序九九乘法表兔子生崽素数水仙花数小球自由下落求自然底数e杨辉三角最小公倍数亲密数

引言

在大学期间,C语言几乎是每个计算机专业必学的课程,在学习掌握基础知识之后,通过大量的C语言练习题,手写代码,是巩固基础知识,锻炼编程思维的重要手段之一。下面介绍C语言练习实例50例,题目+解决方法。

回文数

题目:输入一个数,判断它是不是回文数。一个数从左边读和从右边读的结果是一模一样的话就是回文数,例如12321是回文数,12531不是回文数。

分析:判断从左边读和右边读,结果是不是一样。

#include int main( ) { int num, x, y = 0; printf("请输入一位数:"); scanf("%d", &num); x = num; while (x > 0) { y = y * 10 + x % 10; x = x / 10; } if (num == y) { printf("%d是一个回文数", num); } else { printf("%d不是一个回文数", num); } } 请输入一位数:12321 12321是一个回文数 汉诺塔

题目:假设一块板上有三根针 A、B、C。A 针上套有 64 个大小不等的圆盘,按照大的在下、小的在上的顺序排列,要把这 64 个圆盘从 A 针移动到 C 针上,每次只能移动一个圆盘,移动过程可以借助 B 针。但在任何时候,任何针上的圆盘都必须保持大盘在下,小盘在上。从键盘输入需移动的圆盘个数,给出移动的过程。

分析:利用递归实现圆盘的整个移动过程;当只移动一个圆盘时,直接将圆盘从 A 针移动到 C 针。若移动的圆盘为 n(n>1),则分成几步走:把 (n-1) 个圆盘从 A 针移动到 B 针(借助 C 针);A 针上的最后一个圆盘移动到 C 针;B 针上的 (n-1) 个圆盘移动到 C 针(借助 A 针)。每做一遍,移动的圆盘少一个,逐次递减,最后当 n 为 1 时,完成整个移动过程。

#include int move(char from, int n, char to) { static int k = 1; printf("%2d:%3d # %c---%c\n", k, n, from, to); if (k++ % 3 == 0) printf("\n"); return 0; } int hanoi(int n, char x, char y, char z) { if (n == 1) move(x, 1, z); else { hanoi(n - 1, x, z, y); move(x, n, z); hanoi(n - 1, y, x, z); } return 0; } int main() { int n; printf("请输入盘子的数量:"); scanf("%d", &n); printf("\n"); hanoi(n, 'A', 'B', 'C'); return 0; }

演示输出结果如下:

请输入盘子的数量:3 1: 1 # A---C 2: 2 # A---B 3: 1 # C---B 4: 3 # A---C 5: 1 # B---A 6: 2 # B---C 7: 1 # A---C 无重复数字

题目:给你1、2、3、4、5总共五个数字,能组成多少个互不相同且无重复数字的三位数?并且输出。

分析:通过三层循环遍历,遍历所有情况,并排除重复的数字即可。

#include int main() { int i, j, k; // i,j,k分别代表百位,十位,个位 int count = 0; // 记录总共不重复的数字的个数 for (i = 1; i


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3