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

(一)改错

1.输出带框文字:在屏幕上输出以下3行信息。

  • 错误信息1:
  • 错误原因:
  • 改正方法:将stido改为stdio
  • 错误信息2:
  • 错误原因:第三个\n后缺少引号
  • 改正方法:在第三个\n后边补全引号
  • 错误信息3:
  • 错误原因:丢失;
  • 改正方法:在printf(" Welcome\n")后加一个;
  • 错误信息4:
  • 错误原因:单词错误
  • 改正方法:把mian改成main

2.计算某个数x的平方赋给y:分别以“y = xx” 和 “xx = y” 的形式输出x和y的值。注意不要删除源程序中的任何注释。

输入输出示例(假设x的值为3)

  • 错误信息1:
  • 错误原因:丢失h
  • 改正方法:在stdio后面加.h
  • 错误信息2:
  • 错误原因:注释符不全
  • 改正方法:在输出后补上*/
  • 错误信息3:运行程序发现结果不正确,
  • 错误原因:第7,8行的printf语句中缺少部分对应的函数值
  • 改正方法:补全对应函数值,如图
  • 错误原因:未给函数赋值
  • 改正方法:给函数赋值3
  • 运行程序发现仍存在错误,经检查发现错误为第七行引号里缺少\n并且第八行d前缺少%,改正后如图所示

    程序运行正确且符合题目要求。

(二)学习总结

1.不同的数据类型,在计算机中所占内存大小是不一样的,C语言提供了sizeof运算符,可以获取数据字节数。其基本语法如下:

sizeof(数据类型名称)或sizeof(变量名)

  • 利用sizeof运算符编程求出int类型数据所占的字节大小
  • 源代码
  • 输出结果:

    利用sizeof运算符编程求出long类型数据所占的字节大小
  • 源代码
  • 输出结果:

    利用sizeof运算符编程求出float类型数据所占的字节大小
  • 源代码
  • 输出结果:

    利用sizeof运算符编程求出double类型数据所占的字节大小
  • 源代码
  • 输出结果:

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

  • 修改程序,输出i+1,结果是什么?为什么?
  • 原因:此时的I的值超过了最大值整数的值,将发生溢出,即整数溢出。
  • 修改程序,输出j-1,结果是什么?为什么?
  • 原因:此时的j的值低于最大值整数的值,将发生溢出,即整数溢出。

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

  • 原因:经在网上查询得知,%x是十六进制转换,%0是八进制转换,所以输入144 和 64程序会将输入的第一个数识别为十进制数,第二个识别为八进制数,第三个识别为十六进制数。并将它们转换为十进制数。

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

  • 通过本章的学习,我发现我从一开始学C语言的厌倦渐渐开始喜欢上了它,现在的我不再是因为自己的专业而学习它,而是真的对它充满了探索的欲望。总体感觉C语言要比流程图好用的多,在编写程序时一定要认真,注意字母、符号等小的细节,在遇到不会的地方时不要放弃,可以在网上查询,然后认真的去理解其中的每一个步骤,在会的基础上要学会寻求简单的方法,争取每一个程序都能用简单的、最少的步骤就能写出来。总的来说,在C语言上,认真二字最重要,一个马虎毁掉的就是整个程序,编程时不要着急,认真完成每一步。

(三)实验总结

1、求整数均值

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

(3)源代码

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

(5)实验分析
问题:

原因:average=sum/4.0,第一次做写成了average=sum/4,导致输出的Average是整数且保留了一位小数
解决办法:将average=sum/4改成average=sum/4.0

2、是不是太胖了

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

(3)源代码

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

(5)实验分析
问题:

原因:scanf("%d",&H);中的取地址符&忘记写了
解决办法:在H前面添加&

3、计算物体自由下落的距离

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

(3)源代码

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

(5)实验分析

原因:height=1.00/2x中的1.00/2写成了1/2导致1/2=0,最后直接影响height的输出值
解决方法:将height=1.00/2
x改成height=1.00/2*x

4、逆序的三位数

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

(3)源代码

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

(5)实验分析
问题:刚开始并没有思路,不知从何下手,以至于想单个输入3个值,最后发现根本不对
原因:没有想到中间应该是数学运算,而不是简单的数值调换
解决方法:采用数学运算,采用求余、取整等方法从而使达到题目要求。思路正确后在编写过程中没有遇到问题

(四)PTA提交列表



posted @ 2017-10-22 15:11  范马桶  阅读(998)  评论(0编辑  收藏  举报