C语言程序设计第三次作业——选择结构(1)
(一)改错题
计算f(x)的值:输入实数x,计算并输出下列分段函数f(x)的值,输出时保留1位小数。
源程序:
编译:
错误信息1:
错误原因:x的输入格式与题目要求不符
改正方法:
错误信息2:
错误原因:输入时不要加等号,缺少取地址符,x定义为 double 类型,输出时保留一位小数,类型错误。
改正方法:
错误信息3:
错误原因:if 判断句末尾不应该加分号。
改正方法:
错误信息4:
错误原因:第九行最后缺少分号,y 为 double类型,应该以 1.0的形式计算。
改正方法:
错误信息5:
错误原因:else 后不应该带判断条件。
改正方法:
错误信息6:
错误原因:输入的x应该保留一位小数,换行后,要添加分号,变量x和y之间应该用逗号分开。
改正方法:
改正后编译结果:
(二)学习总结
1.if(a)if(b) x=x+1;else y=y+1; 的确切含义是什么?这个else应该和哪个if配对?如何明确表达这种配对方法?将该段代码按照规范化的格式进行书写。
答:确切含义为 如果输入了a,则输出if(b) x=x+1,即 再一次判断,如果输入的为b, 则输出 x=x+1,否则,输出 y=y+1。else与离它最近的if配对。每步相应的加上花括号。
格式:
2.C语言的表达式 (-10< x <10)能够表达x在区间(-10,10)吗?为什么?如果不能,正确的表达式应该怎么写?
答:不能。因为C语言的表达式-10< x的判断结果只能是1或0,然后再判断1或是0是否<10,所以,.C语言的表达式 (-10< x <10)的输出结果是 1 .
正确表达式:x > -10 && x < 10
3:i:输入123a,看看输出结果是什么?你能解释是为什么吗?,
程序(1)输出结果:
解释:输入的a ,b 为整形变量,若输入123a则a对应的为123,而a并不是整数,属于非法字符,则系统随机给出一个数。老师,这个我不确定,也不会。
ii:scanf()函数的返回值是成功读入数据的个数,如果没有读取任何数据,则返回0。运行程序(2),分别输入123 45和123a,看看输出结果是什么?为什么?
程序(2)输出结果:
答:因为a不是一个数,所以,不会被scanf()输入。
修改题不会。呜呜呜呜呜呜呜。
4:总结:踏实,认真,细心,勤练,才能学好。
(三)实验总结
1:题目
判断一个5位数是不是回文数。
(2)流程图
(3)源代码
(4)测试数据及运行结果
(5)实验分析
数据位数的判断是难点。
2:题目
计算火车运行时间。
(2)流程图
(3)源代码
(4)测试数据及运行结果
(5)实验分析
求位数相差时,特别注意相对应关系。
3:题目
中国有句俗语叫“三天打鱼两天晒网”。假设某人从某天起,开始“三天打鱼两天晒网”,问这个人在以后的第N天中是“打鱼”还是“晒网”?
(2)流程图
( 3)源代码
(4)测试数据及运行结果
(5)实验分析
对求余结果的判断,要特别细心。
4:题目
阶梯电价
为了提倡居民节约用电,某省电力公司执行“阶梯电价”,安装一户一表的居民用户电价分为两个“阶梯”:月用电量50千瓦时(含50千瓦时)以内的,电价为0.53元/千瓦时;超过50千瓦时的,超出部分的用电量,电价上调0.05元/千瓦时。请编写程序计算电费
(2)流程图
( 3)源代码
(4)测试数据及运行结果
(5)实验分析
时刻注意x的整数型和y1,y2的 double型之间的转化关系。
(四)PTA提交列表
选择结构(1)截图 计科1702 陆宝生
老师,做这个选择(1)时,特别艰难,改了不少,截图可能会多些。抱歉,😁
感谢老师可以看完。🙂