c语言第二次作业
一:改错
1.
将源程序复制到devc++中查错
经第一次编译后发现有错误如下
经检查发现源程序将“stdio.h”错写成“stido.h”导致编译错误,现将错误改正进行第二次编译
经第二次编译后发现仍有错误如下
经检查发现括号内忘记添加后面的“"”而导致编译错误,现将“"”填到括号内进行第三次编译
经第三次编译发现仍有错误如下
经检查发现源程序第五行代码中最后忘记添加“;”而导致编译发生错误,现在第五行末添加“;”改正错误进行第四次编译
发现仍有错误如下
经检查发现源程序将“main”错写成了“mian”现改正错误进行第五次编译
此时发现编译为发生错误进行运行指令
符合题意
2.
将源程序复制到devc++中
进行第一次编译发现存在错误如下
经检查发现第一行代码中“
现将错误改正进行第二次编译发现仍有错误如下
经发现第七行代码中注释符号错误现将“/*”改为“//”
进行第三次编译发现编译未提示错误
现进行运行指令,发现并不符合题意
返回源代码中重新查找错误发现:
第七、八行代码中均有三个“%d”但后面给出的变量只有一个
所以根据题意将变量补齐进行编译运行指令
发现仍不符合题意返回源代码进行检查
经检查发现:1.第八行代码中缺少一个“%”2.第七行中没有“\n”3.题中并未赋于x的值
现将问题改正后程序如图
进行编译,运行指令
符合题意
二:总结
1.利用sizeof运算符编程求出int、long、float和double类型数据所占的字节大小
(1)验证,将源代码复制到devc++中
进行编译运行
结果正确,符合题意
(2)求int整型变量所占字节数,将源程序做修改,如下
进行编译,运行
符合题意
(3)求long 长整型变量所占字节数,再次修改源程序,如下
进行编译,运行
符合题意
(4)求float浮点型变量所占字节数,再次修改源程序,如下
进行编译,运行
符合题意
(5)求double浮点型变量所占字节数,再次修改源程序,如下
进行编译,运行
符合题意
2.在C语言中,在头文件limits.h中,有关于各种基本数据类型的最大以及最小值的宏定义。例如,int型的最大值为INT_MAX,最小值为INT_MIN。运行下列程序,看一下结果是什么?
(1)将给定源代码输入得到结果如下
(2)修改程序,输出i+1,结果是什么?为什么?
修改程序后如图
编译并运行得到结果如图
发现编译错误,但依然能够运行,且运行结果显示 int类型最大值max 与int类型最小值min相同 ,结合题意当整数的值如果超过它的最大值,将发生溢出,所以得知当最大值+1之后就成了最小值
(3)修改源程序,将j变为j-1,结果是什么?为什么?
修改程序后如图
编译并运行得到结果如图
发现还是编译错误但依旧能够运行结果显示 int类型最大值max 与int类型最小值min相同,得到结论 当最小值-1之后会和最大值+1之后的情况一样 也会发生整数溢出,所以在以后的学习历程中一定要注意这个问题。
3.运行下面的程序,输入100 144 64,看看运行结果是什么?为什么?
将源代码复制到devc++中进行编译运行,并输入100 144 64结果如图
经过查阅资料发现%o为八进制整数的输入格式,%x为16进制整数的输入格式而144的八进制和64的十六进制恰好为100,所以当输入100 144 64时输出的就是100 100 100.
4.对本章其他你认为需要进行总结的内容进行总结
在我看来本章是c语言的基础,只有把基础打扎实后面才能熟能生巧,顺序结构看似简单其实也有一定的难度,决不能掉以轻心的学,所以说以后应该保持初心态度端正的去学习。
要想学好本章内容,细心也是一大需要注意的点,个人好多次因为小小的错误而纠结半天,忘记“&”、“main”写成“mian”、“printf”、“scanf”时常拼错,代码末忘记“;”等等情况经常发生,所以在今后的学习中一定要更细心才行。
三:实验总结
1.
(1)题目.本题要求编写程序,计算4个整数的和与平均值。题目保证输入与输出均在整型范围内。
(2)流程图
(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)测试数据及运行结果
全部如图
(5)实验分析
此题并未出现问题
(1)题目:
据说一个人的标准体重应该是其身高(单位:厘米)减去100、再乘以0.9所得到的公斤数。已知市斤是公斤的两倍。现给定某人身高,请你计算其标准体重应该是多少?(顺便也悄悄给自己算一下吧……)
(2)流程图
(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)测试数据及运行结果
全部如图
(5)实验分析
此题并未出现问题
(1)题目:一个物体从100米的高空自由落下。编写程序,求它在前3秒内下落的垂直距离。设重力加速度为10米/秒2
(2)流程图
(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)测试数据及运行结果
全部如图
(5)实验分析
此题并未出现问题
9.
(1)题目:程序每次读入一个正3位数,然后输出按位逆序的数字。注意:当输入的数字含有结尾的0时,输出不应带有前导的0。比如输入700,输出应该是7。
(2)流程图
(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)测试数据及运行结果
全部如图
(5)实验分析
问题:
raptor与devc++输入的值一样,但输出不同。
原因:经发现raptor用“%”并不取整。
解决办法:通过同学的帮助得知用floor解决了问题。
四:PTA提交列表
1.顺序结构(一)如下
2.书序结构(二)如下