C语言学习资料.ppt_第1页
C语言学习资料.ppt_第2页
C语言学习资料.ppt_第3页
C语言学习资料.ppt_第4页
C语言学习资料.ppt_第5页
已阅读5页,还剩45页未读 继续免费阅读

下载本文档

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

文档简介

C语言结构化程序设计,结构化程序设计方法 C语言的结构特点 C数据类型及其运算 C语言的基本语句,函数定义及调用 指针及其应用 编译预处理 集成化开发环境的使用 程序调试,本讲主要内容,计算机组成与工作原理 高级语言的上机过程,计算机组成与工作原理,指令系统 计算机组成硬件系统 程序的自动执行,指令系统是计算机软件和硬件的界面 指令的功能 操作类指令 转移类指令 指令的格式,计算机组成与工作原理 指令系统,计算机组成与工作原理 硬件系统,计算机组成与工作原理 程序的执行过程,高级语言上机过程,编辑源程序 编译:产生目标程序(.OBJ) 连接:产生可执行程序(.EXE) 运行调试,C语言结构化程序设计,C语言的程序格式及结构特点 数据类型 算术运算符与算术表达式 赋值运算符和赋值表达式 逗号运算和逗号表达式 逻辑运算与逻辑表达式 赋值语句 数据输入、输出 简单程序举例,C语言的程序格式,实例 main() int x, y, z; x=2; y=3; z=x+y; printf(“x+y=%dn“,z); ,程序格式 关键字及编译预处理命令用小 写字母书写。 由语句组成。 以分号(;)作为语句的结束符, (不是分隔符)。 没有行的概念,可任意书写。 用大括号对表示程序的层次 范围,一个完整的程序模块要 用一对包括。 不能在变量名、函数名、关键 字中插入空格和空行。,C语言的结构特点,结构特点 只有一个名字为 main的函数,称 主函数。 除main函数外,其 它函数都是在执行 main函数时被调用 执行的。,函数的一般形式 函数名(参数) 参数说明; 数据说明部分; 执行语句部分; ,数据类型,常量与变量 整型数据 实型数据 字符型数据 给变量赋初值 不同类型的混合运算,Page 11,数据类型 常量与变量,#define PRICE 30 main() int num,total; float v ,r,h; num=10; total=num*PRICE; printf(total=%d,tatal); r=2.5; h=3.2; v=3.14159*r*r*h; printf(v=%fn,v); ,变量名: 以字母或下划线 开头,由数字、 字母、下划线构 成。最多31个字 符,多余不识别. 一般小写。,名字常用大写,Page 12,#define PRICE 30 main() int num,total; float v ,r,h; num=10; total=num*PRICE; printf(total=%d,tatal); r=2.5; h=3.2; v=3.14159*r*r*h; printf(v=%fn,v); ,数据类型 整型数据,Page 13,数据类型 整型数据的定义及取值范围,类型 定义符 位数 数值范围 I/O格式符 基本 int 16位 -3276832767 %d 短整 short 16 同上 %hd 长整 long 32 -231(231-1) %ld 无符号 unsigned int 16 065535 %u unsigned short 16 同上 %hu unsigned long 32 0(232-1) %lu,数据类型 实型数据,#define PRICE 30 main() int num,total; float v ,r,h; num=10; total=num*PRICE; printf(total=%d,tatal); r=2.5; h=3.2; v=3.14159*r*r*h; printf(v=%fn,v); ,Page 15,数据类型 字符型数据(一),字符常量 单引号括起来的一个字符,如:a, D, ?, $ 字符变量 用来存放字符常量 例:char c1,c2; c1=a; c2=A; 字符数据在内存中的存储形式 以ASCII码存储,占1字节,用7个二进制位,Page 16,字符数据的使用方法 字符数据和整型数据之间可以通用,可以按 字符形式输出,也可以按整型输出。,Page 17,数据类型 字符型数据(二),例 1,例 3,例 2,字符数据与整型数据可以互相赋值。,字符串常量 例:“CHINA“ “a“ a,所以:char c; c=“a“;,例1,main() char c1,c2; c1=97; c2=98; printf(“%c %cn“,c1,c2); ,运行结果: a b,例2,运行结果: 97 98,main() char c1,c2; c1=97; c2=98; printf(“%d %dn“,c1,c2); ,例3,运行结果: a,97 a,97,main() int i; char c; i=a; c=97; printf(“%c,%dn“,c,c); printf(“%c,%dn“,i,i); ,数据类型 变量赋初值,例: int a=3; float f=3.56; char c=a; int a,b,c=5;,Page 21,数据类型 不同类型数据混合运算时的类型转换,数据参加运算前必须进行下列转换: char,shortint,floatdouble 混合运算时,数据类型由低级高级: int unsigned long double 低 高 例: int i; float f; double d; long e; 运算次序:10+a + i*f - d/e 10+97 转换为double 转换为double 再相乘 再相除 107double 结果为double,Page 22,算术运算符与算术表达式,C运算符简介 基本算术运算符 + - * / %(取余) (若整数相除,结果取整) 优先级与结合性 先乘除,后加减,同级自左至右 强制类型转换 例:(double)a, (int)(x+y), (float)(5%3) 变量本身未变化 +, - 注意:P58,Page 23,例 4,例 5,例4,运行结果: x=3.600000, i=3,main() float x; int i; x=3.6; i=(int)x; printf(“x=%f,i=%dn“,x,i); ,例5,main() int i,j,k1,k2,k3,k4,k5; i=3; k1=(i+)+(i+)+(i+); printf(“k1=%d,%dn“,k1,i); i=3; k2=(+i)+(+i)+(+i); printf(“k2=%d,%dn“,k2,i); i=3; j=4;,例5 (续),k3=i+j; printf(“k3=%dn“,k3); i=3; j=4; k4=(i+)+j; printf(“k4=%dn“,k4); i=3; j=4; k5=i+(+j); printf(“k5=%dn“,k5); i=3; printf(“%d,%dn“,i,i+); ,运行结果: k1=12,6 k2=15,6 k3=7 k4=7 k5=8 4,3,赋值运算符和赋值表达式 简单的赋值运算符“=”,“=”两侧类型不一致时,要进行类型转换: 整实:截掉小数部分 实(单、双精度)整:数值不变,存为浮点 整char:整型低8位char 整型高8位0或符号位扩展(因机器而不同) long intint:符号位扩展 intlong int:intlong int 低16位 long intunsigned int:高位补0 整型(字节数相同的)unsigned 整型:原样送入。 若超过整型表示范围,会出错。 unsigned(字节数相同的)非unsigned整型: 原样送入,符号位也作为数值,Page 27,例 6,例6,include main() unsigned a; int b=-1; a=b; printf(“%un“,a); ,运行结果 65535,11 11 11 11 11 11 11 11,11 11 11 11 11 11 11 11,b,a,符号位,赋值运算符和赋值表达式 复合的赋值运算符,C语言中有10种复合运算符: +=, -=, *=, /=, %=, =,&=,=,|= (位运算,以后讲) 例:a+=3 等价于 a=a+3 x*=y+8 等价于 x=x*(y+8),Page 29,赋值运算符和赋值表达式 赋值表达式,例: a=5 表达式值为5 a=b=c=5 表达式值为5,a,b,c均为5 a=5+(c=6) 表达式值为11,a为11,c为6 a=(b=4)+(c=6) 表达式值为10,a为10,b为4,c为6 a=(b=10)/(c=2) 表达式值为5,a为5,b为10,c为2 a+=a-=a*a 相当于: a=a+(a=a-a*a),Page 30,逗号运算和逗号表达式,格式: 表达式1,表达式2 求解顺序及结果: 先求解1,再求解2,最终结果为表达式2的值 例 a=3*5,a*4 最终结果为60,Page 31,逻辑运算与逻辑表达式,关系运算与关系表达式 关系运算是比较简单的一种逻辑运算,其优先次序为: (大于) = (大于或等于) = (等于) !=(不等于) 优先级相同(高) 优先级相同(低) 关系表达式 其值只能为真或假,在 C 语言中用 整数1 和 0 表示。 逻辑运算府与逻辑表达式 逻辑运算符: !(非) &(与) |(或) 优先次序:高 低 逻辑表达式 例如:(ab)&(xy),赋值语句,格式: 赋值表达式; 赋值语句与赋值表达式的区别: 赋值表达式可以包含在其它表达式中, 而赋值语句不可。 例:if (a=b)0) t=a; 不可写为:if (a=b;)0) t=a;,Page 33,数据输入、输出,C语言本身没有I/O语句,所有I/O都由函数来实现。 C语言的标准库函数 由编译系统提供的一系列子程序 调用形式: 函数名(参数表),Page 34,数据输入、输出 常用字符I/O函数,putchar(参数)字符输出 功能:把一字节代码写入标准输出文件(显示器) 参数:int型 返回值:正常时为写入的代码值, 出错时为EOF(即-1),int型。,Page 35,例 7,例 8,getchar()字符输入 功能:从标准输入文件(键盘)读入一字节代码 参数:无 返回值:正常时为读到的代码值,出错时 或遇结束(Ctrl+z)为EOF(即-1), int型。,运行结果: BOY,例7,#include main() char a,b,c; a=B; b=O; c=Y; putchar(a); putchar(b); putchar(c); putchar(n); ,例8,运行结果 输入: d 输出: d,#include main() char c; c=getchar(); putchar(c); putchar(n); ,数据输入、输出 常用格式I/O函数,printf格式输出 printf(格式控制,输出表) 格式控制字符 看书 P36-41,上机实践 scanf格式输入 scanf(格式控制,地址表),Page 38,例 9,例9,运行结果: 输入: 12 34 56 输出: 12 34 56,main() int a,b,c; scanf(“%d%d%d“, ,C语言程序的基本控制结构,结构化程序设计 if 语句 switch 语句 while 语句 do-while 语句 for 语句 break 和 continue 语句,结构化程序设计 结构化程序设计技术与方法,模块化结构设计方法 在程序设计中,将一个复杂的算法(或程序)分解成若干个相对独立、功能单一的模块,利用这些模块即可适当地组合成所需要的全局算法(或)程序。 自顶向下结构设计方法 从总体出发,居高临下,逐层分解和逐步细化。 逐步求精结构设计方法 实质上也是一种自顶向下的设计方法。 首先抛开细节设计出抽象算法,然后把抽象数据和操作逐步具体化,直到可以由计算机具体实现为止。,if (表达式) 语句 例:if (xy) printf(“%d“,x); if (表达式) 语句1 else 语句2 例:if (xy) printf(“%d“,x); else printf(“%d“,y); if (表达式1) 语句1 else if (表达式2) 语句2 else if (表达式2) 语句3 else 语句 n,if 语句 三种形式,一般形式 if ( ) if ( ) 语句 1 else 语句 2 else if ( ) 语句 3 else 语句 4 注意 语句 1、2、3、4 可以是复合语句每层的 if 与 else 配对,或用 来确定层次关系,条件运算符,一般形式: 表达式1?表达式2:表达式3 执行顺序: 先求解表达式1,若值为非0,则求解表达式2,表达式2的值为最终结果; 若值为0,则求解表达式3,表达式3的值为最终结果。 注意: 条件运算符优级高于赋值运算符,低于关系运算符和算术运算符; 结合方向为自右至左; 只能取代简单的if语句:内嵌语句为赋值语句,且两个分支都给同一 个变量赋值; 表达式1、2、3的类型可以不同,条件表达式的最终类型为 2 和 3 中 较高的类型。,一般形式 switch (表达式) case 常量

温馨提示

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

评论

0/150

提交评论