C语言整数97以实数形式存储,《C语言的基础知识》PPT课件.ppt

《《C语言的基础知识》PPT课件.ppt》由会员分享,可在线阅读,更多相关《《C语言的基础知识》PPT课件.ppt(51页珍藏版)》请在装配图网上搜索。

1、第二章 编制C程序的基础知识,第一节 常量与变量,x = 2 * y,常量,变量,一、常量程序运行过程中保持不变的值,定义形式:#define 标识符 常量值,【例2.1】定义一个常量pi表示,求圆的面积。 #define pi 3.14159 /*定义常量pi并赋值*/ main( ) int r ; float s; r=1; s=pi*r*r; printf(s=%f,s); ,常量分为 字面常量和符号常量,二、变量,1、标识符,把给程序中的实体变量、常量、 函数、数组、结构体以及文件所起的名 字称为标识符。简单的说标识符就是一 个名字。,标识符的命名规则,只能由英文字母、数字和下划线组。

2、成, 且第一个字符必为英文字母或下划线,不允许使用关键字作为标识符的名字,标识符区分大小写,标识符命名应以直观且易于拼读为宜,有意义的标识符长度为前8个字符,练习:,【例2.2】找出下列符号中合法的标识符。 3aB abc a.b b int next a3B ok? _swtch,定义形式:类型 变量名1,变量名2,; 其中,方括号内的内容为可选项,可以 同时声明多个相同类型的变量,它们之间需 要用逗号分隔。例如:float a,b,c;,2、变量,定义:变量是在程序执行过程中可以改变、 可以赋值的量。,必须先定义,再使用,a,memory,126.0,4.6,3.0,Int a; A=5;。

3、,四种数据类型,第二节 C语言的基本数据类型,关于类型的含义 1.不同类型数据在内存中占不同的存储空 间,且采取不同的存储形式。 2.不同类型数据对应不同的取值范围。 3.数据类型确定了允许对其进行的操作。,1、整型常量,按进制分类:分为十进制、八进制和十六进制,一、整型数据,例: 100、-8、0;010、024;0 x38、0X1F,整型数据包括整型常量和整型变量, 整型数据以二进制补码形式存储,按长短分类:分为长整型、无符号整型和短整型。,1、整型常量,2.整型变量,掌握要点: 有几种定义形式 每种形式占存储空间的大小 取值范围 输入输出格式,2.整型变量,定义形式,共六种,int lo。

4、ng int short int unsigned int unsigned short unsigned long,占存储空间 字节,2 4 2 2 2 4,取值范围,输入输出形式:%d,%ld,%x,%o,%u,int型数的表示范围: 存储长度16位二进制(2Byte),0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1,=215-1=32767,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 1 1 1 1 1 1,1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0,=1,=3,上面的数再加1是多少?,=-2。

5、15=-32768,例,补码表示,int型表示数的范围:- 32768 32767,二、实型数据,1、实型常量有两种表示形式: 十进制小数形式和指数形式。,包括实型常量和实型变量,2、实型变量,定义形式,共三种,单精度 双精度 长双精度,float double long double,占存储空间,一个变量,4 8 10,字节,实型常量不区分单精度和双精度。,变量的取值范围,输入输出形式 %f,%e,%le,三、字符型数据,包括字符型常量和字符型变量,1、字符型常量,用单引号包含的一个字符是字符型常量,只能包含一个字符,例,a, A, 1 abc “a”,常用的转义字符,printf(“%d 。

6、t %d t”,a,b); printf(“%d n%d n”,a,b);,1 0 1 0 ,若:a为1,b为0,“This is C string” 串长 16 “a” 串长 1 “ ” (空格)串长 1 “” (不含空格)串长 0,2、字符串常量,双引号内的一串字符 “china”,n个字符组成的字符串常量, 在 内存中占空间为n+1 个字节。,c,h,i,n,a,0,字符串结 束标记,C 中没有专用的 字符串变量,1. 定义形式,2. 占存储空间,一个变量,1 字节,3.字符型变量,char,一个字符变量只 能包含一个字符,3. 输入输出形式 %c,a ASCII值为 97 内存中存储形。

