C语言概述全册教案完整版教学设计_第1页
C语言概述全册教案完整版教学设计_第2页
C语言概述全册教案完整版教学设计_第3页
C语言概述全册教案完整版教学设计_第4页
C语言概述全册教案完整版教学设计_第5页
已阅读5页,还剩99页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、授课时间第 1 次课,第 周星期 第 节课时2+2授课方式理论课 讨论课 习题课 实验课 上机课 技能课 其他授课题目C语言概述目的与要求1. 了解C语言以及特点。2. 了解算法、流程图、结构化设计等知识。3. 熟悉VC+6.0工具的使用。4. 掌握C语言运行步骤,会在VC+6.0工具上运行程序。重点与难点重点:VC工具的使用、C语言运行步骤难点:算法、流程图教学基本内容(一)程序程序是为实现特定目标或解决特定问题而用计算机语言编写命令序列的集合。计算机程序是开发工程师按照用户要求、用计算机语言开发的计算机能够执行的指令序列的集合。计算机程序分为系统程序和应用程序两大类。(二)程序设计语言程序

2、设计语言主要包括机器语言、汇编语言和高级语言三类语言。1. 机器语言计算机能够直接识别的语言被称为机器语言,也叫二进制语言,该语言的指令都是由二进制数0或1组成。该语言执行效率高,但是难学难记、编程难度高。2. 汇编语言汇编语言用英文字母或字符串来代替机器语言,把不易理解和记忆的机器语言按照对应关系转换成汇编指令。汇编语言降低了机器语言的难度。3. 高级语言高级语言是一类语言的统称,包含多种编程语言,这类语言比汇编语言更贴近于自然语言,因此易于理解、记忆和使用。另外高级语言和计算机架构、指令集无关,因此具有良好的可移植性。常见的高级语言包括C、C+、Java、C#、VB等。(三)C语言Denn

3、is M. Ritchie是C语言之父,也是UNIX之父,获得哈佛大学数学博士学位,曾担任朗讯科技公司贝尔实验室下属的计算机科学研究中心系统软件研究部的主任职务。1970年,美国贝尔实验室的Ken Thompson以BCPL语言为基础,进一步对其简化,提出来B语言,并用B语言写出了UNIX操作系统。1972年,美国贝尔实验室的Brian W .Kernighan和Dennis M.Ritchie对B语言进行了完善和扩充,提出来C语言。1977年,出现了不依赖于具体机器的C语言编译版本,使C语言程序移植到其它机器的过程得到简化,推动了UNIX操作系统在各个机器上的实现。1978年,Ken Tho

4、mpson和Dennis M.Ritchie合著了The C Programming Language,被称为标准C。1983年,美国国家标准化协会根据不同C语言版本对C语言的发展和扩充,指定了新的C语言标准ANSIC,1987年,又公布了新标准87ANSIC,即现在流行的C语言。1980年,美国贝尔实验室的Bjarne Stroustrup博士在C语言的基础上,开发了一种过程性与对象性相结合的程序设计语言,即C+语言。 (四)C语言的优点C语言具有不同于其它语言的特点。1. C语言简洁、紧凑,使用方便灵活C语言只有32个关键词和9种控制语句,并且程序书写形式自由。2. 运算符丰富,表达式能力

5、强C语言有34种运算符,运算范围广泛,并且还可以实现以二进制为单位的运算,并且具有如+、-等单目运算符和+=、-=、*=、/=等复合运算符。3. 数据结构丰富,便于数据的表述和存储C语言具有丰富的数据结构,其数据类型有整型、实型、字符型、数组类型、指针类型、结构体类型和共用体类型等,能用来实现各种复杂的数据结构的运算。4. C语言是结构化、模块化的编程语言程序的逻辑结构可以使用顺序、选择和循环3种基本结构组成。C语言程序采用函数结构,十分便于把整体程序分割成若干相对独立的功能模块,并且为程序模块间的相互调用以及数据传递提供了便利。5. 语法限制不太严格,程序设计自由度大对数组下标越界不做检查,

6、由程序编写者自己保证程序的正确。对变量的类型使用比较灵活。6. C语言是具有低级语言功能的高级语言C语言允许直接访问物理地址,能进行位操作,能实现汇编语言的大部分功能,可以直接对硬件操作,因此C语言既具有高级语言的功能,又具有低级语言的许多功能,可用来编写系统软件。7. 生成目标代码质量高,程序执行效率高用C语言编写的程序,经编译后生成的可执行代码比用汇编语言直接编写的代码执行效率低少许,其它高级语言无法做到这个程度。8. 可移植性好与汇编语言相比,C程序不做修改就可以运行于各种型号的计算机和各种操作系统。(五)C语言的不足1. C语言的数据类型检查不严格,表达时容易出现二义性,不能自动检查数

7、组下标越界。2. C语言缺乏支持代码重用的语言结构。3. C语言不适合开发大型应用程序,因为当程序规模达到一定程度时,程序员很难控制程序的复杂性。(六)开发工具1. VC+ 6.0开发工具Visual C+开发环境是一个基于Windows操作系统的可视化、面向对象的集成开发环境(Integrated Development Environment,IDE)。在该环境下用户可以开发有关C和C+的各种应用程序,应用程序包括建立、编辑、浏览、保存、编译、链接和调试等操作,这些操作都可以通过单击菜单选项或工具栏按钮来完成,使用方便、快捷。它还提供了项目工作区(WorkSpace)、应用程序向导(App

8、Wizard)、类操作向导(ClassWizard)和WizardBar等实用编程工具。2. Eclipse工具、Eclipse是一种被广泛使用的免费跨平台IDE,最初由IBM公司开发,目前由开源社区的Eclipse基金会负责Eclipse的管理和维护。一开始Eclipse被设计为专门用于Java语言开发的IDE,现在Eclipse已经可以用来开发C、C+、Python和PHP等众多语言。3. Code:Block工具Code:Block是一个免费的跨平台IDE,它支持C、C+和FORTRAN程序的开发。Code:Block的最大特点是它支持通过插件的方式对IDE自身功能进行扩展,Code:B

