1、第一章 C 语言概论Chapter 1 IntroductionHeFei University of Technology Xuan & lic+全册配套完整课件3第一章 C 语言概论Chapter 1 IntroductionHeFei University of Technology Xuan & liC C 语语 言言 程程 序序 设设 计计但愿她是你知识大厦的又一块基石。但愿她是你知识大厦的又一块基石。但愿她是开启你智慧的又一把钥匙!但愿她是开启你智慧的又一把钥匙!C Language ProgrammingC Language Programming第一章 C 语言概论Chapte
2、r 1 IntroductionHeFei University of Technology Xuan & li高级语言的概念高级语言的概念 计算机的语言在发展的过程中经历了三个阶段:计算机的语言在发展的过程中经历了三个阶段:如:表示如:表示2+301110000110101000010MOV AC , 3ADD AC , 22+3面向机器的二进制语言、面向机器的二进制语言、CPU直接运行。直接运行。面向机器符号化语言,翻译后运行。面向机器符号化语言,翻译后运行。面向问题的类自然语言,翻译后运行。面向问题的类自然语言,翻译后运行。编译或解释系统编译或解释系统SourceObject机器语言机器
3、语言汇编语言汇编语言高级语言高级语言第一章 C 语言概论Chapter 1 IntroductionHeFei University of Technology Xuan & li 语言的基本元素、构词方语言的基本元素、构词方法、句法、程序结构等规则的法、句法、程序结构等规则的集合集合。解决特定问题的步骤描述。解决特定问题的步骤描述。结构化程序设计的思想方法。结构化程序设计的思想方法。学习的层次学习的层次语语 法法算算 法法方方 法法 把我所考察的每一个难题,都尽可能地分成细小的部分,直到把我所考察的每一个难题,都尽可能地分成细小的部分,直到可以而且适于加以圆满解决的程度为止。可以而且适于加以
4、圆满解决的程度为止。 笛卡尔(法)笛卡尔(法)实实践践第一章 C 语言概论Chapter 1 IntroductionHeFei University of Technology Xuan & liFrom Requirement to Program From Requirement to Program Requirement: Triangle s areaInput : a、b、cabcInput: a, b, c Output area Black box第一章 C 语言概论Chapter 1 IntroductionHeFei University of Technology Xu
5、an & liFrom Requirement to ProgramFrom Requirement to Program)()()()(21csbsassareacbas约束:任意两边和大于第三边。约束:任意两边和大于第三边。第一章 C 语言概论Chapter 1 IntroductionHeFei University of Technology Xuan & li第一章第一章 C语言概论语言概论Chapter 1 IntroductionChapter 1 Introduction第一章 C 语言概论Chapter 1 IntroductionHeFei University of Te
6、chnology Xuan & li1.1 C C语言的特点语言的特点 C语言是由语言是由Dennis M Ritchie和和Brian W Kernighan于于1972年在年在B语言的基础上提出的,他们用语言的基础上提出的,他们用C语言重写了在语言重写了在PDP 11小型小型机上的机上的Unix,并取得了成功。,并取得了成功。C语言的特点:语言的特点: C语言功能完善、效率高。语言功能完善、效率高。 C语言可以对硬件操作,是一种中级语言。语言可以对硬件操作,是一种中级语言。 C语言是结构化的程序设计语言。语言是结构化的程序设计语言。 C语言具有丰富的数据类型和运算类型。语言具有丰富的数据类
7、型和运算类型。 C 语言具有良好的移植性。语言具有良好的移植性。 C语言书写灵活,表达简洁。语言书写灵活,表达简洁。第一章 C 语言概论Chapter 1 IntroductionHeFei University of Technology Xuan & li1.2 C C语言的基本程序结构语言的基本程序结构 实例:输入两个数及其算术运算关系,输出运算结果。实例:输入两个数及其算术运算关系,输出运算结果。 /* This is my first C program filename:first.c */#include void main(void) char ch; int iA, iB,
8、c; scanf(“%d%c%d”, &iA,&ch,&iB); c=fun(iA,ch,iB); printf(“%d%c%d=%d”,iA, ch,iB,c);int fun(int x,char op,int y) int z; switch(op) case +: z=x+y; break; case - : z=x-y; break; case *: z=x*y; break; case / : z=x/y; return z; / /* *返回运算结果返回运算结果* */ /子函数子函数主函数主函数chp1ex1第一章 C 语言概论Chapter 1 IntroductionHeF
9、ei University of Technology Xuan & li程序结构说明程序结构说明 程序是由函数组成的,函数是由语句组成的。其中主函数有程序是由函数组成的,函数是由语句组成的。其中主函数有且唯一,主函数名固定为且唯一,主函数名固定为mainmain。子函数可有可无也可以有多个。子函数可有可无也可以有多个。 语言的系统构词必须用小写,用户构词可以大小写混用,语言的系统构词必须用小写,用户构词可以大小写混用,各词之间用一个或几个各词之间用一个或几个spacespace分隔。分隔。 C C语言的语句用;作为结束,因此,一句可以用一行或几行书语言的语句用;作为结束,因此,一句可以用一行
10、或几行书写,但不能割裂构词。写,但不能割裂构词。 程序中可通过程序中可通过/ /* * (注释内容)(注释内容) * */ / 包含对程序的注释。注包含对程序的注释。注释在编译时忽略注释,不产生代码。释在编译时忽略注释,不产生代码。程序中可以包含编译预处理命令。程序中可以包含编译预处理命令。第一章 C 语言概论Chapter 1 IntroductionHeFei University of Technology Xuan & li1.3 C C语言的词法语言的词法 C语言的字符集语言的字符集字母:字母:A、a、B、b、Z、z 52个个数字符号:数字符号:0、1、9 10个个特殊符号:特殊符号
11、:+ - * /系统保留字系统保留字 系统占用词(共系统占用词(共32个)个)auto、break、case、char、const、continue、default、do、double、else、enum、extern、float、for、goto、if、int、long、register、return、short、signed、sizeof、static、struct、switch、typedef、union、unsigned、void、volatile、while建议不要使用:建议不要使用:define、undef、include、ifdef、ifndef、endif、line、error
12、、elif、pragma第一章 C 语言概论Chapter 1 IntroductionHeFei University of Technology Xuan & li标识符(用户构词规则)标识符(用户构词规则) 作作 用:用:用户为各种自定义数据命名。用户为各种自定义数据命名。组成规则:组成规则: 字母和数字以及字母和数字以及 下划线下划线_ 组成。组成。以字母和以字母和 下划线下划线_ 开头。开头。长度不超过长度不超过31个字符。个字符。不能使用保留字。不能使用保留字。 aa1b_iArea _fLoadiStatus faS2Ab int a/1注注 意:意:系统区分大小写字母。系统区分
13、大小写字母。 aBc Abc第一章 C 语言概论Chapter 1 IntroductionHeFei University of Technology Xuan & li1.4 计算机算法的概念计算机算法的概念 算法(算法(Algorithm)的定义:)的定义: 广义地讲:广义地讲:算法是解决问题的逻辑步骤,是对特定问题求解步算法是解决问题的逻辑步骤,是对特定问题求解步骤的一种描述。骤的一种描述。 计算机算法:计算机算法:是用程序解决问题的逻辑步骤,是指令的有限序是用程序解决问题的逻辑步骤,是指令的有限序列。列。 只有通过算法能够描述出来的问题,才能够通过计算机求解。只有通过算法能够描述出来
14、的问题,才能够通过计算机求解。能够用算法描述的问题称为可以能够用算法描述的问题称为可以形式化形式化的问题。的问题。正确的算法有三个条件:正确的算法有三个条件: 每个逻辑步骤有可以实现的语句来完成;每个逻辑步骤有可以实现的语句来完成; 每个步骤间的关系是唯一的;每个步骤间的关系是唯一的; 算法要能终止(防止死循环)。算法要能终止(防止死循环)。算法的两个关键要素:算法的两个关键要素:动作动作(Action);顺序顺序(Order)。第一章 C 语言概论Chapter 1 IntroductionHeFei University of Technology Xuan & li算法举例算法举例求数列
15、求数列n=1+2+m的值的值n,当当n10000时结束。时结束。 欧几里德求欧几里德求m,n(mn)的最大公约数算法的最大公约数算法S1: m Mod n kS2: k不为0: nm, kn (原除数变成新的被除数,余数变成新的除数)。 重复S1 否则:到S3。S3: 输出 n的值为最大公约数。步骤:步骤: S1: 初始化 0n, 0tS2: t+1 t n+t nS3: n10000? 满足到S4,否则到S2。S4: OUTPUT n第一章 C 语言概论Chapter 1 IntroductionHeFei University of Technology Xuan & li算法与计算方法算
16、法与计算方法计算方法(计算方法(Computational Method): 求数学近似解的方法,如求数学近似解的方法,如SinX=X-X3/3!+X5/5!-X7/7!+算法算法(Algorithm):逻辑步骤,解决问题的过程。逻辑步骤,解决问题的过程。算法的特征算法的特征有穷性:有穷性:在在有限的时间和有限的资源下完成算法;有限的时间和有限的资源下完成算法;确定性:确定性:各步骤之间的关系要确定;各步骤之间的关系要确定;有输入:有输入:有有0到多个原始数据输入;到多个原始数据输入;有输出:有输出:有结果输出;有结果输出;可行性:可行性:可以编程实现;可以编程实现;高效性:高效性:执行速度快
17、、占用资源少;执行速度快、占用资源少;健壮性:健壮性:对数据响应正确。对数据响应正确。第一章 C 语言概论Chapter 1 IntroductionHeFei University of Technology Xuan & li算法确定性示例算法确定性示例商店商店a图书馆图书馆l三岔路口三岔路口b如果走近路如果走近路如果路过医院如果路过医院如果路过教室如果路过教室医院医院h教室教室s死过程死过程abif( d min)b lelse if(to h)b h,h lelse if(to s)b s,s lend第一章 C 语言概论Chapter 1 IntroductionHeFei Univ
18、ersity of Technology Xuan & liabif(to h)b h,h lelse if(to s)b s,s lelse if(d min)b lend算法的表示算法的表示 自然语言自然语言 伪伪 代代 码码 图形工具图形工具流流 程程 图图第一章 C 语言概论Chapter 1 IntroductionHeFei University of Technology Xuan & li1.5 程序流程图程序流程图 概念:概念:以特定的图形符号加上说明,表示算法的图以特定的图形符号加上说明,表示算法的图 ,称为,称为流程流程图或框图。图或框图。规则:从上到下,从左到右。规则:
19、从上到下,从左到右。符号及其意义:符号及其意义:流程线流程线连接点连接点处理框处理框判断框判断框I/O框框过程框过程框端点框端点框第一章 C 语言概论Chapter 1 IntroductionHeFei University of Technology Xuan & li 用框图描述函数用框图描述函数 1 x 0 y = -1 x 100?noyesOutput sA0A0end第一章 C 语言概论Chapter 1 IntroductionHeFei University of Technology Xuan & li1.6 C C语言上机的过程语言上机的过程编辑编辑startf.c编译编
20、译语法错?语法错?有有无无f.obj连接、运行连接、运行逻辑错?逻辑错?有有无无f.exeendSourceObjectExecutable第一章 C 语言概论Chapter 1 IntroductionHeFei University of Technology Xuan & li用程序流程图描述算法用程序流程图描述算法 1 x 0 y = 0 x = 0 -1 x 0思考题:思考题: 用框图描述,欧几里德求最大公约数算法。用框图描述,欧几里德求最大公约数算法。 从生活或学习中找出可以用算法描述的一件事,并通过符号从生活或学习中找出可以用算法描述的一件事,并通过符号化的伪语言以及框图加以抽象
21、的描述。化的伪语言以及框图加以抽象的描述。第一章 C 语言概论Chapter 1 IntroductionHeFei University of Technology Xuan & liThe Tip of Chap. 2 数据表示及其类型 运算及表达式 输入/输出 程序的基本处理方式第一章 C 语言概论Chapter 1 IntroductionHeFei University of Technology Xuan & li第二章第二章 C C语言基础语言基础第一章 C 语言概论Chapter 1 IntroductionHeFei University of Technology Xuan
22、 & li程序处理的基本过程程序处理的基本过程开始开始输入数据输入数据x=2,y=3外设外设z=x+y数据处理数据处理输出数据输出数据5外设外设结束结束数据表示数据表示第一章 C 语言概论Chapter 1 IntroductionHeFei University of Technology Xuan & li主主 要要 内内 容容 数据及其表示方法;数据及其表示方法; 数据的基本运算;数据的基本运算; 基本输入输出。基本输入输出。 程序是对数据按照算法处理,并输出结果的过程,因程序是对数据按照算法处理,并输出结果的过程,因此,以上三个问题是程序设计的基本问题。此,以上三个问题是程序设计的基本
23、问题。第一章 C 语言概论Chapter 1 IntroductionHeFei University of Technology Xuan & li2.1 基本数据类型基本数据类型1/2 ? 数据数据是对客观事物特征抽象的符号化表示,客观事物不同,表是对客观事物特征抽象的符号化表示,客观事物不同,表示的方法也不同(人数以整数表示,圆面积用小数表示,灯的状态示的方法也不同(人数以整数表示,圆面积用小数表示,灯的状态用开关表示,信件要用文字表示),计算机的处理方法也不同,因用开关表示,信件要用文字表示),计算机的处理方法也不同,因此根据程序处理的数据对象,应规定数据的此根据程序处理的数据对象,应
24、规定数据的类型类型。 计算机由于工程的限制,只能在有限精度和有限范围内在工程计算机由于工程的限制,只能在有限精度和有限范围内在工程上近似地描述操作的对象上近似地描述操作的对象数据。数据。 数据类型决定了数据的如下特征:数据类型决定了数据的如下特征:数据的外部表示方式和内部存储方式不同;数据的外部表示方式和内部存储方式不同;表示的范围和精度不同;表示的范围和精度不同;对数据的处理方式不同。对数据的处理方式不同。第一章 C 语言概论Chapter 1 IntroductionHeFei University of Technology Xuan & liC C语言的数据类型语言的数据类型C语言的数
25、据类型语言的数据类型基本类型基本类型字符型字符型 char浮点型浮点型 float double构造类型构造类型数组、结构、联合、数组、结构、联合、枚举型枚举型 enum指针类型指针类型空类型空类型 void整整 型型 int第一章 C 语言概论Chapter 1 IntroductionHeFei University of Technology Xuan & li2.2 常量(常量(Constant)及其类型)及其类型 常量的概念常量的概念 在程序中不能改变的量称为常量。常量的类型由数据的外部表在程序中不能改变的量称为常量。常量的类型由数据的外部表现形式确定。现形式确定。常量的外部形式及其
26、确定的类型常量的外部形式及其确定的类型整型常量的表示整型常量的表示 整型常量根据表示的范围可以有整型常量根据表示的范围可以有一般整型一般整型和和长整型长整型,还可以表,还可以表示为十进制、八进制、十六进制形式。示为十进制、八进制、十六进制形式。一般整型常量的表示一般整型常量的表示进进 制制表示举例表示举例范范 围围 字节数字节数十十 进进 制制2304 -32768 +327672八八 进进 制制 04400 0 0177777 2十六进制十六进制 0 xaa00 0 x0000 0 xffff2长整型常量的表示长整型常量的表示进进 制制表示举例表示举例范范 围围 字节数字节数十十 进进 制制
27、-21234l -231 +231-14八八 进进 制制 04400l 0 037777777777 4十六进制十六进制 0XAA00L 0 x0000-0 xffffffff 4第一章 C 语言概论Chapter 1 IntroductionHeFei University of Technology Xuan & li浮点型常量的表示(只有十进制表示)浮点型常量的表示(只有十进制表示) 浮点型常量浮点型常量有两种表示方式:有两种表示方式:小数表示方法小数表示方法,指数表示方法指数表示方法。不区分单、双精度。不区分单、双精度。小数表示方式规则:一个小数点、符号和至少一位数字。小数表示方式规则
28、:一个小数点、符号和至少一位数字。-2.0 1. 0.11113 -15.指数表示方式规则:指数表示方式规则:规则:规则:nem 表示表示 n10mn小数部分,整型常量或小数形式表示的实型常量。小数部分,整型常量或小数形式表示的实型常量。指数部分,两位整数。指数部分,两位整数。 n决定精度,一般精度为决定精度,一般精度为7位;位;m决定范围,范围决定范围,范围10-38到到10+38,当超过范围时称为当超过范围时称为“溢出溢出”,小于,小于10-38称为下溢,当称为下溢,当0处理,大于处理,大于10+38,称为上溢,系统出错!,称为上溢,系统出错!123.456 表示为表示为 0.123456
29、E+3-10000000 表示为表示为 -1e70.0000123 表示为表示为 0.123e-4第一章 C 语言概论Chapter 1 IntroductionHeFei University of Technology Xuan & li字符常量的表示字符常量的表示 表示表示ASCII字符集中的一个字符字符集中的一个字符。字符有一个整型值,即该字符字符有一个整型值,即该字符的的ASCII码值。表示方法:码值。表示方法:a 、 ! 。撇号定界的一个字符。值为:值为:97字符串常量的表示字符串常量的表示 双引号双引号“定界的字符序列。系定界的字符序列。系统会在最后一个字符后加统会在最后一个字符
30、后加NULL(ASCII码值为码值为0),标志字符串的结束。,标志字符串的结束。 如:如:”HEFEI ” ”Hello!” a 和和 ”a”的区别?的区别?内部内部 a :97 ”a”: 97NULL72101108108111330Hello!0”Hello!” 在内存中的存储结构:在内存中的存储结构:第一章 C 语言概论Chapter 1 IntroductionHeFei University of Technology Xuan & li转义字符转义字符 转义字符转义字符是是C语言表示字符的特殊方法,用来表示语言表示字符的特殊方法,用来表示ASCII字符集字符集中的控制字符,以及系统
31、占用字符如:中的控制字符,以及系统占用字符如:”。表示方法:表示方法: 字符;字符; 八进制(十六进制整数,小于八进制(十六进制整数,小于256)a 表示表示BELLb 表示表示BACKSPACE字母字母 n 表示换行表示换行r 表示回车表示回车t 表示表示TAB 表示表示? 表示表示?符号符号 表示表示” 表示表示”0 表示表示NULL八进制十六进制数八进制十六进制数 x41 101 代表代表Aprintf(“007”);printf(“语文语文n数学数学n”);表示八进制或十六进制数作为表示八进制或十六进制数作为ASCII码值所对应的字符。码值所对应的字符。第一章 C 语言概论Chapte
32、r 1 IntroductionHeFei University of Technology Xuan & li2.3 变量变量(Variable) 变量的概念变量的概念 变量是在程序中可以改变的量,变量具有三个特征:变量是在程序中可以改变的量,变量具有三个特征: 变量有名,用标识符命名;变量有名,用标识符命名; 变量有类型;变量有类型; 在程序中可以改变。在程序中可以改变。 变量变量对应于内存中对应于内存中某一地址下的几个单元,某一地址下的几个单元,变量名作为程序引变量名作为程序引用变量的标志。变量的类型确定了变量在内存中所占单元的数量及用变量的标志。变量的类型确定了变量在内存中所占单元的数
33、量及其表示的方式。变量的地址可以通过其表示的方式。变量的地址可以通过&运算获得。运算获得。内存内存int a; a变量的引用标志变量的引用标志&a对应对应a的地址。的地址。 整型变量整型变量占两个内存单占两个内存单元。元。变量必须先说明后使用变量必须先说明后使用!说明的目的是确定变量的名字和类型。!说明的目的是确定变量的名字和类型。第一章 C 语言概论Chapter 1 IntroductionHeFei University of Technology Xuan & li变量的说明变量的说明形式:形式: type 变量名表;变量名表;/*以,分隔的标识符表以,分隔的标识符表*/ int a,
34、b,c;type是类型说明词,对于整型和字符型可加修饰说明。是类型说明词,对于整型和字符型可加修饰说明。基本类型说明符:基本类型说明符:int、char、float、double修饰说明和基本说明的对应关系修饰说明和基本说明的对应关系修饰说明词修饰说明词可用于修饰的基本类型可用于修饰的基本类型singed/unsignedint、charshort/longintlong int a,b,c; 第一章 C 语言概论Chapter 1 IntroductionHeFei University of Technology Xuan & li整型变量说明整型变量说明说明词及性质如下:说明词及性质如下
35、:说明词说明词含义含义范围范围Byteint有符号一般整型有符号一般整型-32768327672short int有符号短整型有符号短整型-32768327672long int有符号长整型有符号长整型-231 +231-14unsigned无符号一般整型无符号一般整型0655352unsigned short无符号短整型无符号短整型0655352unsigned long无符号长整型无符号长整型0 232-14short a,b,c;int e,f,g;long _qs,num;unsigned d,e,f;第一章 C 语言概论Chapter 1 IntroductionHeFei Univ
36、ersity of Technology Xuan & li字符型变量的说明字符型变量的说明说明符说明符 所占字节数所占字节数 范围范围 char 1 -128 +127unsigned char 1 0 255浮点型变量的说明浮点型变量的说明说明符说明符 所占字节数所占字节数 范围范围 精度精度float 4 10-38 10+38 7位位double 8 10-308 10+308 16位位浮点型变量包含精度和范围两个概念。浮点型变量包含精度和范围两个概念。 超过精度位数后的位数值不确定。超过精度位数后的位数值不确定。float a;a=1.1111111111;超过范围溢出超过范围溢出(
37、Overflow)。超出精度部分,不准确。超出精度部分,不准确。float a,b,c;a=1.234e+20 ; b=2.345e+21;c=a*b ;超出超出1038,溢出。,溢出。 当运算结果大于当运算结果大于10+38称称为上溢,系统出错。为上溢,系统出错。 当运算结果小于当运算结果小于10-38称称为下溢,当为下溢,当0处理。处理。第一章 C 语言概论Chapter 1 IntroductionHeFei University of Technology Xuan & li2.4 基本运算与表达式基本运算与表达式 程序的核心是对数据按照算法进行处理(运算)。程序的核心是对数据按照算法
38、进行处理(运算)。C 语言提供语言提供了强大的数据运算功能。了强大的数据运算功能。数据通过运算符连接的式子称为表达式,数据通过运算符连接的式子称为表达式,表达式根据运算关系对数据运算,并得到一个值。表达式根据运算关系对数据运算,并得到一个值。变量赋值(变量赋值(Assignment)运算)运算格式:格式: V=expression;/* 将将expression的值赋给变量的值赋给变量V*/int a=2; /*说明赋值,编译时赋值。说明赋值,编译时赋值。*/int b;b=3+2; /*说明后赋值,执行时赋值。说明后赋值,执行时赋值。*/说明:说明: =是赋值号(动词);是赋值号(动词);
39、赋值运算的左值只能是变量。赋值运算的左值只能是变量。a=a+2;iCount=iCount+10;a+2=12; /*Error!*/ 赋值号两边类型应该一致,如不一致,以变量类型转换。赋值号两边类型应该一致,如不一致,以变量类型转换。 int a=2.5 ; /* 2a */第一章 C 语言概论Chapter 1 IntroductionHeFei University of Technology Xuan & li算术运算(算术运算(Arithmetic operators) 功能:完成各种类型数据的加、减、乘、除及求余数运算。功能:完成各种类型数据的加、减、乘、除及求余数运算。双目算术运
40、算(两个运算对象参加的运算)双目算术运算(两个运算对象参加的运算)运算运算规则示例+加2+3-减a-b*乘2*(-a)/除12/3.0%求余数15%4 只能对整型或字符型数据运算。只能对整型或字符型数据运算。余数符号与被除数相同。余数符号与被除数相同。注意:乘号不能省略!-12%5-2-12%(-5)1%2第一章 C 语言概论Chapter 1 IntroductionHeFei University of Technology Xuan & li自加、自减运算(单目运算)自加、自减运算(单目运算)运算符运算符前置前置后置后置运算关系运算关系+aa+a=a+1 -aa-a=a-1说明:说明:运
41、算对象只能是一个变量。运算对象只能是一个变量。前置是先运算,后引用,而后置则是先引用,后运算。前置是先运算,后引用,而后置则是先引用,后运算。2+; /* Error !*/int i, x;i=5;x=i+;/* x=i;i=i+1;*/i=5;x=+i;/* i=i+1;x=i;*/#include void main(void) int a=2,b=3,c; c=a+b; printf(“%d”,c);CHAP2EX1C语言尽语言尽可能多的可能多的从左向右从左向右结合符号结合符号形成运算形成运算符。符。第一章 C 语言概论Chapter 1 IntroductionHeFei Unive
42、rsity of Technology Xuan & li算术运算赋值算术运算赋值运算符运算符表达式示例表达式示例运算关系运算关系+=a+=3 a=a+3- -=b - -= c b=b- -c* =a* =2 a=a*2 /=s/=t s=s/t%=a%=5 a=a%5 说明:说明:运算对象的左值只能是一个变量。运算对象的左值只能是一个变量。 (a+2)+=5; /*Error !*/%=运算的对象,必须是整型或字符型。运算的对象,必须是整型或字符型。第一章 C 语言概论Chapter 1 IntroductionHeFei University of Technology Xuan & l
43、i算术运算的说明算术运算的说明运算中的类型问题运算中的类型问题运算对象的类型相同,运算结果取运算对象相同的类型。运算对象的类型相同,运算结果取运算对象相同的类型。int a;float b;b=2/3; /* 0b 0.0*/a=5.0/2.0; /*2.5a 2 */ 运算对象的类型不同,先将运算对象的类型不同,先将低等类型低等类型转换为转换为高等类型高等类型后再进行后再进行运算,运算,运算结果取高等类型运算结果取高等类型。等级原则如下:。等级原则如下:charintlongdoublefloat2*16.0+15.0doubledoubledouble运算时可以实行类型的强制转换,格式如下
44、:运算时可以实行类型的强制转换,格式如下:(type)expression 只对当前表达式起作用。只对当前表达式起作用。(float)a/(int)c+(float)(a+10)2(int)fSum第一章 C 语言概论Chapter 1 IntroductionHeFei University of Technology Xuan & li类型转换举例类型转换举例int a;float b;int c;c=a * 1.0 + b * 5 + (float) A;idfic d d ff d dc int注意:赋值运算右值表达式的类型转换以左值变量的类型为准。注意:赋值运算右值表达式的类型转换以
45、左值变量的类型为准。第一章 C 语言概论Chapter 1 IntroductionHeFei University of Technology Xuan & li运算的优先级运算的优先级 表达式的运算是分步骤进行的。因此当一个表达式中出现多种表达式的运算是分步骤进行的。因此当一个表达式中出现多种运算时,存在优先级的问题。运算时,存在优先级的问题。算术运算的优先级如下:算术运算的优先级如下:+、- -、(type) 单目运算单目运算*、/、%+、- -=、op=相同优先级,结合顺序从左到右!相同优先级,结合顺序从左到右!3*4+6/a- 6%3;相同优先级,结合顺序从右到左!相同优先级,结合顺
46、序从右到左!int a,b=2,c=2;a=b*=c+=2;可以用可以用( )调整优先级。调整优先级。c=c+2;b=b*c;a=b;第一章 C 语言概论Chapter 1 IntroductionHeFei University of Technology Xuan & li条件运算运算条件运算运算格式:格式: e1 ? e2 : e3 e1、e2、e3为表达式,当为表达式,当e1非非0时,运算结果取时,运算结果取e2的值;当的值;当e1为为0时,取时,取e3的值。的值。int a=2,b=3,c=-1,d;d=a?b:c; /*d为为3*/a=0;d=a?b:c; /*d为为-1*/逗号表
47、达式逗号表达式格式:格式: e1, e2, e3,en 用,分隔的表达式,计算顺序从用,分隔的表达式,计算顺序从左到右,表达式取值为左到右,表达式取值为en;sizeof 运算运算形式:形式: sizeof 数据对象数据对象; sizeof (类型说明符类型说明符);int a,b,c;b=sizeof a; /*b的值为的值为2(TC) */c=sizeof(float); /* c的值为的值为4*/x=(a=5,a+6)*10;第一章 C 语言概论Chapter 1 IntroductionHeFei University of Technology Xuan & liC语言常用数学函数语
48、言常用数学函数 为方便用户使用,为方便用户使用,C语言系统定义了大量函数。数学函数主要目语言系统定义了大量函数。数学函数主要目的是求解常用数学函数,如的是求解常用数学函数,如sinX等。数学函数的原型定义在系统的等。数学函数的原型定义在系统的math.h头文件中。在使用此类函数时,应在程序的开始处加如下语头文件中。在使用此类函数时,应在程序的开始处加如下语句:句: #include 函数函数数学含义数学含义sin(x)sinXcos(x)cosX tan(x) tgXfabs(x)| x |pow(x,y)xysqrt(x)log(x)lnxlog10(x)log10 x使用方法:使用方法:作
49、为一个运算项参加表达式运算。作为一个运算项参加表达式运算。yxz22cossin 函数的参数(自变量)、函数的值函数的参数(自变量)、函数的值都是都是double类型。类型。z=sqrt(sin(x)*sin(x)+cos(y)*cos(y)X第一章 C 语言概论Chapter 1 IntroductionHeFei University of Technology Xuan & li2.5 数据的输入输出数据的输入输出Input &Output C 语言没有输入输出语句,输入输出是通过系统定义的标准函语言没有输入输出语句,输入输出是通过系统定义的标准函数来实现的。数来实现的。 I/O函数的原
50、型定义在函数的原型定义在stdio.h头文件中,在引用头文件中,在引用I/O函数时,应函数时,应应在程序开始处加预处理语句包含头文件。应在程序开始处加预处理语句包含头文件。#include 输入输出的概念输入输出的概念输入输出输入输出指的是指的是内存变量或程序内存变量或程序和和外部设备间外部设备间的数据交换。的数据交换。内内存存外外设设输入输入 输出输出输入输出函数要描述:输入输出函数要描述:输入输出的量;输入输出的量;输入输出的格式;输入输出的格式;输入输出的设备。输入输出的设备。第一章 C 语言概论Chapter 1 IntroductionHeFei University of Tech