C语言程序设计 课件.ppt

上传人:牧羊曲112 文档编号:3907493 上传时间:2023-03-27 格式:PPT 页数:71 大小:249.50KB
返回 下载 相关 举报
C语言程序设计 课件.ppt_第1页
第1页 / 共71页
C语言程序设计 课件.ppt_第2页
第2页 / 共71页
C语言程序设计 课件.ppt_第3页
第3页 / 共71页
C语言程序设计 课件.ppt_第4页
第4页 / 共71页
C语言程序设计 课件.ppt_第5页
第5页 / 共71页
点击查看更多>>
资源描述

《C语言程序设计 课件.ppt》由会员分享,可在线阅读,更多相关《C语言程序设计 课件.ppt(71页珍藏版)》请在三一办公上搜索。

1、主讲教师:陈美莲,C语言程序设计,共 73 页 第 2 页,课程安排,总课时72,其中理论36学时,实验36学时 课程基本要求 1.了解基本算法 2.了解C语言的数据类型、运算符与表达式的使用方法。3.熟练三种基本设计语句编程。4.熟练使用数组编程。5.熟练函数的定义和设计。6.了解指针的运算与使用。,共 73 页 第 3 页,教学方法及要求,1.课堂教学 采用大屏幕投影仪授课,操作示范。要求:认真听课、作笔记、遵守课堂纪律。2.实验课 培养实际操作能力、自学能力。要求:遵守机房规则。独立完成各个实验(期未要进行上机考试)。3.课后练习 每章交一次作业、上机前预习、争取多上机4.成绩评定 根据

2、理论考试、上机操作和平时成绩评定。,共 73 页 第 4 页,机位安排及机房清洁卫生,1.换鞋上机,对号入座 要求:按学号顺序,固定机位。学习委员填写机位表3份,交任课教师、实验室各一份。注意:不要穿太昂贵的鞋上机。2.为防止病毒,严禁自带磁盘上机 要求:磁盘集中保管,专人负责(上机发磁盘,下课收磁盘)。3.保持机房清洁 要求:每天下午搞一次清洁,每周大搞一次。,共 73 页 第 5 页,目录,1.C语言概述2.数据类型、运算符与表达式3.顺序设计4.选择结构设计5.循环结构设计6.数组的定义和引用7.函数的定义和调用,共 73 页 第 6 页,8.预处理命令9.指针的使用10.结构体与共同体

3、11.位运算12.文件的操作,共 73 页 第 7 页,第一章 C语言概述,1.1C语言出现的历史背景汇编语言编写的程序太依赖硬件,程序的可读性和移植性都差,C语言既有高级语言的特点又有低级语言特点.C语言是在B语言中发展起来的.1960 ALGOL语言 B语言,开发出UNIX系统(贝尔实验室)C语言,共 73 页 第 8 页,C语言开始被人们所接受,并开始流行.C语言有各种不同版本:TURBO C,BORLAND C,QUICK C,MICROSOFT C.,共 73 页 第 9 页,1.2 C语言的特点1、语言简洁,使用方便。32个关键字、9种控制语句,书写形式自由。2、运算符丰富。有34

4、种运算符,包括算术、逻辑、逗号运算、移位运算等等。3、数据结构丰富。有整型、实型、字符型、数组类型,指针类型、结构类型、共同体类型等等。4、具有结构化的控制语句,函数模块化。5、允许直接访问物理地址,进行位操作,可直接对硬件进行操作。,共 73 页 第 10 页,1.2 C语言的特点,6、生成目标代码质量高,执行效率高,可以直接生成EXE文件。7、可移植性好。8、C语言比其它语言相对来说难掌握。,共 73 页 第 11 页,1.3 简单的C程序介绍,例1:main()printf(“This is a C program.n”);输出结果为:This is a C program.,共 73

