C语言的基础知识.ppt

上传人:牧羊曲112 文档编号:6503940 上传时间:2023-11-07 格式:PPT 页数:51 大小:730KB
返回 下载 相关 举报
C语言的基础知识.ppt_第1页
第1页 / 共51页
C语言的基础知识.ppt_第2页
第2页 / 共51页
C语言的基础知识.ppt_第3页
第3页 / 共51页
C语言的基础知识.ppt_第4页
第4页 / 共51页
C语言的基础知识.ppt_第5页
第5页 / 共51页
点击查看更多>>
资源描述

《C语言的基础知识.ppt》由会员分享,可在线阅读,更多相关《C语言的基础知识.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;,四种数据类型,第二节 C语言的基本数据类型,关于类型

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

4、hort unsigned long,占存储空间 字节,242224,取值范围,输入输出形式:%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是多少?,=-215=-32768,例,补码表示,int型表示数的范围:-32768 32767,二、实型数

5、据,1、实型常量有两种表示形式:十进制小数形式和指数形式。,包括实型常量和实型变量,2、实型变量,定义形式,共三种,单精度双精度长双精度,floatdoublelong double,占存储空间,一个变量,4810,字节,实型常量不区分单精度和双精度。,变量的取值范围,输入输出形式%f,%e,%le,三、字符型数据,包括字符型常量和字符型变量,1、字符型常量,用单引号包含的一个字符是字符型常量,只能包含一个字符,例,a,A,1abc“a”,常用的转义字符,printf(“%d t%d t”,a,b);printf(“%d n%d n”,a,b);,1 0 10,若:a为1,b为0,“This

6、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 内存中存储形式,0 1 1 0 0 0 0 1,4.字符型数据在内存中以相应的ASCII值存储,在ASCII范围以内,整型数据与字符型数据可以通用,!,main()char

7、 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 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

8、,对数据进行运算的符号,被加工的数据,+,表达式,认识C中的运算符和表达式,运算符按其操作数个数分为3类:单目运算符(一个操作数)、双目运算符(两个操作数)和三目运算符(三个操作数),运算符按其优先级的高低分为15类:优先级最高的为1级,其次为2级等,运算符按其功能分为:算术运算符、关系运算符、逻辑运算符、赋值运算符、逗号运算符等。,表达式的运算结果称为表达式的值,运算符和运算分量构成表达式,2.表达式,算术表达式赋值表达式关系表达式逻辑表达式逗号表达式条件表达式.,3.学习运算符应掌握的要点:,运算符的种类与功能,运算符与运算分量的关系,运算分量的个数,A+B,(ab)?a:b,目,单目运算

9、符双目运算符三目运算符,优先级:运算符的执行顺序,结合性:优先级相同时的结合方向,X=a+b*c,a+b-c572a=b=5,一般规则:单目运算符的优先级高于双目运算符单目运算符从右向左结合双目运算符从左向右结合,一、算术运算符及其表达式,双目算术运算符及其表达式,1.共有5个:+,-,*,/,%,2.注意“/”是整数除法,还是实数除法,双目:*,/,%,双目:+,-,4.优先级:,5.结合性:从左向右,3.%运算只适用于整型数,取模(求余数)a=10%4a的值为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

10、=1-5%2=-1 1%10=1 5%1=0 5.5%2(),自反算术运算符及其表达式,x=x+nx=x-nx=x*nx=x/nx=x%n,x+=nx-=nx*=nx/=nx%=n,算术运算与赋值运算相结合,自增和自减运算符及其表达式,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.优先级:高于双目算术

11、运算符,4.结合性:从右向左,(i+k)+,-3,main()int a,b,s;a=5;b=5;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);,正负号运算符及其表达式,将一个表达式转换成所需类型。一般形式:(类型名)(表达式),强制类型转换运算符及其表达

12、式,例(int)x(int)(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.结合性:从左向右,abc,关系运

13、算符,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&x=b,&,2)字符是按ASCII 存储的,因此a0 的值为逻辑 1,关系表达式,1.0/3.0*3.0=1.0的逻辑值为0,3)当判断两个浮点数是否相等时,由于存储上的误差,可能会有错误的结果,例如:数学上:恒等式,1.0/3.0*3.0=1.0,4)关系表达式的结果可以当成整型

14、数,int a=3,b=5,c=7,d;d=a c,逻辑1,17,逻辑0,d的值为0,逻辑运算符,三、逻辑运算符与逻辑表达式,1.有三个,&(与):两边为1,结果为1|(或):两边有一个为1,结果为1!(非):非1为0,非0为1,2.优先级:!的优先级高于&和|,逻辑运算与其他运算相比:非的优先级最高,与和或低于算术和关系。,3.结合性:与和或是从左向右,非是从右向左,2.表达式的值为逻辑的1和0,表示真与假。,任何非零实数均可作为逻辑上的1,例:a=5,b=7,c=4,d=3x=(a+b)(c+d)&(da),先做算术运算,再做关系判断,将最后结果赋给x,1.用逻辑运算符将关系运算表达式或逻

15、辑量连接起来构成逻辑表达式。,逻辑表达式,3.在逻辑表达式中,并不是所有的逻辑运算都必须执 行,如果&的一边已经为0,结果一定为 0,如果|的一边已经为 1,结果一定为 1。,(1)a&b&c a为非0时,再判断 b,a,b均为非0,再判断c(2)a|b|c,若a为非0,不必判断 b和 c,结果一定为 1,已知:a=1,b=2,c=3,d=4,m=1,n=1 执行(m=ab)&(n=cd)之后:m=?n=?,由于 ab的值为 0,m=0不再判断(n=cd)的值,因此,n 维持原有的值,m=0n=1,四、赋值运算符与赋值表达式,1.将一个常量或一个表达式的值赋给一个变量称为赋值,x=5 y=x+

16、10,2.可以将实型赋给整型变量,或将整型值赋给实型变量,int x,x=5.3;x的值为 5float y,y=5;y的值为 5.000000,3.赋值运算的优先级,比算术、关系、逻辑运算低,4.赋值运算的结合性,从右向左,x=y=5,复合(自反算术)赋值运算符及其表达式,x=x+nx=x-nx=x*nx=x/nx=x%n,x+=nx-=nx*=nx/=nx%=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);,结

17、果?,7,-1,60,1,1、逗号运算符,(表达式 1,表达式 2,表达式 3,表达式 n),用于连接几个表达式,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,六、各类型数据之间

18、的转换,2、强制转换(显式转换),(int)(10+a+i*f-d/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.000000a=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,

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

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


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号