C语言程序设计第二次作业——顺序结构

(一)改错题
1.源代码

错误信息1:

错误原因:stdio错写成stido。
改正方法:修改成stdio。
错误信息2:

错误原因:第五行后边没有分号。
改正方法:在五行后边加上分号。
错误信息3:

错误原因:main错写成mian。
改正方法:修改成main。
修改后的程序

运行结果

2.源程序

错误信息1:

错误原因:stdio后边没有 .h。
改正方法:在stdio后边加上 .h。
错误信息2:
错误原因:注释符号不完整。
改正方法:在注释 /* 输出后加上*/
修改后的程序

运行结果:
在运行后,发现运行结果不对。
错误原因:
1:x没有赋值 2:在最后输出时字母d前没有加% 3:输出的是3个%d,没有与3个%d对应的量。
修改完成的程序

运行结果

(二)学习总结
1.
int类型数据所占字节大小
源代码

#include <stdio.h> 
int main()
{   
    printf("int:  %d字节\n",sizeof(int));
    return 0;
}

运行结果

long类型数据所占字节大小
源代码

#include <stdio.h> 
int main()
{   
     printf("long:  %d字节\n",sizeof(long));
     return 0;
}

运行结果

float类型数据所占字节大小
源代码

#include <stdio.h> 
int main()
{   
    printf("float:  %d字节\n",sizeof(float));
    return 0;
}

运行结果

double类型数据所占字节大小
源程序

#include <stdio.h> 
int main()
{   
    printf("double:  %d字节\n",sizeof(double));
    return 0;
}

运行结果

2.
源代码

#include <stdio.h> 
#include <limits.h>
int main()
{   
    int i,j;
    i = INT_MAX;
    j = INT_MIN;
    printf("int类型最大值max = %d\nint类型最小值min = %d\n",i,j);
    return 0;
}

修改程序,输出i+1
结果:

#include <stdio.h> 
#include <limits.h>
int main()
{   
     int i,j;
     i = INT_MAX;
     j = INT_MIN;
     printf("int类型最大值max = %d\nint类型最小值min = %d\n",i+1,j);
     return 0;
}


原因:
源程序中int类型的最大值为i,修改后输出i+1,而i+1超过最大值i,将会发生溢出,他将溢出到起始点即最小值。
修改程序,输出j-1
结果:

#include <stdio.h> 
#include <limits.h>
int main()
{   
     int i,j;
     i = INT_MAX;
     j = INT_MIN;
     printf("int类型最大值max = %d\nint类型最小值min = %d\n",i,j-1);
     return 0;
}


原因:
相反,j为int类型的最小值修改后输出j-1,j-1小于最小值j,发生溢出,他将溢出到起始点即最大值。
3.
源代码

#include <stdio.h>
int main()
{   
    int a,b,c;
    scanf("%d%o%x",&a,&b,&c);
    printf("%d %d %d\n",a,b,c);
    return 0;
}

运行结果

原因:
通过向同学询问得知,%o表示八进制数,%x表示十六进制数,而输出格式中是十进制数,与输出格式不符,所以输出的格式不对。
4.
本课总结
对于本课程,还有需要总结的地方,就像在做上一道例题之前,不知道%o表示八进制数,%x表示十六进制数。这就需要在课下做好复习和预习的工作,课上需要认真听讲。还有写代码时,经常出现格式错误,这就需要写代码时要认真,避免不必要的错误。
(三)实验总结
1.求整数平均值
(1)题目
本题要求编写程序,计算4个整数的和与平均值。题目保证输入与输出均在整型范围内。
(2)流程图

(3)源代码

# include <stdio.h>
int main(void)
{
    int a,b,c,d,S;
    double A;
    scanf("%d %d %d %d",&a,&b,&c,&d);
    S=a+b+c+d;
    A=(double)(a+b+c+d)/4;
    printf("Average=%.1f",A);
    printf("Sum=%d",S);

    return 0;


}

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

(5)实验分析
问题一:在作流程图的时候光出错。
原因:对raptor的使用不太熟练
解决办法:向同学询问并加以改正
2.是不是太胖了
(1)题目
据说一个人的标准体重应该是其身高(单位:厘米)减去100、再乘以0.9所得到的公斤数。已知市斤是公斤的两倍。现给定某人身高,请你计算其标准体重应该是多少?(顺便也悄悄给自己算一下吧……)
(2)流程图

(3)源代码

# include<stdio.h>
int main(void)
{
    int H;
    double W;
    scanf("%d",&H);
    W=(H-100)*0.9*2;
    printf("%.1f",W);

    return 0;
}

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

(5)实验分析
该题比较简单,没有太大的问题。
3.计算物体自由下落的距离
(1)题目
一个物体从100米的高空自由落下。编写程序,求它在前3秒内下落的垂直距离。设重力加速度为10米/秒
​2
​​。
(2)流程图

(3)源代码

# include <stdio.h>
int main(void)
{
    int a,t;
    double height;
    t=3,a=10;
    height=1.0/2*a*t*t;
    printf("%.2f",height);

    return 0;
}

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

(5)实验分析
问题一:源程序中有误
原因:忘记给t赋值
解决办法:仔细检查,并修改
4.逆序的三位数
(1)题目
程序每次读入一个正3位数,然后输出按位逆序的数字。注意:当输入的数字含有结尾的0时,输出不应带有前导的0。比如输入700,输出应该是7。
(2)流程图

(3)源代码

# include <stdio.h>
int main(void)
{
    int a,m,n,p,o;
    scanf("%d",&a);
    p=a%10;
    n=(a/10)%10;
    m=a/100;
    o=p*100+n*10+m;
    printf("%d\n",o);

    return 0;

 } 

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

(5)实验分析
问题一:运行结果总是不对
原因:对于求余做除应用不熟练
解决办法:向同学求教,并加以改正
(四)PTA的提交列表
顺序结构(一)提交列表



顺序结构(二)提交列表




posted @ 2017-10-21 12:50  vahalla  阅读(1322)  评论(0编辑  收藏  举报