C语言编程:经典题解——最大公约数、字符统计与位数计算

5星 · 超过95%的资源 需积分: 10 7 下载量 10 浏览量 更新于2024-07-26 收藏 108KB DOC 举报
"113道经典C语言题目" 在学习C语言的过程中,通过解决一系列的编程题目可以帮助我们更好地理解和掌握语言的基本概念、语法结构以及算法设计。以下将详细解析两个提供的C语言题目,以帮助深化对C语言的理解。 第一题:求两个正整数的最大公约数(Greatest Common Divisor, GCD)和最小公倍数(Least Common Multiple, LCM)。此题主要涉及整数除法和取余运算。`hcf()` 函数通过辗转相除法(欧几里得算法)计算最大公约数,`lcd()` 函数则通过两数乘积除以最大公约数得到最小公倍数。程序首先通过`scanf()`函数获取用户输入的两个正整数 `u` 和 `v`,然后调用这两个函数进行计算,并打印结果。`hcf()`函数的核心在于不断用较大的数除以较小的数并更新除数,直到余数为0,此时的除数即为最大公约数。`lcd()`函数则简单地返回两数乘积除以最大公约数的结果。 第二题:统计输入字符串中字母、空格、数字和其他字符的数量。该题主要涉及字符数组操作、条件判断以及循环控制。`count()` 函数遍历输入的字符串,通过比较字符ASCII码来确定其类型。当字符在字母范围内时,增加字母计数;在数字范围内,增加数字计数;等于空格ASCII码(32)时,增加空格计数;其余情况增加其他字符计数。主函数中,先接收用户输入的字符串,然后调用`count()`函数进行统计,最后打印结果。 第三题:输入一个正整数,输出它的位数以及原数。这个题目主要考察的是整数的转换和处理。程序首先定义一个变量 `digit` 来存储位数,然后通过循环和条件判断找到输入数字的位数。一旦找到位数,可以很容易地打印出原数和位数。不过,题目提供的代码片段不完整,完整的程序应包括获取用户输入、计算位数的逻辑以及打印结果的部分。 通过这些经典题目,我们可以深入理解C语言的变量、函数、流程控制、输入输出、字符和整数处理等基础知识,同时培养解决问题和编写程序的能力。在实际学习过程中,建议读者不仅要理解和编写这些程序,还要尝试自己设计题目,提高编程思维和技巧。