
c语言基础练习题
计算两个数的最大公约数(GCD) 两个数的最小公倍数等于这两个数的乘积除以最大公约数 通过递归或迭代的方法实现上述计算
发布日期:2021-05-08 04:04:45
浏览次数:25
分类:精选文章
本文共 2278 字,大约阅读时间需要 7 分钟。
C语言基础练习题解析
1. 求两个数的最小公倍数
题目描述:编写一个函数,计算两个正整数的最小公倍数。
解题思路:最小公倍数(LCM)可以通过以下方法计算:
代码示例:
#include#include #include int gcd(int A, int B) { while (B != 0) { int temp = A % B; A = B; B = temp; } return A;}int lcm(int A, int B) { return (A * B) / gcd(A, B);}int main() { int A, B; printf("请输入两个正整数\n"); scanf_s("%d%d", &A, &B, 4, 4); printf("这两个数的最小公倍数是:%d\n", lcm(A, B)); return 0;}
2. 斐波那契函数的递归实现
题目描述:实现一个递归版本的斐波那契函数。
解题思路:斐波那契数列是一个经典的递归问题,特征是每个数等于前两个数之和。递归实现的关键在于正确处理递归终止条件。
代码示例:
int fib(int n) { if (n == 0) { return 1; } else if (n == 1) { return 2; } else { return fib(n - 1) + fib(n - 2); }}int main() { printf("请输入一个整数\n"); int n = 0; scanf_s("%d", &n, 4); printf("%d", fib(n)); return 0;}
3. 验证循环中的变量行为
题目描述:编写代码验证循环变量的行为。
解题思路:这个问题考察对变量作用域和操作顺序的理解。通过简单的循环和变量操作,验证变量的值变化是否符合预期。
代码示例:
int main() { int x = 1; do { printf("%2d\n", x++); getchar(); } while (x--); x = 1; printf("%d %d", j, i); return 0;}
4. 多变量赋值与运算顺序
题目描述:验证变量赋值与运算顺序的关系。
解题思路:通过赋值和运算顺序的测试,验证变量的值是否符合预期。
代码示例:
int main() { int i = 10; int j = 20; int k = 3; int m = 3; k *= i + j; // i + j = 30,k = 3 * 30 = 90 m += i * j; // i * j = 200,m = 3 + 200 = 203 printf("%d %d", k, m); return 0;}
5. 全局变量与局部变量的作用域
题目描述:验证全局变量与局部变量的作用域。
解题思路:通过函数调用和变量定义在不同作用域,验证变量的访问规则。
代码示例:
int a = 1;void test() { int a = 2; a += 1;}int main() { test(); printf("%d\n", a); return 0;}
6. 字符逆置函数
题目描述:编写一个字符逆置函数。
解题思路:通过递归或迭代的方式,将字符数组中的字符顺序反转。
代码示例:
void Reverse(char *start, char *end) { while (start < end) { char tmp = *start; *start = *end; *end = tmp; ++start; --end; }}int main() { char str[100]; gets_s(str, 100); int len = strlen(str); Reverse(str, str + len - 1); char *start = str; char *end = str; while (*end != '\0') { if (*end == ' ') { Reverse(start, end - 1); start = end + 1; end = start; } else { ++end; } } Reverse(start, end - 1); printf("%s", str); return 0;}
以上是对C语言基础练习题的详细解析和代码示例,涵盖了基础的数据结构、算法和编程实践。
发表评论
最新留言
很好
[***.229.124.182]2025年03月26日 04时00分12秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
自动安装服务2
2019-03-04
HTML 和 CSS 简单实现注册页面
2019-03-04
(SpringMVC)springMVC.xml 和 web.xml
2019-03-04
jQuery中的动画
2019-03-04
1.2.3 项目、项目集、项目组合以及运营管理之间的关系
2019-03-04
【△重点△】LeetCode - 4. 寻找两个正序数组的中位数——二分查找
2019-03-04
LeetCode - 5. 最长回文子串——字符串、动态规划
2019-03-04
全局锁和表锁 :给表加个字段怎么有这么多阻碍?
2019-03-04
二分查找与插入排序的结合使用
2019-03-04
892 三维形体的表面积(分析)
2019-03-04
16 最接近的三数之和(排序、双指针)
2019-03-04
279 完全平方数(bfs)
2019-03-04
875 爱吃香蕉的珂珂(二分查找)
2019-03-04
桌面图标的自动排列图标
2019-03-04
第十一届蓝桥杯python组第二场省赛-数字三角形
2019-03-04
Jquery使用需要下载的文件
2019-03-04
BST中某一层的所有节点(宽度优先搜索)
2019-03-04
广度优先搜索
2019-03-04
Dijkstra算法的总结
2019-03-04