C语言课件-数据类型、运算符、表达式_第1页
C语言课件-数据类型、运算符、表达式_第2页
C语言课件-数据类型、运算符、表达式_第3页
C语言课件-数据类型、运算符、表达式_第4页
C语言课件-数据类型、运算符、表达式_第5页
已阅读5页,还剩96页未读 继续免费阅读

下载本文档

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

文档简介

1、,数据类型、运算符、表达式,共 51 页 第 2 页,说明与定义 数据类型 基本语句 表达式,本 章 要 点,共 51 页 第 3 页,main( ) 标志 花括号 int a=5,b=6,S;说明语句 s=a*b; 公式(赋值语句) printf(“s=%d”,s); 打印语句 只要掌握三条语句就可以编程了,基本语句,共 51 页 第 4 页,1、说明语句 2、赋值语句 3、printf(“s=%d”,s); 打印语句(输出语句) 今天我们要讲的是这三条语句的使用。,基本语句,共 51 页 第 5 页,1、说明语句,基本语句,C程序的第一条语句:说明语句,共 51 页 第 6 页,main(

2、 ) int a=5,b=6,S; 说明语句 s=a*b; printf(“s=%d”,s); 花括号内第一条语句必须是说明语句!,1、说明语句 int a=5,b=6,S;,共 51 页 第 7 页,说明语句是程序内第条语句。,说明语句是作什么用的? C语言规定,必须标明所有已知量和未知量的数据类型. 例如, a,b,c是整数,用符号”int”如下标明: int a=5,b=6,c;,共 51 页 第 8 页,3.1 数据类型,数据的基本类型 我们前面已讲过C 的数据有三种基本的类型 1、整型 (int) 2、实型 (float) 3、字符型 (char),共 51 页 第 9 页,3.1

3、说明语句,因此就有三种基本的说明语句 1、 int a=5,b=6,c; 表示a,b,c 为整数 2、 float x=1.2,y=2.6,z; 表示x,y z为实数,共 51 页 第 10 页,3.1 数据类型,3、字符型: char c1=a,c2=N; 表示c1,c2为字符。 注意:C1、C2的值仅是一个字母,是用单引号 括起来的。不能超出1个。,共 51 页 第 11 页,3.1 数据类型,注意!同一类型的量用逗 号,格开。 例: char c1=a,c2=N;,共 51 页 第 12 页,3.1 字符型的应用,例1、设S为百分制分数,Y等级分数。 字母P表示及格 N表示不及格。即 如

4、果 60=S Y=P 否则 Y=N 这里Y的值是字符。称字符型。,共 51 页 第 13 页,3.1 程序如下,main() int s=79; char y; if ( 60=s ) y=P; else y=N; printf(“y=%c”,y); 结果:Y=P,共 51 页 第 14 页,3-2 变量 a,b,s.,补充一个概念:变量 main() int a=5,b=6,s; s=a*b; printf(“s=%d”,s); 在程序中,已知量a,b,未知量s我们都称这为变量。,共 51 页 第 15 页,3-2 变量,变量的值允许改变,指的是在程序中,根据需要,变量的值可以改变它的值。

5、例子: 分别计算 a=5,b=6和 a=7,b=8两个长方形的面积。,共 51 页 第 16 页,程序如下:,main() int a=5,b=6,s; a,b第1次给的值 s=a*b; 计算第一个面积s printf(“s1=%d ”,s); a=7,b=8; a,b第2次给的值 s=a*b; 计算第二个面积s printf(“s2=%d ”,s); 结果 :s1=30 s2=56,共 51 页 第 17 页,2、赋值语句,基本语句,C程序的第二条语句:赋值语句,共 51 页 第 18 页,2、赋值语句,用一个“=”号连接的式子,例: a=5; b=20; s=a*b; v=a+b;,共 5

6、1 页 第 19 页,赋值语句,注意“=”号的意义!,在 C 程序中,“=”号表示给值或赋值: a=5 ;b=6; 表示将数字 5 赋值给变量 a .数字 6 赋值给变量 b . ”=“ 叫做赋值号.,共 51 页 第 20 页,赋值语句,注意“=”号的左边只能是变量!,所以赋值号“ =” 的左边只能是变量 变量=值(或表达式);,共 51 页 第 21 页, 赋值语句,k=123; /* 将整数123赋给变量K */ c1=A /* 将字符A赋给变量C1 */ a=123.3; /* 将实数123.23赋给变量a */ b=a+k+6; /* 表达式的值赋给变量b */,返回,共 51 页