9、lock具有很强的灵活性,方便用户使用。4. Vim工具(一)C语言结构C程序主要有两种文件形式:头文件和源文件。引用C语言标准库函数,一般要用文件包含预处理命令(例如,include命令)将其头文件(扩展名.h)包含进来放在程序的开头;源文件通常以.c为文件扩展名。先来看一个C语言程序的实例。#includeint main() printf(“Hello world”); return 0;结合这个实例,我们来了解C语言程序。1. 头文件实例中的“stdio.h”是头文件。语句“#include”是预处理命令(也可以写成#include “stdio.h”),其后不能加“;”,该语句用于将

10、stdio.h头文件包含到程序中。有了这条语句后,就可以使用在stdio.h中定义的函数了;如果不添加这条语句就不能使用stdio.h头文件中的函数,比如printf函数。大多数程序都会使用到输入或是输出,而输入和输出函数就在stdio.h头文件中。2. 主函数(1)主函数名称为main(),这个名称不能修改,其后的一对圆括号内可以带参数,也可以省略,但一对圆括号不能省略。(2)一个C源程序不论由多少个源文件组成,必须有且只能有一个主函数。主函数无论在文件中的什么位置,程序运行总是从主函数开始,最后在主函数中结束。注意:上机时,常常有学生编写多个不同程序,但是每个程序都有一个main函数,结果

11、出现多于一个main函数,程序不能正确编译,更无法运行。(3)程序中除了主函数main()外,还可以有其它函数。其它函数可以由主函数直接或间接调用来执行,但其它函数不能调用主函数。3. 函数首部和函数体一个函数由函数首部和函数体两部分组成。(1)函数首部指定函数类型、函数名、函数参数类型和函数参数名;函数体从“”开始,到“”结束。比如实例中,函数类型为int类型,函数名为main,没有函数参数。函数体内有两条语句。(2)函数体内是C语言的语句,一般包括变量声明语句和执行语句两部分。(3)一行可以写多条语句,一条语句也可以分写在多行,但是不推荐一行写多条语句,如果语句不长,也不推荐一条语句分写在

12、多行。注意: = 1 * GB3 C程序语句必须以分号结尾,分号是C语句的重要组成部分,其中分号是英文的分号,常常有学生写成中文的分号。 = 2 * GB3 在预处理命令、函数首部、花括号“”和“”之后不能加分号。 = 3 * GB3 执行语句中需要用到的变量必须先声明然后才能使用。4. 注释语句注释语句主要用于声明变量的含义和程序段的功能等,以提高程序的可读性,但注释内容都不会被计算机执行,注释可以出现在程序中任意合适的地方。注释有两种形式。(1)单行注释/注释内容(2)多行注释/*注释内容*/(二)C语言风格程序的格式不影响代码的执行,但是好的编程风格对程序可读性和维护性帮助很大。1. 代

13、码行(1)一行只写一条语句(2)if、for、while等语句各占一行,并且不管其执行语句有几条,都用大括号将其包含起来。2. 对齐与缩进(1)一般是使用4个空格缩进,也可以使用Tab键缩进。(2)大括号要独占一行。(3)在大括号内的代码,也要缩进。(三)程序设计过程编程是编写程序的简称,术语称为程序设计。其过程主要是由需求分析、算法设计、程序编写和程序调试组成。1. 需求分析编程的第一步是需求分析,也就是弄清楚到底要计算机做什么。这个过程看似简单,也确实有不少人对它不屑一顾,但忽视它的结果就像考试中审题审的不对,即使解题过程再漂亮,也拿不到分数,必须从头返工。需求分析中最难的事情是开发者和用

14、户之间的交流。用户一般不懂开发,开发者一般不懂用户的专业和业务,因此双方很难顺利地沟通,导致需求分析的过程要持续较长的时间。如果开发者对用户的专业有所了解,或者用户懂点开发,这件事就好办的多了。2. 算法设计编程的第二步是算法设计,就是搞明白计算机该如何完成问题求解。算法设计的内容主要包括数学建模和程序代码结构设计。数学建模属于非计算机专业范畴,程序代码结构设计部分则属于计算机专业范畴,两者的配合非常重要。并不是所有的数学模型都能用程序高效实现,而有些数学中难以处理的问题,却可以使用计算机巧妙解决。3. 程序编写程序的第三步才是真正编写程序,即将设计的结果变成一行行代码,然后输到程序编辑器中。

15、4. 程序调试编程的第四步是程序调试,就是将源代码编译,变成可执行的程序,然后运行,看是否能满足第一步的要求。如果不满足,就要查找问题,修改代码,再重新编译、运行,直到满足要求为止。(四)C语言运行过程1. 编辑编辑是指用户通过编辑器,将开发的C语言程序输入计算机的过程。编辑生成的文件以文本形式存储,文件后缀名为.c,也称为C源程序文件。C源程序文件以ASCII码形式存储,计算机不能直接执行。注意:在新建文件时,必须输入文件全名和后缀名(.c),因为Visual C+6.0中的默认后缀名是.cpp(C+程序)。2. 编译编译是指计算机把C源程序文件翻译成计算机可以识别的二进制形式的目标代码文件

