C语言程序设计第三次作业
C语言程序设计第三次作业
(一)改错题
- 计算f(x)的值:输入实数x,计算并输出下列分段函数f(x)的值,输出时保留1位小数。
1.源程序:
2.错误及改正。
- 错误信息1:
- 错误原因:中括号内内容未加分号。
- 改正方法:在x后加分号。
- 错误信息2:
- 错误原因:if语句后的括号后不应该有分号。
- 改正方法:将括号后分号去掉。
- 错误信息3:
- 错误原因:else后不应加括号。
- 改正方法:将括号及以内内容去掉。
- 错误信息4:
- 错误原因: x,y前没有逗号。
- 改正方法:在下x,y前加上逗号。
- 错误信息5:同错误信息4反映情况一。
- 错误原因:经检查xy之间仍旧差一个逗号。
- 改正方法:xy之间加一个逗号。
- 错误信息6:经检查,输入语句中未加入地址符&。
- 错误原因:x未取地址符。
- 改正方法:在x前加一个&。
- 错误信息7:经继续检查,发现输入语句存在问题。
- 错误原因:输入语句中“%f”不能直接输入,应改为“%lf”。
- 改正方法: 将%f改为%lf。
3.改正后正确程序。
(二)
1.if(a)if(b) x=x+1;else y=y+1; 的确切含义是什么?这个else应该和哪个if配对?如何明确表达这种配对方法?将该段代码按照规范化的格式进行书写。
- 1.如果输入的语句符合括号内的条件就执行x=x+1;否则就执行y=y+1
- 2.与第二个配对
- 3.在else后加{}
- 改正后的代码:
2.C语言的表达式 (-10< x <10)能够表达x在区间(-10,10)吗?为什么?如果不能,正确的表达式应该怎么写?
- 1.不能。
- 2.这样的话先会比较-10和x的大小,然后再比较后者,这样不会输出正确结果。
- 3.只能用x>-10 && x<10;来表示。
3.C语言中输入数据时,如果遇到非法字符,如果遇到非法字符,则认为输入结束。运行程序(1),输入123a,看看输出结果是什么?你能解释是为什么吗?
- 1.输出结果:
- 2.原因:非法字符无法输出,所以就输出了一个随机数。
(2)(2)scanf()函数的返回值是成功读入数据的个数,如果没有读取任何数据,则返回0。运行程序(2),分别输入123 45和123a,看看输出结果是什么?为什么?
- 1.输出结果:123 45
- 123a
- 总结:因为返回值是成功读取变量的个数,所以当输入“123 45”的时候,可以读出两个数据,故n=2;当输入123a的时候因为a为非法数据,不能赋值,所以只将123赋值给了a,所以n=1。
- 新程序:
- 内容总结:在这段学习中,我学会了数学符号的使用方法,在我们以后进行的复杂编程中会起到很大作用;还有就是一定要注意整形,实型的区别,还有就是if,else语句的用法,注意相关的格式。
(三)实验总结
题目2.本题目要求计算下列分段函数f(x)的值
2.流程图
3.源程序
4.运行结果
- 第一次:输入10
- 结果:
- 结果符合预期
- 第二次:输入-0.5
- 结果:
5:出现的问题
- 问题1:运用了数学符号sqrt,但出现以下情况。
- 解决办法:经检查发现未加上数学专用字符#include <math.h>
题目4.对于输入的两个整数,按照要求输出其和差积商
2.流程图:
3.源程序:
4.运行结果
- 第一次:输入6 3
- 结果:
- 第二次:输入8 4
- 结果:
5.出现的问题
- 问题:在做除法时第一次未考虑除不尽的情况。
- 解决办法:增添if语句,然后向同学请教了和,差,积,商的英文用法。
题目6:本题要求编写程序,根据输入的三角形的三条边a、b、c,计算并输出面积和周长。
1.流程图:
2.源程序:
3.运行结果
- 输入5 5 3:
- 输入1 4 1:
4.出现的问题
- 问题1:输出错误,经检查,未加入数学字符#include <math.h>
- 改正方法:加入上述字符。
- 运行符合预期。
题目8:本题要求根据某城市普通出租车收费标准编写程序进行车费计算。具体标准如下:
起步里程为3公里,起步费10元;
超起步里程后10公里内,每公里2元;
超过10公里以上的部分加收50%的回空补贴费,即每公里3元;
营运过程中,因路阻及乘客要求临时停车的,按每5分钟2元计收(不足5分钟则不收费)。
1.流程图:
2.源程序:
3:输出结果
- 输入2 6 2
- 输出结果:
4.出现的问题
- 问题1:输出值全为整数
- 原因:未考虑使用double
- 解决办法:在km,money中使用double语句。
(五)PTA提交列表