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

(一)改错题

第一题

格式如下:
错误信息1:
错误原因:标准输入输出拼写错误。
改正方法:第一行改成stdio.h
错误信息2:
错误原因:缺少引号。
改正方法:\n后加引号。
错误信息3:
错误原因:缺少分号。
改正方法: printf(" Welcome\n")后加分号。
错误信息4:
错误原因:拼写错误
改正方法:改mian为main

第二题

格式如下:
错误信息1:
错误原因:程序不完整
改正方法:stdio后加.h
错误信息2:
错误原因:对应变量不完整
改正方法:输出语句中,变量应为y,x,x和x,x,y
错误信息3:

错误原因:输出错误
改正方法:删除 /* 输出
错误信息4:x=3
错误原因:没有赋值x
改正方法:赋值
错误信息5:
错误原因:缺少%
改正方法:加上%
错误信息6:
错误原因:格式错误
改正方法:加上\n

(二)学习总结

1

(1).int类型数据所占字节大小

源代码:

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

运行结果:

(2).long类型数据所占字节大小

源代码:

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

运行结果:

(3).float类型数据所占字节大小

源代码:

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

运行结果:

(4).double类型数据所占字节大小

源程序

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

运行结果

2

在C语言中,在头文件limits.h中,有关于各种基本数据类型的最大以及最小值的宏定义。例如,int型的最大值为INT_MAX,最小值为INT_MIN。运行下列程序,看一下结果是什么?

(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);
    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;
}

结果:
原因:同上例,最小值为-i,修改后输出i-1,i-1比最小值小溢出变为最大值

3运行下面的程序,输入100 144 64,看看运行结果是什么?为什么?

源代码:

#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表示十六进制数,输入多个进制的,但是输出时均转换为了十进制。

(三)实验总结

1.求整数平均值
(1)题目
本题要求编写程序,计算4个整数的和与平均值。题目保证输入与输出均在整型范围内。
(2)流程图

(3)源代码

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

(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)测试数据及运行结果

3.计算物体自由下落的距离
(1)题目
一个物体从100米的高空自由落下。编写程序,求它在前3秒内下落的垂直距离。设重力加速度为10米/秒的二次方。
(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)测试数据及运行结果

4.逆序的三位数

(1)题目:程序每次读入一个正3位数,然后输出按位逆序的数字。注意:当输入的数字含有结尾的0时,输出不应带有前导的0。比如输入700,输出应该是7。
(2)流程图

(3)源代码

#include<stdio.h>
int main()
{
    int a,b,c,d,e,f;
    scanf("%d",&a);
    b=a%10;
    c=a/10;
    f=c%10;
    d=a/100;
    e=b*100+f*10+d;
    printf("%d",e);
}

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

(四)PTA提交列表






posted @ 2017-10-22 16:56  赵旭彤  阅读(607)  评论(0编辑  收藏  举报