书签 分享 收藏 举报 版权申诉 / 49
上传文档赚钱

类型C语言基础课件.ppt

  • 上传人(卖家):三亚风情
  • 文档编号:3347608
  • 上传时间:2022-08-22
  • 格式:PPT
  • 页数:49
  • 大小:765KB
  • 【下载声明】
    1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
    2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
    3. 本页资料《C语言基础课件.ppt》由用户(三亚风情)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
    4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
    5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
    配套讲稿:

    如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。

    特殊限制:

    部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。

    关 键  词:
    语言 基础 课件
    资源描述:

    1、v 2.1 C语言的数据类型语言的数据类型v 2.2 标识符、常量和变量标识符、常量和变量v 2.3 基本数据类型(整型、实型、字符型、基本数据类型(整型、实型、字符型、字符串)字符串)v 2.4 运算符及表达式运算符及表达式第1页,共49页。程序程序=数据结构数据结构+算法算法 在高级程序设计语言中,对数据结构的描述是通过数据类型数据类型的形式实现的,而对算法的描述则是通过各种语句语句功能实现的。第2页,共49页。2.1 数据类型单精度型 双精度型 数据类型基本类型构造类型指针类型空类型 整型实型(浮点型)字符型 枚举型数组类型结构体类型共用体类型第3页,共49页。2.2 标识符、常量和变量

    2、2.2.1 字符集字符集 字符(character)是组成语言最基本的元素。C语言字符集由字母,数字,空格,标点和特殊字符组成。字母:大、小写英文字母共52个。数字:09共10个。空白符:空格符、制表符、换行符等统称为空白符共3个。标点和特殊字符:+-*/%_ .=&|();?:”!#共25个。2.2 标识符、常量和变量、$第4页,共49页。2.2.2 标识符概念:用于标识变量名变量名、符号常量名符号常量名、函数名函数名、数组名数组名、类型名类型名、文件名文件名的有效字符序列有效字符序列称为标识符。组成:允许用作标识符的字符有:26个英文字母(包括大小写)、数字(09)、下划线;构成规则:第一

    3、个字符必须是字母字母或下划线下划线,后面跟任意的字母、数字和下划线;长度:最长31个字符(最好限制在8个以内)注意事项:大小写敏感不能使用关键字命名原则:见名知意例:判断下列标识符号合法性sum Sum M.D.John day Date 3days student_name#33 lotus_1_2_3 char ab _above$123M.D.John3days#33char$123ab2.2 标识符、常量和变量第5页,共49页。语言中有32个关键字,不允许用户再用来定义标识符。autodefaultfloatregisterstructvolatilebreakdoforreturns

    4、witchwhilecasedoublegotoshorttypedefcharelseifsignedunionconstenumintsizeofunsignedcontinueexternlongstaticvoid12个预处理命令:define endif elif error line include ifdef ifndef pragma undef if else2.2 标识符、常量和变量第6页,共49页。2.2.3 常 量 概念:常量是指在程序中其值不能被改变的量。类型:直接常量:如18、0、-3、4.6、-1.23、0.0、a、x、“abcd”符号常量:用标识符表示的常量。通

    5、常习惯用大写字母表示符号常量。2.2 标识符、常量和变量第7页,共49页。符号常量的定义形式:#define#define 符号常量名符号常量名 常量表达式或字符串常量表达式或字符串 如:#define PI 3.141592654#define PRICE 30注意:注意:l 符号常量在程序中符号常量在程序中不能被赋值不能被赋值l 习惯上,符号常量名用大写字母表示,变量名用习惯上,符号常量名用大写字母表示,变量名用小写字母表示,以示区别。小写字母表示,以示区别。PRICE=100;第8页,共49页。【例】已知某产品的单价和数【例】已知某产品的单价和数量,求总价格。量,求总价格。#define

    6、 PRICE 30main()int num,total;num=10;total=num*PRICE;printf(“total=%d”,total);total=300第9页,共49页。2.2.4 变 量 概念:变量指在程序执行过程中其值可以改变的量。它用标识符(变量名)来表示,在内存中占据一定的存储单元。变量三要素:变量名、变量类型、变量值2.2 标识符、常量和变量a10变量名变量的值存储单元决定分配字节数和数的表示范围合法标识符 变量的定义形式:类型标识符 变量名1,变量名2,.;变量的使用:先定义,后使用例:int a,b,c;float data;例:int student;sta

    7、dent=19;/Undefined symbol statent in function main 第10页,共49页。变量的赋值:定义时赋值;程序执行过程中赋值 变量的定义位置:一般放在函数开头2.2 标识符、常量和变量int a,b=2;a=1;main()int a,b=2;float data;a=1;data=(a+b)*1.2;printf(“data=%fn”,data);变量定义可执行语句main()int a,b=2;a=1;float data;data=(a+b)*1.2;printf(“data=%fn”,data);Error:Expression syntax i

    8、n function main第11页,共49页。2.3 基本类型数据2.3.1 整型数据整型数据 一、整型常量一、整型常量:即整常数。C整常数可以用以下几种形式表示:2.3 基本数据类型1、十进制整数:如123、0、-456等。2、八进制整数:以0开头。如0123=(123)8=(83)10。3、十六进制整数:以0 x(0X)开头。如0 x123=(123)16=(291)10、0 x54=(84)10。第12页,共49页。根据数值的范围分为以下几种类型:1)基本型,以int表示;2)短整型,以short int表示,或以short表示;3)长整型,以long int表示,或以long表示;

    9、为了充分利用变量的表数范围,又可以将变量定义为“无符号”类型和“有符号”类型。加上修饰符unsigned以指定为“无符号数”,加上修饰符signed以指定为“有符号数”;如果不指定,则隐含为有符号(signed)。实际上signed完全可以不写。2.3 基本数据类型2.3 基本类型数据第13页,共49页。类型类型标识符所占字节数取 值 范 围有符号基本类型有符号基本类型int421474836482147483647即即-231(231-1)无符号基本类型无符号基本类型unsigned int404294967295,即即0(232-1)有符号短整型有符号短整型short2-327683276

    10、7,即,即-215(215-1)无符号短整型无符号短整型unsigned short2065535,即,即0(216-1)有符号长整型有符号长整型long4-21474836482147483647即即-231(231-1)无符号长整型无符号长整型unsigned long404294967295,即即0(232-1)归纳起来,有以下六种整型变量:2.3 基本数据类型第14页,共49页。二、整型变量二、整型变量2.3 基本数据类型整型数据在内存中是以二进制补码形式存放的。int i;i=10;000000000000101010(a)数据存放示意图(b)数据在内存中的实际存放情况-101000

    11、00000000101011111111111101011111111111110110-10的原码按位取反加1第15页,共49页。形式:类型标识符变量列表类型标识符变量列表;注意注意:对变量的定义,一般放在函数开头的声明部分。2.3 基本数据类型int a,b;unsigned int i,j;long e,f;main()short a,b;a=32767;b=a+1;printf(%d,%d,%u,%u,a,b,a,b);0111111111111111a:b:100000000000000032767,-32768,32767,32768第16页,共49页。三、整型常量三、整型常量 即

    12、整常数。2.3 基本数据类型1、整数值在-32768+32767范围内,认为是short型。2、若超过了上述范围,而在-2147483648+2147483647范围内,则认为是longh或int型。3、在一个整常量后面加一个字母l或L,则认为是long int型常量。4、在一个整常量后面加一个字母u或U,则认为是unsigned类型。1)十进制整数:如123、0、-456等。2)八进制整数:以0开头。如0123=(123)8=(83)10。3)十六进制整数:以0 x(0X)开头。如0 x123=(123)16=(291)10、0 x54=(84)10。第17页,共49页。实型变量分为单精度型

    13、(float)和双精度型(double)。类型类型长度长度有效数字有效数字正数正数数值范围数值范围float32673.4e-383.4e38double6415161.7e-3081.7e308对每一个实型变量都应该在使用前加以定义。如:float x,y;double z;2.3 基本数据类型2.3.2 实型数据实型数据第18页,共49页。2.3.2 实型数据实型数据2、实型常量、实型常量:即实数,又称浮点数。有两种表示形式:2.3 基本数据类型 1)十进制小数形式。一般由数字和小数点组成(必须有小数点,但小数点前后的0可以省略)。例如:0.246 .246 246.0 246.0.0 等

    14、都是正确的小数表示形式。2)十进制指数形式。由尾数、字母E或e及指数部分组成。具体格式如下所示:尾数e(E)指数部分例:135e3 124e-2 -12.12e-5 .135E4 0e0 注意:字母e(E)之前必须有数字,且e(或E)后面的指数必须为整数。如e3、.e3、2.1e3.5、e等都不是合法的指数形式。第19页,共49页。一、字符变量一、字符变量 字符变量用来存放字符,且只能存放一个字符,占用一个字节(-128+127)的内存空间。类型标识符为char。定义方法:char c1,c2;/*定义了两个字符型变量c1、c2*/字符变量的赋值方法:c1=a;2.3 基本数据类型2.3.3

    15、字符型数据字符型数据第20页,共49页。2.3.3 字符型数据字符型数据二、字符型常量二、字符型常量:C语言的字符型常量有两种形式:1、普通字符:用一对单引号(即撇号)括起来的单个字符。例如:b、Y、9、(、y。2、用一对单引号(即撇号)括起来的以一个“”开头的转义字符,形如n,t等,意思是将反斜杠()后面的字符转变成另外的意义。如 n 不代表字母n而作为“换行”符。像“换行”这种非显示字符难以用一般形式的字符表示,所以C语言规定用“转义字符”这种特殊形式表示。常见转义字符如下表所示。2.3 基本数据类型第21页,共49页。转义字符含义ASCII值0表示字符串结束0n换行,将当前位置移到下一行

    16、开头10t水平制表(跳到下一个Tab的位置)9v竖向跳格11b左退一格,将当前位置移到前一列8r回车,将当前位置移到本行开头13f换页,将当前位置移到下页开头12a响铃7单引号39双引号34反斜杠“”92ddd1到3位八进制数代表的字符(ASCII码)xhh1到2位十六进制所代表的字符(ASCII码)2.3 基本数据类型第22页,共49页。例例.字符型常量的输出字符型常量的输出main()printf(Hello!thow are you?nIm fine!n);printf(This is a cupbbbpen.n);printf(A,101);2.3 基本数据类型Hello!how ar

    17、e you?Im fine!This is a pen.A,A第23页,共49页。三、字符在内存中的存储形式及使用方法三、字符在内存中的存储形式及使用方法 1、将一个字符常量存放到一个字符变量中,实际是将该字符对应的ASCII码存放到存储单元中。char c1,c2;c1=A;c2=n;2、字符和整型数据可以相互赋值。3、字符数据可以字符形式输出,也可以整数形式输出。2.3 基本数据类型c2c10100000100001010main()char c1;c1=65;printf(%c,%dn,c1,c1);A,65第24页,共49页。main()char c1,c2;c1=a;c2=b;c1=

    18、c1-32;c2=c2-32;printf(%c,%cn,c1,c2);4、语言允许字符数据与整数直接进行算术运算。2.3 基本数据类型【例】编写程序实现英文字符的大小写转换。A,B思考:将一个超过一个字节表示范围的数赋给char型,会出现什么情况?第25页,共49页。2.3.4 字符串常量字符串常量2.3 基本数据类型 字符串常量是由一对双引号(“”)括起来的字符序列。如“How are you!”、“China”、“a”、“$123.45”等。u 双引号是字符串常量的定界符。如果字符串中有双引号应使用转义字符“”来表示。如要输出字符串It is“good”,语句应为printf(“It i

    19、s“good”);u 字符串的长度为字符序列中字符的个数,不包括两边的双引号。如字符串“How are you!”的长度是12。u 不要将字符常量和字符串常量混淆。如a是字符串常量,a是字符常量。说明:若:char c;c=a;c=a;第26页,共49页。规定:在每个字符串的结尾加一个“字符串结束标志”,以便系统据此判断字符串是否结束。规定以字符0作为字符串结束标志。0的ASCII值为0,是不可显字符,也不作任何操作,即“空操作字符”。aa0aa注意:写字符串时不必加0,它是系统自动加上的。China0China2.3 基本数据类型第27页,共49页。2.4 运算符及表达式2.4 运算符及表达

    20、式运算符运算符:规定了对数据的基本操作。规定了对数据的基本操作。表达式表达式:将运算对象:将运算对象(常量、变量、函数等常量、变量、函数等)用运算符用运算符连接起来的符合连接起来的符合C语言语法规则的式子语言语法规则的式子 如:(a-b)/c*2+a+-15%4 第28页,共49页。学习运算符应注意:运算符功能与运算量关系 要求运算量个数 要求运算量类型运算符优先级别 在一个表达式中如果有多个运算符时,则计算是有先后次序的,这种计算的先后次序称为相应运算符的优先级。结合方向 当一个运算对象两侧运算符的优先级别相同时进行运算(处理)的结合方向称为运算符的结合性。按“从右向左”的顺序运算,称为右结

    21、合性;按“从左向右”的顺序运算,称为左结合性。结果的类型第29页,共49页。C语言的运算符2.4 运算符及表达式(1)算术运算符+-*/%(2)赋值运算符=及其扩展赋值运算符(3)自增、自减运算符 +-(4)关系运算符=!=(5)逻辑运算符!&|(6)逗号运算符,(7)位运算符|&(8)条件运算符?:(9)指针运算符*&(10)求字节数运算符 sizeof(11)强制类型转换运算符 (类型标识符)(12)成员运算符 .(13)下标运算符 (14)其它 如函数调用运算符()第30页,共49页。C语言的运算符2.4 运算符及表达式(1)算术运算符+-*/%(2)赋值运算符=及其扩展赋值运算符(3)

    22、自增、自减运算符 +-(4)关系运算符=!=(5)逻辑运算符!&|(6)逗号运算符,(7)位运算符|&(8)条件运算符?:(9)指针运算符*&(10)求字节数运算符 sizeof(11)强制类型转换运算符 (类型标识符)(12)成员运算符 .(13)下标运算符 (14)其它 如函数调用运算符()第31页,共49页。2.4.1 算术运算符算术运算符1、基本算术运算符基本算术运算符2.4 运算符及表达式运算符名称示例运算功能-取负-a使a的值为负值+加a+b求a与b的和-减a-b求a与b的差*乘a*b求a与b的积/除a/b求a与b的商%取余a%b求a整除以b的余数第32页,共49页。说说 明明2.

    23、4 运算符及表达式 乘法运算符是“*”,不能用或号,也不能省略。在数学中5a、5a、5a都是合法的,但在C语言中只能写成5*a。除法运算符是“/”,不能用号表示。两个整数相除结果为整数,如7/2的结果值为3,舍去小数部分。如果参加运算的两个数中有一个数为实数,则结果是double型,因为所有实数都按double型进行运算。取余运算符“%”两侧的数据必须为整型数据。结果按下式计算:余数=被除数-除数*商。如7%3的结果为1。7%1.2则是错误的。第33页,共49页。2、算术表达式、算术表达式用算术运算符、圆括号将运算对象连接起来的符合C语法规则的式子就称为算术表达式。如:(a-b)/c*2+a+

    24、-15%4 2.4 运算符及表达式 表达式中的乘号不能省略。表达式中只能使用合法用户标识符。例如:数学式 相应的C语言表达式应写成:3.1415926*r*r。表达式不允许有分子分母、上下标等形式,必要时要利用圆括号保证运算的顺序。例如:应写成:(a+b*b)/(c+d)。表达式不允许使用方括号和花括号,只能使用圆括号帮助限定运算顺序。可以使用多层圆括号,但左右括号必须配对,运算时从内层圆括号开始,由内向外依次计算表达式的值。dcba22r第34页,共49页。3、算术运算符的优先级与结合性、算术运算符的优先级与结合性2.4 运算符及表达式运算种类结合性优先级()高低-(负号)左结合性*,/,%

    25、+,-右结合性第35页,共49页。4、基本类型数据间的混合运算、基本类型数据间的混合运算2.4 运算符及表达式(1)在运算过程中,C语言遇到两种不同数据类型的数值运算时,会将某个数做适当的类型转换,然后再进行运算。类型转换总是按照数据长度增加的方向逐个运算符进行,以保证精度不降低。自动类型转换 例如:表达式 5+b-x/2+y*m(假设m为int型,x为float型,y为double型)doublefloatlongunsignedintchar,short高低注意:横向箭头表示必定的转换,纵向箭头表示当运算符两侧的数据类型不一致时将它们中低级别的类型转换成高级别的类型.箭头方向只是级别的高低

    26、,并不是转换的过程.第36页,共49页。2.4 运算符及表达式m为int型,x为float型,y为double型intdoubleresult=5 +b -x /2 +y *mdoubledoubledoubledouble第37页,共49页。2.4 运算符及表达式(2)当需要将某数据转换成指定类型时使用强制类型转换,通过类型转换运算符实现。一般形式为:(类型标识符)(表达式)例如:(double)a /*将a转换成double型*/(int)(x+y)/*将x+y的和转换成整型*/(float)(10*5)/*将10*5的积转换成float型*/注意:类型标识符和表达式都必须加括号(单个变量

    27、可以不加括号).(int)(x+y)与(int)x+y 无论是强制转换或是自动转换,只是为了本次运算对数据长度进行的临时性转换,不改变数据定义时的类型。强制类型转换的优先级高于自动类型转换。第38页,共49页。main()int i=1,j=5,k1,k2,k3;float x=5.7,y=2.8,z1,z2,z3;k1=(int)x;k2=(int)(x)/y;k3=(int)(x/y);z1=(float)i;z2=(float)i/j;z3=(float)(i/j);printf(k1=%dn,k1);printf(k2=%dn,k2);printf(k3=%dn,k3);printf(

    28、z1=%fn,z1);printf(z2=%fn,z2);printf(z3=%fn,z3);【例】强制类型转换示例。k1=5k2=1k3=2z1=1.000000z2=0.200000z3=0.0000002.4 运算符及表达式第39页,共49页。#include main()int a,b,c;float s,area,temp;printf(please input 3 sizesn);scanf(%d%d%d,&a,&b,&c);s=(a+b+c)/2;temp=s*(s-a)*(s-b)*(s-c);if(temp=0)printf(your input is wrong);else

    29、 area=sqrt(temp);printf(The area is%f,area);【例】分析程序。2.4 运算符及表达式第40页,共49页。#include main()float a,b,c;float s,area,temp;printf(please input 3 sizesn);scanf(%d%d%d,&a,&b,&c);s=(a+b+c)/2;temp=s*(s-a)*(s-b)*(s-c);if(temp=0)printf(your input is wrong);else area=sqrt(temp);printf(The area is%f,area);正确程序应为

    30、:2.4 运算符及表达式第41页,共49页。2.4.2 赋值运算符赋值运算符1、赋值运算符和赋值表达式、赋值运算符和赋值表达式2.4 运算符及表达式 赋值运算符:=赋值表达式:用赋值运算符将一个变量和一个表达式连接起来的式子,其功能是将=右边的表达式的值存放到左边的变量中。形式为:变量标识符=表达式 注意:赋值表达式 赋值语句 赋值表达式的值:即被赋值后=左边变量的值。例 b=5 d=5+b-x/2+y*mb=5有两层含义:一是使变量b的值为5,二是求得赋值表达式“b=5”的值为5。a=(b=5);语句执行后a的值为?第42页,共49页。说明:说明:2.4 运算符及表达式 赋值运算符“=”的左

    31、边必须是变量,不能是常量或者表达式。右边的表达式可以是常量、变量、表达式和函数调用。如y=sqrt(2)。赋值运算符“=”不同于数学中的等号,它没有相等的含义。例如:x=x+1,其含义是取出变量x中的值加1后,再存入变量x。赋值运算符的结合性为“右结合性”,低优先级。如:x=y=z=8 等价于 x=(y=(z=8)y=a+3 先+后=例 3=x-2*y;a+b=3;(错)第43页,共49页。2、赋值运算中的类型转换、赋值运算中的类型转换2.4 运算符及表达式 规则:当“=”左边变量的类型和右边表达式值的类型不一致时,要将右边表达式值类型强制转换为左边变量的类型。左边变量类型右边表达式值的类型转

    32、换说明intdouble将实型数据的小数部分截去后再赋值doubleint将整型数据转换成实型数据后再赋值intchar值不变,高24位补0,或进行符号扩展Long,intshort值不变,高16位进行符号扩展shortLong,int截取低16位数值unsignedsigned原样赋值,如果超出表示范围则会有意外结果signedunsigned第44页,共49页。3、复合赋值运算符、复合赋值运算符2.4 运算符及表达式a+=3a=a+3x*=y+8x=x*(y+8)x%=3x=x%3种类:+=-=*=/=%=&=|=含义:变量 op=表达式变量=变量 op 表达式(op:+、-、*、/、%、

    33、&、|)优点:简化程序,使生成的机器代码简短。说明:与“=”优先级相同,也是“右结合性”。x*=y+8;k+=j+=i+8第45页,共49页。2.4.3 自增(自增(+)、自减()、自减(-)运算符)运算符2.4 运算符及表达式 作用:使变量值加1或减1 种类:前置 +i,-i (先执行i+1或i-1,再使用i值)后置 i+,i-(先使用i值,再执行i+1或i-1)例 j=3;k=+j;j=3;k=j+;j=3;printf(“%d”,+j);j=3;printf(“%d”,j+);a=3;b=5;c=(+a)*b;a=3;b=5;c=(a+)*b;/j=j+1=4,k=j=4/k=j=3,j

    34、=j+1=4/4/3/c=20,a=4/c=15,a=4第46页,共49页。说明:说明:2.4 运算符及表达式 自增、自减运算符(+、-),只能用于变量,不能用于常量和表达式,如2+或(x+y)+都是不合法的。+和-的结合方向是“右结合性”,优先级高于基本算术运算符,与负号运算符为同一优先级。例如,-i+,相当于-(i+)。j+k相当于(j+)+k。main()P34 int i=5,j,k;j=+i;i=5;k=i+;printf(i=%d,j=%d,k=%dn,i,j,k);printf(j=%d,k=%dn,+j,k+);第47页,共49页。2.4.4 逗号运算符逗号运算符2.4 运算符

    35、及表达式形式:表达式1,表达式2,表达式n结合性:从左向右逗号表达式的值:等于表达式n的值优先级别:最低如:如:x=(a=3,b=5,c=b*4)t=3,t+2 (a=2*3,a*5),a+6比较下面两式:a=(2+b,a*2,a*=5)a=2+b,a*2,a*=5第48页,共49页。2.4.5 sizeof运算符运算符2.4 运算符及表达式 作用:返回变量或数据类型的字节长度 形式:sizeof(类型标识符)或 sizeof(变量名)sizeof(double)表达式的值为8 sizeof(int)表达式的值为2 设有下列程序段:float f;int i;i=sizeof(f);变量i的值为?第49页,共49页。

    展开阅读全文
    提示  163文库所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
    关于本文
    本文标题:C语言基础课件.ppt
    链接地址:https://www.163wenku.com/p-3347608.html

    Copyright@ 2017-2037 Www.163WenKu.Com  网站版权所有  |  资源地图   
    IPC备案号:蜀ICP备2021032737号  | 川公网安备 51099002000191号


    侵权投诉QQ:3464097650  资料上传QQ:3464097650
       


    【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。

    163文库