c语言第2章c语言基础.ppt_第1页
c语言第2章c语言基础.ppt_第2页
c语言第2章c语言基础.ppt_第3页
c语言第2章c语言基础.ppt_第4页
c语言第2章c语言基础.ppt_第5页
已阅读5页,还剩56页未读 继续免费阅读

下载本文档

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

文档简介

本章要求:,理解变量与常量的概念、掌握变量的定义和使用;掌握常用数据类型的数据在内存中的存放形式;掌握算术运算符、关系运算符、逻辑运算符、赋值运算、逗号运算规则及优先级别;掌握各种表达式的运算及简单的运用;,本章难点:各种数据类型的数据在内存中的存放形式,本章重点:变量与常量的概念、各种表达式的运算,第2章C语言基础,第2章基本的程序语句,一、语言的数据类型二、常量三、变量四、运算符与表达式五、数据类型转换,1、语言数据类型概述,一、语言的数据类型,数据的组织形式是数据结构,数据结构的表现形式是数据类型,在程序中表现数据必须指定其数据类型。数据类型决定数据在内存的空间大小,数据的表示形式,数据的取值范围以及可参与运算的种类。C语言的数据类型丰富,可以表示复杂的数据结构。,数据类型,基本类型,构造类型,指针类型空类型,一、语言的数据类型,(int),(char),(float),(double),(void),C语言中的数据有常量和变量之分。常量是在程序运行过程中,其值不能被改变的量。变量是在程序运行过程中,其值可以被改变的。常量和变量是数据的外在存储形式,数据最终以这两种方式之一出现,但它们都要归属于某种数据类型。变量是在程序中定义的,代表某个存储空间及其所存储的数据。,一、语言的数据类型,2、基本数据类型,基本数据类型是构成C语言的数据类型的最基本要素包括:整型(int)实型(float和double)字符型(char),例如:整型数据的取值和取值范围类型说明符数的范围分配字节数int-32768327672字节shortint/short-32768327672字节long-214748364821474836474字节unsignedint/unsigned0655352字节unsignedshortint0655352字节unsignedlongint042949672954字节,注意:VisualC+6.0中,基本整型与长整型所占字节数及表示范围对应相同。,一、语言的数据类型,二、常量,(一)数值常量1.整型常量在语言中,使用的整常数有八进制、十六进制和十进制三种。(1).十进制整常数。237-56801627(2).八进制整常数八进制整常数必须以0开头,即以0作为八进制数的前缀。015(十进制为13)0101(十进制为65)079和08001,不合法的八进制数,定义:在程序运行时,其值不能被改变的量叫常量。如5,3.14159,a等,二、常量,(3).十六进制整数的前缀为0X。0X2A(十进制为42)0XA0(十进制为160)0XFFFF(十进制为65535)以下各数是不合法的十六进制整常数:5A0X3H,若要表示长整型(long)整数,在数的最后加表示长整型的后缀修饰符号字母“l”。如:1250125l0X125l等价于125、(125)8、(125)16,思考:25和25l的区别?,说明:,前者用2字节存储,后者则使用4个字节存储。,(二)实型常量实型也称为浮点型。实型常量也称为实数或者浮点数。在语言中,实数只采用十进制。它有两种形式:小数形式与指数形式,(1).小数形式由数码0-9和小数点组成。例如:0.123.123123.0-123等均为合法的实数。(2).指数形式由十进制数,加阶码标志“e”或“E”以及阶码组成。其一般形式为aEn值为a*10n,二、常量,二、常量,例如:1.25E+31.25e+31.25103,1250.0,说明:当幂为正数时,正号可以省略。即1.25E+3等价于1.25E3;同一个实数可以有多种表示形式,例如:1250.0可以用0.0125E+5,0.125E+4,1.25E+3,12.5E+2,125E+1。字母e(或E)之前必须有数字,且e后面指数必须为整数。,aEn,二、常量,(三)字符常量,字符常量是用单引号括起来的一个字符。例如a,b,=,+,?都是合法字符常量。在语言中,字符常量有以下特点:1.字符常量只能用单引号括起来,不能用双引号或其它括号;2.字符常量只能是单个字符,不能是字符串;3.字符可以是字符集中任意字符。但数字被定义为字符型之后就不能参与数值运算。,如5和5是不同的。,二、常量,(四)字符串常量,C语言中的字符串常量是由一对双引号括起来的字符序列。每个字符串最后有一结束标志0。例如:ABC,A,123lkdf,字符串常量在内存中存储时,系统自动在字符串的末尾加一个“串结束标志“,因此在程序中,长度为n个字符的字符串常量,在内存中占有n+1个字节的存储空间。,二、常量,例如:a与a是C语言中两种完全不同类型的数据。,a,a0,a与a在内存的存储形式,注意:不要将字符常量和字符串常量混淆,例如,字符串“ABCDEF”有6个字符,存储于内存中时,共占7个字节,最后一个字节为0,(五)转义字符转义字符是一种特殊的字符常量。转义字符以反斜线“”开头,后跟一个或几个字符。转义字符主要用来表示那些用一般字符不便于表示的控制代码。常用的转义字符及其含义:(p12)转义字符转义字符的意义n回车换行t横向跳到下一制表位置v竖向跳格b退格r回车f走纸换页反斜线符“”单引号符a鸣铃ddd三位八进制数的值所代表的ASCII字符xhh两位十六进制数所代表的ASCII字符,二、常量,例:main()printf(“abctdebfghin”);printf(“a=65b=101c=x41n”);输出结果:,a,b,c,d,e,fghi,a=65b=Ac=A,二、常量,(六)符号常量,符号常量:可以使用一个符号表示一个多次常用的常量C语言中使用命令#define来定义:格式:#define符号常量名标识符常数表达式优点:符号常量使程序易于阅读和修改。例如,一个程序中多处用到学生人数60,当有学生人数改变为65,修改这个程序很困难。而使用符号常量,只要将#defineNUM60改为#defineNUM65,就可以了。,无分号,二、常量,例:求一个半径为r的球的体积和表面积的C程序#definePI3.14159/*定义PI为符号常量,值为3.1415*/voidmain()floatv,s,r;scanf(“%f”,说明:(1)符号常量名常常用大写字母、变量名用小写字母。(2)符号常量不能在其作用域范围内重新赋值。,二、常量,三、变量,(一)变量的定义,简单定义:在程序运行时,其值能被改变的量叫变量变量包括:一个名字和相应的数据类型通过名字来引用一个变量,而数据类型则决定了该变量的存储方式和在内存中占据存储单元的大小,说明:变量名和变量值这两个概念的区别定义:intx=20;,C语言中使用的变量都要作类型强制定义,即要求“先定义,后使用”的原则。其目的:1)保证程序中变量名使用的正确性2)编译程序为其分配相应的储存单元3)保证运算的合法性,定义形式:类型说明符变量名列表;,三、变量,实型变量:1.单精度实型:floata;4个字节2.双精度实型:doublea;8个字节,charch;/*定义ch为字符型变量*/inti,j;/*定义i,j为基本整型变量*/longk,n,m;/*定义k,n,m为长整型变量*/floatx,y,z;/*定义x,y,z单精度实型变量*/doublesum,t;/*定义sum,t双精度实型变量*/,三、变量,(二)变量的赋初值,C语言中,当定义一个变量后,系统只是按定义的数据类型分配其相应的存储单元,并不对其单元初始化,如果在赋初值之前直接使用该变量,则是一个不定值。,例如:voidmain()intk;printf(“k=%dn”,k);,程序运行,输出k的值就是一个无意义的不定值,并在不同系统环境下运行的结果也可能完全不同。,三、变量,赋初值的一般形式为:(1)类型说明符变量1=值1,变量2=值2,;(2)类型说明符变量1,变量2,变量3;变量1=值1;变量2=值2;,例如:inta=10,b=10,c=10;等价于inta,b,c;a=10;b=10;c=10;,注意:在说明中不允许连续赋值,但在变量定义后,可以使用连续赋值语句初始化;,三、变量,如:inta=b=c=1;是不合法的;inta,b,c;a=b=c=1;是合法的,1.一个字符变量存放字符常量,在内存中是以ASCII码的形式存储的。,字符数据在内存中的存储形式及其使用方法:,2.字符型数据与整型数据的关系:二者可以进行转换。(1)一个字符数据既可以字符形式输出,也可以整数据形式输出。(2)二者可以互相赋值。(3)字符型数据可以进行算术运算。,三、变量,例1main()charc1,c2;inti;c1=65;c2=66;i=C;printf(“%c,%cn”,c1,c2);printf(“%d,%dn”,c1,c2);printf(“%d,%c”,i,i);,例2main()charch;inti;ch=A;ch=ch+32;i=ch;printf(“%dis%cn”,i,ch);printf(“%cis%dn”,ch,ch);,三、变量,四、运算符与表达式,C语言中的运算符:,语言中运算符和表达式数量之多,在高级语言中是少见的,正是丰富的运算符和表达式使语言功能十分完善。这也是C语言的主要特点之一。运算符的种类C语言的运算符共有十三类,常用运算符及表达式:,算术运算符根据运算符的性质分类逻辑运算符关系运算符赋值运算符位运算单目运算符根据所需的运算对象即操作数的个数分类双目运算符三目运算符,四、运算符与表达式,运算对数据的加工(基本操作)。运算符描述运算的符号,即操作符。运算量操作数,被运算的对象(数据)。表达式由运算符和运算量组成的式子。,语言的运算符不仅具有不同的优先级,而且还有一个特点,就是它的结合性。,因此,在表达式中,各运算量参与运算的先后顺序不仅要遵守运算符优先级的规定,还要受运算符结合性的制约,以便确定是自左向右进行运算还是自右向左进行运算。,四、运算符与表达式,(一)算术运算符与算术表达式,(1)C语言的基本算术运算符:加法+减法-乘法*除法/求余%其中:求余%运算要求两个运算量均为int当“/”被用于整数或字符时,结果取整例如:5/2结果2,1/2的结果0,1.关于%的说明:运算符%两边的操作数必须为整数结果为两操作数整除后的余数余数的符号与被除数符号相同例如:12%(-7)=5(-12)%7=-52.关于/的说明:如果两操作数均为整数,则其结果为整数如果其中一个操作数为实型数,则其结果为double型。例如:6/4=16.0/4=1.500000,四、运算符与表达式,+,-运算符为单目运算,要求运算对象只能是变量结合方向:为由右至左。优先级:高于双目运算,可有以下几种形式:+i变量i自增1后再参与其它运算。i+变量i参与运算后,i的值再自增1。-i变量i自减1后再参与其它运算。i-变量i参与运算后,i的值再自减1。,(2)自增,自减运算符自增运算符:+其功能是使变量的值自增1。自减运算符:-其功能是使变量值自减1。,四、运算符与表达式,例2-3:main()intx,y;x=10;y=+x;printf(“%d,%d”,x,y);,程序运行后,输出结是:11,11,思考:如果将程序的第2行改为:x=10;y=x+;结果如何?,四、运算符与表达式,【注意】:(1)自增自减运算符的优先级较高,和单目运算符相同。其结合方向是“自右向左”(右结合性)。例如:表达式-i+由于“-”和“+”优先级相同,均为右结合性,因此相当于-(i+)。(2)尽管自增自减运算符给程序员带来了方便,但同时也带来了副作用。例如:printf(%d,%dn,i,i+);在不同的编译环境下结果有可能不同。若i的值为3,则结果可能是“3,3”(VisualC+6.0),也可能是“4,3”(TC)。,四、运算符与表达式,四、运算符与表达式,【注意】:(3)例如:i+jC编译在处理时尽可能多地自左而右将若干个字符组成一个运算符(在处理标识符和关键字时也按同一原则处理),将解释为(i+)+j,而不是i+(+j)。,算术表达式,定义:由算术运算符、括弧、内部函数及数据组成的式子,需要掌握的书写原则:(1)表达式中的所有运算符和操作数必须并排书写。不能出现上下标(如x2,x2等)和数学中的分数线。(2)在C表达式中不能省略乘号(如2ab、xy等)。(3)要注意各种运算符的优先级别,为保持运算顺序,在写C表达式时需要适当添加括号(),若要用到库函数,必须按库函数要求书写。,四、运算符与表达式,(二)关系运算符与关系表达式关系运算符及优先级别比较两个量的运算符称为关系运算符。在语言中有以下关系运算符:,=,=,!=,关系运算符的优先级:(1)、=、关系运算符赋值运算符,四、运算符与表达式,关系表达式的一般形式为:表达式关系运算符表达式关系表达式的值是:关系成立为“真”,不成立则为“假”C语言中用“1”表示“真”“0”表示“假”,例如:a+bc-dx3/2a+1(b=5)又如:当a=5,b=4时a=a+(3y=(x=a+b),(b+c);z=(y=(x=a+b),(b+c);printf(y=%d,x=%d,z=%d,y,x,z);,结果:y=6,x=6,z=10,四、运算符与表达式,运算规则:,四、运算符与表达式,(五)位运算,与或异或取反,其运算过程为:56(00111000)56(00111000)199(11000111),1.按位取反【格式】x,四、运算符与表达式,【例2-2】分析下面程序的运行结果main()unsignedcharx=56,y;y=x;printf(%dn,y);,2.按位与【格式】xz=x其运算过程为:,3.按位或【格式】x|y,【例2-4】分析下面程序的运行结果main()unsignedcharx=56,y=157,z;z=x|y;printf(%dn,z);,四、运算符与表达式,4.按位异或【格式】xy,四、运算符与表达式,【例2-5】分析下面程序的运行结果。main()unsignedcharx

温馨提示

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

最新文档

评论

0/150

提交评论