C语言课件-基本的程序语句.ppt
《C语言课件-基本的程序语句.ppt》由会员分享,可在线阅读,更多相关《C语言课件-基本的程序语句.ppt(127页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第第第第2 2章章章章 基本的基本的基本的基本的程序程序程序程序语句语句语句语句著名计算机科学家沃思提出:程序数据结构算法程序数据结构算法一个程序包括以下两方面内容:(1)对数据的描述。在程序中要指定数据的类型和数据的组织形式,即数据结构。(2)对操作的描述。即操作步骤,也就是算法。例如:学生各科成绩及总分排队问题。(1)成绩的存放 以数组形式(2)排队方法 算法在此,存放数据的方式直接反映了一种程序语言的数据表达能力。C语言的数据结构是以数据类型形式出现的。C语言的数据类型可分为:基本数据类型、构造数据类型、指针数据类型、空类型。2.1数据类型及取值范围数据类型及取值范围基本数据类型整型字符
2、型(char)实型空类型(void)有符号整型(int)有符号长整型(long int)有符号短整型(short int)无符号整型(unsigned int)无符号长整型(unsigned long int)无符号短整型(unsigned short int)单精度(float)双精度(double)标识符就是一个名字,用于标志某个事物,由字母、数字、下划线组成且由字母或下划线开头的字符串。标识符可用来命名变量及作为常量名、函数名、类型名、标号和其他各种用户定义的对象命名。一个程序内不得有重复名,不允许使用与C语言系统关键字(保留字)相同的标识符。如如:_sum,sum,stu_name,p
3、rice30等为合法的标识符。2.2标识符、变量和常量标识符、变量和常量2.2.1 2.2.1 标识符标识符下面的标识符是不合法的:Number-of-moves(含有非法字符-)piece flag(含有非法字符空格)5_6_7(数字开头)在定义标识符时应注意以下几点:1.为了增加可读性,应尽量见名知意。如:sum,area,day,name等等2.对标识符的命名应常用取简、专用取繁。3.应尽量避免使用容易混淆的字符。例如:O(大写字母)o(小写字母)0(数字)I(大写字母)l(小写字母)1(数字)Z(大写字母)z(小写字母)2(数字)C语言关键字列表 autobreakcasechar c
4、onstcontinuedefaultdo doubleelseenumextern floatforgotoif intlongregisterreturn shortsignedsizeofstatic structswitchtypedefunion unsignedvoidvolatilewhile1C语言区分大小写语言区分大小写如:Price 和 price,系统会认为是两个不同的标识符。2标识符的长度一般不超过标识符的长度一般不超过8个字符个字符具体情况视不同系统而定。设允许8个字符。则:student_ namestudent_ number为同一名字。注意:注意:2.2.2 2
5、.2.2 变量和常量变量和常量变量程序执行过程中可以不断改变其值的一种量。变量包括变量名变量名和变量值变量值。变量名 用标识符命名,对应一定数量的内存存贮单元,其单元数视变量类型而定。一、变量一、变量C语言中,(1)(1)变量须先定义变量须先定义变量须先定义变量须先定义,后使用后使用后使用后使用如:int student student=30;则若写成student=30,则未定义,编译时指出其错。可以在说明变量时赋初值如int i=9;错误 int a=b=c=9;正确 int a=9,b=9,c=9;(2)(2)一一一一旦旦旦旦变变变变量量量量被被被被定定定定义义义义,即即即即可可可可在在
6、在在编编编编译译译译时时时时为为为为其其其其分分分分配配配配相相相相应数量的单元。应数量的单元。应数量的单元。应数量的单元。(3)(3)一一一一旦旦旦旦变变变变量量量量被被被被定定定定义义义义,其其其其类类类类型型型型便便便便确确确确定定定定。则则则则可可可可检检检检查查查查其运算的合法性。其运算的合法性。其运算的合法性。其运算的合法性。如:a%b 表示a整除以b的余,则a,b必须为整型量。变量的一般描述方法:类型关键字 变量名1,变量名2,变量名n;基本数据类型所占字节数及其取值范围基本数据类型所占字节数及其取值范围(假定机器的假定机器的CPU的字长为的字长为16位位)常量常量 程序运行过程
7、中不能被改变的量。一般的数据显式写法均表示常量。一个数:20 整型常量 15.8 实型常量一个字符a 字符型常量 2 字符型常量一个字符串 “fdjfk252”字符串常量如:二、常二、常 量量1.1.整型常量整型常量整型常量就是整型常数。C语言提供了三种形式语言提供了三种形式:(1)十进制十进制如:256,308,120等一般形式一般形式 +其中:为0至9的数码之一;方括号中的内容可有可无。如果有多位数字,第一个数字不能为0。(2)八进制八进制以数字0开头表示的整数如:0235,0146,012等.一般形式一般形式 +其中:为数码0;为0至7的数码之一;方括号中的内容可有可无。0235=282
8、38515710014618248610210012(182)1010(3)十六进制十六进制以0 x开头的整型数如:0 x16,0 x1280 x16=1166221001281162216829610一般形式一般形式 +其中:为数码0 x或0X;为0至9、a至f、A至F;方括号中的内容可有可无。八进制整数和十六进制的整数的数制符是必需的 以上3种整型常量的表示形式均可冠以正号或负号 在整型常量的尾部加上字母l或L时,则为长整型常量 一个整型常量也可由它的值确定它的类型注意:注意:2.2.实型常量实型常量实型常量就是实数。(1)浮点记数法浮点记数法(十进制形式十进制形式):一个实数的表示包括数
9、字和小数点。如:0.126,523.64等(2)科学记数法科学记数法(指数形式指数形式):一个实数的表示包括整数部分、小数点、小数部分和指数部分。如:12.57e-04、16e-3、1E15。12 .57 e04指数部分小数部分整数部分小数点3.3.字符常量字符常量字符常量字符常量是用一对单引号括起来的单个字符。如 a,A,二者不一样。注意:数字3和字符3的区别,前者为整型常量,占2个字节;后者为字符常量,占1个字节,3的值为51。由于C语言中的字符常量是按整数值存放的,因此,字符常量可以像整数一样在程序中参与运算。A+4 结果为:69 4.4.字符串常量字符串常量字符串常量是用一对双引号括起
10、来的若干个字符。如:“Good Morning!”,”128.7369”字符串存放时,在最后加上“0 空字符。于是:G o o dM ornin g!0注意:字符常量A和字符串常量“A”是不一样的。“A”A 0 但AA1.字符串长度=实际字符个数+1,但最后0不输出.printf(Good Morning!)此处不写 0,自动加上。2.单个字符的字符串不能赋给字符变量。例例:char c;c=a;是错误的。注意:注意:转转义义字字符符:以“”开头后接一个字符或n个字符代表了一种特殊字符常量。5.5.转义字符转义字符字符形式ntvbrf dddxxh功能换行横向跳格(即跳到下一个输出区)竖向跳格
11、退格回车走纸换页反斜杠字符“”单引号(撇号)字符1到3位8进制数所代表的字符1到2位16进制数所代表的字符特殊字符常量符号常量就是用一个名字来代表一个常量。符号常量就是用一个名字来代表一个常量。(1)利用宏定义”#define”定义符号常量如:#define PRICE 30#define PI 3.1415926(2)利用”const”来定义如:const float BT=0.001const int SUM=1006.6.符号常量符号常量例:#define PRICE 30main()int num,total;num=10;total=num*PRICE;printf(total=%d
12、,total);符号常量(一般用大写,以区分变量)符号常量的用处:提高可读性,降低输入错误的可能性,保证一致性.数组是一种具有相同数据类型的变量的集合。一维数组的定义格式:数据类型数组名 数组大小;如:int a6;数组名:a 6个元素:a0,a1,a2,a3,a4,a5。2.3 一维简单数组一维简单数组运算符:运算的符号表示。C语言有丰富的运算功能,先简述之。1.算术运算符 +,/,%,等2.关系运算符 ,=,=,!=3.逻辑运算符 !,&,4.位运算符 ,&5.赋值运算符 =等6.条件运算符?等7.逗号运算符 ,2.42.4 基本运算符、表达式及运算优先级基本运算符、表达式及运算优先级基本
13、运算符、表达式及运算优先级基本运算符、表达式及运算优先级8.指针运算符 *,&9.求字节数运算符 sizeof10.强制类型转换运算符 (类型)11.分量运算符 ,12.下标运算符 13.其它运算符 如函数的调用()2.4.1 2.4.1 算术运算符算术运算符1.基本的算术运算符基本的算术运算符+加法,正值如:3+6,+3减法,负值如:6 4,5乘法如:38/除法如:8/5%求余如:7%4 的值为3(1)两个整型数据相除两个整型数据相除(结果取整结果取整)。5/3 1使用时千万注意 int/int 可能会出现数据丢失。(2)“/”中中,有一个有一个 float,则结果为则结果为double型。
14、型。注:注:2.自增、自减运算符自增、自减运算符+自增1 自减1+i:先使i值+1,再使用i值;i+:先使用i值,再使i值+1.如:(1)i=5;j=+i;(2)i=5;j=i+;结果不同(1)j=6,i=6 (2)j=5,i=6自增运算符(+)和自减运算符()只能作用于变量注意:注意:(1)要慎用要慎用+、运算符。运算符。有关表达式使用中的问题说明有关表达式使用中的问题说明 对于表达式(i+)+(i+)+(i+);我们可能会认为应从左至右:3+4+5=12#includemain()int i=3,j;j=(i+)+(i+)+(i+);printf(i=%d,j=%dn,i,j);实际运行结
15、果:实际运行结果:i=6,j=9例例:先对i进行3次自加,结果i的值为6,然后三个i值相加为18。i+i+i=9 然后再把6赋给i值如果表达式j=(i+)+(i+)+(i+);改为:j=(+i)+(+i)+(+i);则运行结果:则运行结果:i=6,j=18这是因为运算时是先取i的原值:3(2)在表达式中在表达式中,有的运算符为一个字符有的运算符为一个字符,有的为两个字符。有的为两个字符。一般地:自左至右尽可能多地将若干字符组成一个运算符。如:i+j,究竟理解为(i+)+j还是i+(+j)?#includemain()int i=3,j=3,m;m=i+j;printf(i=%d,j=%d,m=
16、%dn,i,j,m);运行结果:i=4,j=3,m=6对语句m=i+j;系统理解为m=(i+)+j;例例:请注意:请注意:不能有这样的语句:m=i+j;系统不理解成m=(i+)+(+j)因为+运算符的结合方向从右至左。但可以但可以写成m=i+(+j);另外也不能不能写成:m=i+(+(+j);(3)在函数调用时要注意参数的计算顺序在函数调用时要注意参数的计算顺序,printf(i=%d,i+=%dn,i,i+);int i=3;int j=3;printf(j+=%d,j=%d,j,j+);输出结果输出结果:i=4,i+=3j+=4,j=3这是因为:参数的计算顺序从右到左。如:3.算术表达式算
17、术表达式算算术术表表达达式式:用算术运行运算符和括号将运算对象连接起来,且符合C语法规则的式子。运算对象运算对象:常量、变量、函数等优先级优先级:(),/,%,+,结结合合性性:同一优先级,自左向右,为左结合性,反之为右结合性。例例:a b/c 1.5+ad e;类数值型数据间的混合运算:C语言允许双精度、单精度、整型及字符数据之间混合运算。如:10+a+1.58765.1234 b是允许的。但有一个规则:先转换成同一类型,再计算。(1)(1)(2)(2)(3)(4)(5)(6)(6)double float高低 图中“”表示必定转换。如a+b,先转换为int。结果为 int。转换方法:lon
18、gunsignedint char,short即:既使是同一种类型也按 转换。图中“”:表示低,高型数据运算时,均先转换为高型。例:10+a+if d/e其中:i int f float d double e long(1)10+a:转为int,结果为int(2)if:转为double,结果为double(3)(1)+(2):转为double(4)d/e:转为double(5)(3)-(4)转为double则运算时则运算时:2.4.2 关系运算符和关系表达式关系运算符和关系表达式关系运算就是比较运算,如:a3为一比较运算,若 a=5,则 a3成 立。结 果 为“真”,否则,若 a=1,则a3不
19、成立,结果为假。上述表达式:a3 称为关系表达式。一、关系运算符及其优先次序关系运算符及其优先次序1.、=为为同同一一优优先先级级,=、!=为为同同一优先级一优先级,但前者高于后者。但前者高于后者。2.关系运算符优先级低于算术运算符。关系运算符优先级低于算术运算符。C语言提供了六种关系运算符 =!=优先级为:3.关系运算符优先级高于赋值运算符。关系运算符优先级高于赋值运算符。如下图:算术运算符 (+、-、*、/、%)赋值运算符 (=)关系运算符高低举例:ca+b c(a+b)ab!=c (ab)!=ca=bc a=(bc a=(bc)、=、!=二、二、关系表达式关系表达式关系表达式的结果值规定
20、为1或0.如:ab,a+bb+c,(a=3)(b=5),a b,(ab)(bb)=c 成立 1b+cb 则ab值为1,所以d=1.f=abc ab为1,abc为0,所以f=0.在使用关系运算符时,应注意以下几点:在使用关系运算符时,应注意以下几点:1.数数学学中中在在判判别别x是是否否在在区区间间a,b时时,习习惯惯写写成成a x b。在C语言中不能写成a=x=b,而应写成 a=x&x=b&是逻辑运算符(下一节介绍)2.在判定两个浮点数是否相等时,由于存储上的误差在判定两个浮点数是否相等时,由于存储上的误差,可能会得到错误的结果。可能会得到错误的结果。如:1.0/15.0*3.0*5.0=1.
21、0数学中为恒等式 1.0/15.0*3.0*5.0=1.0 C语言中结果可能为假 应改为下面的形式:fabs(1.0/15.0*3.0*5.0)y&c (!a)&b)(xy)&c)!高&低二、二、逻辑表达式逻辑表达式 1.逻逻辑辑表表达达式式的的值值与与关关系系表表达达式式值值一一样样,真真为为1,假为假为0。例:(1)a=4 则!a 值为0.此处只要a 0,为真.则!a值为0.(2)a=4,b=5 a&b为1 前面已定义了逻辑表达式,以下看一看逻辑表达式的值及具体的运算。(5)4&0 2 为1.总之,在逻辑运算中,非0值参加逻辑运算时被看成1处理.(3)a=4,b=5 a b为1(4)a=4
22、,b=5!a b为12.一个逻辑表达式中的逻辑运算符并不是一定一个逻辑表达式中的逻辑运算符并不是一定全部执行全部执行.如:a&b&c.则当a=0(假)时,b,c不需判断。当a=1,b=0,则不需判c.又如:a b c.当a=1时,b,c均不必判别。例如:判断年号是否为闰年。闰年必须满足下列条件中的任意一个:(2)年号能被400整除。(1)年号能被4整除但不能被100整除。设用变量year表示年号 当(year%4=0&year%100!=0)year%400=0)为1时,year为闰年,否则为非闰年。则:当(year%4!=0)(year%100=0&year%400!=0)为1时,year为
23、非润年。如果要判别非闰年可在上述表达式前加非(!)运算符.当!(year%4=0&year%100!=0)year%400=0)为1时,year为非闰年。或者:即:应用应用例一金陵就是南京设a表示金陵,b表示南京即 a=b例二前天下雨并且打雷设m表示前天下雨,b表示前天打雷即 m&n例三a大于b,或者c不大于0即 ab !(c0)或者 ab c=0共有共有6个,分别如下:个,分别如下:1.作用:按位取反如如:a=10011010则:a=011001012.作用:按位左移如如:a=10011010则:a作用:按位右移如:如:a=10011010,b=01010011则:a2=11100110 (
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 课件 基本 程序 语句
限制150内