7、式,0 1 1 0 0 0 0 1,4. 字符型数据在内存中以相应的ASCII值存储,在ASCII范围以内,整型数据 与字符型数据可以通用,!,main( ) char c ; c = c; printf ( “%c %d”, c,c ); ,C 99,例,运行结果:,main( ) int a,b; /*定义a、b为整型变量*/ unsigned int t; /*定义t为无符号整型变量*/ float x,y; /*定义x、y为实型变量*/ a=1;b=-2;t=5; x=a+b;y=x+t; printf(%f,%f,x,y); ,【例2.3】变量的定义与使用,main( ) char 。

8、a,b; a=a; b=b; printf(%d,%d,a,b); printf(%c,%c,a+1,b+1); ,【例2.4】写出下面程序的执行结果。,第三节 常用运算符和表达式,1.运算符,运算符,运算分量,X= 5 + b * c,对数据进行 运算的符号,被加工 的数据,+,表达式,认识C中的运算符和表达式,运算符按其操作数个数分为3类: 单目运算符(一个操作数)、双目运算符 (两个操作数)和三目运算符(三个操作数),运算符按其优先级的高低分为15类: 优先级最高的为1级,其次为2级等,运算符按其功能分为: 算术运算符、关系运算符、逻辑运算符、 赋值运算符、逗号运算符等。,表达式的运算结。

9、果称为表达式的值,运算符和运算分量构成表达式,2.表达式,算术表达式 赋值表达式 关系表达式 逻辑表达式 逗号表达式 条件表达式 .,3.学习运算符应掌握的要点:,运算符的种类与功能,运算符与运算分量的关系,运算分量的个数,A + B,(ab) ? a: b,目,单目运算符 双目运算符 三目运算符,优先级: 运算符的执行顺序,结合性: 优先级相同时的结合方向,X=a+b*c,a+b-c 572 a=b=5,一般规则: 单目运算符的优先级高于双目运算符 单目运算符从右向左结合 双目运算符从左向右结合,一、算术运算符及其表达式,双目算术运算符及其表达式,1. 共有5个:+,-,*,/,%,2. 注。

10、意“/”是整数除法,还是实数除法,双目:*, /, %,双目:+,-,4. 优先级:,5. 结合性: 从左向右,3. %运算只适用于整型数,取模(求余数) a=10%4 a的值为2,例 5/2 = -5/2.0 =,例 5%2 = -5%2 = 1%10 = 5%1 = 5.5%2,例 5/2 = 2 -5/2.0 = -2.5,例 5%2 = 1 -5%2 = -1 1%10 = 1 5%1 = 0 5.5%2 (),自反算术运算符及其表达式,x=x+n x=x-n x=x*n x=x/n x=x%n,x + = n x - = n x * = n x / = n x% = n,算术运算与赋。

11、值运算相结合,自增和自减运算符及其表达式,1. 变量自身加(减)1,k =k+1,k + 先使用变量k的值,再加 1,+ k 先加1,再使用变量 k的值,k = k-1,k - - 先使用变量k的值,再减 1,- - k 先减1,再使用变量k 的值,k=3; printf( “%d”, k +); 输出 3 后, k 的值为 4,i=3; printf( “%d”, + i);,输出4,2. 只能用于变量,不能用于表达式和常量,3. 优先级:高于双目算术运算符,4. 结合性:从右向左,(i+k) + , - - 3,main( ) int a , b , s ; a = 5 ; b = 5 ;。

