C语言进阶:格式化输出、循环结构与算法实战

需积分: 0 0 下载量 125 浏览量 更新于2024-08-04 收藏 17KB DOCX 举报
在C语言的学习中,第三章主要聚焦于顺序结构和基本控制结构,包括printf函数的使用和循环语句的实践。以下将详细阐述这些知识点: **1. printf常用格式字符串** `printf`函数是C语言中用于输出格式化的函数,其格式字符形式的关键组成部分包括: - `%[标志]`:可选的格式指示符,如`%d`表示整数,`%c`表示字符,`%f`表示浮点数等。 - `[输出最小宽度]`:用于指定输出字段的最小宽度,如果实际值不足,会在前面补空格或0。 - `[.精度]`:对于数字类型,指小数点后的位数,如`.2f`表示保留两位小数。 - `[长度]`:如`hh`、`h`、`l`、`ll`分别表示短整型、标准整型、长整型和长长整型。 在提供的代码示例中,`for`循环中的`switch`结构展示了如何使用`break`和`continue`,`case 0`和`case 2`打印了0和2,而`default`打印了其他情况,导致输出为`000122`。 **2. 循环控制** - `while`循环:当条件满足时重复执行一段代码,直到条件变为假。如第二个例子,通过`do...while`实现计算`sum`小于200的和,`i`从1开始递增,找到满足条件的`i`值。 - `do...while`循环:与`while`类似,但至少会执行一次循环体,确保条件在执行后检查。 - `for`循环:适用于已知循环次数的情况,例如第一个例子中的`for`循环,控制变量`i`从0到2,执行相应的`switch`结构。 **3. 素数查找算法** 第三个示例展示了如何编写一个程序来找出1到`x`范围内的素数。使用嵌套的`for`循环,外部循环遍历`i`,内部循环判断`i`是否能被2到`sqrt(i)`之间的数整除。如果不能,则`i`是素数,打印并计数。素数计数器`cnt`每增加10就换行显示。 **4. 字符串处理与字母转换** 第四个程序是字符处理,利用`getchar()`读取输入的字符,并根据ASCII码进行操作。对于字母,转换为后第六个字母(字母表绕回处理),而非字母字符保持不变。 **5. 动态编程问题:小猴吃桃** 这个题目模拟了递归和动态规划的思想,小猴每天吃掉剩余桃子的一半再加一个。通过不断更新剩余桃子的数量,可以推算出最终小猴吃完所有桃子所需的天数,或者在给定条件下找到最后一天小猴吃到的桃子数量。 总结来说,第三章的C语言学习内容涵盖了基本格式化输出、循环控制结构的运用以及算法设计,这些知识点是理解和解决实际编程问题的基础。熟练掌握这些概念后,将有助于进一步深入C语言的学习和编程实践。