C语言概述全册教案教学设计.docx
《C语言概述全册教案教学设计.docx》由会员分享,可在线阅读,更多相关《C语言概述全册教案教学设计.docx(93页珍藏版)》请在咨信网上搜索。
授课时间 第 1 次课,第 周星期 第 节 课时 2+2 授课方式 理论课√ 讨论课□ 习题课□ 实验课□ 上机课√ 技能课□ 其他□ 授课题目 C语言概述 目的与要求 1. 了解C语言以及特点。 2. 了解算法、流程图、结构化设计等知识。 3. 熟悉VC++6.0工具的使用。 4. 掌握C语言运行步骤,会在VC++6.0工具上运行程序。 重点与难点 重点:VC工具的使用、C语言运行步骤 难点:算法、流程图 教学基本内容 (一)程序 程序是为实现特定目标或解决特定问题而用计算机语言编写命令序列的集合。计算机程序是开发工程师按照用户要求、用计算机语言开发的计算机能够执行的指令序列的集合。计算机程序分为系统程序和应用程序两大类。 (二)程序设计语言 程序设计语言主要包括机器语言、汇编语言和高级语言三类语言。 1. 机器语言 计算机能够直接识别的语言被称为机器语言,也叫二进制语言,该语言的指令都是由二进制数0或1组成。该语言执行效率高,但是难学难记、编程难度高。 2. 汇编语言 汇编语言用英文字母或字符串来代替机器语言,把不易理解和记忆的机器语言按照对应关系转换成汇编指令。汇编语言降低了机器语言的难度。 3. 高级语言 高级语言是一类语言的统称,包含多种编程语言,这类语言比汇编语言更贴近于自然语言,因此易于理解、记忆和使用。另外高级语言和计算机架构、指令集无关,因此具有良好的可移植性。常见的高级语言包括C、C++、Java、C#、VB等。 (三)C语言 Dennis 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 Thompson和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. 运算符丰富,表达式能力强 C语言有34种运算符,运算范围广泛,并且还可以实现以二进制为单位的运算,并且具有如++、--等单目运算符和+=、-=、*=、/=等复合运算符。 3. 数据结构丰富,便于数据的表述和存储 C语言具有丰富的数据结构,其数据类型有整型、实型、字符型、数组类型、指针类型、结构体类型和共用体类型等,能用来实现各种复杂的数据结构的运算。 4. C语言是结构化、模块化的编程语言 程序的逻辑结构可以使用顺序、选择和循环3种基本结构组成。C语言程序采用函数结构,十分便于把整体程序分割成若干相对独立的功能模块,并且为程序模块间的相互调用以及数据传递提供了便利。 5. 语法限制不太严格,程序设计自由度大 对数组下标越界不做检查,由程序编写者自己保证程序的正确。对变量的类型使用比较灵活。 6. C语言是具有低级语言功能的高级语言 C语言允许直接访问物理地址,能进行位操作,能实现汇编语言的大部分功能,可以直接对硬件操作,因此C语言既具有高级语言的功能,又具有低级语言的许多功能,可用来编写系统软件。 7. 生成目标代码质量高,程序执行效率高 用C语言编写的程序,经编译后生成的可执行代码比用汇编语言直接编写的代码执行效率低少许,其它高级语言无法做到这个程度。 8. 可移植性好 与汇编语言相比,C程序不做修改就可以运行于各种型号的计算机和各种操作系统。 (五)C语言的不足 1. C语言的数据类型检查不严格,表达时容易出现二义性,不能自动检查数组下标越界。 2. C语言缺乏支持代码重用的语言结构。 3. C语言不适合开发大型应用程序,因为当程序规模达到一定程度时,程序员很难控制程序的复杂性。 (六)开发工具 1. VC++ 6.0开发工具 Visual C++开发环境是一个基于Windows操作系统的可视化、面向对象的集成开发环境(Integrated Development Environment,IDE)。在该环境下用户可以开发有关C和C++的各种应用程序,应用程序包括建立、编辑、浏览、保存、编译、链接和调试等操作,这些操作都可以通过单击菜单选项或工具栏按钮来完成,使用方便、快捷。它还提供了项目工作区(WorkSpace)、应用程序向导(AppWizard)、类操作向导(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::Block具有很强的灵活性,方便用户使用。 4. Vim工具 (一)C语言结构 C程序主要有两种文件形式:头文件和源文件。引用C语言标准库函数,一般要用文件包含预处理命令(例如,include命令)将其头文件(扩展名.h)包含进来放在程序的开头;源文件通常以.c为文件扩展名。 先来看一个C语言程序的实例。 #include<stdio.h> int main() { printf(“Hello world”); return 0; } 结合这个实例,我们来了解C语言程序。 1. 头文件 实例中的“stdio.h”是头文件。语句“#include<stdio.h>”是预处理命令(也可以写成#include “stdio.h”),其后不能加“;”,该语句用于将stdio.h头文件包含到程序中。有了这条语句后,就可以使用在stdio.h中定义的函数了;如果不添加这条语句就不能使用stdio.h头文件中的函数,比如printf函数。大多数程序都会使用到输入或是输出,而输入和输出函数就在stdio.h头文件中。 2. 主函数 (1)主函数名称为main(),这个名称不能修改,其后的一对圆括号内可以带参数,也可以省略,但一对圆括号不能省略。 (2)一个C源程序不论由多少个源文件组成,必须有且只能有一个主函数。主函数无论在文件中的什么位置,程序运行总是从主函数开始,最后在主函数中结束。 注意:上机时,常常有学生编写多个不同程序,但是每个程序都有一个main函数,结果出现多于一个main函数,程序不能正确编译,更无法运行。 (3)程序中除了主函数main()外,还可以有其它函数。其它函数可以由主函数直接或间接调用来执行,但其它函数不能调用主函数。 3. 函数首部和函数体 一个函数由函数首部和函数体两部分组成。 (1)函数首部指定函数类型、函数名、函数参数类型和函数参数名;函数体从“{”开始,到“}”结束。比如实例中,函数类型为int类型,函数名为main,没有函数参数。函数体内有两条语句。 (2)函数体内是C语言的语句,一般包括变量声明语句和执行语句两部分。 (3)一行可以写多条语句,一条语句也可以分写在多行,但是不推荐一行写多条语句,如果语句不长,也不推荐一条语句分写在多行。 注意: ①C程序语句必须以分号结尾,分号是C语句的重要组成部分,其中分号是英文的分号,常常有学生写成中文的分号。 ②在预处理命令、函数首部、花括号“{”和“}”之后不能加分号。 ③执行语句中需要用到的变量必须先声明然后才能使用。 4. 注释语句 注释语句主要用于声明变量的含义和程序段的功能等,以提高程序的可读性,但注释内容都不会被计算机执行,注释可以出现在程序中任意合适的地方。注释有两种形式。 (1)单行注释 //注释内容 (2)多行注释 /*注释内容*/ (二)C语言风格 程序的格式不影响代码的执行,但是好的编程风格对程序可读性和维护性帮助很大。 1. 代码行 (1)一行只写一条语句 (2)if、for、while等语句各占一行,并且不管其执行语句有几条,都用大括号将其包含起来。 2. 对齐与缩进 (1)一般是使用4个空格缩进,也可以使用Tab键缩进。 (2)大括号要独占一行。 (3)在大括号内的代码,也要缩进。 (三)程序设计过程 编程是编写程序的简称,术语称为程序设计。其过程主要是由需求分析、算法设计、程序编写和程序调试组成。 1. 需求分析 编程的第一步是需求分析,也就是弄清楚到底要计算机做什么。这个过程看似简单,也确实有不少人对它不屑一顾,但忽视它的结果就像考试中审题审的不对,即使解题过程再漂亮,也拿不到分数,必须从头返工。 需求分析中最难的事情是开发者和用户之间的交流。用户一般不懂开发,开发者一般不懂用户的专业和业务,因此双方很难顺利地沟通,导致需求分析的过程要持续较长的时间。如果开发者对用户的专业有所了解,或者用户懂点开发,这件事就好办的多了。 2. 算法设计 编程的第二步是算法设计,就是搞明白计算机该如何完成问题求解。算法设计的内容主要包括数学建模和程序代码结构设计。 数学建模属于非计算机专业范畴,程序代码结构设计部分则属于计算机专业范畴,两者的配合非常重要。并不是所有的数学模型都能用程序高效实现,而有些数学中难以处理的问题,却可以使用计算机巧妙解决。 3. 程序编写 程序的第三步才是真正编写程序,即将设计的结果变成一行行代码,然后输到程序编辑器中。 4. 程序调试 编程的第四步是程序调试,就是将源代码编译,变成可执行的程序,然后运行,看是否能满足第一步的要求。如果不满足,就要查找问题,修改代码,再重新编译、运行,直到满足要求为止。 (四)C语言运行过程 1. 编辑 编辑是指用户通过编辑器,将开发的C语言程序输入计算机的过程。编辑生成的文件以文本形式存储,文件后缀名为.c,也称为C源程序文件。C源程序文件以ASCII码形式存储,计算机不能直接执行。 注意:在新建文件时,必须输入文件全名和后缀名(.c),因为Visual C++6.0中的默认后缀名是.cpp(C++程序)。 2. 编译 编译是指计算机把C源程序文件翻译成计算机可以识别的二进制形式的目标代码文件,由C的编译器完成。 把一个C源程序翻译成目标程序的工作过程分为5个阶段:词法分析、语法分析、语义检查和中间代码生成、代码优化、目标代码生成。编译器主要是进行词法分析和语法分析,又称为源程序分析,分析过程中发现有语法错误,将会列出错误位置和行号等信息,此时需要编辑修改源程序,排除错误,直至无错误也无警告,则编译成功并生成目标代码文件,其文件名与源程序文件名相同,后缀名为.obj。编译生成的目标文件不包含程序运行所需要的库函数等,计算机仍然不能直接执行。 3. 连接 连接是将本目标程序代码和其它目标程序代码,以及系统提供的C库函数等进行连接、装配成可执行文件的过程。连接生成的可执行程序文件的文件名与源程序文件名的后缀名.exe。 需要注意的是,在任何情况下,对任何程序做了修改编辑,都必须对修改的程序重新进行编译并连接装配成新的可执行程序(.exe)文件。 4. 运行 在C的集成环境下选择“运行”命令(推荐使用),或者在Windows命令提示符下,输入该程序文件名回车,都可以直接执行该文件获得运行结果。如果结果有误,需要重新编辑源程序,再编译、连接、运行,直到得到满意的运行结果。 (五)算法 算法是为解决某个特定问题而采取的准确而完整的方法和步骤,其中有个著名的公式: 数据结构 + 算法 = 程序 其中,数据结构是对数据的描述,也就是在程序中数据的类型和组织形式,而算法则是对操作步骤的描述。 算法是程序设计的灵魂,是问题求解过程中的精确描述。学习C语言,不仅要熟练掌握C语言语法规则等,还要掌握分析问题、解决问题的方法。解决一个具体问题时通常有多种算法供选用,要对算法执行效率进行分析比较,再做选择。 2. 算法的特性 算法具有以下特性: (1)有穷性:算法中的每个步骤执行的次数及时间是有限的,即不能无限执行。 (2)确定性:算法中的每条指令必须清楚严格地规定确切的含义,无二义性。 (3)有效性:算法中描述的每个步骤都应能有效地执行,并得到确定的结果。 (4)算法有零个或多个输入。 (5)算法通常有一个或多个输出。 3. 算法的描述方法 算法可以用各种描述方法进行描述,历史上已经使用过的描述方法有自然语言、流程图、N-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)流程图描述 流程图直观地描述一个工作过程的具体步骤。用传统的流程图表示算法的优点是直观易懂、简单方便;缺点是传统流程图对于流程线的走向没有任何限制,可以任意转向,绘制流程图时费时费力且不易修改和阅读。 (3)N-S图描述 在这种流程图中,完全去掉了带箭头的流程线,全部算法写在一个矩形框内,在该框内还可以包含其它从属于它的框。用N-S图表示算法的优点是去掉了流程线,直观易懂,容易让学习者养成利用结构化方法构造算法的习惯,但修改流程图仍显麻烦。 (4)伪代码描述(又称为类语言描述) 伪代码是用介于自然语言和计算机语言之间的文字和符号来描述算法。这种方法比较易于理解,但描述较冗长。 (5)计算机语言程序描述 另外,算法还可以使用计算机程序来描述。 4. 算法的要求与评价 对一个算法的评价主要是对算法效率的衡量,从时间复杂度和空间复杂度来衡量。 (1)时间复杂度:执行算法所需要的时间。 (2)空间复杂度:执行算法需要消耗的最大内存空间。 对于同一个问题,根据不同的算法写出的程序放在计算机上运行时,所需要的时间和空间是不同的,两者都与问题的规模有关。 (六)结构化设计 结构化程序设计是进行以模块功能和处理程序设计为主的详细设计的基本原则。它主要采用自顶向下、逐步求精及模块化的程序设计方法,任何程序都可由顺序、选择、循环三类基本控制结构构造。 1. 自顶向下 程序设计时,首先考虑总体,再考虑细节;先考虑全局目标,后考虑局部目标。首先从最上层总目标开始设计,不要一开始就追求细节。 2. 逐步求精 逐步精细化。对复杂问题,应设计一些子目标作为过渡,逐步细化。 3. 模块化设计:模块化就是把程序要解决的总目标分解为子目标,再进一步分解为具体的小目标,小目标又称为模块。为了使模块尽可能独立,要求模块内聚程度要尽量高,且模块间的耦合程度要尽量弱。 4. 结构化程序设计的三种基本结构 (1)顺序结构 顺序结构是最基本的构造结构,当执行由这些语句构成的程序时,按照这些语句在程序中的先后顺序执行,没有分支,没有转移,没有步骤之间的相互约束。顺序结构流程图如图1-8a所示。 (2)选择结构 选择结构根据不同的条件去执行不同分支中的语句。选择结构流程图如图1-8b所示。 (3)循环结构 循环结构就是根据给定的条件,判断是否要重复执行某一相同的或类似的程序段。选择结构流程图如图1-8c所示。图1-8c左图是当型循环,该循环的特点是:当给定的条件成立时,就执行循环体;否则不执行。图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.0→Microsoft Visual C++6.0 启动运行Visual C++6.0,进入它的集成开发环境窗口。 注意,Visual C++6.0启动后初始窗口样式可能会不同,例如未出现Workspace窗口或Output窗口。可以通过View→Workspace菜单选项的执行,会使主窗口左边的Workspace窗口(工作区窗口)显现;通过View→Output菜单选项的执行,又可使下部的Output窗口(输出区窗口)显示出来。 (2)退出 单击VC++6.0界面的右上角的关闭符号退出。 2. Visual C++6.0开发环境 (1)编辑 在VC++6.0窗口,选择菜单File→New,弹出新建文件对话框。在弹出的对话框中,单击上方的选项卡Files,选择C++ Source File,在File文本框中填写文件名(例如chap1.c),在Location文本框中选择或填写文件存放的位置。然后单击OK按钮。在打开的Visual C++6.0右侧窗口中输入程序的内容,然后单击保存图标。 注意: ①填写文件名时一定要写文件后缀.c,不要省略,因为省略则默认扩展名为.cpp。 ②推荐指定文件保存的目录,不要使用系统默认目录。 ③编辑程序时,所有的符号字母都是英文半角状态下的符号。 (2)编译 选择菜单Build→Compile或单击工具栏上的编译(Compile)图标,如果编译没有错误和警告,则显示chap1.obj – 0 error(s),0 warning(s)”。这表示目标代码文件建成,可以在文件所保存的文件夹的下级文件夹debug中看到hello.obj。 (3)连接(组建) 选择菜单Build→Build或单击工具栏上的连接(Build)图标,这时Visual C++6.0将弹出一个对话窗口,说明这个命令需要建一个工程(Project),询问是否创建一个默认的工程,一般单击“Yes”。这时在左边灰色区域建立白色工程区,显示工程名。 (4)运行 单击快捷工具栏上的红色的感叹号“!”(运行)按钮(或者选择菜单BuildExecute或按Ctrl+F5),Visual C++6.0将自动打开一个显示结果的黑色窗口,显示“This is a C program”,表示运行正常。 3 程序调试和测试 (1)VC调试功能简介 调试的目的是发现并改正错误。VC为调试C程序提供了多种工具和多组方法,常用的方法有菜单法、工具栏法和功能键法。实际上,这三种方法是相似或相同的。 对于控制程序运行工具,从左到右的常用按钮、功能键及功能说明依次是: ①Restart(Ctrl+Shift+F5)重新执行程序。 ②Stop Debugging(Shift+F5)停止程序调试。 ③Show Next Statement指示当前程序运行的语句行。 ④Step Into(F11)单步运行并且可进入函数内部运行。程序在调试过程中,按下此按钮可单步跟踪程序运行,进入函数内部,继续函数内部的语句执行跟踪。。 ⑤Step Over(F10)单步运行程序。功能类似于F11,它不进入函数内部,而是将每一条语句看做一步,包括函数调用语句。单步执行是最为常用的调试功能。 ⑥Step Out(Shift+F11)从当前函数中退出。当程序运行在某函数内时,按此按钮后,调试状态即从函数内部退出,返回到调用该函数的主函数的当前语句。 ⑦Run to Cursor(Ctrl+F10)运行到当前光标位置。当程序处于调试状态时,为了跳过某程序段,可预先将光标定位在某语句行上,按下此按钮,即可使程序直接运行到当前光标位置,从而节省了时间,加快了调试程序的步骤。 (2)对于设置观察窗口工具,其功能主要是为配合程序跟踪运行,设置一些观察点,以便定位出错的位置,从而找到出错的原因。 ①Quick Watch(Shift+F9)快速观察表达式的值。 ②Watch设置观察点。 ③Variables变量列表。 ④Registers寄存器列表。 ⑤Memory内存列表。 思考题、作业、参考文献 课 后 小 结 授课时间 第 2、3 次课,第 周星期 第 节 课时 4+4 授课方式 理论课√ 讨论课□ 习题课□ 实验课□ 上机课√ 技能课□ 其他□ 授课题目 C数据类型和表达式 目的与要求 1. 掌握C语言数据类型,了解整型数据和字符型数据之间的内在关系。 2. 掌握整型、字符型、浮点型等数据的正确输入方法。 3. 熟练掌握算术运算符和表达式的使用,以及自加和自减运算符的使用。 重点与难点 重点:数据类型、运算符 难点:自加、自减 教学基本内容 (一)数据类型 在C语言中,数据类型就是程序给其使用的数据指定的数据组织形式。数据类型是根据被说明数据的性质、表示形式、占据存储空间的多少、构造特点来划分的。在C语言中,数据类型可分为:基本类型、构造类型、指针类型、空类型四大类。 (二)数据类型分类 1. 基本类型 基本类型是数据类型的基础,由它可以构造出其它复杂的数据类型。基本类型不可以再分解为其它数据类型。 2. 构造类型 根据已定义的一个或多个数据类型,用构造的方法来定义的类型称为构造类型。也就是说,一个构造类型可以分解成若干个“成员”或“元素”。每个“成员”都是一个基本类型或是一个构造类型。在C语言中,构造类型包括数组类型、共用体类型、结构体类型和枚举类型。 3. 指针类型 指针类型是一种特殊的、具有重要作用的数据类型,用来表示某个对象(变量、数组等)在内存储器中的地址。指针的特殊性在于它能获得某个对象的地址和操作地址的能力。C语言高度的灵活性和丰富性的表达式很大程度上依赖于在程序中恰当地使用了指针。 4. 空类型 在调用函数时,通常应向调用者返回一个函数值,这个返回的函数值是具有一定的数据类型的。例如,max()函数定义,函数头为int max(int a,int b),其中int类型说明符即表示该函数的返回值为整型。但也有一类函数,调用后并不需要向调用者返回函数值,即只是一个过程调用,这种函数可以定义为“空类型”,其类型说明符为void。 (一)C语言的基本符号 1. 标识符 程序中用来为符号常量、变量、函数、数组、类型、文件命名的有效字符序列称为标识符。标识符命名规则如下: (1)只能由字母、数字和下划线组成。 (2)第一个字符必须为字母或下划线。 (3)不能使用关键字,C语言关键字参见附录。 2. 注意事项 (1)区分大小写字符,因此a和A是不同的标识符。 (2)各个编译系统允许的标识符的长度不同,建议标识符的长度不超过8个字符。 (3)在选择标识符时,应该注意做到“见名知意”,即选择有相应含义的英文单词或缩写作为标识符,以增加程序的可读性。 (二)常量 常量又称为常数,是在程序运行过程中其值不能被改变的量。常量的数据类型是由其值隐含决定的。例如,30、-3为整型常量,-0.23、57.0为实型常量,’D’、’2’为字符型常量。 在C语言中,经常使用一个标识符来代表一个常量,也就是给常量命名,命名后的常量称为符号常量。 (三)变量 1. 变量的基本概念 在程序运行基本过程中其值可以改变的量称为变量。变量具有数据类型、变量名和变量值三个属性。变量在其存在期间,在内存中根据指定的类型所占据存储单元长度的不同,可以用来多次赋值。 变量名和变量值的概念不同,变量名实际上是一个符号地址,在系统对程序编译时,给每一个变量名分配一个具体的内存地址,变量值是对应变量名的存储单元所存放的具体数值。 变量的数据类型是指变量存储的数据类型,也就是变量值的数据类型,C语言规定数据类型不同,在内存中占据存储单元的长度也不同。 程序运行时从变量中取值,实际上是通过变量名找到相应的内存位置,从与内存地址相对应的存储单元中读取数据。 注意事项 (1)程序在使用变量前,先要对变量进行定义,即必须“先定义,再赋值,后使用”。 (2)变量名的命名规则与标识符完全相同。 (3)在程序中变量名在其有效的范围内不能更改,但变量值却可以动态更新。 2. 变量的定义 变量的定义是指在程序中指定变量的名字和数据类型。在编译时根据变量的数据类型,系统分配相应大小的存储单元。 变量一般是在函数开头的声明部分定义,也可在函数中的某一复合语句内定义。 变量定义的一般形式如下: 类型说明符 变量名1, 变量名2, 变量名3, 变量名n; 例如: int a, m, x; //定义三个整型变量 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等,详见本书附录。 注意: 关键字不能用于变量名或任何标识符。 (五)C语言的数据类型 C语言中根据数据的不同性质和用处,将其分为不同的数据类型,各种数据类型具有不同的存储长度、取值范围及允许的操作。 (六)整型数据 C语言的整数类型(简称整型)用来表示整数,因为计算机只能表示有限位的整数,所以整型是整数的一个有限子集,整型数据类型又可以分为整型变量和整型常量。 1. 整型变量的分类 整型变量按数值的取值范围不同分为以下三种: (1)基本整型:以int作为类型说明符。 (2)短整型:以short int或short作为类型说明符。 (3)长整型:以long int或long作为类型说明符。 一般来说,整型变量在内存中占的字节数与所选择的编译系统有关,不同的编译系统对整型数据的存储是不同的,规定long型整数不短于int型,short型整数不长于int型。 例如,Visual C++系统为int型变量和long型变量分配4个字节(32位),因此,值的范围是-231~231-1. 以上三种类型说明符用来定义带符号(正、负)的整型变量,而实际应用中经常处理的是一些不带符号的整型变量,处理方法是将存储单元中的全部二进制位都用来存放数,取消符号位,这类变量称为无符号整型。无符号整型变量按数值的取值范围不同也分为三种: (1)无符号基本整型:以unsigned int或unsigned作为类型说明符。 (2)无符号短整型:以unsigned short int或unsigned short作为类型说明符。 (3)无符号长整型:以unsigned long int 或unsigned long作为类型说明符。 无符号整型变量只能存放不带符号的整数,不能存放负数,但可以存放正数的范围比相应的有符号整型变量大一倍,以Visual C++系统为例,C语言的整数类型占用的存储空间和取值范围如表2-1所示。 表2-1 C语言的整数类型 类型名称 类型说明符 字节数 位数 取值范围 基本整型 int int 4 32 -2147483648~2147483647 -231~231-1 短整型 short int short 2 16 -32768~32767 -215~215-1 长整型 long int long 4 32 -2147483648~2147483647 -231~231-1 无符号基本整型 unsigned int unsigned 4 32 0~4294967295 0~231-1 无符号短整型 unsigned short int unsigned short 2 16 0~65535 0~216-1 无符号长整型 unsigned long int unsigned long 4 32 0~4294967295 0~231-1 2. 整型变量的定义 对每一个整型变量,都应在使用前加以定义。例如: int a=0,b=0; int i,j; i=1;j=7; 3.整型常量的表达形式 整型常量就是整型常数。有以下三种表达形式: 十进制数:例如25、-128。 八进制数:以数字0开头,并由数字0~7组成的数字序列,例如0125。 十六进制术:以0x或0X开头,并由数字0~9和字符a~f或者字符A~F组成的数字序列,例如0X125。 4. 整型常量的类型 我们已经知道,整型变量有六种类型,而整型常量的类型是由其值隐含决定的,当然也和所选的编译系统相关。例如,32767的类型是short int(或int),32769的类型是long(或int)。 注意事项 (1)常量无unsigned型,但如果非负的整数在unsigned型的取值范围内,可以赋值给一个unsigned型变量。 (2)一个整型常量后面加一个字母L,则明确指出该常量是long int型的,例如:0L。 (七)实型数据 C语言的实型用来表示实数,因为计算机只能表示有限位的实数,所以实型是实数的一个有限子集,实型数据可以分为实型变量和实型常量 。 1. 实型变量的分类 实型变量按数值的取值范围不同分为以下三种: (1)单精度实型:以float作为类型说明符。 (2)双精度实型:以double作为类型说明符。 (3)长双精度实型:以long double作为类型说明符。 各种实型变量的数据长度、精度和取值范围与所选择的系统有关,不同的系统有差异。在大多C语言系统中,float型数据在内存中占4个字节(32)位,double型数据在内存中占8个字节(64位)。C语言中各种实型变量的数据长度、精度和取值范围如表2-2所示。 表2-2:实型变量的数据长度、精度和取值范围 类型名称 类型说明符 字节数 位数 有效数字 取值范围 单精度实型 Float 4 32 6~7 10-38-1038 双精度实型 Double 8 64 15~16 10-308-10308 2. 实型变量的定义 对每一个实型变量,都应在使用前定义。例如: float x, y; //定义x,y为单精度实数 double z; //定义z为双精度实数 3. 实型常量表达形式 实型常量就是实常数。以下有两种表达形式: (1)十进制小数形式:例如1.25。 (2)指数形式:一般格式是“实数(整数)+e(或E)+整数”。例如,123.456的指数形式是1.23456e2。 4. 实型常量的类型 一个实型常量可以赋给一个float型、double型或long double型变量,系统根据变量的类型自动截取实型常量中相应的有效数字。 (八)字符型数据 字符型数据用于表示一个字符值。字符型数据在计算机内部的表示形式是ASCII代码(二进制形式存储),并非字符本身。字符型数据分为字符常量和字符变量两种。 1. 字符常量 字符常量使用单撇号括起来的一个字符,例如,’a’、’A’、’9’等都是字符常量。 另外还有一些特殊的字符,C语言中约定用“\”开头的字符序列作为标记,这类字符统称为转义字符,从字面上理解就是将反斜杠“\”后面的字符转换成另外的意义,用于表示一种特定的控制功能或表示一个特别的字符。例如,转义字符’\n’中的“n”并不代表字母n,该转义字符表示在输出过程中将当前的位置转移到下一行开头,简称换行。常用转义字符如表2-3所示。 表2-3:常用转义字符 表示形式 含义 ASCII码 \0 空字符 0 \a 响铃 7 \b 退格,将当前位置移到前一列 8 \t 水平制表(跳到下一个Tab位置) 9 \n 换行,将当前位置移到下一行开头 10 \v 垂直制表(跳到下一个home的位置) 11 \f 换页,将当前位置移到下一页的开头 12 \r 回车,将当前位置移到本行的开头 13 \” 双撇号字符 34 \’ 单撇号字符 39 \\ 反斜杠(”\”)字符 92 \ddd 1~3位八进制所代表的字符 \xhhh 1~2位十六进制所代表的字符 2. 字符变量 用来存放一个字符常量的变量称为字符变量。同样,字符变量在使用之前必须先定义,以char作为说明类型符。例如: char c1, c2; //定义变量c1,c2为字符变量 c1=’a’; c2=’b’; //将字符常量存放在字符变量中 无论是字符常量还是字符变量,在内存中只占一个字节,用来存放一个字符,虽然字符在程序中可用字符常量或对应的ASCII码的形式表示,但在内存中是以其ASCII码二进制的形式存储的,它与整数的存储形式类似。因此,字符型数据可以当做整型数据进行处理,并且可以与整型数据混合操作和处理。 3. 字符串常量 字符串常量是括在一对双撇号之间的字符序列。例如:”Hello World”、”a”、”$100”、”\t\ba\n”。 字符串常量中的字符依次存储在内存中的一块连续的区域内,并把空字符’\0’自动的附加到字符串的尾部作为字符串结束的标志。因此,对于字符个数为n的字符串,所占内存空间应为n+1个字节。 注意 在程序中,可以用字符常量或字符串常量表示单个字符,例如’a’或”a”,但是意义不同,区别如下:字符串”a”在内存中占两个字节,而字符’a’在内存中占1个字节。 sizeof( 数据类型或变量名 ) (九)sizeof函数 该函数功能是判断数据类型长度,一般格式为。 sizeof(类型说明符,数组名或表达式); 或 sizeof 变量名 例如: printf("int- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 概述 教案 教学 设计
咨信网温馨提示:
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【丰****】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【丰****】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【丰****】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【丰****】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
关于本文