第三次C语言作业

(一)改错题
计算f(x)的值:输入实数x,计算并输出下列分段函数f(x)的值,输出时保留1位小数。

输入输出样例1:
  Enterr x: 10.0
  f(10.0) = 0.1
输入输出样例2:
  Enter x: 234
  f(234.0) = 234.0
源程序(有错误的程序)

1、错误信息:
错误原因:y=1/x后面没有加;
改正方法:在y=1/x后面没有加;
2、错误信息:
错误原因:第7行的if括号里的语句后加了分号,无法与else配对。
改正方法:去掉if一行中的分号。
3、错误信息:
错误原因:else后边不能加语句
改正方法:去掉else后括号里的语句
4、错误信息:
错误原因:输语句中引号后要加逗号。
改正方法:在15行的“x”前加逗号。
5、错误信息:
错误原因:x与y两个变量之间要用逗号隔开。
改正方法:在x与y之间加上逗号。
6、错误信息:
错误原因:%.lf有误
改正方法:将%.lf改成%.1f
7:错误信息:
错误原因:保留两位小数与题目要求不符合
改正方法:将%.2f改成%.1f
(二)学习总结
1.if(a)if(b) x=x+1;else y=y+1; 的确切含义是什么?这个else应该和哪个if配对?如何明确表达这种配对方法?将该段代码按照规范化的格式进行书写。
答:确切含义是判断a和b,若成立,则运算“x=x+1”;若不成立,则运算“y=y+1”。其中else和第二个if配对。
2.C语言的表达式 (-10< x <10)能够表达x在区间(-10,10)吗?为什么?如果不能,正确的表达式应该怎么写?
答:不能,因为c语言中判断是从左往右的;当输入此判断时,“10<x”为“1”则“x<10”就表示为“1<10”,则满足判断。正确的表达式:(x<10&&x>-10)
3.C语言中输入数据时,如果遇到非法字符,则认为输入结束。运行程序(1),输入123a,看看输出结果是什么?你能解释是为什么吗?
1、源程序:
输出结果:
原因:只定义了整型变量a,b,并没有定义字符变量,在输入时却出现了字符,导致出现非法字符,程序还会默认输入完成而停止,于是出现了b=1。
2、源程序:
输出结果:

原因:在该程序中,a,b均为整型变量,在scanf中,对应的格式化输入符号也为整型,所以在输入“123 123”,符合数据,所以被读入,返回值为2.而输入“123a”时,其中有非法数据“c”,可以输入被终止,所以只将123赋给了a,b未能成功被赋值,所以是1。
修改程序(1):
(三)实验总结
1、题目
回文数
判断一个5位数是不是回文数。例如12321是一个回文数,即它的个位与万位相同,十位与千位相同。
流程图:
源代码:
测试数据及运行结果:
2、计算火车运行时间
本题要求根据火车的出发时间和达到时间,编写程序计算整个旅途所用的时间
流程图:
源代码:
测试数据及运行结果:
3、三天打鱼两天晒网
中国有句俗语叫“三天打鱼两天晒网”。假设某人从某天起,开始“三天打鱼两天晒网”,问这个人在以后的第N天中是“打鱼”还是“晒网”?
流程图:
源代码:
测试数据及运行结果:
4、阶梯电价
为了提倡居民节约用电,某省电力公司执行“阶梯电价”,安装一户一表的居民用户电价分为两个“阶梯”:月用电量50千瓦时(含50千瓦时)以内的,电价为0.53元/千瓦时;超过50千瓦时的,超出部分的用电量,电价上调0.05元/千瓦时。请编写程序计算电费。
流程图:
源代码:
测试数据及运行结果:
(四)PTA提交列表



posted @ 2017-10-29 16:02  慕容紫落  阅读(370)  评论(0编辑  收藏  举报