16、,由C的编译器完成。把一个C源程序翻译成目标程序的工作过程分为5个阶段:词法分析、语法分析、语义检查和中间代码生成、代码优化、目标代码生成。编译器主要是进行词法分析和语法分析,又称为源程序分析,分析过程中发现有语法错误,将会列出错误位置和行号等信息,此时需要编辑修改源程序,排除错误,直至无错误也无警告,则编译成功并生成目标代码文件,其文件名与源程序文件名相同,后缀名为.obj。编译生成的目标文件不包含程序运行所需要的库函数等,计算机仍然不能直接执行。3. 连接连接是将本目标程序代码和其它目标程序代码,以及系统提供的C库函数等进行连接、装配成可执行文件的过程。连接生成的可执行程序文件的文件名与源

17、程序文件名的后缀名.exe。需要注意的是,在任何情况下,对任何程序做了修改编辑,都必须对修改的程序重新进行编译并连接装配成新的可执行程序(.exe)文件。4. 运行在C的集成环境下选择“运行”命令(推荐使用),或者在Windows命令提示符下,输入该程序文件名回车,都可以直接执行该文件获得运行结果。如果结果有误,需要重新编辑源程序,再编译、连接、运行,直到得到满意的运行结果。(五)算法算法是为解决某个特定问题而采取的准确而完整的方法和步骤,其中有个著名的公式:数据结构 + 算法 = 程序其中,数据结构是对数据的描述,也就是在程序中数据的类型和组织形式,而算法则是对操作步骤的描述。算法是程序设计

18、的灵魂,是问题求解过程中的精确描述。学习C语言,不仅要熟练掌握C语言语法规则等,还要掌握分析问题、解决问题的方法。解决一个具体问题时通常有多种算法供选用,要对算法执行效率进行分析比较,再做选择。2. 算法的特性算法具有以下特性:(1)有穷性:算法中的每个步骤执行的次数及时间是有限的,即不能无限执行。(2)确定性:算法中的每条指令必须清楚严格地规定确切的含义,无二义性。(3)有效性:算法中描述的每个步骤都应能有效地执行,并得到确定的结果。(4)算法有零个或多个输入。(5)算法通常有一个或多个输出。3. 算法的描述方法算法可以用各种描述方法进行描述,历史上已经使用过的描述方法有自然语言、流程图、N

19、-S图、伪代码和计算机语言程序5种。下面我们以计算1+2+3+100为例,使用不同的算法给予描述。(1)自然语言描述步骤1:i=1,sum=0;步骤2:如果i不大于100,顺序执行步骤3;否则,执行步骤5;步骤3:sum加上i,相加后的值仍放在sum中,即sum=sum+i;步骤4:使i的值增1得到下一个加数,即i=i+1;执行步骤2;步骤5:变量sum中的值就是所要得到的结果,输出结果,算法结束。此方法口语化,易懂,但不够直观、不利于编程。(2)流程图描述流程图直观地描述一个工作过程的具体步骤。用传统的流程图表示算法的优点是直观易懂、简单方便;缺点是传统流程图对于流程线的走向没有任何限制,可

20、以任意转向,绘制流程图时费时费力且不易修改和阅读。(3)N-S图描述在这种流程图中,完全去掉了带箭头的流程线,全部算法写在一个矩形框内,在该框内还可以包含其它从属于它的框。用N-S图表示算法的优点是去掉了流程线,直观易懂,容易让学习者养成利用结构化方法构造算法的习惯,但修改流程图仍显麻烦。(4)伪代码描述(又称为类语言描述)伪代码是用介于自然语言和计算机语言之间的文字和符号来描述算法。这种方法比较易于理解,但描述较冗长。(5)计算机语言程序描述另外,算法还可以使用计算机程序来描述。4. 算法的要求与评价对一个算法的评价主要是对算法效率的衡量,从时间复杂度和空间复杂度来衡量。(1)时间复杂度:执

21、行算法所需要的时间。(2)空间复杂度:执行算法需要消耗的最大内存空间。对于同一个问题,根据不同的算法写出的程序放在计算机上运行时,所需要的时间和空间是不同的,两者都与问题的规模有关。(六)结构化设计结构化程序设计是进行以模块功能和处理程序设计为主的详细设计的基本原则。它主要采用自顶向下、逐步求精及模块化的程序设计方法,任何程序都可由顺序、选择、循环三类基本控制结构构造。1. 自顶向下程序设计时,首先考虑总体,再考虑细节;先考虑全局目标,后考虑局部目标。首先从最上层总目标开始设计,不要一开始就追求细节。2. 逐步求精逐步精细化。对复杂问题,应设计一些子目标作为过渡,逐步细化。3. 模块化设计:模

22、块化就是把程序要解决的总目标分解为子目标,再进一步分解为具体的小目标,小目标又称为模块。为了使模块尽可能独立,要求模块内聚程度要尽量高,且模块间的耦合程度要尽量弱。4. 结构化程序设计的三种基本结构(1)顺序结构顺序结构是最基本的构造结构,当执行由这些语句构成的程序时,按照这些语句在程序中的先后顺序执行,没有分支,没有转移,没有步骤之间的相互约束。顺序结构流程图如图1-8a所示。(2)选择结构选择结构根据不同的条件去执行不同分支中的语句。选择结构流程图如图1-8b所示。(3)循环结构循环结构就是根据给定的条件,判断是否要重复执行某一相同的或类似的程序段。选择结构流程图如图1-8c所示。图1-8

