高级语言程序设计课程第五次个人作业
这个作业属于哪个课程:https://edu.cnblogs.com/campus/fzu/gjyycx
这个作业要求在哪里:https://edu.cnblogs.com/campus/fzu/gjyycx/homework/14581
学号:102300120
姓名:覃俊源
一、编写程序
1.设计一个getchar和putchar联合使用的程序,使得程序遇到空格符时结束。

说明:通过 getchar () 逐字符读取输入,putchar () 实时输出,循环条件为读取到的字符不是空格,实现 "遇空格结束" 的功能。
2.建立一个in.txt和out.txt,分别使用这两个文件进行重定位代替键盘输入和屏幕输出in.txt存放一些字符小写字符,大写字符,数字字符,程序将这些小写字符转换成大写字符,然后全部输出到out.txt。

说明:通过文件操作函数读写 in.txt 和 out.txt,判断小写字母并转换,其他字符直接保留,实现文件内容的小写转大写功能。
3.从键盘上输入数据并进行加、减、乘、除四则运算(以“a运算b”的形式输入),判断输入的数据是否可以进行计算,若能计算,则输出计算结果,保留小数点后2位,否则显示“wrong input”。另外,碰到除数为0是能提示“division by zero”。形式参考第八章PPT18页。

说明:按 "a 运算 b" 格式读取输入,校验输入有效性,通过 switch 分支实现四则运算,处理除数为 0 和非法输入,结果保留 2 位小数。
4.混合读入字符、数值,形式参考第八章PPT19页。
问题描述:
先读入一个字符,再读入一个整数,最后又读入一个字符;然后分别输出它们
输入格式:n个空格和/或<回车>,一个字符,m个空格和/或<回车>,一个整数,k个空格和/或<回车>,一个字符
输出格式:字符整数字符

说明:处理输入中的空格和回车等空白字符,依次读取字符、整数、字符,最终按 "字符整数字符" 格式输出,满足输入格式要求。
二、编写并运行书本第8章8.11编程练习题目中的第3~7题。
1.编写一个程序,统计大小写字母数量

说明:循环读取一行字符,通过 ASCII 码范围判断大小写字母,分别计数并输出结果,非字母字符不统计。
2.编写一个程序,统计平均每个单词的字母数

说明:以空格为单词分隔符,统计输入行的字母总数和单词数,计算并输出平均每个单词的字母数(保留 1 位小数)。
3.编写一个程序,用二分法猜数

说明:基于二分查找算法,在 1-100 范围内猜数,根据用户反馈(大 / 小 / 对)调整查找范围,高效逼近正确答案。
4.编写一个程序,读取第一个非空白字符

说明:循环读取字符,跳过空格和回车等空白字符,直到读取到第一个非空白字符并输出,满足题目要求。
5.编写一个程序,计算工资

说明:读取工作时长和时薪,40 小时内按正常时薪计算,超出部分按 1.5 倍时薪计算加班工资,最终输出总工资。
三、编写并运行书本第9章9.11编程练习题目中的第1~4,8,9,11题。
1.编写一个程序,自定义函数,打印较小值

说明:定义 printMin 函数接收两个整数参数,通过三目运算符获取较小值并打印,主函数调用该函数实现功能。
2.编写一个程序,自定义函数,打印指定的字符j行i列

说明:自定义 printChar 函数,接收字符、列数、行数参数,通过嵌套循环打印指定行列数的字符矩阵,主函数传入参数调用。
3.编写一个程序,自定义函数,打印字符的行数和一行的次数

说明:函数接收字符、行数、每行次数三个参数,通过双重循环实现指定格式的字符打印,逻辑清晰,参数化设计提高复用性。
4.编写一个程序,自定义函数,求调和平均数

说明:使用可变参数函数,支持传入任意个数的整数,按调和平均数公式(n 除以各数倒数和)计算结果,灵活处理多参数场景。
5.编写一个程序,自定义函数,计算幂次

说明:非递归实现幂次计算,通过循环累乘 base 共 exp 次,得到结果,适用于非负整数指数,逻辑简单高效。
6.编写一个程序,递归法改写第八题

说明:基于递归思想实现幂次计算,以 exp=0 为终止条件,通过递归调用分解问题规模,体现递归算法的简洁性。
7.编写一个程序,自定义函数,计算斐波那契数列

说明:递归实现斐波那契数列,前两项为 1,后续项为前两项之和,主函数循环调用递归函数,打印前 n 项数列。
四、设计一个多源代码文件程序的编译。例如,first.c源代码文件包含主函数和一些头文件(second.h),second.c源代码文件是一些自定义的函数功能实现,second.h文件是一些常量声明和second.c中自定义函数的函数原型声明。
1.second.h

2.second.c

3.first.c

说明:主函数所在文件,通过包含头文件 second.h,调用 second.c 中实现的函数,体现多文件程序的模块化设计,编译时需链接所有相关源文件。

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

说明:主函数和自定义函数中定义同名变量 x,分别输出它们的内存地址,验证局部变量的作用域独立性
六、总结和思考
我完成了输入输出、文件操作、函数、多文件等编程练习,深化了 C 语言基础语法与内存布局理解,提升了代码实践能力。

浙公网安备 33010602011771号