7、第 22 页, 2-1-3 字 符 型 数 据,实例、向字符变量赋值 main() char c1,c2; /*说明c1,c2为字符变量*/ c1=a; /*c1=“a”*/ c2=b; /*c2=“b”*/ printf(“%c %c/n”,c1,c2); 输出结果: a b,返回,共 51 页 第 23 页,2-3 赋值语句,注意: “=”左边必须是变量名。如: 5=2+3 是错误的。 b+2=6*2 是错误的。 应改为: a=2+3; b=6*2-2;,返回,共 51 页 第 24 页,2-3 赋值语句,注意:在程序中赋值语句的顺序。已知量必须先赋值。否则结果不可预测 例如: main(

8、) int a,b,s; a=2;b=3; s=a*b; printf(“%d”,s);,返回,共 51 页 第 25 页,2-3 赋值语句,如果顺序变成下面。结果不可预测 例如: main() int a,b,s; s=a*b; a=2;b=3; printf(“%d”,s);,返回,共 51 页 第 26 页,3、打印(输出)语句,基本语句,C程序的第三条语句:输出语句,共 51 页 第 27 页,4-2 数据的输出,数据的输出 我们前面讲过的语句 printf() 在C里实际称为输出函数。它的格式为 Printf(“控制格式“,变量表),共 51 页 第 28 页,4-2 数据的输入与输

9、出,控制格式用来标明变量的类型 d 整数输出 f 实数输出 c 字符输出 s 字符串输出,共 51 页 第 29 页,4-2 数据的输入与输出,例:int a=3; float b=3.33; char c1=p; printf(“%d”,a); printf(“%f”,b); printf(“%c”,c1);,共 51 页 第 30 页,大家注意: 1、一个变量只能对应一个格式 例:int a=5;char c1=A; Printf(“ %d, %c”,a, c1); 而 printf(“%d”,a,c1); 是错的,共 51 页 第 31 页,注意!,2、变量类型和打印格式要相符。 例:i

10、nt a=5; a是整型 float b=2.4; b是实型 Printf(“ %d,%f”,a, b); 而 printf(“%f,%d”,a,b); 是错的.,共 51 页 第 32 页,注意!,3、字符变量打印可以用两种格式: c% 打印出字符本身 d% 打印出字符的代码。 例:char c1=a,c2=a; Printf(“ %c,%d”,c1,c2); 结果是“ a,97,共 51 页 第 33 页,如何美化输出的结果?,1、用空格可以分开结果。 例: int a=15,b=26; printf(“%d%d”,a,b); 结果是:1526 15和16连在一起。 如何把两个数字分开成:

11、 15 26,共 51 页 第 34 页,如何美化输出的结果?,只要把打印语句改成: printf(“%d %d”,a,b); 结果是:15 26 如何用逗号分两个数字? 15,26,共 51 页 第 35 页,如何美化输出的结果?,2、用逗号可以格开结果。 例: int a=15,b=26; printf(“%d,%d”,a,b); 结果是:15,26,共 51 页 第 36 页,如何美化输出的结果?,问题? 15,26 如果屏幕出现的仅仅是两个数字。我们就不清楚哪个值是a的,哪个是b的值。 能用下面的方式打印就清楚了: a=15,b=26,共 51 页 第 37 页,如何美化输出的结果?,

12、3、可以在控制符前面加上标志。 例: int a=15,b=26; printf(“a= %d,b=%d”,a,b); 结果是: a=15, b=26,共 51 页 第 38 页,如何美化输出的结果?,4、用t可以分开结果。 例: int a=15,b=26; printf(“%dt%d”,a,b); 结果是:15 26 一个t的宽度是10个空格。,共 51 页 第 39 页,一个重要的打印符“n”,5、用n可以换行打印结果。 例:int a=15,b=26; printf(“%dn%d”,a,b); 结果是:15 26 b在第2行打印。 换行符是打印格式经常要用的。,共 51 页 第 40

13、页,Printf(“n the resule is “);,6、可以在双引号内加上任何字符 例:输出两个字母A,B 和一串字符. Char c1=A,c2=B; Printf(“n the resule is “); Printf(“c1=%c,c2=%c”,c1,c2); Printf(“*”);,共 51 页 第 41 页,一个简单程序的说明,#include “stdio.h” /*预处理命令*/ main ( ) /* 主函数 */ float x,y,s; /*说明x,y,s为实变量*/ int n, p; /* 说明n,p为整型变量 */ x=3.2+2.5; /* 赋值语句,计算

