C语言编程:求最大公约数、最小公倍数及字符统计

需积分: 3 1 下载量 38 浏览量 更新于2024-07-31 收藏 131KB DOC 举报
"C语言编程练习题" 这些题目是针对C语言初学者设计的,旨在帮助他们掌握基本的编程技能和理解核心概念。以下是每个题目的详细解释: 1. 求最大公约数(Greatest Common Divisor, GCD)和最小公倍数(Least Common Multiple, LCM): 这个程序首先定义了两个函数:`hcf` 和 `lcd`。`hcf` 函数采用辗转相除法(欧几里得算法)来计算两个正整数的最大公约数,通过不断用较大的数除以较小的数并取余数,直到余数为0,此时的除数即为最大公约数。`lcd` 函数则利用公式 `LCM(a, b) = (a * b) / GCD(a, b)` 来计算最小公倍数,其中 `h` 是预先计算好的最大公约数。 2. 统计字符串中字母、空格、数字和其他字符的数量: 该程序定义了 `letter`、`digit`、`space` 和 `others` 四个变量来记录不同类型的字符数量,并使用 `count` 函数进行统计。在 `count` 函数中,通过遍历字符串,对每个字符进行判断,如果字符是字母(区分大小写),`letter` 加1;如果是数字,`digit` 加1;如果是空格,`space` 加1;其余情况,`others` 加1。这样,程序可以输出输入字符串中各种字符的计数。 3. 计算正整数的位数并输出原数和位数: 这个程序通过读取用户输入的正整数,然后用 `digit` 变量记录位数。计算位数的方法是将数字与10不断相除,直到商为0,每次除法操作的余数构成原数的每一位。最后,输出原数(可以通过将每位数乘以10的相应次方再累加得到)以及位数(`digit` 的值)。 这些题目覆盖了C语言的基础知识,包括函数定义与调用、输入输出、条件判断、循环控制、数组、字符串处理等。对于初学者来说,解决这些问题能够巩固基础知识,提升编程能力。