版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、2022-4-231武汉理工大学计算机学院武汉理工大学计算机学院:周德仿:周德仿 Email:C语言程序设计2022-4-232选用教材 顾治华、陈天煌等顾治华、陈天煌等 2007.22007.22022-4-233课程内容第一章 C语言程序设计基础 第二章 程序的基石算法 第三章 顺序结构程序设计第四章 选择结构程序设计 第五章 循环结构程序设计 第六章 数组与指针第七章 函数与模块化程序设计方法第八章 结构体和共用体 第九章 预处理命令与带参数的主函数 第十章 文件 2022-4-234第一章第一章 C C语言程序设计基础语言程序设计基础1.1 1.1 程序与程序设计程序与程序设计1.2
2、C.2 C语言简介语言简介1.3 1.3 简单的简单的C语言程序语言程序1.4 C1.4 C语言程序的上机步骤语言程序的上机步骤1.5 C1.5 C语言的基本词法语言的基本词法1.6 C1.6 C语言程序的基本结构语言程序的基本结构2022-4-235程序与计算机语言程序与计算机语言程序是存放在计算机中的操作指令和数据的集合。用程序设计语言安排好的处理问题的步骤称为计算机程序用程序设计语言编制一个能完成某项任务的计算机程序的过程叫做计算机程序设计。程序设计=数据结构+算法+程序设计方法+编程语言程序设计的关键:必须掌握一种程序设计语言。掌握程序设计的逻辑思维。2022-4-236 程序设计过程
3、程序设计过程(1)问题的提出,要达到的要求;(2)确定数据结构和所采用的算法;(3)编制程序;(4)调试程序;(5)整理并写出文档;2022-4-237一、C语言出现的历史背景 C语言是国际上广泛流行的、很有发展前途的计算机高级语言。它适合于作为系统描述语言,既可用来写系统软件,也可用来写应用软件: C语言是在B语言的基础上发展起来的,它的根源可以追溯到ALGOL60 。1960年出现的ALGOL60是一种面向问题的高级语言,它离硬件比较远,不宜用来编写系统程序。1963年英国的剑桥大学推出了 CPL(combined programming language)语言。CPL语言在ALGOL60
4、的基础上接近硬件一些,但规模比较大,难以实现。 2022-4-238 1967年英国剑桥大学的 Matin Richards对CPL语言做了简化,推出了 BCPL(basic combined programming language)语言。 1970年美国贝尔实验室的 Ken Thompson以 BCPL语言为基础,又做了进一步简化,设计出了很简单的而且很接近硬件的B语言(取BCPL的第一个字母),并用B语言写了第一个UNIX操作系统,在PDP7上实现。 1971年在PDP11/20上实现了 B语言,并写了 UNIX操作系统。但B语言过于简单,功能有限。 1972年至 1973年间,贝尔实验
5、室的DMRitchie在B语言的基础上设计出了C语言(取BCPL的第二个字母)。C 语言既保持了BCPL和B语言的优点(精练,接近硬件),又克服了它们的缺点(过于简单,数据无类型等)。 1973年,K.Thompson和D.M.Ritchie两人合作把UNIX的90以上用C改写,即 UNIX第 5版。 2022-4-239 直到1975年UNIX第6版公布后,C语言的突出优点才引起人们的普遍注意。1977年出现了不依赖于具体机器的C语言编译文本 可移植C语言编译程序,使C移植到其他机器时所需做的工作大大简化了, 这也推动了UNIX操作系统迅速地在各种机器上实现。 以1978年发表的UNIX第
6、7版中的 C编译程序为基础,Brian W. Kernlghan和Denni. M.Ritchie,(合称 KbR)合著了影响深远的名著The C Programming Language,这本书中介绍的C语言成为后来广泛使用的C语言版本的基础,它被称为标准C。 1983年,美国国家标准化协会(ANSI)根据C语言问世以来各个版本对C的发展和补充,制定了新的标准,称为ANSI C 。1987年,ANSI又公布了新的标准87ANSI C。1990年,国际标准化组织ISO(International Standard Organization) 接受87ANSI CISO C 的标准(ISO 98
7、991990)。目前流行的C编译系统都是以它为基础的。返回C语言的发展历史ALGOL60607080汇编语言机器语言高级语言剑桥CPL剑桥BCPL贝尔B 贝尔CUNIXC可移植C编译器ANSI C2022-4-2311C语言的优点(1)语言简洁、紧凑,使用方便、灵活。语言简洁、紧凑,使用方便、灵活。C语言一共只有语言一共只有 32个关键字,主要用小写字母表示。个关键字,主要用小写字母表示。 (2) 比其他高级语言更接近硬件,比低级语言更接近算法。比其他高级语言更接近硬件,比低级语言更接近算法。 程序易编、易读、易差错、易修改,兼有高级语言和程序易编、易读、易差错、易修改,兼有高级语言和 低级语
8、言的优点。低级语言的优点。(3) 数据类型和运算符十分丰富,程序设计和算法描述更为数据类型和运算符十分丰富,程序设计和算法描述更为 简单和方便。简单和方便。 (4) 语法结构十分简单,语句数目少,简单易学。语法结构十分简单,语句数目少,简单易学。 2022-4-2312 (6) 它是一种模块化的程序设计语言,适合大型软件的研制它是一种模块化的程序设计语言,适合大型软件的研制 和调试。和调试。 (5) 它是一种结构化程序设计语言,提供了完整的程序控制它是一种结构化程序设计语言,提供了完整的程序控制 语句语句(选择语句和循环语句选择语句和循环语句),很适合结构化的程序设计方很适合结构化的程序设计方
9、 法。法。 (7) 生成目标代码质量高,程序执行效率高。生成目标代码质量高,程序执行效率高。 (8) 用用c语言写的程序可移植性好。语言写的程序可移植性好。 (9) 它提供了大量的库函数以供调用,简化了程序设计工作。它提供了大量的库函数以供调用,简化了程序设计工作。2022-4-2313 C语言的特点 C语言是结构化的程序设计语言。语言是结构化的程序设计语言。C语言是模块化的程序设计语言,程序是由函数构成的。一个语言是模块化的程序设计语言,程序是由函数构成的。一个C源程序至源程序至少包含一个少包含一个main函数,也可以包含一个函数,也可以包含一个main函数和若干个其他函数。因函数和若干个其
10、他函数。因此,函数是此,函数是C程序的基本单位。程序的基本单位。一个函数由两部分组成一个函数由两部分组成: 函数的首部,函数的第一行。包括函数名、函数类型、函数属性、函函数的首部,函数的第一行。包括函数名、函数类型、函数属性、函数参数数参数(形参形参)名、参数类型。名、参数类型。 函数体,即函数首部下面的大括弧函数体,即函数首部下面的大括弧.内的部分。如果一个内的部分。如果一个 函数内有多个括弧,则最外层的一对函数内有多个括弧,则最外层的一对 为函数的范围。为函数的范围。 函数体一般包括:函数体一般包括: 声明部分声明部分:在这部分中定义所用到的变量。:在这部分中定义所用到的变量。 执行部分执
11、行部分: 由若干个语句组成。由若干个语句组成。2022-4-2314(4) 一个一个C程序总是从程序总是从main函数开始的,而不论函数开始的,而不论main函数在整函数在整 个程序中的位置如何(个程序中的位置如何(main函数可以放在程序最前头,也可函数可以放在程序最前头,也可 以放在程序最后,或在一些函数之前,在另一些函数之后以放在程序最后,或在一些函数之前,在另一些函数之后)。(5) C程序书写格式自由,一行内可以写几个语句,一个语句程序书写格式自由,一行内可以写几个语句,一个语句 可以分写在多行上。可以分写在多行上。(6) 每个语句和数据定义的最后必须有一个分号。分号是每个语句和数据定
12、义的最后必须有一个分号。分号是C语语 句的必要组成部分。分号不可少。句的必要组成部分。分号不可少。(7) C语言本身没有输入输出语句。输入输出的操作是由库语言本身没有输入输出语句。输入输出的操作是由库 函数函数scanf和和printf等函数来完成的。等函数来完成的。(8) 可以用可以用/*/对对C程序中的任何部分作注释。程序中的任何部分作注释。2022-4-2315简单的C语言程序示例例一 main( ) printf (“This is a C program.n”); 本程序的作用是输出以下一行信息: This is a C program.2022-4-2316例二main( ) in
13、t a,b,sum; /*这是定义变量*/ a=123;b=456; /*以下3行为C语句*/ sum=a+b; printf(“sum is %dn”,sum);程序的运行结果: Sum is 5792022-4-2317C程序的上机步骤 开始编辑编译 有错?执行连接结果正确结束可执行目标程序f.exe源程序f.c目标程序f.o库函数和其他目标程序YesNoYesNo2022-4-2318C语言的基本词法标识符定义:定义:在程序中使用的变量名、函数名、标号等统称为 标识符。除库函数的函数名由系统定义外,其余的都由用户自己定义。命名规则:命名规则:标识符只能是字母(AZ,az)、数字(09)、
14、下划线(_)组成的字符串,并且其第一个字符必须是字母或下划线。 例如例如:以下标识符是合法的: a,x,x3,BOOK_1,sum5,_x7。 以下标识符是非法的: 3s(以数字开头)、s*T(出现非法字符*)、-3x(以减号开头)、bowy-1(出现非法字符-)。2022-4-2319(1)标准C不限制标识符的长度,但它受各种版本的C语言编 译系统限制,同时也受到具体机器的限制。Turbo C规定标识符的长度为32。一般情况下,标识符的长度不要超过8个字符。(2)在标识符中,大小写是有区别的。例如SUM和sum是两个 不同的标识符。变量名应尽量使用小写字母,以增加程序的可读性。(3)标识符虽
15、然可由程序员随意定义,但标识符是用于标识某个量的符号。因此,命名应尽量有相应的意义,以便于阅读理解,做到“顾名思义”。在C语言中,所有的变量都是先定义后应用,使用没有定义的变量名被认为是“非法”的。 在使用标识符时还必须注意以下几点:在使用标识符时还必须注意以下几点:2022-4-2320C语言的基本词法关键字关键字定义定义:关键字是由语言规定的具有特定意义的字符串,通常也称为保留字保留字。用户定义的标识符不应该与关键字相同。分类分类:语言的关键字分为以下几类:(1)类型说明符 用于定义、说明变量、函数或其它数据结构的类型。如int,double,float,long,short,auto,2
16、022-4-2321(2)语句定义符用于表示一个语句的功能。如条件语句的语句定义符if else,循环语句的语句定义符do,while,for等。(3)预处理命令字用于表示一个预处理命令,使用时前面要加“”。如include,define,ifdef,endif等。关键字后必须有空格,圆括号,尖括号,双引号等分隔符,否则与其它字符一起组成新的标识符。2022-4-2322C语言的基本词法其它其它 运算符运算符 语言中含有相当丰富的运算符。运算符与变量,函数一起组成表达式,表示各种运算功能。运算符由一个或多个字符组成。分隔符分隔符 在语言中采用的分隔符有逗号逗号和空格空格两种。逗号主要是用在类型
17、说明和函数参数表中分隔各个变量。空格多用于语句各单词之间作间隔符。常量常量 C语言中使用的常量可分为数字常量、字符常量、字符串常量、符号常量、转义字符等多种。2022-4-2323语言的字符集语言的字符集 (1)字母 小写字母az共26个,大写字 母AZ共26个。(2)数字09共10个。(3)空格符、制表符、换行符等统称为空白符。(4)标点和特殊字符2022-4-2324C语言程序设计的基本结构 (1)顺序结构 ABa b 2022-4-2325(2)选择结构,或称选取结构 此结构中必包含一个判断框。根据给定的条件P是否成立而选择执行A框或B框abBAp不成立成立2022-4-2326l (3
18、) 循环结构,它又称为重复结构,即反复执行某一部分的操作。又两类循环结构: (a) 当型(while型)循环结构它的功能是判断当前给定的条件p1成立时,执行A框操作,执行完A后,再判断条件p1是否成立,如果仍然成立,再执行A框,如此反复执行A框,直到某一次p1条件不成立为止,此时不执行A框,而从b点脱离循环结构。ap1TFAb2022-4-2327(b)直到型(Until型)循环结构 它的功能是先执行A框,然后判断给定的p2条件是否成立,如果p2条件不成立,则再执行A,然后再对p2条件作判断,如果p2条件仍然不成立,又执行A如此反复执行A,直到给定的p2条件成立为止,此时不再执行A,从b点脱离本循环结构。aAFTbp22022-4-2328本章课堂练习 (1) 以下说法中正确的是( ). A)
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 吉林艺术学院《劳动教育II》2021-2022学年第一学期期末试卷
- 房产经纪人返佣协议书范本模板
- 主播外出安全协议书范文范本
- 2024年大商铺出租转让协议书模板范本
- 【初中数学】整式的加法与减法课件 2024-2025学年人教版数学七年级上册
- 2024年处理废石协议书模板范本
- 资金代管协议书范文样本
- 2025(新人教版)地理八年级下册全册复习知识清单 课件
- 吉林师范大学《数字剪辑创作》2021-2022学年第一学期期末试卷
- 吉林师范大学《量子力学》2021-2022学年第一学期期末试卷
- 2024-2030年中国虚拟专用网络(VPN)行业市场行业发展分析及发展前景研究报告
- 检验检测机构内审员检查表
- 2024中煤电力限公司面向中煤集团内部招聘15人高频难、易错点500题模拟试题附带答案详解
- 统编版(2024新版)七年级上册历史第二单元 夏商周时期:奴隶制王朝的更替和向封建社会的过渡 单元复习课件
- 第07讲 物态变化(原卷版)-2024全国初中物理竞赛试题编选
- 高危儿规范化健康管理专家共识解读
- 第13课《纪念白求恩》课件2024-2025学年统编版语文七年级上册
- 食品安全的规章制度和食品操作流程
- 《义务教育体育与健康课程标准(2022年版)》解读
- 部编版三年级上册语文第七单元大单元教学设计
- NB-T 10435-2020 电动汽车快速更换电池箱锁止机构通.用技术要求
评论
0/150
提交评论