C程序设计演示稿(1-8).ppt_第1页
C程序设计演示稿(1-8).ppt_第2页
C程序设计演示稿(1-8).ppt_第3页
C程序设计演示稿(1-8).ppt_第4页
C程序设计演示稿(1-8).ppt_第5页
已阅读5页,还剩79页未读 继续免费阅读

下载本文档

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

文档简介

C程序设计 第章第章 第1章 C语言概述 “高级语言” 汇编语言:优点:可以充分发挥机器硬件的功能 ,并提高质量。缺点:必须熟悉机器的指令系统, 而指令系统又是和具体机器的内部结构密切相关的 ,所以所编写的程序依赖于计算机硬件,可读性和 可移植性比较差。 一般高级语言:优点:可读性和可移植性比较好 。缺点:难以对硬件进行操作,如内存地址、位操 作等。 1.1 介绍 : C语言:具有一般高级语言的特性,也具有汇编语 言的优点,所以有人称为“中级语言” 高级语言有的: 高级语言没有的: 算术运算 关系运算 逻辑运算 位运算 单目、三目运算 复合运算 1、语言简洁、紧凑,使用方便、灵活。32个关键 字、9种控制语句。 2、运算符丰富 34种运算符 3、数据类型和数据结构丰富。 基本类型(整型、字符型、 实型) 构造类型(数组、结构体、共用体) 指针、文件、空类型 数据结构(链、表、树、栈等) 1.2 C语言的特点 4、具有结构化控制语句 5、语法不严格松散结构,即语法检查不严格,编 程时必须控制好。 6、C语言允许直接访问物理地址,能进行位操作 。 7、目标代码质量高,程序执行效率高。 8、输入输出采用函数而无输入输出语句,可移植 性好 1.3 用C库函数组装程序 用库函数必须注意包含相应的头文件 #include #include #include 1.4 程序格式和特点 1、main()函数必须有且唯一 2、函数是C语言程序的基本单位 3、大小写敏感 4、无行概念 (1)、语句以分号结束 (2)、以号开头的编译预处理语句无分号 (3)、/*/加在C语言任何部分作注释说明 采用小写,大写有特殊意义(宏,常量等) 1.5 程序执行从main函数开始 Turbo C 是一个集成环境,编辑、编译、连接 、执行。 1、源程序扩展名.c 2、Turbo C 的使用 TC 选择工作目录 建立工作环境 建立工 作环境 F9编译、连接。运行Alt+R. 3、建立工作环境 例题 例1例3 讲解、说明 上机题: 1、建立一个自己的工作环境 2、熟悉Turbo C环境 3、输入并调试运行例1-例3 4、自己编写C程序 习题1.5、1.6 第2章 数据描述和基本操作 程序 2.1 C的数据类型 : 对数据的描述 (数据结构) 对操作的描述 (算法) 1、不同的数据占用的空间不同 2、对应的运算不同 数据类型(P38 ) 2.2 基本数据类型 : 1、整型 shout 2字节 int 机器字长(2字节) -215(215-1) long 4字节 2、无符号类型 只对整型;也包含字符型,存放正数的范围扩大一倍 Unsigned 整型 x; 2.2 基本数据类型 : 3、实型 float 单精度 4字节 double 双精度 8字节 long double 长双精度 16字节 2.2 基本数据类型 : 4、字符型 存贮形式,按ASCII码值; 占一字节; 与整型通用,相当一个字节整数。 2.2 基本数据类型 : 5、类型长度运算符 sizeof(类型 ) 用途:测试动态分配存贮空间 例如 Asizeof(int); 2.3 常量和变量 : 1、常量 (1)、数值常量 整型常量 实型常量 十进制 自然表示 八进制 零打头 十六进制 ox打头 指数形式 E(e)前面有数,后 面是整数 小数形式 .必须有“.” (2)、字符型常量 用单引号包围的单一字符 a A 字符常量没有结束标志 (3)、字符串型常量 用双引号包围的0个或多个字符序列 “china” 有结束标志 (4)、特殊常量 (一)符号常量 如:宏定义 #define PI 3.14 (二)转义字符(换码序列) 字母 表示动作 见P(48) 2、变量 (1)、变量的定义 int x,y; 先定义 每个变量被指定为一确定类型 便于编译系统检查 如 a%b (2)、变量标识符 C语言规定标识符只能由字母、数字和 下划线三种字符组成,且第一个字符必 须是字母或下划线。 用来标识变量名、符号常量名、函数名、数组名、 类型名、文件名的有效字符序列。 保留关键字 预定义标识符 用户自定义 (3)、变量的初始化 定义变量的同时给变量赋值 如: int x=3,y=5; 2.4 表达式运算 : 1、说明 例如 表达式 b=(a=x)*5 运算符的功能 与运算量的关系 优先级 结合方向 结果类型 2、算术运算符 双目运算符 5%3=2 -5%3=? 5%-3=? 、/、(模运算符或求余运算符) a%b 这里a、b必须是整型数 5/3=1 -5/3=-1(-2)舍入的方向不因定,“向零取整原则 ” 符号同左边的操作数 3、算术表达式 用算术运算符和括号将运算对象(也称操作数) 连接起来,符合C语法规则的式子称C算术表达式。 如:a*b/c-1.5+a 同级时“从左到右”的结合原则 4、复合的赋值运算 +=、-=、*=、/=、%=、=、 while(c=getchar()!=EOF) putchar(c); 例题分析: 例2 打印ASCII码0-255的字符。 第6章 数组 6.1 一维数组的定义和引用 : 1 定义 类型说明符 数组名常量表达式 如 int a10; 说明: (1)数组名 (2)用方括号 (3)数组长度,元素个数 (4)不能含变量 数组:是有序数据的集合,数组中的元素应是同一类型。 2 引用 先定义,后使用的原则 C规定:逐个引用数组元素,不能一次引用整个数组 数组元素的表示形式:数组名下标 规定:下标是整型常量或整型表达式 如 a5 或 a2*3等 3 初始化 (1)在定义数组时对数组元素赋以初值 规定:只有静态存贮数组和外部存贮数组才能初始化 static -静态 extern-外部 (2)只给部分元素赋值 (3)使数组中全部元素为0 (4)在对全部数组元素初始化时,可以不指定数组 长度。 6.2 二维数组的定义和引用 : 1 定义 类型说明符 数组名常量表达式 常量表达式 如 int a34; 是特殊的一维数组 存贮顺序:按行存贮,多维数组同理 2 引用 数组元素的表示形式: 数组名下标下标 如 a00 或 a01等 3 初始化 6.3 字符数组 : 用来存放字符数据的数组是字符数组,字符数组中每个 元素存放一个字符。 1 定义 类型说明符 数组名常量表达式 如:char a10; int a10; 2 初始化 static char c5=c,h,i,n,a; 注(1)如果字符个数大于数组长度则语法错 (2)如果字符个数小于数组长度则将字符赋给数组前 面的元素,其余元素为空格 (3)字符个数等于数组长度时可以省略数组长度 3 引用 可以引用字符数组中的一个元素,得到一个字符。 4 字符串和字符串结束标志 字符数组长度:实际长度0;有效长度 字符串结束标志 0表示 “china” 共有5个字符,但占6个字节 可以用字符串常量来初始化字符数组 Static char c=“china”; 也可写成static char c=“china”; 在C中将字符串作为字符数组来处理,为了测定字符串 的实际长度0作为结束标志。 5 字符数组输入、输出 (1)getchar()/putchar() (2)用格式符%c输入、输出 (3)将整个字符串一次输入、输出,用格式符%s 如 Static char c=“china”; Printf(“%s”,c); 注(1)输出字符不包括结束符0; (2) 用%s时输出项是数组名; (3) 长度大于实际长度时也到、0结束; (4)用scanf函数输入一个字符串,利用一 个scanf函数输入多个字符串时,以空格 分隔。 static char c6; scanf(“%s”,c); printf(“%s”,c); 所以一维字符数组可以看作是“字符串变量” 6 字符串输入、输出 (1)gets(str) 输入一个字符串到字符数组 (2)puts(str) 可以包含转义字符,如0,n等 7 字符串函数 #include (1)拷贝 strcpy(str1,str2); 目的 源 注:str1长度str2长度 str1是数组名形式,str2可以是字符串常量,不能用赋值 语句将字符串常量或字符数组赋给一个字符数组。 如:str1=“china”; str1=str2; (2)字符串连接 strcat(str1,str2); 目的 源 注:作用是把字符2连到字符1后面,结果放在字符数组 1中,所以字符数组1必须足够大,初始化时不能省略长 度;连接时第一个0取消。 (3)字符串比较strcmp(str1,str2); (4)测试字符串长度函数strlen(str) (5)将字符串中大写字母转成小写字母函数strlwr(str) (6)将字符串中小写字母转成大写字母函数 strupr(str) 第8章 模块化程序设计 8.1 函数定义: 在C中子程序的作用是由函数来完成的, 使用的角度函数有两种(1)系统函数(2)用 户定义函数;从函数的形式上分(1)无参函数(2 )有参函数 格式: 函数类型 函数名(形式参数) 函数体; 模块化设计;结构化编程。 说明: 函数类型-返回值的类型 如:float aver(成绩表) void-无返值 main() 就应是void类型 默认时为int型 形参: (int a,int b,float r) 或 (a,b,r) int a,b; float r; 函数类型 函数名() 称为“空函数” 8.2 函数参数和函数值: 1、形式参数和实际参数 定义函数时函数名后面括号中的变量形参 调用函数时函数名后面括号中的表达式实参 通过函数调用使两个函数中的数据发生联系 说明: (1)形参变量在函数调用前无分配存贮空间 (2)实参可以是常量、变量、表达式或数组名 (3)在被定义的函数中,必须指定形参类型 (4)实参和形参类型应一致,否则类型不匹配错误 (5)形参和实参间的传递是单向的“值传递”,不同单 元。 2、函数的返值 (1)函数的返值是通过return语句获得的,return后 面可以是一个表达式。 (2)函数值的类型,在定义函数时指定函数值类型, 如果不指定,按整型处理,函数类型决定返值类型。 (3)如果被调函数中没有return语句,则返值不确定 。 (4)如果不带回值,应将函数定义为void类型。 8.3 函数的调用: 1、函数调用的一般形式 函数名(实参表列); 说明: 对实参表的求值顺序并不是确定的,一般是从右至 左,这种情况在printf函数中也同样存在如: i=2; Printf(“%d %dn”,i,+i); 结果:3 3 2、函数的调用方式 函数在程序中出现的位置; (1)函数语句 (2)函数表达式 (3)函数参数 3、被调函数的说明 在一个函数中调用另一个函数所具备的条件是: (1)被调函数是已经存在的函数(库函数、自定义) (2)如果是库函数则 #include 命令相关头文件 (3)如果是用户自定义函数,在主调函数中对被调函数声 明: 函数类型 函数名(参数表); 特例: (1)函数的返值是整型或字符型 (2)被调函数的定义在主调函数之前 (3)在所有函数定义之前,说明了函数类型 8.4 函数的嵌套调用: 关系:自身可调用,相互之间可调用,即在调用一个函 数的过程中,又调用另一个函数。如图 8.5 函数1函数2函数3 例8.6 P155 8.5 函数的递归调用: 1、直接递归 2、间接递归 函数A 函数A 函数B 8.6 数组作为函数参数: 数组元素作参数同变量相同,数组名作为参数时传 递整个数组。 当用数组名作函数参数时,实参和形参都应用数组 名(或指针变量)。 例8.11 P165 说明 (1)主调函数和被调函数分别定义数组 (2)实参数组和形参数组类型应一致 (3)实参数组和形参数组大小可以不一致,C编译对形参数 组大小不作检查,只是将实参首址传递给形参数组。 如:例8.12 (4)不是“传值”而是“传址” 例:8.13 (5)也可以用多维数组名作函数参数,同上。 例:8.14 8.7 局部变量和全局变量: 1、局部变量 在函数内定义的变量 例:float f1(int a) int b,c; . 说明 (1)主函数main中定义的变量只在主函数中有效 (2)不同函数中可以使用相同的变量 (3)形参也是局部变量 (4)在一个函数内部,可以在复合语句中定义变量,这些 变量只在复合语句中有效,离开复合语句该变量就无效。 8.7 局部变量和全局变量: 2、全局变量 在函数之外定义的变量称为外部变量,外部变 量是全局变量,全局变量可以为本文件中其它函数所共 用,它的有效范围为“从定义的位置开始到文件结束”。 例:8.15 说明 (1)设全局变量的作用是增加了函数间数据联系,可以从 函数得到一个以上的返值,是“双向传递的”。 (2)不要轻易使用全局变量 在程序执行过程中都占用存贮单元;通用性降低;不 清晰。 (3)在定义点之前引用外部变量要用关键字extern作“外部 变量说明” (4)在同一源文件中,外部变量与局部变量同名,则在局 部变量的作用范围内,外部变量不起作用。 8.8 动态存贮变量与静态存贮变量: 1、变量的存贮类别 以上是从变量的作用域角度分;从变量值生存期角 度分静态存贮变量和动态存贮变量。 静态存贮区存放:全局变量 动态存贮区存放: (1)函数形参变量 (2)局部变量(未加static说明的) (3)函数调用时的现场保护和返回地址 程序区 静态存贮区 动态存贮区 用户区 说明 C语言中每个变量和函数有两个属性,数据类型和数据存贮 类别,一般形式。 存贮类别 数据类型 变量表; 存贮类别:auto(隐含) 自动 static 静态 register 寄存器 extern 外部 8.8 动态存贮变量与静态存贮变量: 2、局部变量的存贮方式 (1)不作专门说明都是动态分配存贮空间的,存贮 在动态存贮区中,编译系统自动处理。 (2)有时希望函数中的局部变量值在

温馨提示

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

评论

0/150

提交评论