23、c左图是当型循环,该循环的特点是:当给定的条件成立时,就执行循环体;否则不执行。图1-8c右图是直到型循环,该循环的特点是:执行循环体,直到给定的条件成立,就不再执行循环。(七)VC+6.0界面与主要操作现在Windows环境下常用Visual C+6.0。本教程采用VC+6.0的二级考试版。1. Visual C+6.0的启动与退出(1)启动:双击桌面的Microsoft Visual C+6.0快捷方式图标单击“开始”“程序”Microsoft Visual Studio 6.0Microsoft Visual C+6.0启动运行Visual C+6.0,进入它的集成开发环境窗口。注意,V

24、isual C+6.0启动后初始窗口样式可能会不同,例如未出现Workspace窗口或Output窗口。可以通过ViewWorkspace菜单选项的执行,会使主窗口左边的Workspace窗口(工作区窗口)显现;通过ViewOutput菜单选项的执行,又可使下部的Output窗口(输出区窗口)显示出来。(2)退出单击VC+6.0界面的右上角的关闭符号退出。2. Visual C+6.0开发环境(1)编辑在VC+6.0窗口,选择菜单FileNew,弹出新建文件对话框。在弹出的对话框中,单击上方的选项卡Files,选择C+ Source File,在File文本框中填写文件名(例如chap1.c)

25、,在Location文本框中选择或填写文件存放的位置。然后单击OK按钮。在打开的Visual C+6.0右侧窗口中输入程序的内容,然后单击保存图标。注意:填写文件名时一定要写文件后缀.c,不要省略,因为省略则默认扩展名为.cpp。推荐指定文件保存的目录,不要使用系统默认目录。编辑程序时,所有的符号字母都是英文半角状态下的符号。(2)编译选择菜单BuildCompile或单击工具栏上的编译(Compile)图标,如果编译没有错误和警告,则显示chap1.obj 0 error(s),0 warning(s)”。这表示目标代码文件建成,可以在文件所保存的文件夹的下级文件夹debug中看到hello

26、.obj。(3)连接(组建)选择菜单BuildBuild或单击工具栏上的连接(Build)图标,这时Visual C+6.0将弹出一个对话窗口,说明这个命令需要建一个工程(Project),询问是否创建一个默认的工程,一般单击“Yes”。这时在左边灰色区域建立白色工程区,显示工程名。(4)运行单击快捷工具栏上的红色的感叹号“!”(运行)按钮(或者选择菜单BuildExecute或按Ctrl+F5),Visual C+6.0将自动打开一个显示结果的黑色窗口,显示“This is a C program”,表示运行正常。3 程序调试和测试(1)VC调试功能简介调试的目的是发现并改正错误。VC为调试

27、C程序提供了多种工具和多组方法,常用的方法有菜单法、工具栏法和功能键法。实际上,这三种方法是相似或相同的。对于控制程序运行工具,从左到右的常用按钮、功能键及功能说明依次是:Restart(Ctrl+Shift+F5)重新执行程序。Stop Debugging(Shift+F5)停止程序调试。Show Next Statement指示当前程序运行的语句行。Step Into(F11)单步运行并且可进入函数内部运行。程序在调试过程中,按下此按钮可单步跟踪程序运行,进入函数内部,继续函数内部的语句执行跟踪。Step Over(F10)单步运行程序。功能类似于F11,它不进入函数内部,而是将每一条语句

28、看做一步,包括函数调用语句。单步执行是最为常用的调试功能。Step Out(Shift+F11)从当前函数中退出。当程序运行在某函数内时,按此按钮后,调试状态即从函数内部退出,返回到调用该函数的主函数的当前语句。Run to Cursor(Ctrl+F10)运行到当前光标位置。当程序处于调试状态时,为了跳过某程序段,可预先将光标定位在某语句行上,按下此按钮,即可使程序直接运行到当前光标位置,从而节省了时间,加快了调试程序的步骤。(2)对于设置观察窗口工具,其功能主要是为配合程序跟踪运行,设置一些观察点,以便定位出错的位置,从而找到出错的原因。Quick Watch(Shift+F9)快速观察表

29、达式的值。 Watch设置观察点。Variables变量列表。Registers寄存器列表。Memory内存列表。思考题、作业、参考文献课 后小 结授课时间第 2、3 次课,第 周星期 第 节课时4+4授课方式理论课 讨论课 习题课 实验课 上机课 技能课 其他授课题目C数据类型和表达式目的与要求1. 掌握C语言数据类型,了解整型数据和字符型数据之间的内在关系。2. 掌握整型、字符型、浮点型等数据的正确输入方法。3. 熟练掌握算术运算符和表达式的使用,以及自加和自减运算符的使用。重点与难点重点:数据类型、运算符难点:自加、自减教学基本内容(一)数据类型在C语言中,数据类型就是程序给其使用的数据

