c语言概述-第01-04章.ppt

上传人:小飞机 文档编号:6503918 上传时间:2023-11-07 格式:PPT 页数:63 大小:323KB
返回 下载 相关 举报
c语言概述-第01-04章.ppt_第1页
第1页 / 共63页
c语言概述-第01-04章.ppt_第2页
第2页 / 共63页
c语言概述-第01-04章.ppt_第3页
第3页 / 共63页
c语言概述-第01-04章.ppt_第4页
第4页 / 共63页
c语言概述-第01-04章.ppt_第5页
第5页 / 共63页
点击查看更多>>
资源描述

《c语言概述-第01-04章.ppt》由会员分享,可在线阅读,更多相关《c语言概述-第01-04章.ppt(63页珍藏版)》请在三一办公上搜索。

1、,第一章,第一章 C语言概述,C语言概述,主要内容,1.1 语言出现的历史背景1.2 程序的特点1.3 简单的C语言程序介绍1.4 运行程序的步骤和方法,第一章 C语言概述,语言的特点,第一章 C语言概述,1、语言结构简单,使用方便、灵 活,32个关键字2、运算符丰富,共有34种运算符3、数据结构丰富,具有现代语言的 各种数据结构4、具有结构化的控制语句,语言的特点,第一章 C语言概述,5、语法限制不严格,程序设计自由度大6、C语言允许直接访问物理地址7、生成目标代码质量高,程序执行效率 高8、用C语言写的程序可移植性好,第二章,第二章 C语言概述,数据类型、运算符与表达式,C的数据类型,第二

2、章 C语言概述,整型 实型 基本类型 字符型 枚举型 数组类型数据类型 构造类型 结构体 共用体 指针类型 空类型,常量与变量,第一章 C语言概述,1、常量:在程序运行过程中其值不能被改变的量 符号常量:用一个标识符代表一个常量。#define PRICE 30/*习惯大写*/main()int num,total;num=10;total=num*PRICE;printf(total=%d,total);注意:不能重新赋值 好处:1、含义清楚 2、一改全改,常量与变量,第一章 C语言概述,2、变量:其值可以改变的量 条件:1、变量应有一个名字 2、在内存中占据一定的存储空间 通过变量名找到相

3、应的内存地址,从存储 单元中读取数据,常量与变量,第一章 C语言概述,标识符:字母、数字和下滑线三种字符组成,且第一个字符必须是字母或下滑线(除32各关键字),用来标识变量名、符号常量名、函数名、数组名等注意:1、区分大小写 sum和SUM是两个不同的变量 名一般变量名用小写字母表示,符号常量用 大写2、标识符的长度,Turbo C允许32个字符 为了可读性最好不好超过8个,常量与变量,第一章 C语言概述,强制定义:在C中所有变量都要先定义后使用目的:1、保证程序中变量名使用正确2、每个变量定义的时候指定一个确定的类型,编译的时候为其分配相应的存储空间3、指定每一个变量的类型,编译的时候检查变

4、 量所进行的运算是否合法 如 a%b,整型数据,第一章 C语言概述,1、整型常量:十进制 八进制:以0开头的数0123 十六进制:以0 x开头的数0 x12,整型数据,第一章 C语言概述,2、整型变量:分类:基本型:int,2字节-3276832767 短整型:short(int),2字节 长整型:long(int),4字节 无符号型:存储单元中全部存放数据本 身,不包括符号,数据范围 扩大一倍。无符号整型:unsigned int 065535 无符号短整型:unsigned short 无符号长整型:unsigned long,整型数据,第一章 C语言概述,2、整型变量:整型变量的定义:i

5、nt a,b;unsigned short c,d,e;#include void main()int a,b,c,d;unsigned int u;a=12;b=-24;u=10;c=a+u;d=b+u;printf(a+u=%d,b+u=%dn,c,d);,整型数据,第一章 C语言概述,2、整型变量:整型数据的溢出#include void main()int a,b;a=32767;b=a+1;printf(“%d,%d”,a,b);,运行结果:32767-32768,整型数据,第一章 C语言概述,变反加1,溢出操作是将该数减去整形数据类型的模 65536,整型数据,第一章 C语言概述,

