高级语言程序设计第四次作业

这个作业属于哪个课程:https://edu.cnblogs.com/campus/fzu/2026gjyycxsj

这个作业要求在哪里:

学号:0102600209

姓名:李明轩
(1)image
(2)image
用while和do while分别设计程序实现:用公式π/4=1-1/3+1/5-1/7+1/9+...求π的近似值,直到某一项的绝对值小于10-4为止,对两个程序的不同之处进行讨论。
while:
image
do while:image
不同之处:使用的循环体不一样,前者先判断再执行,后者先执行一次再判断。
设计一个程序,实现功能:逻辑表达式中的运算符,只有会影响表达式求值时,才会执行。
image
用for循环输出六行,第一行有FEDCBA,第二行是FEDCB,第三行是FEDC....,以此类推。
image
编程输入n, 计算s=1+(1+2)+(1+2+3)+…+(1+2+3+4+…n)。image
用for循环给一组整型类型的数组进行赋值,输出,以及求和,数组长度为8。
image
设计一个if和else的多分支程序(分支数目大于3),该多分支程序再用switch语句进行改写,同时设计一个使用条件运算符(?:)的双分支语句。
if else:image
改写:image

设计一个循环程序,再循环中用break和continue语句,实现不同的程序效果,给出结果并讨论。
image
设计一个程序求100~200间的全部素数,给出算法思想、传统流程图、程序NS流程图。image
算法思想:求并计算因子个数,当超出约束时break。若符合约束则检验并输出。
传统流程图:image
程序NS流程图:image
6.16.1:image
6.16.5
image
6.16.7
image
6.16.10
image
6.16.13
image
6.16.16
image
6.16.18
image
7.12.1
image
中文时有bug这里不做维护
7.12.2
image
由于win的行加载特性无法达到理想效果,故不演示回车时的情况。
7.12.4
image
由于win的行加载特性无法达到理想效果.同时在书写时误解了题意。下次应当注意
7.12.5
image
同上
7.12.7
image
写到这有点累

总结和思考:
总结:本次作业系统性地练习了 C 语言的核心控制流与基础数据结构,从理论到实践,收获颇丰。

循环与分支的深化:通过对比 while 和 do...while 计算
π
π 的近似值,我彻底理解了“先判断后执行”和“先执行后判断”的区别;通过改写多分支程序,我掌握了 if...else、switch 以及条件运算符(?:)的适用场景(如 switch 适用于等值判断,if 适用于区间判断)。

底层机制的理解:在探究逻辑表达式“短路求值”特性时,体会到了 C 语言的高效。同时,在练习 break 和 continue 的过程中,明确了它们在循环控制中的不同作用。

算法与逻辑表达:通过求解 100~200 之间的素数,并绘制传统流程图和 N-S 流程图,我学会了将抽象算法转化为清晰的图形结构。这对我后续编写复杂程序有极大的帮助。

大量实战积累:通过完成《C Primer Plus》第 6 章和第 7 章的十几道编程题(涵盖数组操作、数列求和、嵌套循环打印图形、工资税金计算等),我的代码熟练度得到了显著提升,能够独立完成从需求分析到代码编写再到调试的全过程。
思考:输入缓冲区的陷阱:在处理字符输入(特别是 7.12.1、7.12.2 题)时,遇到了 Windows 终端的“行缓冲”特性问题以及中文字符引发乱码的 Bug。这让我深刻认识到 scanf 和 getchar 在处理换行符 \n 时的不同行为。虽然这次因复杂度未做深入维护,但我明白后续需要通过 while(getchar()!='\n') 清理缓冲区,或改用 fgets 来规避。

审题需严谨:在 7.12.4 题中,由于书写时误解了题意,导致返工。这提醒我:编程不仅考验代码能力,更考验对需求的理解能力。开始写代码前,应当先在草稿纸上理清逻辑,甚至画出简单的流程图。

代码规范与命名:在宏定义和变量命名上,一开始也踩了坑(比如使用不合法的宏名),需要加强代码的可读性和规范性,拒绝“硬编码”。

posted @ 2026-11-05 21:11  Let137  阅读(2)  评论(0)    收藏  举报