30、指定的数据组织形式。数据类型是根据被说明数据的性质、表示形式、占据存储空间的多少、构造特点来划分的。在C语言中,数据类型可分为:基本类型、构造类型、指针类型、空类型四大类。(二)数据类型分类1. 基本类型基本类型是数据类型的基础,由它可以构造出其它复杂的数据类型。基本类型不可以再分解为其它数据类型。2. 构造类型根据已定义的一个或多个数据类型,用构造的方法来定义的类型称为构造类型。也就是说,一个构造类型可以分解成若干个“成员”或“元素”。每个“成员”都是一个基本类型或是一个构造类型。在C语言中,构造类型包括数组类型、共用体类型、结构体类型和枚举类型。3. 指针类型指针类型是一种特殊的、具有重要

31、作用的数据类型,用来表示某个对象(变量、数组等)在内存储器中的地址。指针的特殊性在于它能获得某个对象的地址和操作地址的能力。C语言高度的灵活性和丰富性的表达式很大程度上依赖于在程序中恰当地使用了指针。4. 空类型在调用函数时,通常应向调用者返回一个函数值,这个返回的函数值是具有一定的数据类型的。例如,max()函数定义,函数头为int max(int a,int b),其中int类型说明符即表示该函数的返回值为整型。但也有一类函数,调用后并不需要向调用者返回函数值,即只是一个过程调用,这种函数可以定义为“空类型”,其类型说明符为void。(一)C语言的基本符号1. 标识符程序中用来为符号常量、

32、变量、函数、数组、类型、文件命名的有效字符序列称为标识符。标识符命名规则如下:(1)只能由字母、数字和下划线组成。(2)第一个字符必须为字母或下划线。(3)不能使用关键字,C语言关键字参见附录。2. 注意事项(1)区分大小写字符,因此a和A是不同的标识符。(2)各个编译系统允许的标识符的长度不同,建议标识符的长度不超过8个字符。(3)在选择标识符时,应该注意做到“见名知意”,即选择有相应含义的英文单词或缩写作为标识符,以增加程序的可读性。(二)常量常量又称为常数,是在程序运行过程中其值不能被改变的量。常量的数据类型是由其值隐含决定的。例如,30、-3为整型常量,-0.23、57.0为实型常量,

33、D、2为字符型常量。在C语言中,经常使用一个标识符来代表一个常量,也就是给常量命名,命名后的常量称为符号常量。(三)变量1. 变量的基本概念在程序运行基本过程中其值可以改变的量称为变量。变量具有数据类型、变量名和变量值三个属性。变量在其存在期间,在内存中根据指定的类型所占据存储单元长度的不同,可以用来多次赋值。变量名和变量值的概念不同,变量名实际上是一个符号地址,在系统对程序编译时,给每一个变量名分配一个具体的内存地址,变量值是对应变量名的存储单元所存放的具体数值。变量的数据类型是指变量存储的数据类型,也就是变量值的数据类型,C语言规定数据类型不同,在内存中占据存储单元的长度也不同。程序运行时

34、从变量中取值,实际上是通过变量名找到相应的内存位置,从与内存地址相对应的存储单元中读取数据。注意事项(1)程序在使用变量前,先要对变量进行定义,即必须“先定义,再赋值,后使用”。(2)变量名的命名规则与标识符完全相同。(3)在程序中变量名在其有效的范围内不能更改,但变量值却可以动态更新。2. 变量的定义变量的定义是指在程序中指定变量的名字和数据类型。在编译时根据变量的数据类型,系统分配相应大小的存储单元。变量一般是在函数开头的声明部分定义,也可在函数中的某一复合语句内定义。变量定义的一般形式如下:类型说明符 变量名1, 变量名2, 变量名3, 变量名n;例如:int a, m, x; /定义三

35、个整型变量char str; /定义一个字符型变量3. 变量的初始化在C语言中,有两种初始化方式,第一种是定义变量的同时为变量指定初值。例如:float a=0.5;char str=a;int a=0, b=100;第二种是在定义后再赋值,例如:int a, b;a=0; b=100;另外还可以对被定义变量的一部分赋初值。例如:int a=0,b=0, c;注意事项不可以用下面的方式对几个变量同时赋同一个初值:int a=b=0;(四)关键字为了清晰的表达程序的功能,C语言中使用了一些具有特殊意义的单词或单词缩写,这些单词称为关键字,是C语言系统预先规定的。例如:if,int,whlie等,

36、详见本书附录。注意:关键字不能用于变量名或任何标识符。(五)C语言的数据类型C语言中根据数据的不同性质和用处,将其分为不同的数据类型,各种数据类型具有不同的存储长度、取值范围及允许的操作。(六)整型数据C语言的整数类型(简称整型)用来表示整数,因为计算机只能表示有限位的整数,所以整型是整数的一个有限子集,整型数据类型又可以分为整型变量和整型常量。1. 整型变量的分类整型变量按数值的取值范围不同分为以下三种:(1)基本整型:以int作为类型说明符。(2)短整型:以short int或short作为类型说明符。(3)长整型:以long int或long作为类型说明符。一般来说,整型变量在内存中占的

37、字节数与所选择的编译系统有关,不同的编译系统对整型数据的存储是不同的,规定long型整数不短于int型,short型整数不长于int型。例如,Visual C+系统为int型变量和long型变量分配4个字节(32位),因此,值的范围是-231231-1.以上三种类型说明符用来定义带符号(正、负)的整型变量,而实际应用中经常处理的是一些不带符号的整型变量,处理方法是将存储单元中的全部二进制位都用来存放数,取消符号位,这类变量称为无符号整型。无符号整型变量按数值的取值范围不同也分为三种:(1)无符号基本整型:以unsigned int或unsigned作为类型说明符。(2)无符号短整型:以unsi