6、(4)整型常量的类型 1、一个整型常量其值在-215-215-1范围之内,认为int 型,可赋值给int long int 2、一个整型常量其值在-231-231-1范围之内,认为long 型,可赋值给long int 3、如short和int型数据在内存中占用相同长度,则short和 int 表示的数据范围相同 4、在一个整型常量后面加u,则认为unsigned型常量 如:1234u 5、在一个整型常量后面加L或l,则认为是long int型常量。如:123L,实型数据,第一章 C语言概述,1、实型常量:又称浮点数 两种表示形式:十进制数形式:由数字和小数点组成 0.123、12.0 指数形

7、式:如:123E3、123e3等 注意:E、e前面必须有数字,且E后面必须是整数。规范化形式:e、E前小数部分中小数点前有且只 有一位非零数字,实型数据,第一章 C语言概述,2、实型变量:单精度float(4个字节)双精度double(8个字节)存放形式:,实型数据,第一章 C语言概述,float x,y;double e;指定x,y为单精度实数,e为双精度实数误差:#include void main()float a,b;a=123456.789e5;b=a+20;printf(“%f,%f”,a,b);单精度实数提供7为有效数字 双精度实数提供15-16为有效数字,字符型数据,第一章 C

8、语言概述,一、字符常量:1、字符常量:用单引号括起来的一个字符。a、A是不同的常量 2、转义字符:特殊形式的符号常量,以“”开头的字符序列。n:代表一个“换行”符 t:跳到下一个输入区,一个输入区占8列 b:退格 r:回车,不换行,返回本行最左端:反斜杠字符“”:单引号字符 ddd:1到3位8进制所代表的字符 101 A xhh:1到2位16进制所代表的字符 x41 A,字符型数据,第一章 C语言概述,二、字符变量:用来存放字符常量,只能放一个字符,不能存放字符串(若干个字符),在内存 中占 一个字节。定义形式:char c1,c2;c1=a;c2=b;,字符型数据,第一章 C语言概述,三、字

9、符数据在内存中的存储形式及使用方法:存储形式:将字符常量存放到一个符号变量中,实 际上将字符相应的ASCII码放到存储单元 中。如:a的ASCII码为97,01100001,字符型数据,第一章 C语言概述,三、字符数据在内存中的存储形式及使用方法:使用方法:1、字符型数据与整型数据可以通用 2、字符型数据可以以字符形式输出先将存 储单元中的ASCII码转换成相应的字符,然后 输出 也可以以整数形式输出直接将ASCII码作 为整数输出 3、字符数据可以进行算术运算,相当于对其 ASCII码进行算术运算,字符型数据,第一章 C语言概述,#include void main()char c1,c2;

10、c1=97;c2=98;printf(“%c,%cn”,c1,c2);printf(“%d,%dn”,c1,c2);运行结果:a,b 97,98注意:字符型数据只占一个字节,存储范围0255之间,字符型数据,第一章 C语言概述,#include void main()char c1,c2;c1=a;c2=b;c1=c1-32;c2=c1-32;printf(“%c%c”,c1,c2);运行结果:A B,字符型数据,第一章 C语言概述,字符数据与整型数据可以互相赋值例如:int i;char c;i=a;c=97;printf(“%c%d”,c,c);printf(“%c%d”,i,i);输出结

11、果:a 97a 97,字符型数据,第一章 C语言概述,四、字符串常量:一对双引号括起来的字符序列 例如:“how are you”,“a”char c;c=a;c=“a”;原因:a是字符常量,而“a”是字符串常量,字符型数据,第三章 C语言概述,规定在每一个字符串结尾处加一个“字符串结束标志”0(ASCII码为0,空操作字符,不引起任何控制 动作,也不是一个可显示的字符。)a占一个字节“a”占2个字节。C H I N A 0 长度为6个字符,输出时,一个一个字符输出,直到遇到最后的0字符,停止输出。注意:在书写字符串时不要加0,系统自动加。,变量赋初值,第三章 C语言概述,1、C规定,可以在定

