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

源程序(有错误的程序) #include <stdio.h>  int main(void)  {

 double x,y; printf("Enter x: \n"); scanf("=%f", x); if(x = 10); { y = 1 / x } else (x != 10) { y = x; } printf("f(%.2f) = %.lf\n" x y); return 0; }
错误信息1:
错误原因1:语句以分号结束
改正方法1:在语句后加上分号
错误信息2:
错误原因2:else后不能有条件
改正方法2:将其删除
错误信息3:
错误原因3:printf语句错误,少了两个逗号分隔
改正方法3:在""后与xy之间加上逗号分隔
错误信息4:
错误原因4:if语句()内为判断语句而不是赋值语句,且不加分号
改正方法4:用判断语句x==10,且将分号去掉
错误信息5:

错误原因5:输出格式错误
改正方法5:将\n去掉
错误信息6:
错误原因6:输出格式错误
改正方法6:将%.2f改为%.1f,%.lf改为%.1f
错误信息7:
错误原因7:scanf输出时取x得地址,且应为%lf型
改正方法7:在x前加&,“”内为%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配对,正确的配对方式如下:
if(a&&b)
{
    x = x + 1;
}
else
{
    y = y + 1;
}
2.C语言的表达式 (-10< x <10)能够表达x在区间(-10,10)吗?为什么?如果不能,正确的表达式应该怎么写?
不能,因为逻辑运算符的合并性是从左至右的,若输入的数大于10是为真,满足x>-10,此时x被赋值为1,且满足x<10,因而正确,故不能表达在区间(-10,10),正确的表达式为(x>-10&&x<10)

3.C语言中输入数据时,如果遇到非法字符,则认为输入结束。运行程序(1),输入123a,看看输出结果是什么?你能解释是为什么吗?,
程序(1)

#include <stdio.h>
int main() { int a, b; scanf("%d %d", &a, &b); printf("a = %d, b = %d\n", a, b); return 0; }
输出结果为

原因是ab均为整型数,而a为非法字符,故认为输入结束

 

scanf()函数的返回值是成功读入数据的个数,如果没有读取任何数据,则返回0。运行程序(2),分别输入123 45和123a,看看输出结果是什么?为什么?
程序(2)#include <stdio.h>

int main() { int a, b,n; n = scanf("%d %d", &a, &b); printf("n = %d\n", n); return 0; }
输出结果为
原因是第一中输入为整型符合定义的int型,故录入,而123a中a为非法字符,故只能录取一个,当录取到a是结束
修改程序:

总结:if()内要用判断语句而不是赋值语句!
double型的输入为%lf!!
(三)实验总结
3.(1)题目
判断一个5位数是不是回文数。例如12321是一个回文数,即它的个位与万位相同,十位与千位相同。
(2)流程图

(3)源代码 :

 


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


(5)实验分析
熟悉分支结构的正确形式
5.(1)问题
计算火车运行时间本题要求根据火车的出发时间和达到时间,编写程序计算整个旅途所用的时间。
(2)流程图

 

(3)源代码

   

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

     

(5)实验分析

    注意输出格式,要用%02d!

7.(1)题目
 三天打鱼两天晒网,中国有句俗语叫“三天打鱼两天晒网”。假设某人从某天起,开始“三天打鱼两天晒网”,问这个人在以后的第N天中是“打鱼”还是“晒网”?

(2)流程图

        

(3)源代码

     

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

  

(5)实验分析

  考虑问题要全面,细心!

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

(2)流程图

     

(3)源代码

  

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

    

(5)实验分析

  输出格式为%.2f且此处使用分支结构if,if else,else。

四.PTA提交列表

                                                              

 

转载于:https://www.cnblogs.com/J9810/p/7745908.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值