38、gned short int或unsigned short作为类型说明符。(3)无符号长整型:以unsigned long int 或unsigned long作为类型说明符。无符号整型变量只能存放不带符号的整数,不能存放负数,但可以存放正数的范围比相应的有符号整型变量大一倍,以Visual C+系统为例,C语言的整数类型占用的存储空间和取值范围如表2-1所示。表2-1 C语言的整数类型类型名称类型说明符字节数位数取值范围基本整型intint432-21474836482147483647-231231-1短整型short intshort216-3276832767-215215-1长整型l

39、ong intlong432-21474836482147483647-231231-1无符号基本整型unsigned intunsigned432042949672950231-1无符号短整型unsigned short intunsigned short2160655350216-1无符号长整型unsigned long intunsigned long432042949672950231-12. 整型变量的定义对每一个整型变量,都应在使用前加以定义。例如:int a=0,b=0;int i,j;i=1;j=7;3.整型常量的表达形式整型常量就是整型常数。有以下三种表达形式:十进制数:例如

40、25、-128。八进制数:以数字0开头,并由数字07组成的数字序列,例如0125。十六进制术:以0 x或0X开头,并由数字09和字符af或者字符AF组成的数字序列,例如0X125。4. 整型常量的类型我们已经知道,整型变量有六种类型,而整型常量的类型是由其值隐含决定的,当然也和所选的编译系统相关。例如,32767的类型是short int(或int),32769的类型是long(或int)。注意事项(1)常量无unsigned型,但如果非负的整数在unsigned型的取值范围内,可以赋值给一个unsigned型变量。(2)一个整型常量后面加一个字母L,则明确指出该常量是long int型的,例

41、如:0L。(七)实型数据C语言的实型用来表示实数,因为计算机只能表示有限位的实数,所以实型是实数的一个有限子集,实型数据可以分为实型变量和实型常量 。1. 实型变量的分类实型变量按数值的取值范围不同分为以下三种:(1)单精度实型:以float作为类型说明符。(2)双精度实型:以double作为类型说明符。(3)长双精度实型:以long double作为类型说明符。各种实型变量的数据长度、精度和取值范围与所选择的系统有关,不同的系统有差异。在大多C语言系统中,float型数据在内存中占4个字节(32)位,double型数据在内存中占8个字节(64位)。C语言中各种实型变量的数据长度、精度和取值范

42、围如表2-2所示。表2-2:实型变量的数据长度、精度和取值范围类型名称类型说明符字节数位数有效数字取值范围单精度实型Float4326710-38-1038双精度实型Double864151610-308-103082. 实型变量的定义对每一个实型变量,都应在使用前定义。例如:float x, y; /定义x,y为单精度实数double z; /定义z为双精度实数3. 实型常量表达形式实型常量就是实常数。以下有两种表达形式:(1)十进制小数形式:例如1.25。(2)指数形式:一般格式是“实数(整数)+e(或E)+整数”。例如,123.456的指数形式是1.23456e2。4. 实型常量的类型一

43、个实型常量可以赋给一个float型、double型或long double型变量,系统根据变量的类型自动截取实型常量中相应的有效数字。(八)字符型数据字符型数据用于表示一个字符值。字符型数据在计算机内部的表示形式是ASCII代码(二进制形式存储),并非字符本身。字符型数据分为字符常量和字符变量两种。1. 字符常量字符常量使用单撇号括起来的一个字符,例如,a、A、9等都是字符常量。另外还有一些特殊的字符,C语言中约定用“”开头的字符序列作为标记,这类字符统称为转义字符,从字面上理解就是将反斜杠“”后面的字符转换成另外的意义,用于表示一种特定的控制功能或表示一个特别的字符。例如,转义字符n中的“n

44、”并不代表字母n,该转义字符表示在输出过程中将当前的位置转移到下一行开头,简称换行。常用转义字符如表2-3所示。表2-3:常用转义字符表示形式含义ASCII码0空字符0a响铃7b退格,将当前位置移到前一列8t水平制表(跳到下一个Tab位置)9n换行,将当前位置移到下一行开头10v垂直制表(跳到下一个home的位置)11f换页,将当前位置移到下一页的开头12r回车,将当前位置移到本行的开头13”双撇号字符34单撇号字符39反斜杠(”)字符92ddd13位八进制所代表的字符xhhh12位十六进制所代表的字符2. 字符变量用来存放一个字符常量的变量称为字符变量。同样,字符变量在使用之前必须先定义,以

45、char作为说明类型符。例如:char c1, c2; /定义变量c1,c2为字符变量c1=a; c2=b; /将字符常量存放在字符变量中无论是字符常量还是字符变量,在内存中只占一个字节,用来存放一个字符,虽然字符在程序中可用字符常量或对应的ASCII码的形式表示,但在内存中是以其ASCII码二进制的形式存储的,它与整数的存储形式类似。因此,字符型数据可以当做整型数据进行处理,并且可以与整型数据混合操作和处理。3. 字符串常量字符串常量是括在一对双撇号之间的字符序列。例如:”Hello World”、”a”、”$100”、”tban”。字符串常量中的字符依次存储在内存中的一块连续的区域内,并把

46、空字符0自动的附加到字符串的尾部作为字符串结束的标志。因此,对于字符个数为n的字符串,所占内存空间应为n+1个字节。注意在程序中,可以用字符常量或字符串常量表示单个字符,例如a或”a”,但是意义不同,区别如下:字符串”a”在内存中占两个字节,而字符a在内存中占1个字节。sizeof( 数据类型或变量名 )(九)sizeof函数该函数功能是判断数据类型长度,一般格式为。sizeof(类型说明符, HYPERLINK /view/209670.htm t _blank 数组名或 HYPERLINK /view/420676.htm t _blank 表达式);或sizeof 变量名例如:print