12、义变量的同时使变量初始化 例如:int a=3;a为整型变量,初值为3 float f=3.56;f为实型变量,初值为3.56 int a=b=c=5;应改为int a=5,b=5,c=5;或 int a,b,c;a=b=c=5;int a,b,c=5;a,b,c为整型变量,c 的值为5,变量赋初值,第三章 C语言概述,2、初始化不是在编译阶段完成的,而是在程序运行 时执行本函数时赋以初值,相当于有一个赋值语 句:int a=3;相当于:int a;a=3;int a,b,c=5;相当于:int a,b,c;c=5;,各类数值型数据间的混合运算,第三章 C语言概述,整型、实型(单精度、双精度)

13、、字符型数据可以进行混合运算,在进行运算时,不同类型数据要转化成 同一类型,然后运算。Double float long unsigned int short、char 横行向右的箭头表示必定的转换。纵向箭头表示当运算对象为不同类型时转换的方向。,各类数值型数据间的混合运算,第三章 C语言概述,例:int i;float f;double d;long e;10+a+i*f-d/e 10+a a转换成整数97,运算结果为107 i*f i,f转换成double 107+i*f 107转换成double d/e e转换成double 10+a+i*f-d/e 结果为double型 注意:转换是由

14、系统自动进行的。,算术运算符和算术表达式,第三章 C语言概述,一、基本算术运算符+加法运算符 减法运算符*乘法运算符/除法运算符 说明:两个整数相除结果为整数,5/3=1,舍去余 数部分,但除数和被除数中有一个为负值,舍去的方向是不固定的,-5/3=-1 或-2,多数 机器采取“向零取整”方法,即-5/3=-1 1/3=0 1.0/3=0.333333%模运算符或求余运算符 要求两侧均为整型数据 7%4=3,算术运算符和算术表达式,第三章 C语言概述,二、算术表达式和运算符的优先级与结合性 算术表达式:用算术运算符和括号将操作数连接起来 优先级:在表达式求值时,先按运算符的优先级高低次 序执行

15、*、/、%+、-算术运算符的结合方向为“自左至右”既先左后右,左结合性,算术运算符和算术表达式,第三章 C语言概述,三、利用强制类型转换运算符将表达式转换成所需类型 方法:(类型名)(表达式)(double)a 将a转换成double型 不要写成double(a)(int)(x+y)将x+y的值转换成整型 强制类型转换时,得到一个所需类型的中间变量,原来变量 的类型未发生变化。,算术运算符和算术表达式,第三章 C语言概述,#include void main()float x;int i;x=3.6;i=(int)x;printf(“x=%f,i=%d”,x,i);运行结果:x=3.6,i=3

16、,算术运算符和算术表达式,第三章 C语言概述,四、自增、自减运算符 i+,i 在使用i 之后,先使i的值加(减)1+i,i 在使用i 之前,先使i的值加(减)1 i=3;j=+i;(j 的值为4,i的值是4)j=i+;(j 的值为3,然后i变为4),算术运算符和算术表达式,第三章 C语言概述,四、自增、自减运算符 注意:1、自增运算符(+)、自减运算符(),只能用于变 量,不能用于常量或表达式 5+,(a+b)+都是不合法的2、+和的结合方向是“自右至左”i+相当于(i+)i=3;printf(“%d”,i+)输出结果是:-3,算术运算符和算术表达式,第三章 C语言概述,五、有关表达式使用中的

