版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
2023/1/141武汉理工大学计算机学院授课教师:周德仿
Email:dfzhouwuhan@163.comC语言程序设计2023/1/142选用教材主教科书
顾治华、陈天煌等
《C语言程序设计》
机械工业出版社
2007.2
参考教材
顾治华、陈天煌等《C语言程序设计学习辅导与等级考试精解》
四川大学出版社2004.122023/1/143课程内容第一章C语言程序设计基础
第二章程序的基石—算法
第三章顺序结构程序设计第四章选择结构程序设计
第五章循环结构程序设计
第六章数组与指针第七章函数与模块化程序设计方法第八章结构体和共用体
第九章预处理命令与带参数的主函数
第十章文件
2023/1/144第一章C语言程序设计基础1.1程序与程序设计1.2C语言简介1.3简单的C语言程序1.4C语言程序的上机步骤1.5C语言的基本词法1.6C语言程序的基本结构2023/1/145程序与计算机语言程序是存放在计算机中的操作指令和数据的集合。用程序设计语言安排好的处理问题的步骤称为计算机程序用程序设计语言编制一个能完成某项任务的计算机程序的过程叫做计算机程序设计。程序设计=数据结构+算法+程序设计方法+编程语言程序设计的关键:必须掌握一种程序设计语言。掌握程序设计的逻辑思维。2023/1/146
程序设计过程(1)问题的提出,要达到的要求;(2)确定数据结构和所采用的算法;(3)编制程序;(4)调试程序;(5)整理并写出文档;2023/1/147一、C语言出现的历史背景
C语言是国际上广泛流行的、很有发展前途的计算机高级语言。它适合于作为系统描述语言,既可用来写系统软件,也可用来写应用软件:
C语言是在B语言的基础上发展起来的,它的根源可以追溯到ALGOL60。1960年出现的ALGOL60是一种面向问题的高级语言,它离硬件比较远,不宜用来编写系统程序。1963年英国的剑桥大学推出了CPL(combinedprogramminglanguage)语言。CPL语言在ALGOL60的基础上接近硬件一些,但规模比较大,难以实现。2023/1/148
1967年英国剑桥大学的MatinRichards对CPL语言做了简化,推出了BCPL(basiccombinedprogramminglanguage)语言。1970年美国贝尔实验室的KenThompson以BCPL语言为基础,又做了进一步简化,设计出了很简单的而且很接近硬件的B语言(取BCPL的第一个字母),并用B语言写了第一个UNIX操作系统,在PDP-7上实现。
1971年在PDP-11/20上实现了B语言,并写了UNIX操作系统。但B语言过于简单,功能有限。1972年至1973年间,贝尔实验室的D.M.Ritchie在B语言的基础上设计出了C语言(取BCPL的第二个字母)。C语言既保持了BCPL和B语言的优点(精练,接近硬件),又克服了它们的缺点(过于简单,数据无类型等)。1973年,K.Thompson和D.M..Ritchie两人合作把UNIX的90%以上用C改写,即UNIX第5版。2023/1/149
直到1975年UNIX第6版公布后,C语言的突出优点才引起人们的普遍注意。1977年出现了不依赖于具体机器的C语言编译文本
《可移植C语言编译程序》,使C移植到其他机器时所需做的工作大大简化了,这也推动了UNIX操作系统迅速地在各种机器上实现。
以1978年发表的UNIX第7版中的C编译程序为基础,BrianW.Kernlghan和Denni.M..Ritchie,(合称KbR)合著了影响深远的名著《TheCProgrammingLanguage》,这本书中介绍的C语言成为后来广泛使用的C语言版本的基础,它被称为标准C。
1983年,美国国家标准化协会(ANSI)根据C语言问世以来各个版本对C的发展和补充,制定了新的标准,称为ANSIC。1987年,ANSI又公布了新的标准——87ANSIC。1990年,国际标准化组织ISO(InternationalStandardOrganization)接受87ANSICISOC的标准(ISO9899-1990)。目前流行的C编译系统都是以它为基础的。返回C语言的发展历史ALGOL60607080汇编语言机器语言高级语言剑桥CPL剑桥BCPL贝尔B贝尔CUNIXC可移植C编译器ANSIC2023/1/1411C语言的优点(1)语言简洁、紧凑,使用方便、灵活。C语言一共只有
32个关键字,主要用小写字母表示。(2)
比其他高级语言更接近硬件,比低级语言更接近算法。程序易编、易读、易差错、易修改,兼有高级语言和低级语言的优点。(3)
数据类型和运算符十分丰富,程序设计和算法描述更为简单和方便。(4)语法结构十分简单,语句数目少,简单易学。2023/1/1412
(6)它是一种模块化的程序设计语言,适合大型软件的研制和调试。
(5)它是一种结构化程序设计语言,提供了完整的程序控制语句(选择语句和循环语句),很适合结构化的程序设计方法。
(7)生成目标代码质量高,程序执行效率高。(8)用c语言写的程序可移植性好。
(9)它提供了大量的库函数以供调用,简化了程序设计工作。2023/1/1413C语言的特点
C语言是结构化的程序设计语言。C语言是模块化的程序设计语言,程序是由函数构成的。一个C源程序至少包含一个main函数,也可以包含一个main函数和若干个其他函数。因此,函数是C程序的基本单位。一个函数由两部分组成:①函数的首部,函数的第一行。包括函数名、函数类型、函数属性、函数参数(形参)名、参数类型。
②函数体,即函数首部下面的大括弧{…..}内的部分。如果一个函数内有多个括弧,则最外层的一对{}为函数的范围。函数体一般包括:声明部分:在这部分中定义所用到的变量。执行部分:由若干个语句组成。2023/1/1414(4)一个C程序总是从main函数开始的,而不论main函数在整个程序中的位置如何(main函数可以放在程序最前头,也可以放在程序最后,或在一些函数之前,在另一些函数之后)。(5)C程序书写格式自由,一行内可以写几个语句,一个语句可以分写在多行上。(6)每个语句和数据定义的最后必须有一个分号。分号是C语句的必要组成部分。分号不可少。(7)C语言本身没有输入输出语句。输入输出的操作是由库函数scanf和printf等函数来完成的。(8)可以用/*……*/对C程序中的任何部分作注释。2023/1/1415简单的C语言程序示例例一
main(){printf(“ThisisaCprogram.\n”);}
本程序的作用是输出以下一行信息:
ThisisaCprogram.2023/1/1416例二main(){inta,b,sum;/*这是定义变量*/a=123;b=456;/*以下3行为C语句*/sum=a+b;printf(“sumis%d\n”,sum);}程序的运行结果:Sumis5792023/1/1417C程序的上机步骤
开始编辑编译
有错?执行连接结果正确结束可执行目标程序f.exe源程序f.c目标程序f.o库函数和其他目标程序YesNoYesNo2023/1/1418C语言的基本词法-标识符定义:在程序中使用的变量名、函数名、标号等统称为标识符。除库函数的函数名由系统定义外,其余的都由用户自己定义。命名规则:标识符只能是字母(A~Z,a~z)、数字(0~9)、下划线(_)组成的字符串,并且其第一个字符必须是字母或下划线。例如:以下标识符是合法的:
a,x,x3,BOOK_1,sum5,_x7。以下标识符是非法的:
3s(以数字开头)、s*T(出现非法字符*)、-3x(以减号开头)、bowy-1(出现非法字符-)。2023/1/1419(1)标准C不限制标识符的长度,但它受各种版本的C语言编译系统限制,同时也受到具体机器的限制。TurboC规定标识符的长度为32。一般情况下,标识符的长度不要超过8个字符。(2)在标识符中,大小写是有区别的。例如SUM和sum是两个不同的标识符。变量名应尽量使用小写字母,以增加程序的可读性。(3)标识符虽然可由程序员随意定义,但标识符是用于标识某个量的符号。因此,命名应尽量有相应的意义,以便于阅读理解,做到“顾名思义”。在C语言中,所有的变量都是先定义后应用,使用没有定义的变量名被认为是“非法”的。
在使用标识符时还必须注意以下几点:2023/1/1420C语言的基本词法-关键字定义:关键字是由C语言规定的具有特定意义的字符串,通常也称为保留字。用户定义的标识符不应该与关键字相同。分类:C语言的关键字分为以下几类:(1)类型说明符用于定义、说明变量、函数或其它数据结构的类型。如int,double,float,long,short,auto,2023/1/1421(2)语句定义符用于表示一个语句的功能。如条件语句的语句定义符ifelse,循环语句的语句定义符do,while,for等。(3)预处理命令字用于表示一个预处理命令,使用时前面要加“#”。如include,define,ifdef,endif等。关键字后必须有空格,圆括号,尖括号,双引号等分隔符,否则与其它字符一起组成新的标识符。2023/1/1422C语言的基本词法-其它运算符
C语言中含有相当丰富的运算符。运算符与变量,函数一起组成表达式,表示各种运算功能。运算符由一个或多个字符组成。分隔符
在C语言中采用的分隔符有逗号和空格两种。逗号主要是用在类型说明和函数参数表中分隔各个变量。空格多用于语句各单词之间作间隔符。常量
C语言中使用的常量可分为数字常量、字符常量、字符串常量、符号常量、转义字符等多种。2023/1/1423C语言的字符集
(1)字母小写字母a~z共26个,大写字母A~Z共26个。(2)数字0~9共10个。(3)空格符、制表符、换行符等统称为空白符。(4)标点和特殊字符2023/1/1424C语言程序设计的基本结构
(1)顺序结构
ABab2023/1/1425(2)选择结构,或称选取结构
此结构中必包含一个判断框。根据给定的条件P是否成立而选择执行A框或B框abBAp不成立成立2023/1/1426l
(3)
循环结构,它又称为重复结构,即反复执行某一部分的操作。又两类循环结构:
(a)
当型(while型)循环结构它的功能是判断当前给定的条件p1成立时,执行A框操作,执行完A后,再判断条件p1是否成立,如果仍然成立,再执行A框,如此反复执行A框,直到某一次p1条件不成立为止,此时不执行A框,而从b点脱离循环结构。ap1TFAb2023/1/1427(b)直到型(Until型)循环结构
它的功能是先执行A框,然后判断给定的p2条件是否成立,如果p2条件不成立,则再执行A,然后再对p2条件作判断,如果p2条件仍然不成立,又执行A‥‥‥如此反复执行A,直到给定的p2条件成立为止,此时不再执行A,从b点脱离本循环结构。aAFTbp22023/1/1428本章课堂练习(1)以下说法中正确的是().A)C语言程序总是从第一个函数开始执行B)在C语言程序中,要调用的函数必须在main()函数中定义C)C
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025大学食堂承包合同范本
- 工业生产车间钢结构楼梯施工协议
- 企业国际化发展战
- 住宅小区批荡施工合同
- 餐饮业授权经营的管理办法
- 投标联合体合规协议
- 会计审计合同管理规则
- 零售连锁公司广告牌安装施工合同
- 医疗技术合作保险
- 2024年特种用途树木研发与销售合同范本3篇
- 浙江大学医学院附属儿童医院招聘人员真题
- 2024年江苏省苏州市中考数学试卷含答案
- 软件测试汇报
- 吉林省长春市第一〇八学校2024-2025学年七年级上学期期中历史试题
- 2024年世界职业院校技能大赛高职组“市政管线(道)数字化施工组”赛项考试题库
- 初中《孙中山诞辰纪念日》主题班会
- 5.5 跨学科实践:制作望远镜教学设计八年级物理上册(人教版2024)
- 屠呦呦课件教学课件
- 阿斯伯格综合症自测题汇博教育员工自测题含答案
- 天津市2023-2024学年七年级上学期语文期末试卷(含答案)
- 2024年法律职业资格考试(试卷一)客观题试卷及解答参考
评论
0/150
提交评论