47、f(int :%dn,sizeof(int);(一)运算符与表达式运算是对数据进行处理和操作的过程,描述各种操作和处理的符号称为运算符(也称为操作符),C语言把除了控制语句和输入、输出以外的几乎所有的基本处理和操作都作为运算符处理,因此C语言中运算符的作用范围很广泛。按照运算符的作用将其分类,如表2-4所示。表2-4 C语言运算符类别运算符算术运算符*,/,%,+,-,自增运算符+,自减运算符-关系运算符,=,=,!=逻辑运算符!,&,|位运算符,|,,&赋值运算符=,+=,-=,*=,/=,%=,&=,=,|=,条件运算符?:逗号运算符,指针运算符*,&强制类型转换运算符(类型),如(int

48、)(double)等分量运算符-,., 其它运算符如函数调用运算符1. 运算符的分类用运算将操作对象连接起来,符合C语言语法的式子称为表达式。表达式具有如下特点:(1)常量和变量都是表达式,例如:常量3.14、变量i都是表达式。(2)运算符的类型对应表达式的类型,例如:算术运算符对应算术表达式。(3)每一个表达式都有自己的值。表达式的值也可以说是表达式的运算结果,所有表达式的值只有两类:数值和地址。不管表达式多么复杂,非地址类表达式的运算结果只能是一个数值。任意一个运算符都具有两个属性:优先级和结合性(结合方向)。(1)优先级当若干个运算符同时出现在表达式中时,优先级规定了运算的先后次序。C语

49、言的运算符种类有很多种,并且优先级有15级之多。C语言把圆括号作为运算符,规定它的优先级最高,为15级,从而保证了优先运算圆括号内的式子,逗号运算符的级别最低,为1级。(2)结合性当若干个具有相同优先级的运算符相邻出现在表达式中时,结合方向规定了运算的先后次序,分为“从右到左”和“从左到右”两个结合方向。一般来说,大多数运算符的结合方向为“从左到右”,只有单目运算符、赋值运算符和条件运算符的结合方向为“从右到左”,这里单目运算符是指作用于一个操作对象的运算符。2. 算术运算符和算术表达式C语言的算术运算符如表2-5所示。注意:(1)在除法运算中,两个整数相除的结果为整数,舍弃小数部分,例如3/

50、2的结果为1。(2)如果被除数或除数有一个是负数,则舍弃小数部分的方向是不一定的,例如-3/2的运算结果可能是-1,而3/2的运算结果为1。(3)%是取余运算符或模运算符,该运算只能作用于两个整型数,运算结果是两个整数相除后的余数,运算结果为整数。(二)逗号运算符和逗号表达式在C语言中,逗号不仅仅可以作为分隔符出现在变量的定义、函数的参数表中,还可以作为一个运算符把多个表达式连接起来,形成逻辑上的一个表达式。逗号表达式的一般形式如下:表达式1,表达式2,表达式3,表达式n逗号运算符的优先级是所有运算符中最低的,结合方向是“从左到右”。逗号运算符的功能是使得逗号表达式中的各个表达式从左到右逐个运

51、算一遍,逗号表达式的值和类型就是最右边的“表达式n”的值和类型。例如:m=1, n=2a=(m+n, m-n) /a等于-1,表达式的值为-1a=m+n, m-n /先计算赋值表达式,a等于3,表达式的值为-1a=m+n, m-n+a /先计算赋值表达式,a等于3,表达式的值为2(三)数据类型转换1. 不同数据类型的数据间的混合运算整型、实型和字符型数据可以进行混合运算,在进行运算时,一般的数据类型先转换成标准类型的数据。在运算过程中,每个数据都要转换为标准类型,以提高运算精度。例如,如果一个数据是float型,首先应转换为double型;如果一个数据是short型或char型,首先应转为in

52、t型。例如:char ch1=a;short a=67ch3=ch2-a;以上程序段首先将ch1转换为int型,然后进行减法运算。以上转换的过程是系统自动进行的,也可以称为隐式类型转换,下面将介绍的强制类型转换又称为显示类型转换。2. 强制类型转换强制类型转换是指将表达式的运算结果(即表达式的值)转换为指定类型。强制类型转换的一般形式如下:(类型说明符)表达式例如:int a;(double)a; 将a的值转换为double型说明:对表达式进行强制类型转换时,表达式应该用括号括起来,否则会产生不同的结果,如上面的例子所示。(四)自增运算和自减运算自增运算符+和自减运算-是C语言特有的单目运算,

53、它们只能和一个单独的变量组成表达式。自增、自减运算符使用的一般形式如表2-7所示。其作用是使变量的值增1或减1,其中变量是指算术类型的变量。x+和+x的相同之处是,单独作为一个表达式语句被使用时,无论执行哪一种表达式,执行结束后x的值都增加1。注意事项(1)自增运算符+和自减运算符-只能用于变量,不能用于常量和表达式。(2)自增运算符+和自减运算符-的结合方向是“从右到左”。优先级为14,仅次于圆括号。(3)自增运算和自减运算实质上是算术运算和变量赋值运算两种运算的结合。(4)i+与+i的区别是:i+是先使用后加1,而+i是先加1后使用。思考题、作业、参考文献课 后小 结授课时间第 4、5 次

54、课,第 周星期 第 节课时4+4授课方式理论课 讨论课 习题课 实验课 上机课 技能课 其他授课题目顺序结构程序设计目的与要求1. 掌握C语言中最常见的赋值语句的使用方法。2掌握各种数据类型变量的输入和输出的方法。重点与难点重点:赋值语句、输入和输出难点:字符串的输入教学基本内容赋值运算符和赋值表达式C语言采用赋值运算的方式改变变量的值,或者说为变量赋值。赋值运算符有一般形式和复合形式两种。(一)一般赋值运算符赋值运算符是符号“=”,它的作用是将一个数据赋给一个变量。由赋值运算符将一个变量和一个表达式连接起来的式子称为赋值表达式。赋值表达式的一般形式如下:变量=表达式其作用是把赋值运算符右边表

55、达式的值赋给赋值运算符左边的变量。例如:a=1;b=a;a=b=c=2;c=b+a注意:(1)赋值运算后,变量原来的值被表达式的值替换。(2)赋值表达式的值也就是赋值运算符左边变量得到的值,如果右边表达式的值的类型与左边变量的类型不一致,以左边变量的类型为基准,将右边表达式的值的类型无条件的转换为左边变量的类型,相应的赋值表达式的值的类型与被赋值的变量的类型一致。(3)赋值运算符的优先级很低,仅高于逗号运算符。结合方向为“从左到右”。(二)复合赋值运算符为使程序书写简洁和便于代码优化,可在赋值运算符的前面加上其它常用的运算符,构成复合赋值运算符,相应地,由复合赋值运算符也可构成赋值表达式。复合

56、赋值运算符包括:+=、-=、*=、/=、%=、=、&=、=、|=复合赋值运算表达式如表3-1所示。复合赋值其实是表达式语句的简写,比如a+=b其实是a=a+b,只是为了书写方便而已。表3-1 复合赋值运算表达式复合赋值运算表达式(算术运算)等价于复合赋值运算表达式(位运算)等价于a+=ba=a+ba=ba=a=ba=aba*=ba=a*ba&=ba=a&ba/=ba=a/ba=ba=aba%=ba=a%ba!=ba=a!b(一)数据的输出1. 格式输出函数printf(1)一般形式:printf(格式控制字符串,输出表列)功能:按指定格式,向终端输出若干个任意类型数据。(2)函数的使用说明pr

57、intf函数需要提供两个参数,一个是格式控制字符串,另一个是输出表列。格式控制字符串用来指出在输出设备上输出的格式。该字符串指出输出后显示的样式。格式控制字符串也称为转换控制字符串,它包括格式说明符和普通字符两种信息:格式说明符:由%和格式符组成,如%d、%f等,它的作用是将输出表列的数据转换为指定的格式输出。格式说明符总是从“%”字符开始。普通字符:是指格式控制字符串中除格式说明符外的其它字符,其中包括转义字符,这是一类需要原样输出的字符。“输出列表”是需要输出一系列数据,可以是常量、变量和表达式。“格式控制字符串”中格式说明符的个数和输出表列的项数相等,顺序为从左到右依次对应。printf

58、函数按照格式控制字符串的格式输出信息,输出的过程是从左到右逐个考察函数中格式控制字符串的每个字符,如果该字符是普通字符,就将它原封不动地输出到显示器上;如果该字符是格式说明符,就在输出表列中从左到右找到对应的数据项,按格式说明符指定的类型和格式输出。在使用格式说明符时特别要注意,除了在可显示的字符范围内,整型和字符型格式可以互换,%f格式说明符可以用来输出单精度实数和双精度实数,格式说明符的类型必须是与其对应的输出表列中数据的类型一致。(3)格式说明符在C语言中,在格式输入和输出函数中,不同类型的数据必须采用不同的格式说明符。一般形式:%-或0m.n1格式符说明:方括号中的内容是可选择项。数据

59、的宽度表示数据输出到屏幕上时所占的水平位置的长度,与数据实际字符的个数一致。例如3.14的宽度为4。-(负号):表示当实际数据的宽度小于显示宽度时,数据左对齐,数据右方用空格填充。m:表示占用数据的宽度,如果实际宽度大于m,按实际宽度输出;如果实际宽度小于m,数据右对齐,数据左方用空格填充。n:表示指定输出的数据中有n位小数,或者表示取字符串中左端n个字符输出。如果不指定该项,一般系统默认输出6位小数。m.n:表示指定输出的数据共占m列,其中有n个小数,舍去的部分系统自动四舍五入。如果输出的是字符串,表示取字符串中左端m个字符输出。 = 1 * GB3 用于长整型或双精度型的数据。格式符的种类

60、很多,如果输出表列的每项数据的类型不同,格式说明符中需要选择不同的格式符与之对应,printf函数使用的格式符如表3-2所示。表3-2 printf函数使用的格式符格式字符作用输出值类型d,i以十进制带符号的形式输出整数整型o以八进制无符号的形式输出整数X,x以十六进制无符号的形式输出整数u以十进制无符号的形式输出整数f以小数形式输出单、双精度实数实型E,e以指数形式输出单、双精度实数G,g选用%f或%e格式中输出宽度较短的一种格式C以字符形式输出一个字符字符型S以字符形式输出一个字符串字符串p输出指针void*型下面按照输出的数据类型的不同,详细介绍各种格式说明符在程序中的使用方法。 = 2

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论