C语言第三次作业

(一).改错题

计算f(x)的值:输入实数x,计算并输出下列分段函数f(x)的值

发现错误,如图

第九行源代码中没有分号,添加后,编译,如图:

第七行源代码中if语句后加了分号,去掉后,编译,如图:

源代码中else语句后面不带代码,去掉后,编译,如图:

源代码中输出语句错误,第十五行中少逗号,改正后,编译,如图:

运行结果如图:

结果不符合,将源代码中输出语句“%.lf”改成“%.1f”,将“\n”去掉,编译并运行,如图:


将源代码中输入语句“=%f”改成“%lf”,编译运行如图:

结果还是错误,检查源代码,纠正代码,并且将输入语句中加上“&”,编译运行如图:


符合期望;改正后源代码:

(二)学习总结

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。

4.对其他你认为需要进行总结的内容进行总结。
(1)定义字符型变量用char来定义,新定义比较陌生。(2)"" 和"=“永在的地方不一样,”“有时用在if()中
(3)若只有else了,else后面不要加东西。(4)逗号很容易丢,&也是,做题不要太着急,一步一步地写,不丢任何细节。
(三)实验总结
(1)题目
3 回文数
判断一个5位数是不是回文数。例如12321是一个回文数,即它的个位与万位相同,十位与千位相同。
(2)流程图

(3)源代码

(4)测试数据及运行结果

(5)实验分析

问题1:表达各位数复杂。
原因:耐心进行。
7 三天打鱼两天晒网
(1)题目
有句俗语叫“三天打鱼两天晒网”。假设某人从某天起,开始“三天打鱼两天晒网”,问这个人在以后的第N天中是“打鱼”还是“晒网”?
(2)流程图

(3)源代码

(4)测试数据及运行结果

(5)实验分析

问题1:编译没错,结果不对。
原因:格式不对, else后不加东西。

5 计算火车运行时间
(1)题目
本题要求根据火车的出发时间和达到时间,编写程序计算整个旅途所用的时间。
输入格式:
输入在一行中给出2个4位正整数,其间以空格分隔,分别表示火车的出发时间和到达时间。每个时间的格式为2位小时数(00-23)和2位分钟数(00-59),假设出发和到达在同一天内。
输出格式:
在一行输出该旅途所用的时间,格式为“hh:mm”,其中hh为2位小时数、mm为2位分钟数。
(2)流程图:

(3)源代码

(4)测试数据及运行结果

(5)实验分析

问题1:时间算不对。
原因:没有考虑周到,灵活结合常识。
9 阶梯电价
(1)题目

为了提倡居民节约用电,某省电力公司执行“阶梯电价”,安装一户一表的居民用户电价分为两个“阶梯”:月用电量50千瓦时(含50千瓦时)以内的,电价为0.53元/千瓦时;超过50千瓦时的,超出部分的用电量,电价上调0.05元/千瓦时。请编写程序计算电费。
(2)流程图:

(3)源代码

(4)测试数据及运行结果

(5)实验分析
认真计算即可,分清情况。
(四)PTA提交列表

posted on 2017-10-28 15:02  计科02  阅读(359)  评论(0编辑  收藏  举报

导航