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

1、设计一个getchar和putchar联合使用的程序,使得程序遇到空格符时结束。
image
image

2、建立一个in.txt和out.txt,分别使用这两个文件进行重定位代替键盘输入和屏幕输出in.txt存放一些字符小写字符,大写字符,数字字符,程序将这些小写字符转换成大写字符,然后全部输出到out.txt。
image

3、从键盘上输入数据并进行加、减、乘、除四则运算(以“a运算b”的形式输入),判断输入的数据是否可以进行计算,若能计算,则输出计算结果,保留小数点后2位,否则显示“wrong input”。另外,碰到除数为0是能提示“division by zero”。
image
image

4、混合读入字符、数值。
问题描述:
先读入一个字符,再读入一个整数,最后又读入一个字符;然后分别输出它们
输入格式:n个空格和/或<回车>,一个字符,m个空格和/或<回车>,一个整数,k个空格和/或<回车>,一个字符
输出格式:字符整数字符
image

image

5、设计一个多源代码文件程序的编译。例如,first.c源代码文件包含主函数和一些头文件(second.h),second.c源代码文件是一些自定义的函数功能实现,second.h文件是一些常量声明和second.c中自定义函数的函数原型声明。
image
image
image

6、编写一个程序,在该程序中输出主函数内定义的变量的地址,以及函数中定义的同名变量的地址。
image

image

第八章编程练习:
8.3
image
image

8.4
image
image

8.5
image
image

8.6
image
image

8.7
image

image

第九章编程练习:
9.1
image
image

9.2
image
image

9.3
image
image

9.4
image
image

9.8
image
image

9.9
image

image

9.11
image
image

思考
这次编程实践让我深刻体会到C语言的严谨与脆弱并存。那些看似简单的语法规则背后,藏着无数让程序崩溃的陷阱。文件扩展名从.cpp改成.c,变量名从operator换成op,这些微小的改动就能让程序从无法编译到正常运行,说明C语言对细节的苛刻要求。
在处理用户输入时,我意识到健壮性不是靠复杂的逻辑,而是靠对每个环节的细致把控。用fgets()读取整行再解析,比直接scanf()更安全;在除法运算前检查除数是否为零,这种防御性编程看似多余,实则是避免程序崩溃的关键。多文件编程让我理解了接口设计的重要性——头文件就像契约,明确规定了模块之间的协作方式,这种分离让代码更清晰、更易维护。
总结
调试过程更像是在解谜,编译器错误信息只是线索,真正的答案需要自己推理。当看到"expected type-specifier before ';' token"这种模糊错误时,我学会了不只看报错的那一行,而要检查上下文。有时候问题不在当下,而在之前某个被忽略的细节里。
从递归到循环的斐波那契数列实现,让我认识到同一个问题可以有多种解法,而最好的解法往往是最适合当前场景的那个。二分查找猜数字的优雅,文件重定位的便捷,都在提醒我:好的代码不是功能实现,而是用合适的方法解决正确的问题。
这些经历让我明白,编程不仅是写代码,更是一种思维方式——在约束中寻找最优解,在混乱中建立秩序,在失败中积累经验。每个编译错误、每个逻辑bug,都在推动我成为更好的问题解决者。

posted @ 2025-11-17 19:41  102300317-李东阳  阅读(4)  评论(0)    收藏  举报