c语言第二次作业

一:改错

  1. 将源程序复制到devc++中查错
    经第一次编译后发现有错误如下
    1242802-20171021102640068-638125902.png
    经检查发现源程序将“stdio.h”错写成“stido.h”导致编译错误,现将错误改正进行第二次编译
    经第二次编译后发现仍有错误如下
    1242802-20171021103006115-1572065608.png
    经检查发现括号内忘记添加后面的“"”而导致编译错误,现将“"”填到括号内进行第三次编译
    经第三次编译发现仍有错误如下
    1242802-20171021103428037-1295993543.png
    经检查发现源程序第五行代码中最后忘记添加“;”而导致编译发生错误,现在第五行末添加“;”改正错误进行第四次编译
    发现仍有错误如下
    1242802-20171021103706162-16383908.png
    经检查发现源程序将“main”错写成了“mian”现改正错误进行第五次编译
    1242802-20171021103847927-1527977904.png
    此时发现编译为发生错误进行运行指令
    1242802-20171021103948943-716507.png
    符合题意
  2. 将源程序复制到devc++中
    进行第一次编译发现存在错误如下
    1242802-20171021104230052-9671284.png
    经检查发现第一行代码中“”中忘记添加“.h”
    现将错误改正进行第二次编译发现仍有错误如下
    1242802-20171021104432412-1574708545.png
    经发现第七行代码中注释符号错误现将“/*”改为“//”
    进行第三次编译发现编译未提示错误
    现进行运行指令,发现并不符合题意
    1242802-20171021105150224-105014065.png
    返回源代码中重新查找错误发现:
    1242802-20171021105341834-1004409697.png
    第七、八行代码中均有三个“%d”但后面给出的变量只有一个
    所以根据题意将变量补齐进行编译运行指令
    1242802-20171021105915131-350812550.png
    发现仍不符合题意返回源代码进行检查
    经检查发现:1.第八行代码中缺少一个“%”2.第七行中没有“\n”3.题中并未赋于x的值
    现将问题改正后程序如图
    1242802-20171021110521443-1403118955.png
    进行编译,运行指令
    1242802-20171021111012068-2074097823.png
    符合题意

二:总结

1.利用sizeof运算符编程求出int、long、float和double类型数据所占的字节大小

(1)验证,将源代码复制到devc++中
1242802-20171021113142365-2042950252.png
进行编译运行
1242802-20171021113456834-281280528.png
结果正确,符合题意
(2)求int整型变量所占字节数,将源程序做修改,如下
1242802-20171021113916427-1624838156.png
进行编译,运行
1242802-20171021114009256-1679521773.png
符合题意
(3)求long 长整型变量所占字节数,再次修改源程序,如下
1242802-20171021114441818-1778606928.png
进行编译,运行
1242802-20171021114535631-743446879.png
符合题意
(4)求float浮点型变量所占字节数,再次修改源程序,如下
1242802-20171021114718006-238095652.png
进行编译,运行
1242802-20171021114814349-1316893376.png
符合题意
(5)求double浮点型变量所占字节数,再次修改源程序,如下
1242802-20171021115228756-305554410.png
进行编译,运行
1242802-20171021115323912-23646729.png
符合题意

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

(1)将给定源代码输入得到结果如下
1242802-20171021131720271-1103282005.png
(2)修改程序,输出i+1,结果是什么?为什么?
修改程序后如图
1242802-20171021132010224-794509321.png
编译并运行得到结果如图
1242802-20171021132409209-953397393.png
发现编译错误,但依然能够运行,且运行结果显示 int类型最大值max 与int类型最小值min相同 ,结合题意当整数的值如果超过它的最大值,将发生溢出,所以得知当最大值+1之后就成了最小值
(3)修改源程序,将j变为j-1,结果是什么?为什么?
修改程序后如图
1242802-20171021133025334-233456649.png
编译并运行得到结果如图
1242802-20171021134639381-2020605442.png
发现还是编译错误但依旧能够运行结果显示 int类型最大值max 与int类型最小值min相同,得到结论 当最小值-1之后会和最大值+1之后的情况一样 也会发生整数溢出,所以在以后的学习历程中一定要注意这个问题。

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

将源代码复制到devc++中进行编译运行,并输入100 144 64结果如图
1242802-20171021135356584-1184340420.png
经过查阅资料发现%o为八进制整数的输入格式,%x为16进制整数的输入格式而144的八进制和64的十六进制恰好为100,所以当输入100 144 64时输出的就是100 100 100.

4.对本章其他你认为需要进行总结的内容进行总结

在我看来本章是c语言的基础,只有把基础打扎实后面才能熟能生巧,顺序结构看似简单其实也有一定的难度,决不能掉以轻心的学,所以说以后应该保持初心态度端正的去学习。

要想学好本章内容,细心也是一大需要注意的点,个人好多次因为小小的错误而纠结半天,忘记“&”、“main”写成“mian”、“printf”、“scanf”时常拼错,代码末忘记“;”等等情况经常发生,所以在今后的学习中一定要更细心才行。

三:实验总结

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

(2)源代码

include<stdio.h>

int main(void)
{
int a,b,c,d,Sum;
double Average;
scanf("%d %d %d %d",&a,&b,&c,&d);
Sum=a+b+c+d;
Average=Sum/4.0;
printf("Sum = %d; Average = %.1f",Sum,Average);

return 0;

}
(4)测试数据及运行结果
全部如图
1242802-20171021142803334-1824077700.png
(5)实验分析
此题并未出现问题

  1. (1)题目:
    据说一个人的标准体重应该是其身高(单位:厘米)减去100、再乘以0.9所得到的公斤数。已知市斤是公斤的两倍。现给定某人身高,请你计算其标准体重应该是多少?(顺便也悄悄给自己算一下吧……)
    (2)流程图
    1242802-20171021143618693-1966270741.png
    (2)源代码

    include<stdio.h>

    int main(void)
    {
    float H = 0.0f,a = 0.0f;
    scanf("%f",&H);
    a = (H - 100 )* 0.9 * 2;
    printf("%.1f",a);

    return 0;
    }
    (4)测试数据及运行结果
    全部如图
    1242802-20171021143815146-426552708.png
    (5)实验分析
    此题并未出现问题

  2. (1)题目:一个物体从100米的高空自由落下。编写程序,求它在前3秒内下落的垂直距离。设重力加速度为10米/秒​2​​
    (2)流程图
    1242802-20171021144934256-750659357.png

(3)源代码

include<stdio.h>

int main(void)
{
float height ,g , t ;
g=10.0;
t=3.0;
height = g * t * t / 2;
printf("height = %.2f",height);

return 0;

}
(4)测试数据及运行结果
全部如图
1242802-20171021145052427-2107582619.png
(5)实验分析
此题并未出现问题

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

(3)源代码

include<stdio.h>

int main(void)
{
int x,a,b,c,d;
scanf("%d",&x);
a = x % 10;
b = (x / 10)%10;
c = x / 100;
d = c + b * 10 + a * 100;
printf("%d\n",d);

return 0;

}
(4)测试数据及运行结果
全部如图
1242802-20171021151722146-1881786103.png
1242802-20171021151745631-1650982750.png

(5)实验分析
问题:1242802-20171021151525927-428962729.png
raptor与devc++输入的值一样,但输出不同。
原因:经发现raptor用“%”并不取整。
解决办法:通过同学的帮助得知用floor解决了问题。

四:PTA提交列表
1.顺序结构(一)如下
1242802-20171021153325256-899549055.png
1242802-20171021153335521-593254802.png
2.书序结构(二)如下
1242802-20171021153530318-1524732403.png
1242802-20171021153543193-1499571848.png

转载于:https://www.cnblogs.com/yangruofei/p/7704926.html

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值