- 1
- 0
- 约 19页
- 2017-07-08 发布于湖北
- 举报
第1部分 语 言 篇
第1章 程序设计入门
学习目标
熟悉C语言程序的编译和运行
学会编程计算并输出常见的算术表达式的结果
掌握整数和浮点数的含义和输出方法
掌握数学函数的使用方法
初步了解变量的含义
掌握整数和浮点数变量的声明方法
掌握整数和浮点数变量的读入方法
掌握变量交换的三变量法
理解算法竞赛中的程序三步曲:输入、计算、输出
记住算法竞赛的目标及其对程序的要求
计算机速度快,很适合做计算和逻辑判断工作。本章首先介绍顺序结构程序设计,其基本思路是:把需要计算机完成的工作分成若干个步骤,然后依次让计算机执行。注意这里的“依次”二字——步骤之间是有先后顺序的。这部分的重点在于计算。
接下来介绍分支结构程序设计,用到了逻辑判断,根据不同情况执行不同语句。本章内容不复杂,但是不容忽视。
注意:编程不是看会的,也不是听会的,而是练会的,所以应尽量在计算机旁阅读 本书,以便把书中的程序输入到计算机中进行调试,顺便再做做上机练习。千万不要图 快——如果没有足够的时间用来实践,那么学得快,忘得也快。
1.1 算术表达式
计算机的“本职”工作是计算,因此下面先从算术运算入手,看看如何用计算机进行复杂的计算。
程序1-1 计算并输出1+2的值
#includestdio.h
int main()
{
printf(%d\n, 1+2);
return 0;
}
这是一段简单的程序,用于计算1+2的值,并把结果输出到屏幕。如果你不知道如何编译并运行这段程序,可阅读附录或向指导教师求助。
即使你不明白上述程序除了“1+2”之外的其他内容,仍然可以进行以下探索:试着把“1+2”改成其他东西,而不要去修改那些并不明白的代码——它们看上去工作情况良好。
下面让我们做4个实验:
实验1:修改程序1-1,输出3-4的结果
实验2:修改程序1-1,输出5×6的结果
实验3:修改程序1-1,输出8÷4的结果
实验4:修改程序1-1,输出8÷5的结果
直接把“1+2”替换成“3+4”即可顺利解决实验1,但读者很快就会发现:无法在键盘上找到乘号和除号。解决方法是:用星号“*”代替乘号,而用正斜线“/”代替除号。这样,4个实验都顺利完成了。
等一下!实验4的输出结果居然是1,而不是正确答案1.6。这是怎么回事?计算机出问题了吗?计算机没有出问题,问题出在程序上:这段程序的实际含义并非和我们所想的一致。
在C语言中,8/5的确切含义是8除以5所得商值的整数部分。同样地,(-8)/5的值是-1,不信可以自己试试。那么如果非要得到8÷5=1.6的结果怎么办?下面是完整的程序。
程序1-2 计算并输出8/5的值,保留小数点后1位
#includestdio.h
int main()
{
printf(%.1lf\n, 8.0/5.0);
return 0;
}
注意,百分号后面是个小数点,然后是数字1,再然后是小写字母l,最后是小写字母f,千万不能打错,包括大小写——在C语言中,大写和小写字母代表的含义是不同的。
再来做3个实验:
实验5:把%.1lf中的数字1改成2,结果如何?能猜想出“1”的确切意思吗?如果把小数点和1都删除,%lf的含义是什么?
实验6:字符串%.1lf不变,把8.0/5.0改成原来的8/5,结果如何?
实验7:字符串%.1lf改成原来的%d,8.0/5.0不变,结果如何?
实验5并不难解决,但实验6和实验7的答案就很难简单解释了——真正原因涉及整数和浮点数编码,相信多数初学者对此都不感兴趣。原因并不重要,重要的是规范:根据规范做事情,则一切尽在掌握中。
提示1-1:整数值用%d输出,实数用%lf输出。
这里的“整数值”指的是1+2、8/5这样“整数之间的运算”。只要运算符的两边都是整数,则运算结果也会是整数。正因为这样,8/5的值才是1,而不是1.6。
8.0和5.0被看作是“实数”,或者说得更专业一点,叫“浮点数”。浮点数之间的运算结果是浮点数,因此8.0/5.0=1.6也是浮点数。注意,这里的运算符“/”其实是“多面手”,它既可以拿来做整数除法,又可以拿来做浮点数除法。
提示1-2:整数/整数=整数,浮点数/浮点数=浮点数。
这条规则同样适用于加法、减法和乘法,不过没有除法这么容易出错——毕竟整数乘以整数的结果本来就是整数。
算术表达式可以和数学表达式一样复杂,例如:
程序1-3 复杂的表达式计算
#includestdio.h
#includemath.h
int main()
{
printf(%.8lf\n, 1+2*sqrt(3)/(5-0.1));
return 0;
}
相信读者不难把它翻译成数学表达式:。尽管如此,读者可能还是有一些疑惑:5-0.1的值是什么?“整数-浮点数”
您可能关注的文档
- 作物学责任教授与研究方向学术带头人及.doc
- 浅谈信息技术及化学教学的整合及反思.doc
- 广州市第三、四、六、七资源热力电厂锅炉燃烧器采购和相关.doc
- 脂联素在肥胖症患者与II型糖尿病患者血清中的浓度明显低于.doc
- 一个小男孩故事.doc
- 规范证件内容、正确使用《出生医学证明》对加强母婴.doc
- 第九章 生命科学导论课程论文.docx
- 轻症急性胰腺炎临床路径表单_附件.doc
- 内蒙古绒山羊资源普查与生产性能测定实施方案.doc
- 第五章 SQE-供应商质量管理高级研修班.doc
- (2026春新版)部编版八年级语文下册《第一单元》PPT课件.pptx
- 2018电力监控系统网络安全监测装置技术规范.docx
- 2022电力监控系统安全防护方案审核要点.docx
- 2014电力电缆光伏系统EN 50618欧标.docx
- (2026春新版)人教版二年级数学下册《第三单元 万以内数的认识》教案.docx
- (2026春新版)人教版二年级数学下册《第四单元 万以内的加法和减法》教案.docx
- (2026春新版)人教版二年级数学下册《综合与实践 时间在哪里》教案.docx
- (2026春新版)苏教版二年级数学下册《综合与实践 时间有多长》教案 .pdf
- (2026春新版)部编版三年级语文下册第3单元(教案).docx
- (2026春新版)部编版三年级语文下册第8单元(教案).docx
原创力文档

文档评论(0)