5、页 第 12 页,1.3 简单的C程序介绍,例2:main()int a,b,sum;a=123;b=456;sum=a+b;printf(“sum is%dn”,sum);输出结果为:sum is 579,共 73 页 第 13 页,1.3 简单的C程序介绍,例3:main()int a,b,c;scanf(“%d,%d”,共 73 页 第 14 页,1.3 简单的C程序介绍,继例3:int max(int x,int y)int z;if(xy)z=x;else z=y;return(z);输出结果为:max is xxx sum is xxx,共 73 页 第 15 页,1.3 简单的C

6、程序介绍,1、C程序是由函数构成,至少有一个main函数和若干个其它函数。2、一个函数由两部分组成:(1)函数的首部:在函数的第一行。int max(int x,int y)(2)函数体:包含两部分(声明部分和执行部分)3、C程序总是从main函数开始执行的。,共 73 页 第 16 页,1.3 简单的C程序介绍,4、一行可以有多个语句,一个语句也可以写在不同行上。5、但每个语句后一定要有分号;数据定义后也要有分号;6、C语言没有专门的输入输出语句。由scanf和printf两个函数提供。7、用/*.*/来作注释,不执行。,共 73 页 第 17 页,1.4 C程序的上机环境,我们用的是tur

7、bo C。,共 73 页 第 18 页,第三章 数据类型、运算符与表达式,基本数据类型与特点 各种数据类型表示范围 常量的表示方法 变量说明语句 运算符与基本运算规则 各种表达式的使用基本输入输出函数使用方法,本 章 要 点,共 73 页 第 19 页,3-1 数据与数据类型(续),C语言的数据类型,基本类型,字符型 char整型 int浮点型,单精度 float双精度 double,指针类型,构造类型,数组结构 struct联合 union枚举 enum,空类型,第三章,第七章,第十一章,指针类型,共 73 页 第 20 页,3-2 常量与变量,数据 程序加工处理的对象及其结果数据类型 数据

8、在计算机内部的存储形式(占用的内存单元数量、编码方式、取值范围等)常量 在程序运行过程中不允许改变的量可用一个标识符来代表一个常量。变量 在程序运行过程中允许改变的量,一、基本概念,共 73 页 第 21 页,例题:#define PRICE 30Main()int num,total;num=10;total=num*PRICE;Printf(“total=%d”,total);,共 73 页 第 22 页,3-2 常数与常数定义,常量定义形式#define 标识符 常量 用定义的一个标识符来代表一个常量,称为符号常量#宏命令专用定义符号define 命令 标识符宏替换名(一般采用大写字符)

9、,二、常数定义与符号常量,常量定义实例,注意:符号常量与变量不同,它的值在程序运行过程中不能改变,也不能重新赋值。,共 73 页 第 23 页,2-2 常数与常数定义,整型常量(3种形式)10进制 8进制16进制实型常量(2种形式)十进制 指数 字符常量字符串常量,一、常数,:0 9,整型常量实例,:0 7 以数字0开头,:0 9,AF/af,以0 x或0X开头,:符号、整数、小数点和小数,:用e或E和表示指数部分,实型常量实例,字符常量,字符串常量,共 73 页 第 24 页,2-2 常数与常数定义-常量定义实例,常量定义实例#define ONE 1#define PAI 3.141592

10、6#define TV”television”#define MAX 10#define TWO ONE+ONE使用方法 a=8+2;printf(”%s”,”television”);s=3.14159*r*r;int array10;,返回,a=b+TWO;printf(”%s”,TV);s=PAI*r*r;int arrayMAX;,共 73 页 第 25 页,注:符号常量名一般用大写,变量用小写。符号常量在程序的执行部分不能再赋值。3.2.2 变量值在程序执行过程中可随时改变的量称为变量。一个变量在内存中占据一定的存储单元,在该单元中存放变量的值。变量名实际上是一个符号地址。A 变量名

11、 变量值 存储单元,13,共 73 页 第 26 页,变量的说明格式:类型修饰符 类型说明符 变量列表;例如:int i;char ch,str;long k=1,m=0 x12345678;double x,y=1;变量说明意味着确定了:该变量 占用内存单元的数量,数据在内存的表示方式,数据的取值范围。,共 73 页 第 27 页,标识符(变量名)的说明,(1)标识符只能由字母、数字和下划线组成,且第一个字符是字母或下划线。例:sum,_total,a123-e,Basic,m.e.12,er#we,1asd,ab(2)大写字母和小写字母被认为是两个不同的字符。(3)一般只认前面的8个字符。

12、,共 73 页 第 28 页,变量的说明,(1)变量要先定义再使用例:int student;stuent=10;(2)每个变量有一确定的类型例:int student;student=15;student=34.56;(3)每个变量所进行的运算必须合法。Float a,b,c;a=10.4;b=3.6;c=a%b;,共 73 页 第 29 页,3.3 整型数据,3.3.1整型常量的不同表示方法:10进制:100-8 0+123 8进制:010 024 0100 16进制:0 x38 0 x10 0X10 0XFF 0 xa整型常量的类型:1.在整型表示范围之内,根据值大小默认类型 2.在常量

13、后面加l或L,则认为它是long int型 例如:都是long int型常量 10进制:-123L 0L 432l 8进制:010L 024L 0100L 16进制:0 x38L 0 x1000L 0XFFl x0a0000l,共 73 页 第 30 页,3.3.2整型变量1、在内存中的存放形式。以二进制的补码形式,占两个字节,左边一位表示符号,“0”为正,“1”为负。补码的表示:正数的补码与原码相同。负数的补码是将该数的绝对 值的二进制形式,按位取反 后再加1。如-10 的表示方法10的原码:0000000000001010取反 1111111111110101再加1 11111111111

14、10110(-10的补码),共 73 页 第 31 页,2.整型数据的分类,共 73 页 第 32 页,3、整型变量的定义例:main()int a,b,c,d;unsigned u;a=12;b=-24;u=10;c=a+u;d=b+u;printf(“a+u=%d,b+u=%d”,c,d);4、整型数据的溢出,共 73 页 第 33 页,2-1 数据与数据类型-int,int型数的表示范围:二进制 16bit(2Byte),0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1,0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1,0 1 1 1 1 1 1 1 1 1

15、1 1 1 1 1 1,=1,=3,int型整数的最大值,int型表示数的范围:-32768 32767,1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1,注意:使用中要防止数据溢出,=-1,int型整数的最小值,1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0,=215-1=32767,=-215=-32768,共 73 页 第 34 页,2-1 数据与数据类型-int,main()int i;i=1;i=i*2;printf(”n i=%d”,i);i=i*3;printf(”n i=%d”,i);i=i*4;printf(”n i=%d”,i);i=i*5;p

16、rintf(”n i=%d”,i);i=i*6;printf(”n i=%d”,i);i=i*7;printf(”n i=%d”,i);i=i*8;printf(”n i=%d”,i);i=i*9;printf(”n i=%d”,i);i=i*10;printf(”n i=%d”,i);,期望结果 i=2i=6i=24i=120i=720i=5040i=40320i=362880i=3628800,实际运行结果 i=2i=6i=24i=120i=720i=5040i=-25216i=-30336i=24320,产生数据溢出,上溢,下溢,返回,共 73 页 第 35 页,例:main()int

17、a,b,;a=32767;b=a+1;printf(“%d,%d”,a,b);结果为:32767,-32768,共 73 页 第 36 页,3.3.3、整型常量的类型1、整数的范围如果在-32768+32767,可以是int型或 long int型。2、整数的范围如果在-2147483648+2147483647,则是long int型。3、int 型与short int型是等同的。4、unsigned型是无符号的,注意范围。5、在一个整常量后加字母l或L,则认为是long int型。,共 73 页 第 37 页,3.4 实型数据,3.4.1实型常量的表示方法两种表示形式:十进制小数形式 指数

18、形式:123e-4,e后面 的数必须为整数。3.4.2实型变量1、存放形式:占4位,按指数形式存储,分成小数和指数部分来存放。,共 73 页 第 38 页,2.实型变量的分类,共 73 页 第 39 页,3。实型数据的舍入误差,由于实型变量的有效位有限,有效位外的数字将被舍去,所以会产生一些误差。例:main()float a,b;a=123456.789e5;b=a+20;printf(“%f”,b);,共 73 页 第 40 页,3.5 字符型数据,字符型常量:用单引号括起来的单个字符 实例:A g#0 2+,;()字符定界符:单引号 还有一种特殊形式的字符常量,以“”开头的字符序列.见表

19、3.3.,返回,如何表示不可显示字符?,回车/退格/TAB?,如何表示定界符?,产生歧异,转义符:将后面的字符转换为其它含义,共 73 页 第 41 页,表3.3 转义字符及其含义,共 73 页 第 42 页,3.5.2 字符变量,每个字符变量只能放一个字符.字符变量在内存中是以二进制的形式来存放的,与整形数据可以通用.一个字符数据既可以用字符形式来输出,也可以用整形形式来输出.C语言允许字符与整数直接进行算术运算.,共 73 页 第 43 页,例子1:main()char c1,c2;c1=97;c2=98;printf(“%c%cn”,c1,c2);printf(“%d%dn”,c1,c2

20、);,共 73 页 第 44 页,例子2:main()char c1,c2;c1=a;c2=b;c1=c1-32;c2=c2-32;printf(“%c%cn”,c1,c2);printf(“%d%dn”,c1,c2);,共 73 页 第 45 页,3.5.4 字符串常量,字符常量是由单引号括起来的,字符串常量是由双引号括起来的.如“china”.如a和“a”是两个不同的概念.C语言规定:每个字符串是以0为结束标志的.所以“a”其实在内存中是占两个字节的位置,而a在内存中是占一个字节的位置.Char cC=“a”(X),共 73 页 第 46 页,2-2 常数与常数定义-字符串常数,实例:”T

21、his is C string.”a”(1个空格)”(不含空格)串定界符:双引号”字符串长度:字符串中包含的字符数量。,返回,串长=17串长=1串长=1串长=0,tNameAddressn,串长=15,空串,实例:,C is very easy.,串长=17,注意:字符串a 与 字符a 的区别,He saidok.n,串长=13,共 73 页 第 47 页,3.6 变量赋初值,对变量,可以在定义时给定初值如int a=3,b,c;float f=3.14;char c=a;但不能 int a=b=c=3;int a=3,b=3,c=3;a=b=c=3;,共 73 页 第 48 页,3.7 各类

22、数值型数据间的混合运算,高double float long unsigned 低 int char,short,共 73 页 第 49 页,3.8 算术运算符和算术表达式,3.8.1 C运算符简介1、算术运算符+、*、/、%2、关系运算符、=、|、&5、赋值运算符=6、条件运算符?:7、逗号运算符,,共 73 页 第 50 页,8、指针运算符*、&9、求字节数运算符 sizeof10、强制类型转换运算符(类型)|11、分量运算符.、12、下标运算符 13、其它运算符3.8.2 算术运算符和算术表达式1、基本的算术运算符2、算术表达式和运算符的优先级与结合性 先乘除后加减,同一级的结合方向“自

23、左而右”,共 73 页 第 51 页,运算符和算术表达式,一、算术运算符,运算符(双目运算符/单目运算符)+加法运算 12 正值运算 14-减法运算 12 负值运算 14*乘法运算 13/除法运算 13%求余运算 13优先级:*/%同级(高),+-同级(低)结合性:相同优先级运算符进行运算时的次序 自左向右(标记为),共 73 页 第 52 页,运算符-算术运算实例,1.参加运算的对象都是int型,结果截取为int型 10/311/310.0/3 11/3.1/21./210/5*310/(5*3),2.求余运算的对象必须是整型 9%31%310%310%-3-10%3-10%-3,=3,=3

24、,=3.3333,=3.66667,=0,=0.5,=6,=0,=0,=1,=1,=1,=-1,=-1,共 73 页 第 53 页,3、强制类型转换运算符格式:(类型名)(表达式)如 float x,y;x=5.67;y=78.6;(int)x+y 的结果为83.6 x=5.67(int)x 5(int)(x+y)84,共 73 页 第 54 页,4 自增、自减运算符,运算符(单目)+自增 14 自减 14+和 为单目运算,只能作用于变量只能对int、char、long和指针变量进行运算功能:+x x=x+1(前缀:使用X之前,先改 x x=x1 变X的值)x+x=x+1(后缀:使用X之后,再

25、改 x x=x1 变X的值),共 73 页 第 55 页,自增(自减)有前缀和后缀之分。前缀形式:先自增(自减)再引用 后缀形式:先引用再自增(自减)前缀与后缀的区别:y=+x;x=x+1;y=x;x先加1再赋值 y=x+;y=x;x=x+1;x先赋值再加1,共 73 页 第 56 页,如 I=3;j=+I-4;(j=0,l=4)j=I+;(j=3,l=4)说明:1、自增或自减,只能用于变量,不能用于常量和表达式。2、+或-的结合方向是“自右至左”j=(-I)+相当于j=-(I+)(j=-3,I=4)不要使用这种表达式:I+I+I+,共 73 页 第 57 页,2-4 运算符-自增自减运算实例

26、,实例(1)+i;i+;因为在表达式中没有其它运算,结果一样。(2)x=1;y=+x;结果:x=2,y=2 y=+x;x=x+1;y=x;在做赋值运算之前,x先加1,然后将x赋给y(3)x=1;y=x+;结果:x=2,y=1 y=x+;y=x;x=x+1;先将 x 赋值给 y,然后 x 再加1,共 73 页 第 58 页,x=3,z=3 x=3,y=6,z=3*6=18 x=3,y=6,z=2*6=12 x=3,y=6,z=3*5=15 x=3,y=6,z=2*5=10 x=4,z=4*4=16 注意,以下操作是错误的:x=+(i+j)+1;j=+(5+x);y=+x*+x;,自增自减运算实例

27、,实例 已知:int x=2,y=5,z;z=+x;z=+x*+y;z=x+*+y;z=+x*y+;z=x+*y+;z=+x*+x;,逻辑虽然正确,但实际编程中容易产生误解,应当避免,共 73 页 第 59 页,自增自减运算实例,实例 已知:int i=1,j=2,k;k=i+j;C语言处理运算符(标识符)时,遵循自左向右组合的原则,两个+号是一个运算符,故处理成(i+)+j。k=i+j;不能编译通过。原因是编译器将前两个+处理成自增,接下来又将两个+号处理为自增,故不合语法。编程者可用空格或括号来表示正确的含义:k=i+j;注意:一般不要用这样的语句。,共 73 页 第 60 页,3.9 赋

28、值运算符和赋值表达式,1、赋值运算符:=2、类型转换如果=两边类型不同,将右边的表达式结果转为左边的类型。如 int I;float f;double d;I=3.45;(I的结果为3)f=23;(f的结果为23.00000)d=123.4536777;f=d;(f的结果为123.4537,取七位有效数值)d=123.456789e100;f=d;(f的结果发生溢出的错误),共 73 页 第 61 页,(1)、将intshortlong型数据赋给char型时,只将低8位传送。Int I=289;(100100001)Char c;C=I(低8位的结果为33,对应为!字符)(2)、将unsign

29、ed int 型数据赋给 int 型变量时,注意符号。unsigned int a=65535;Int b;b=a;(b的结果为-1),共 73 页 第 62 页,3、复合的赋值运算符在赋值运算符“=”之前加上其它运算符,可以构成复合的运算符。如:a+=3(a=a+3)x*=y+8(x=x*(y+8)x%=3(x=x%3)4、赋值表达式注意:赋值表达式是右结合律的。,共 73 页 第 63 页,如:a=b=5 a=(b=5)a=b=4+c=6 a=(b=4)+(c=6)a=12;a+=a-=a*a;(a-=a*a a=a-a*a a=-132 a+=-132 a=a+(-132)a=-264)

30、赋值操作不仅可出现在赋值语句中,也可以以表达式形式出现在其他语句中(如输出或 循环语句)。b=3;printf(“a=%d”,a=b);结果为 a=3,共 73 页 第 64 页,3.10逗号运算符和逗号表达式,格式为:表达式1,表达式2(先求表达式1,再求表达式2,结果取表达式2的值)注意:逗号运算符的运算级别最低,低于赋值运算符。如:a=3;a=3*5,a*4(a的结果不等于12,而是逗号表达式的结果为60),共 73 页 第 65 页,X=(a=3,6*a)x的结果为18X=a=3,6*a x的结果为3,整个表达式的结果为18逗号表达式的扩展为:表达式1,表达式2,.表达式n,共 73

31、页 第 66 页,2-8 综合举例,1、运算符有优先级,在C语言中关于运算符优先级的正确叙述是。A)逻辑运算符高于算术运算符,算术运算符高于关系运算符 B)算术运算符高于关系运算符,关系运算符高于逻辑运算符 C)算术运算符高于逻辑运算符,逻辑运算符高于关系运算符 D)关系运算符高于逻辑运算符,逻辑运算符高于算术运算符答案:B,共 73 页 第 67 页,2-8 综合举例,2、在以下关于C语言的不严格的叙述中,错误的是 A)大写字母和小写字母的意义相同 B)有些不同类型的变量可以在一个表达式中运算 C)在赋值表达式中等号(=)左边的变量和右边的值可以是不同类型 D)同一个运算符号在不同的场合可以

