码迷,mamicode.com
首页 > 编程语言 > 详细

C语言程序设计第三次作业

时间:2017-10-28 18:58:30      阅读:394      评论:0      收藏:0      [点我收藏+]

标签:print   es2017   赋值语句   技术   中国   include   测试数据   分支   应该   

 

   (一)改错题

计算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提交列表

    技术分享                                                           技术分享

 

C语言程序设计第三次作业

标签:print   es2017   赋值语句   技术   中国   include   测试数据   分支   应该   

原文地址:http://www.cnblogs.com/J9810/p/7745908.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!