14、变量x的值*/ p = 12+24; /* 赋值语句,计算变量p的值*/ x=4; /* 赋值语句,改变变量X的值*/ printf(”%f,p=%d”,x,p); /* 输出变量x和变量p的 值 */ ,共 51 页 第 42 页,变量的命名,变量的命名要符合下列两个规定: 1、变量名必须以字母或下划线开头,后面可以跟若干个字母、数字或下划线。 year , Day, x12, _cws, _chang, a2_1,共 51 页 第 43 页,变量的命名,2、名字长度不超过8个字符。 变量的命名最好能有一定的含义。 例: year , Day, min,max,month,共 51 页 第

15、44 页,变量的命名,非法的变量名: x+y 有+号 $123 有$号 3d 数字在前面 d.y,共 51 页 第 45 页,关键字 C语言中系统特殊定义的具有特定含义的标识符,不允许用户作为自定义标识符使用。 auto breakcase char const continue defaultdo double else enum externfloat for goto if intlong register return short signedsizeof static struct switch typedefunion unsigned void volatile while, 系

16、统保留的单词关键字,共 51 页 第 46 页,介绍一个新概念:标识符 指我们刚才讲的变量名 以后讲的 常量名、数组名、函数名等 统称为标识符,标识符,共 51 页 第 47 页,标识符的名字与变量名字规则一样。由字母或下划线开头、由字母、数字或下划线组成的字母数字串。 一般为具有特定意义的英文字符串。 例如: a b try test31 string_1 str1 _file,1-4 C语言的特点-基本组成,共 51 页 第 48 页,变量赋初值,变量在说明同时赋值,称为赋初始值。 例: int a=5,b=6; float x=1.2,y=2.6; char c1=t,c2=f;,共 5

17、1 页 第 49 页, 2-3 变量赋初值,变量也可以先说明后,后赋值,只要在运算前给值就可以。 例: int a,b; float x,y; a=5;b=6; x=1.2;y=2.6;,共 51 页 第 50 页, 2-3 变 量 赋 初 值,注意,如果3个变量的值相等,不能写成: int a=b=c=3; 只能是这样写: int a=3,b=3,c=3; 但可以用在赋值语句写: int a,b,c; a=b=c=3;,返回,共 51 页 第 51 页, 2-3-2 算术运算,一、算术运算符,运算符 + 加法运算 正值运算 - 减法运算 负值运算 * 乘法运算 / 除法运算 % 求余运算 优

18、先级:* / % 同级(高),+ - 同级(低) 结合性:相同优先级运算符进行运算时的次序 自左向右(标记为 ),共 51 页 第 52 页,/除号和%求余运算,C语法规定,两个整数相除,结果取整。,a=7/3; 结果: 2 a=3/2 ; 结果: 1 注意: a=1/2 ; 结果是:0 a=4/5 ; 结果是:0 分母比分子大,结果都是0。,共 51 页 第 53 页,/除号和%求余运算,例: main() int a=3,h=1;s; s=a*h/2; printf(“s=%d”,s); s的值是多少?为什么!,共 51 页 第 54 页,/除号和%求余运算,要避免结果为的情况,只要分子或

19、分母有一个是实数就行 main() int a=3,h=1;s; s=a*h/2.0; (或 s=a*h*1./2) printf(“s=%d”,s); s=1.5 把1/2改成 1./2或1/2.就可以。,共 51 页 第 55 页,%求余运算,C语法规定,求余的两个数必须是整数。,Int a; a=7%3; 结果: 1 a=6/2 ; 结果: 0 注意: a=1%2 ; 结果是:1 a=4%5 ; 结果是:4 分母比分子大,结果都是分子。,共 51 页 第 56 页,3-3-1 整型常量的类型,1、整数的表示方式 在C语言中,整型常量可以用3种数制表示: 十进制表示 如:123,+123,