32、有不同的含义答案:A3、语言中的简单数据类型包括。A)整型、实型、逻辑型 B)整型、实型、字符型 C)整型、字符型、逻辑型 D)整型、实型、逻辑型、字符型答案:B,共 73 页 第 68 页,2-8 综合举例,4、在C语言中,错误的int类型的常数是。A)32768 B)0 C)037 D)0 xAF答案:A5、下列常数中不能作为C的常量的是。A)0 xA5 B)2.5e-2 C)3e2 D)0582答案:D6、在语言中,十进制的47可等价地写为。A)2f B)02f C)57 D)057答案:D7、已知:int a=4,b=5,c;则执行表达式“c=a=ab”后变量a的值为。A)0 B)1

33、C)4 D)5答案:A,共 73 页 第 69 页,2-8 综合举例,8、下列可以正确表示字符型常数的是 A)aB)t C)n D)297答案:B9、以下错误的转义字符是 A)B)C)81 D)0答案:C10、已知:float x=1,y;则:y=+x*+x的结果是 A)y=9 B)y=6 C)y=1 D)表达式是错误的答案:D11、已知:char ch=A;则下列表达式的值是ch=(ch=A A)A B)a C)Z D)z答案:B,共 73 页 第 70 页,2-8 综合举例,12、字符串22a,0n的长度是。A)8 B)7 C)6 D)5答案:C13、在程序中要使用语句:printf(%s

34、n,STRING);输出一个长度为个字符的提示信息OK!,则应使用宏定义语句_。A)#define STRING OK!B)#define STRING OK!C)#define STRING OK!D)以上三个答案都是错误的答案:D#define STRING OK!,共 73 页 第 71 页,2-1 数据与数据类型(续),C语言基本数据类型有四种:字符型整型单精度浮点型双精度浮点型,charintfloatdouble,类型说明符,三、C语言的基本数据类型,C语言有四种类型修饰符:短长有符号无符号,shortlongsignedunsigned,类型修饰符,注意:类型修饰符不能单独使用,必须与类型说明符配合在一起使用,C语言采用类型说明符说明不同的数据类型,

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号