12、 s= a+b ; printf(“%d,%d,%dn”,a,b,s); s= a+ +b; printf(“%d,%d,%dn”,a,b,s); s= +a+b; printf(“%d,%d,%dn”,a,b,s); s= - -a +b; printf(“%d,%d,%dn”,a,b,s); s= a- - +b; printf(“%d,%d,%dn”,a,b,s); s= a + b; printf(“%d,%d,%dn”,a,b,s); ,正负号运算符及其表达式,将一个表达式转换成所需类型。 一般形式: (类型名)(表达式),强制类型转换运算符及其表达式,例 (int) x (int)。

13、(x+y) (int)x+y (double)(3/2) (int)3.6 说明:强制转换得到所需类型的中间变量,原变量类型不变,例 main() float x; int i; x=3.6; i=(int)x; printf(“x=%f,i=%d”,x,i); 结果:x=3.600000,i=3,二、关系运算符及其表达式,关系运算是一种比较运算,将两个值(表达式)进行比较,判断比较的结果是否符合给定的条件,大于 , 大于等于 =,小于 , 不等 != 小于等于=,恒等=,,1 . 六个,=,!=的优先级低于其余四个,2. 优先级,关系运算的优先级低于算术,区别 赋值,3 . 结合性:从左向右。

14、,abc,关系运算符,2. 关系表达式的结果是一个逻辑值,根据关系是否满足,分别取 1,或 0,1 . 关系运算符与运算分量构成关系表达式,int i=1,j=7,a; a=i+(j%4!=0) a的值?,结果:a=2,3. 使用关系表达式应注意,!,1) 数学上,判断x是否在区间 a,b 时,习惯上写成a=x=b,但在C 中,必须写成 a=x d = a c,逻辑1,17,逻辑0,d的值 为0,逻辑运算符,三、逻辑运算符与逻辑表达式,1. 有三个, x的值为 5 float y, y=5; y的值为 5.000000,3. 赋值运算的优先级,比算术、关系、逻辑运算低,4. 赋值运算的结合性,。

15、从右向左,x = y = 5,复合(自反算术)赋值运算符及其表达式,x=x+n x=x-n x=x*n x=x/n x=x%n,x + = n x - = n x * = n x / = n x% = n,算术运算与赋值运算相结合,x+=n,例,main( ) int a, b, c, d, e; a=2; b=5 ;c= 6;d=10; a + =b; b- =c; c * =d; d / =a; a%=c; printf(“%d,%d,%d,%dn”, a , b , c , d); ,结果?,7,-1,60,1,1、逗号运算符,(表达式 1,表达式 2,表达式 3,表达式 n),用于连接。

16、几个表达式,2、求解过程,顺序求解几个表达式,3、优先级,逗号运算符的优先级最低,4、结合性,从左向右,5、逗号表达式,逗号表达式的值为最后一个表达式的值(表达式n 的值),X = ( ( a=4*5 , a*2 ) , a+6 ),a为?,20,x为?,26,五、逗号运算符与逗号表达式,方式,自动进行-隐式转换 强制进行-显式转换,1、算术转换(隐式转换),级别低的向级别高的转换,int i; float f; double d; long e; 表达式:10+a+i*f-d/e 的结果为: double,六、各类型数据之间的转换,2、强制转换(显式转换),(int) (10+a+i*f-d。

17、/e),将该结果强制转换为整型,若有:int i;float f; 则(int)f%i,3、赋值转换(隐式转换),赋值符号右边的类型向左边的转换,int x; float y = 5.3; x=y;,int x=5; float y; y=x;,main( ) int a,b,c; float x,y,z; a=b=1;b+=2; x=a+;y=-b;z=-(-b); c=(int)z; printf(x=%f,y=%f,z=%fn,x,y,z); printf(a=%d,b=%d,c=%dn,a,b,c); ,【例2.5】写出程序运行的结果,x=1.000000,y=2.000000,z=-1.000000 a=2,b=1,c=-1,main() int a,b,c; float x; b=1; a=b+(c=2); x=a+,b+a,c; printf(x=%f,a=%d,b=%d,c=%d,x,a,b,c); ,【例2.6】写出程序运行的结果,x=3.000000,a=4,b=1,c=2。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值