20、-123 十六进制表示,以字母OX开头 如: ox80,oxA2,ox1B 八进制表示法,以数字0(零)开头 如:0123,0347(变量的说明格式:,共 51 页 第 57 页,3-3-1 整型常量的类型,根据计算的大小,整数分几个大小不同的范围 用int或short int 来说明的整数,它的大小范围是: -32768-+32767 在内存中,占用2个字节。,共 51 页 第 58 页,3-3-1 整型常量的类型,一般情况,我们计算的整数,它的范围在: -32768-+32767 所以,用 Int 说明就够了。,共 51 页 第 59 页,3-3-1 整型常量的类型,整型数据的溢出 每类整

21、数都有上限和下限,超出上限的,称为上溢。超出下限的,称为下溢。例: int 的范围为(-32768-+32767) 如果:int a,b,c,d; a=32768; /*上溢*/ b=-32769; /*下溢*/,共 51 页 第 60 页,3-3-1 整型常量的类型,那么,同学们会问如果用到比32767大或比-32768小 的整数,怎么办? 可以用长整型定义,以long int 或long 表示。 例:long int a=40000; long b=80000;,共 51 页 第 61 页,3-3-1 整型常量的类型,长整型 long int 取值范围 -2147483648-+21474

22、83647 此外还有: 常量无符号型 unsigned 取值范围 0-65535 常量无符号长型unsigned long 取值范围 0-4294967295 在内存中,占用4个字节。,返回,共 51 页 第 62 页,3-3-1 整型常量的类型,例1: long a1,x=200l; 或 long int a1,x=200L; 定义了两个长整型变量。为了区别一般常量,在长整型常量后面加l或L。 例如:都是long int型常量 10进制:-123L 0L 432l 8进制: 010L 024L 0100L 16进制: 0 x38L 0 x1000L 0XFFl x0a0000l,共 51 页

23、 第 63 页,3-4-1 实型数据,实型(浮点型 )变量 在C语言中,实数有两种表示: 十进制表示 如: 123.2, +12.3, -1.23,共 51 页 第 64 页,3-4-1 实型数据,指数形式(科学记法),用字母e或E表示基数10。 如:12.3 可记成 0.123e2 -12.3 可记成 -0.123e2 0.00123 可记成 0.123e-2,共 51 页 第 65 页,2-1实型数据,实例: 10进制:1.0 1. +12.0 -12.0 0.0 指数:1e3 1.8e-3 -123e-6 等价于:1000 1.8*10-3 -123*10-6 指数:-.1e-3 .1E

24、10 等价于:-0.1*10-3 0.1*10-10,返回,共 51 页 第 66 页,2-1 实型数据,使用指数形式要注意两点: (1)在符号e的前面必须要有数字。如:e2,e-2, E02 都是错误的,应写成:1e2, 1e-2, 1E02 (2)在符号e的后面必须是整数。 如:3e0.5, 1.2e0.3, 3E2.4 都是错误的。,共 51 页 第 67 页,2-1-2 变量的说明,2-1、实型变量按要求的有效位分为:单精度和双精度两种。 单精度的有效位为:6-7位。占4个字节 其说明形式如下: float 变量表列 例如:变量a,b是实变量,说明如下 float a; float b

25、; 或 float a,b;,共 51 页 第 68 页,2-1-2 变量的说明,双精度的有效位为:16-17位。 其说明形式如下(占8个字节) doubel 变量表列 例如:变量a,b是双精度变量,说明如下 doubel a; doubel b; 或 doubel a,b;,共 51 页 第 69 页, 2-1-3 字 符 型 数 据,3-2 字符变量 字符型变量用来存放字符常量,故只能放一个字符。 字符变量的定义: char c1,c2; char字符变量定义符, c1,c2字符变量。,返回,共 51 页 第 70 页, 2-1-3 字 符 型 数 据,可以对字符量进行赋值。 c1=a;

26、c2=b; 注意:字符变量只能存放一个字符,故 c1=as;或c2=bbg;是错的。,返回,共 51 页 第 71 页, 2-1 字 符 数 据,3-5-1 字符常量的值 字符常量的值是用单引号括起来的一个字符。 如a,b,d,?,¥ 注意:a和是不同的字符值。 aa AB不是字符常量,返回,共 51 页 第 72 页, 2-1 字 符 数 据,字符串变量 字符串变量是用双引号括起来的一个以上的字符。 如 “China” “C program” “123” 注意:“a” 是字符串 而a 是字符的值 区别在单、双引号,返回,共 51 页 第 73 页, 2-1 字 符 数 据,3-5-3 转义字

27、符 c还允许用一种特殊形式的字符常量,就是以一个“”开头的字符序列,这是一种“控制字符”,也称为“转义字符”,意思是将反斜杠()后面的字符转换成另外的意义。,返回,共 51 页 第 74 页, 2-2 转义符的功能,字符形式 功能 使用举例 0 字符串结束标志 n 换行(ASCII码为10) printf(”n”); t 横向跳格 printf(”t”); b 退格 r 回车(ASCII码为13) f 走纸换页 字符(ASCII码为92) 表示字符 单引号 表示字符 ” 双引号 ” 表示字符 ” ddd 用8进制表示字符 a=141 A=101 换行符 12 xhh 用16进制表示字符 a=x

28、61 A=x41 (举例c302) 换行符 xa,返回,共 51 页 第 75 页,2-1宏定义和文件包含命令,文件包含指的是在程序中用到函数或某些功能,main前面事先指明的一些命令。 例:我们如果用到三角函数或开方函数,必须在main()前面加上: #include “math.h” 表示包含数学库。,共 51 页 第 76 页,2.1 说明与定义程序说明,下面用一个简单的例子说明程序 实例2:求 X= 编程 #include “math.h” /*数学库函数引用说明*/ main( ) /*程序的名称*/ int k; float x; k=16; x=sqrt(k); /*使用C的开方

29、函数*/ printf ( “ % f” , x ); ,共 51 页 第 77 页,2-1宏定义和文件包含命令,如果用到 Putchar()或getchar() 这两个输出输入函数时,必须在main()前面加上: #include “stdio.h” 表示包含输出输入库。 一般情况下不用写。,共 51 页 第 78 页,2-3-2 各种类型的混合运算,在一个式子中,有整型和实型,如何运算? int a; float x; a=2.6+5; x=2.6+5; printf(“ a=%d, b=%f”,a,x); 结果是: a=8 7.6 7 ? x=8 7.6 7 ?,共 51 页 第 79

30、页,2-3-2 各种类型的混合运算,C语法规定,在一个式子中,有整型和实型运算,整数转换为实数 x=2.6+5; 实际为: x=2.6+5.0; 如果有字符运算,字符转换成SCII代码。,共 51 页 第 80 页,2-3-2 各种类型的混合运算,换规则如图: float double 高 long unsigned 低 int char,short,共 51 页 第 81 页,2-3-2类型转换,C 语言允许在必要时强制转换类型 例如: int j=3,k=5; float a=1.3 b=2.3; k=(int)(a+b);/*将a+b的结果强制成整型 ,结果为3 */ j=j/k ; /

31、* 结果为 0 */ a=(float)j/k; /*将j强制成实型3.0, 结果为0.6 */,共 51 页 第 82 页, 2-3-5 运算符-自增自减运算,自增自减运算符,运算符(单目 ) + 自增 自减 +和 为单目运算,只能作用于变量 只能对int、char、long和指针变量进行运算,共 51 页 第 83 页, 2-3-5 运算符-自增自减运算,自增自减运算符,功能: +x x=x+1 x x=x1 (前缀) 前缀形式: 先自增(自减)再引用 例: int x=4,y=6,z; z=+x; 结果 x=5,z=5; z=-y; 结果 y=5,z=5;,共 51 页 第 84 页,

32、2-3-5 运算符-自增自减运算,自增自减运算符,功能: x+ x=x+1 x x=x1 (后缀) 后缀形式: 先引用再自增(自减) 例: int x=4,y=6,z; z=x+; 结果 z=4,x=5; z=y-; 结果 z=6,y=5;,共 51 页 第 85 页, 运算符-自增自减运算,前缀与后缀的区别: y=+x; x=x+1; y=x; x先加1再赋值 y=x+; y=x; x=x+1; x先赋值再加1,共 51 页 第 86 页, 运算符-自增自减运算实例,实例 (1) +i; i+; 因为在表达式中没有其它运算,结果一样。 (2) x=1; y=+x; 结果: x=2,y=2 y

33、=+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,共 51 页 第 87 页,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;, 运算符-自增自减运算实例,实例 已知:int x = 2, y = 5, z; z = +x; z = +x * +y; z = x+ * +y; z = +x * y+; z = x+ * y+; z = +x * +x;,逻辑虽然正确 ,但实际编程中容易产生误解,应当避免,共 51 页 第 88 页, 2-3-5 运算符-逗号运算,逗号运算符,运算符(, ) 一般形式为: 表达式1,表达式2 例1: x=(y=3,y+1); 其顺序为: y=3; x=y+1; 结果 x=4,共 51 页 第 89 页, 2-3-5 运算符-逗号运算,逗号运算符,例2: y=10; x=(y=y-5,25/y

温馨提示

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

评论

0/150

提交评论