17、问题说明 1、在表达式中包含自增或自减运算时,很容易出错 i=3;k=i+i+i+k=9 i=6 k=+i+i+i k=18 i=62、运算符由两个字符组成时,结合性尽可能多地自左向右 i+j 相当于(i+)+j3、调用函数时,实参的求值顺序 i=3;printf(“%d,%d”,i,i+);有的系统从左向右求值,输出3,3有的系统从右向左求值,输出4,3 多数采用此方法,赋值运算符和赋值表达式,第三章 C语言概述,一、赋值运算符“=”是赋值符号 作用是将一个数据赋给一个变量。a=3 是一个赋值表达式,将常量3赋值给变量 a a=3+5 是将一个表达式的值赋值给一个变量二、类型转换 如果赋值运

18、算符两侧类型不一致,且都是数值型或字符 型,在赋值时要进行类型转换1、float double int 实型数据赋值给整型变量时,舍弃实数的小数部分。int i;i=3.45;printf(“i=%d”,i);结果:i=3,赋值运算符和赋值表达式,第三章 C语言概述,2、int float double 整型数据赋值给实型变量时,数值不变。float f;f=23;先将23转换成23.00000,7位,再存放到变量中 double d;d=23;先将23转换成23.0000000000000,16位,再存放到变量中,赋值运算符和赋值表达式,第三章 C语言概述,3、char int由于整型变量占

19、2个字节,字符占1个字节,因此将字符数据放到整型变量低8位中,有两种情况:(1)、高8位补零。(2)、高8位进行符号扩展,赋值运算符和赋值表达式,第三章 C语言概述,4、double float double float:截取前7位 float double:数值不变,有效位扩充到16位5、int long:符号位扩充 long int:截取低16位6、int short long char:截取低8位7、unsigned int long int:只需将高位补零8、signed unsigned:原样赋值,赋值运算符和赋值表达式,第三章 C语言概述,三、复合的赋值运算符 在赋值符“=”之前加

20、上其他运算符就可以构成复 合运算符 a+=3 相当于:a=a+3 x*=y+8 相当于:x=x*(y+8)作用:简化程序,提高编译效率。,赋值运算符和赋值表达式,第三章 C语言概述,四、赋值表达式 形式:作用:将赋值运算符右侧的“表达式”的值赋值给左边的变量.a=b=c=3 表达式值为3,a,b,c值均为3 a=(b=10)/(c=2)表达式的值为5,a=5,b=10,c=2 a=12;a+=a-=a*a 最后 a=-264,逗号运算符和逗号表达式,第三章 C语言概述,逗号运算符:,例如:3+5,4+9形式:表达式1,表达式2,表达式n求解过程:先求表达式1,再求表达式2,整个逗号表达式的值是

21、最后一个表达式的值。a=3*5,a*4 表达式的值:60 原因:=的优先级高于,运算符 a=3;(a=a*5,a*4),a+5 表达式的值:20赋值表达式:x=(a=3,6*3)x=18 x=a=3,6*a x=3 表达式的值为:18,关系运算符和关系表达式,一.关系运算符及其优先次序(大于)=(大于或等于)=(等于)!=(不等于),说明:关系运算符的优先级低于算术运算符关系运算符的优先级高于赋值运算符,求解:a=b=c,关系运算符和关系表达式,二.关系表达式 用关系运算符将两个表达式接起来的式子例:ab a+bb+c(a=3)(b=5)ab)(bb”的为“真”,表达式的值为1。,C语言中没有

22、专用的逻辑值,1代表真,0代表假,关系运算符和关系表达式,a=3,b=2,c=1 则:(ab)=c 值为:?b+cb f=abc,1,0,d=1,f=0,举例,逻辑运算符和逻辑表达式,一、逻辑运算符及优先级1、三种逻辑运算符:&逻辑与(AND)|逻辑或(OR)!逻辑非(NOT)“&”和“|”是双目运算符 即要求有两个操作数“!”是单目运算符,只要求有一个操作数(ab)&(xy)!(ab),逻辑运算符和逻辑表达式,2、逻辑运算举例:a&b 若a,b为真,则a&b 为真,否则均为假a|b 若a,b之一为真,则为真!a 若a为真,!a为假,举例,逻辑运算符和逻辑表达式,3、优先级:1)、!&|2)、

23、!(非)高 算术运算符 关系运算符&|赋值运算符 低(ab)&(xy)ab&xy(a=b)&(x=y)a=b&x=y(!a)|(ab)!a|ab,逻辑运算符和逻辑表达式,二、逻辑表达式 逻辑表达式的值为“真”或“假”C在给出逻辑运算结果时 以“1”代表真,“0”代表假但判断一个量是否为真时 以“0”代表假,非“0”代表真,逻辑运算符和逻辑表达式,例:(1)a=4!a 结果:?(2)a=4;b=5;a&b 结果:?a|b 结果:?!a|b 结果:?4&0|2 结果:?53&84-!0 结果:?a&g 值为:?,举例,53&84-!0 1&84-!0 1&84-1 1&83 1&0 0,逻辑运算符

24、和逻辑表达式,在逻辑表达式的求解中,并不是所有的逻辑运算符都被执行,只是在必须执行下一个逻辑运算符才能求出表达式的解时,才执行该运算符。1、a&b&c a为真,才需判断b值;a为假,b,c都不判断2、a|b|c a为假时,判断b,c;a为真,b,c都不判断,逻辑运算符和逻辑表达式,如:a=1,b=2,c=3,d=4,m=1,n=1(m=ab)&(n=cd)表达式的值为0,而m=?,n=?,举例,m=0 n=1,逻辑运算符和逻辑表达式,判别闰年,闰年的条件是符合下面二者之一:(1)、能被4整除,但不能被100整除(2)、能被4整除,又能被400整除(year%4=0&year%100!=0)|(

25、year%4=0&year%400=0),三.条件运算符格式:表达式?表达式表达式 功能:判断表达式1的值,如果成立就执行表 达式2,否则就执行表达式3使用场合:若在语句中,当被判别的表达式的 值为“真”或“假”时,都执行一个赋值语 句且向同一个变量赋值时,可以用一个 条件运算符来处理。,例:()=;当ab时将a的值赋给max,当ab时将b的值赋给max,可以看到无论ab是否满足,都是向同一个变量赋值。可以用下面的条件运算符来处理:()?;,例如,说明:(1).条件运算符的执行顺序:先求解表达式,若为 非(真),则求解表达式,此时表达式的 值就作为整个条件表达式的值。若表达式的值 为(假),则

26、求解表达式,表达式的值就 是整个条件表达式的值。(2).条件运算符优先级高于赋值运算符,低于关系 运算符和算术运算符。因此,max=ab?a:b上面 的括号可以不要,写成:max=ab?a:b,说明,!*/%+=!=|?=,(3).条件运算符的结合方向为“自右至左”。如果有条 件表达式:ab?a:cd?c:d 相当于 ab?a:(cd?c:d)(4).“表达式2”和“表达式3”不仅可以是数值表达式,还可以是赋值表达式或函数表达式。(5).条件表达式中,表达式1的类型可以与表达式2和 表达式3的类型不同;表达式2和表达式3的类型 也可以不同,此时表达式的类型为二者中较高的类型。xy?1:1.5

27、ch=(ch=A&ch=Z)?(ch+32):ch,说明,例 输入一个字符,判别它是否大写字母,如果是,将它转换成小写字母;如果不是,不转换。然后输出最后得到的字符。#include void main()char ch;scanf(%c,如果字符变量ch的值为大写字母,则条件表达式的值为(),即相应的小写字母。如果ch的值不是大写字母,则条件表达式的值为,即不进行转换。,求字节数运算符,sizeof:可以得到某数据类型或变量在计算机 内存中所占的字节数。形式:sizeof(类型名/变量名)#include void main()int i;float f;printf(“%d%d”,sizeof(i),sizeof(f);printf(“%d%d”,sizeof(long),sizeof(double);,

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

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


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号