程序设计基础套课件幻灯片完整版ppt教学教程最全电子讲义(最新).ppt

上传人:知****量 文档编号:77246816 上传时间:2023-03-13 格式:PPT 页数:652 大小:3.19MB
返回 下载 相关 举报
程序设计基础套课件幻灯片完整版ppt教学教程最全电子讲义(最新).ppt_第1页
第1页 / 共652页
程序设计基础套课件幻灯片完整版ppt教学教程最全电子讲义(最新).ppt_第2页
第2页 / 共652页
点击查看更多>>
资源描述

《程序设计基础套课件幻灯片完整版ppt教学教程最全电子讲义(最新).ppt》由会员分享,可在线阅读,更多相关《程序设计基础套课件幻灯片完整版ppt教学教程最全电子讲义(最新).ppt(652页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、第第1章章 绪论绪论1.1 程序设计语言程序设计语言 程程序序设设计计语语言言是是一一组组用用来来定定义义计计算算机机程程序序的的语语法法规规则则,即即程程序序设设计计语语言言必必须须是是计计算算机能够理解的机能够理解的 用用程程序序设设计计语语言言编编写写的的程程序序称称为为源源程程序序(source program)或源代码或源代码(source code)程序设计语言的发展:程序设计语言的发展:机器语言机器语言(machine language)汇编语言汇编语言(assembly language)高级语言高级语言解释方式解释方式编译方式编译方式1.2 C语言概况语言概况一、一、C语言的

2、发展历史语言的发展历史 C语言标准的变迁语言标准的变迁C89ANSI CC90ISO/IEC 9899:1990C99ISO/IEC 9899:1999C11ISO/IEC 9899:2011 注:注:Microsoft Visual C+(简称简称VC)仅支持仅支持C90二、二、C语言的特点语言的特点1.3 C语言程序的基本结构语言程序的基本结构【例【例1.1】输出输出Hello!#include int main(void)printf(Hello,the world!n);return 0;【例【例1.2】求两个整数的和并输出求两个整数的和并输出#include int main(voi

3、d)int a,b,sum;a=10;b=20;sum=a+b;printf(sum=%dn,sum);return 0;C 语言程序书写格式自由语言程序书写格式自由【例【例1.1】输出输出Hello!#include int main(void)printf(Hello,the world!n);return 0;#include int main(void)printf(Hello!n);return 0;为为增增强强程程序序的的可可读读性性,通通常常书书写写C语语言言程序时应遵循以下规则:程序时应遵循以下规则:一行内仅写一条语句一行内仅写一条语句正反大括号分别各占一行正反大括号分别各占一

4、行每对大括号上下对齐每对大括号上下对齐语句采用缩进格式,错落有致语句采用缩进格式,错落有致1.4 C语言程序的上机执行过程语言程序的上机执行过程可执行文件可执行文件(.exe)Executable File目标文件目标文件(.obj)Object File源文件源文件(.c)Source Fileedit编辑编辑compile编译编译其他目标文件其他目标文件(可选可选)C标准库标准库C standard library link连接连接第第2章章 标记、类型与表达式标记、类型与表达式2.1 标记标记 标标记记(token)是是具具有有唯唯一一含含义义的的语语言言的的最小单位,分为五种:最小单位

5、,分为五种:关键字关键字(keyword)标识符标识符(identifier)常量常量(constant)串字面量串字面量(string literal)标点符号标点符号(punctuator)一、关键字一、关键字 关关键键字字也也称称为为保保留留字字,所所有有关关键键字字都都有有固定的含义,且其含义不可改变固定的含义,且其含义不可改变 C语言共有语言共有44个关键字:个关键字:autoexternshortwhilebreakfloatsigned_Alignascaseforsizeof_Alignofchargotostatic_Atomicconstifstruct_Boolconti

6、nueinlineswitch_Complexdefaultinttypedef_Genericdolongunion_Imaginarydoubleregisterunsigned_Noreturnelserestrictvoid_Static_assertenumreturnvolatile_Thread_local二、标识符二、标识符 标识符用于表示程序中的标识符用于表示程序中的对象对象(object)函数函数(function)结结 构构 体体(structure)的的 标标 记记(tag)或或 成成 员员(member)共同体共同体(union)的标记或成员的标记或成员枚举枚举(en

7、umeration)的标记或成员的标记或成员typedef名名(typedef name)标号名标号名(label name)宏名宏名(macro name)宏参数宏参数(macro parameter)标标识识符符由由小小写写字字母母、大大写写字字母母、数数字字、下下画画线线、通通用用字字符符名名(universal character name)或或实实现现定定义义的的字字符符(implementation-defined character)构成构成 注意:注意:数字不能作为标识符的第一个字符数字不能作为标识符的第一个字符关键字不能作为标识符关键字不能作为标识符 标识符的例子:标识符的例

8、子:areaPerimeter_3wu03b1w VC允允许许在在标标识识符符中中使使用用$,因因此此,$123在在VC中是标识符中是标识符 不是标识符的例子:不是标识符的例子:6abccheck-itemint 大大写写字字母母和和小小写写字字母母是是有有区区别别的的,即即所所谓大小写敏感谓大小写敏感Ageage C语语言言对对标标识识符符的的最最大大长长度度没没有有具具体体的的限限制制,VC允允许许标标识识符符的的最最大大长长度度为为247个个字字符符 应应该该选选择择相相应应的的英英文文单单词词或或其其缩缩写写作作为为标识符,做到见名知义标识符,做到见名知义 表示长方体的长、宽、高表示长

9、方体的长、宽、高abclengthwidthheight(更合适更合适)三、常量三、常量 在在程程序序运运行行过过程程中中,其其值值不不变变的的量量称称为为常量。常量分为四种类型:常量。常量分为四种类型:整数常量整数常量(integer constant)浮点常量浮点常量(floating constant)枚举常量枚举常量(enumeration constant)字符常量字符常量(character constant)1、整数常量、整数常量 整数包括正整数、零和负整数整数包括正整数、零和负整数 整整数数常常量量只只包包括括正正整整数数和和零零,不不包包括括负负整数。整数常量分为:整数。整数

10、常量分为:十进制整数常量十进制整数常量八进制整数常量八进制整数常量十六进制整数常量十六进制整数常量 十十进进制制整整数数常常量量由由 09 组组成成,且且以以非非零数字开头零数字开头1231000 八八进进制制整整数数常常量量由由 07 组组成成,且且以以 0 开头,开头,或者只有一个或者只有一个 00170 十十六六进进制制整整数数常常量量由由 AF(或或af)、09 组成,且以组成,且以 0 x 或或 0X 开头开头0 x1a0XD5【例例2.1】八八进进制制、十十进进制制、十十六六进进制制整整数数常量之间的混合运算常量之间的混合运算#include int main(void)print

11、f(sum=%dn,014+12+0 xc);return 0;2、浮点常量、浮点常量 数数学学中中的的实实数数包包括括有有理理数数和和无无理理数数。其其中中,有有理理数数包包括括整整数数和和分分数数;无无理理数数是是无无限限不循环小数不循环小数 计计 算算 机机 中中 的的 浮浮 点点 数数(floating-point number)只只能能近近似似地地表表示示值值在在某某个个范范围围之之内内的的有有理理数数和和一一些些特特殊殊值值,如如NAN(非非数数值值)、+INF(正无穷大正无穷大)、-INF(负无穷大负无穷大)等等 浮浮点点常常量量是是非非负负的的浮浮点点数数,其其十十进进制制书书

12、写形式有两种:写形式有两种:小数表示法小数表示法 由数字由数字09和小数点组成,必须有小数点和小数点组成,必须有小数点123.00.4520.01.25123.4520.0指数表示法指数表示法60000.0的指数表示法为的指数表示法为6E40.000035的指数表示法为的指数表示法为3.5e-5十进制整数常量十进制整数常量E符号位符号位 十进制整数常量十进制整数常量浮点常量的小数表示法浮点常量的小数表示法E符号位符号位 十进制整数常量十进制整数常量3、枚举常量、枚举常量 枚举常量是类型为枚举常量是类型为int的标识符的标识符4、字符常量、字符常量 ASCII码码-American Standa

13、rd Code for Information Interchange 字符常量分为:字符常量分为:整整 数数 字字 符符 常常 量量(integer character constant)宽字符常量宽字符常量(wide character constant)整整数数字字符符常常量量是是由由一一对对单单引引号号括括起起来来的的一一个个或或多多个个字字符符,其其类类型型为为int,在在内内存存中中占占4个字节个字节aababc 本本课课程程讨讨论论的的字字符符常常量量是是指指单单引引号号内内只只有一个字符的整数字符常量有一个字符的整数字符常量 单引号内的字符可以是普通字符单引号内的字符可以是普通

14、字符?A09 printf(%d,%d,%d,%d,A,b+2,0,1+3);单单引引号号内内的的字字符符还还可可以以是是转转义义序序列列(escape sequence)141x61u03b1四、串字面量四、串字面量 串字面量分为三种:串字面量分为三种:字符串字面量字符串字面量(character string literal)UTF-8串字面量串字面量(UTF-8 string literal)宽串字面量宽串字面量(wide string literal)本课程仅讨论字符串字面量本课程仅讨论字符串字面量 字字符符串串字字面面量量是是用用一一对对双双引引号号括括起起来来的的零个或多个字符零个

15、或多个字符 在在翻翻译译的的第第七七个个阶阶段段,空空字字符符(null character)即即 0 被被加加到到字字符符串串字字面面量量的的末末尾尾,然然后后字字符符串串字字面面量量以以数数组组元元素素类类型型为为char的数组的形式存储在内存中的数组的形式存储在内存中 如如果果字字符符串串字字面面量量中中不不含含0,则则该该字字符符 串串 字字 面面 量量 又又 称称 为为 字字 符符 串串(character string),即即字字符符串串是是以以空空字字符符0结结束束的的连续字符序列连续字符序列ab0c 是字符串字面量,但不是字符串是字符串字面量,但不是字符串abc 既是字符串字面

16、量,又是字符串既是字符串字面量,又是字符串 字字符符串串的的长长度度是是指指空空字字符符前前的的字字符符在在内内存存中中所所占占的的字字节节数数。因因此此,长长度度为为n的的字字符符串,在内存中占串,在内存中占n+1个字节个字节字符串字符串字符串的长度字符串的长度占用内存占用内存/字节字节01 12hello56hellon67hx65llon67c是字符常量,占是字符常量,占4个字节个字节c是字符串,占是字符串,占2个字节个字节【例【例2.2】输出字符串输出字符串#include int main(void)printf(12345678901234567890n);printf(abcna

17、bdbcn);printf(efgr);printf(110 x49tijkn);return 0;五、标点符号五、标点符号2.2 类型类型 类型类型(type)分为:分为:基本类型基本类型(basic type)枚举类型枚举类型(enumerated type)空类型空类型(void)派生类型派生类型(derived type)基本类型分为四种:基本类型分为四种:char有符号整数类型有符号整数类型(signed integer type)标准有符号整数类型标准有符号整数类型(standard signed integer type)扩展有符号整数类型扩展有符号整数类型(extended s

18、igned integer type)无符号整数类型无符号整数类型(unsigned integer type)标准无符号整数类型标准无符号整数类型(standard unsigned integer type)扩展无符号整数类型扩展无符号整数类型(extended unsigned integer type)浮点类型浮点类型(floating type)实数浮点类型实数浮点类型(real floating type)复数类型复数类型(complex type)在在声声明明(declaration)中中必必须须使使用用类类型型说明符说明符(type specifier)本节中用斜体字表示类型说

19、明符,例如:本节中用斜体字表示类型说明符,例如:charsigned charint 或或 signed 或或 signed intunsigned charunsigned 或或 unsigned intfloatdouble 字符类型字符类型(character type)包括:包括:charsigned charunsigned char 整数类型整数类型(integer type)包括:包括:char枚举类型枚举类型有符号整数类型有符号整数类型无符号整数类型无符号整数类型 实数类型实数类型(real type)包括:包括:整数类型整数类型实数浮点类型实数浮点类型 算数类型算数类型(ar

20、ithmetic type)包括:包括:整数类型整数类型浮点类型浮点类型2.3 变量与常用类型说明符变量与常用类型说明符一、变量一、变量 对对象象(object)是是执执行行环环境境中中的的数数据据存存储储区,其内容表示值区,其内容表示值 变量变量(variable)是有名字的对象是有名字的对象 变变量量声声明明(variable declaration)的的简简单形式:单形式:类型说明符类型说明符 变量名变量名1,变量名变量名2,变量名变量名n;其中,变量名是一个标识符其中,变量名是一个标识符int area;int length,width;变量必须先声明后使用变量必须先声明后使用 C语语

21、言言允允许许在在程程序序的的任任何何位位置置声声明明变变量量,只要满足先声明后使用的原则即可只要满足先声明后使用的原则即可 VC要要求求函函数数内内的的变变量量声声明明必必须须紧紧接接在在开始大括号之后开始大括号之后【例【例2.3】变量声明的位置变量声明的位置#include int main(void)int length,width;length=10;width=8;int area;/符合符合C语言的语法,但在语言的语法,但在VC中是错误的中是错误的 area=length*width;printf(area=%dn,area);return 0;#include int main(v

22、oid)int length,width,area;length=10;width=8;area=length*width;printf(area=%dn,area);return 0;二、二、int 类型类型 int 属于整数类型属于整数类型 在在不不同同的的C编编译译系系统统中中,int 类类型型的的数数据据所所占占用用的的内内存存大大小小不不同同,能能表表示示的的数数据据范范围也不同围也不同 在在VC中中,int 类类型型的的数数据据占占 4 个个字字节节,能表示的数据范围是能表示的数据范围是-231231-1即:即:-21474836482147483647【例【例2.4】int 类型

23、数据的溢出类型数据的溢出#include int main(void)int x,y;x=2147483646+1;y=2147483646+2;/溢出溢出 printf(x=%dn,x);printf(y=%dn,y);return 0;三、三、char 类型类型 char 属于整数类型属于整数类型 char 类型的数据占类型的数据占1个字节个字节 在在VC中中,char类类型型的的数数据据默默认认能能表表示示的数据范围是的数据范围是-128127【例【例2.5】使用库函数使用库函数 putchar 输出字符输出字符#include int main(void)char ch;ch=c;pu

24、tchar(ch);putchar(o);putchar(155);putchar(n);return 0;【例例2.6】使使用用库库函函数数 getchar 输输入入小小写写字字母,输出其对应的大写字母母,输出其对应的大写字母#include int main(void)char ch;ch=getchar();putchar(ch-32);putchar(n);return 0;【例例2.7】输输入入两两个个数数字字字字符符,求求其其和和并输出并输出char ch1,ch2;int n1,n2,sum;ch1=getchar();ch2=getchar();n1=ch1-0;n2=ch2-

25、0;sum=n1+n2;printf(sum=%dn,sum);四、四、float 类型和类型和 double 类型类型 float 和和 double 都属于实数浮点类型都属于实数浮点类型 双双精精度度浮浮点点类类型型 double 比比单单精精度度浮浮点点类类型型 float 的的精精度度更更高高,表表示示数数据据的的范范围围更更大大 在在不不同同的的C编编译译系系统统中中,float 类类型型的的数数据据和和 double 类类型型的的数数据据所所占占用用的的内内存存大大小小不同,能表示的数据范围也不同不同,能表示的数据范围也不同在在VC中,中,float 和和 double 的区别的区

26、别float类型数据类型数据double类型数据类型数据数据长度4字节8字节最小正值1.17549435110-382.225073858507201410-308最大正值3.40282346610381.797693134862315810308精度 6位15位 浮浮点点常常量量默默认认是是 double 类类型型,在在浮浮点点常量后加后缀常量后加后缀 f 或或 F 则是则是 float 类型类型7.45/double 类型类型7.45f/float 类型类型7.45F/float 类型类型 在在VC中中,将将double类类型型的的浮浮点点常常量量存存放到放到float类型的变量中,会产生

27、警告:类型的变量中,会产生警告:truncation from const double to floatfloat price;price=7.45;/产生警告产生警告double price;price=7.45;float price;price=7.45f;2.4 运算符与表达式运算符与表达式一、表达式一、表达式 表表 达达 式式(expression)是是 由由 运运 算算 符符(operator)和和运运算算对对象象(operand)构构成成的的序序列。表达式具有以下一个或多个功能:列。表达式具有以下一个或多个功能:描述一个值的计算描述一个值的计算指定一个对象或一个函数指定一个对象

28、或一个函数产生副作用产生副作用(side effect)访访问问易易变变对对象象(volatile object),修修改改对对象象或或文文件件(file),或或者者调调用用包包含含这这些些操操作作的函数的函数(function)都是副作用都是副作用 基本表达式基本表达式(primary expression)包括:包括:标识符标识符常量常量串字面量串字面量用小括号括起来的表达式用小括号括起来的表达式generic选择选择 根根据据运运算算符符的的运运算算对对象象的的数数量量,可可将将运运算符分为:算符分为:单目运算符单目运算符(unary operator)双目运算符双目运算符(binary

29、 operator)三目运算符三目运算符(ternary operator)二、乘法类运算符二、乘法类运算符 乘乘 法法 类类 运运 算算 符符(multiplicative operators)有三个,分别是:有三个,分别是:乘法运算符乘法运算符*除法运算符除法运算符/模运算符模运算符(又称求余数运算符又称求余数运算符)%乘法类运算符都是双目运算符乘法类运算符都是双目运算符5.0/2.0 的值是的值是 2.55.0/2的值是的值是 2.55/2.0的值是的值是 2.55/2的值是的值是 28/-3的值是的值是-2表达式表达式 5.0/2.0的值是的值是 2.5表达式表达式 5.0/2的值是的

30、值是 2.5表达式表达式 5/2.0的值是的值是 2.5表达式表达式 5/2的值是的值是 2表达式表达式 8/-3的值是的值是-2表达式表达式 5.0%2.0 错误错误表达式表达式 5.0%2错误错误表达式表达式 5%2.0错误错误表达式表达式 5%2的值是的值是 1表达式表达式 8%-3的值是的值是 2三、加法类运算符三、加法类运算符 加加法法类类运运算算符符(addtive operators)有有两个,分别是:两个,分别是:加法运算符加法运算符+减法运算符减法运算符-加法类运算符都是双目运算符加法类运算符都是双目运算符四、运算符的优先级与结合性四、运算符的优先级与结合性 优优先先级级(p

31、recedence)高高的的运运算算符符先先绑绑定定(binding)运算对象运算对象6+2*5 结合性结合性(associativity)分两种:分两种:左结合性左结合性(left-associativity)右结合性右结合性(right-associativity)优优先先级级相相同同的的运运算算符符按按结结合合性性绑绑定定运运算算对对象象,左左结结合合性性指指左左边边的的运运算算符符先先绑绑定定运运算算对对象象,依依次次向向右右进进行行;右右结结合合性性指指右右边边的的运运算符先绑定运算对象,依次向左进行算符先绑定运算对象,依次向左进行6-3+53+7-2*53+7-(2*5)(3+7)

32、-(2*5)五、五、sizeof 运算符运算符 sizeof 运运算算符符是是单单目目运运算算符符,表表达达式式的的值值是是运运算算对对象象所所占占内内存存大大小小(按按字字节节计计算算),其其运运算算对对象象是是表表达达式式或或用用小小括括号号括括起起来来的的类类型名型名printf(sizeof(char)=%dn,sizeof(char);printf(sizeof(int)=%dn,sizeof(int);printf(sizeof(float)=%dn,sizeof(float);printf(sizeof(double)=%dn,sizeof(double);printf(size

33、of 5=%dn,sizeof 5);printf(sizeof A=%dn,sizeof A);printf(sizeof 5.0f=%dn,sizeof 5.0f);printf(sizeof 5.0=%dn,sizeof 5.0);printf(sizeof hello=%dn,sizeof hello);int n;printf(sizeof n=%dn,sizeof n);printf(sizeof 2+3=%dn,sizeof 2+3);printf(sizeof(2+3)=%dn,sizeof(2+3);六、一元加运算符与一元减运算符六、一元加运算符与一元减运算符一一元元加加运运

34、算算符符(unary plus operator)+是是单目运算符,表达式的值是运算对象的值单目运算符,表达式的值是运算对象的值一一元元减减运运算算符符(unary minus operator)-是是单单目目运运算算符符,表表达达式式的的值值是是运运算算对对象象的的相相反反数数 如如果果运运算算对对象象是是整整数数类类型型,要要先先对对运运算算对对 象象 的的 值值 进进 行行 整整 数数 提提 升升(integer promotions),表表达达式式的的类类型型是是提提升升以以后后的的类型类型 对对 于于 常常 用用 类类 型型 char、int、float和和double,只只有有ch

35、ar类类型型的的值值需需要要整整数数提提升升,即将即将char类型的值转换为类型的值转换为int类型的值类型的值char ch;printf(sizeof+ch=%dn,sizeof+ch);printf(sizeof ch=%dn,sizeof ch);printf(sizeof-ch=%dn,sizeof-ch);printf(sizeof ch=%dn,sizeof ch);七、常用算术转换七、常用算术转换 乘乘法法类类运运算算符符的的运运算算对对象象要要执执行行常常用用算算术转换术转换(usual arithmetic conversions)如如果果加加法法类类运运算算符符的的两两个

36、个运运算算对对象象都都是是算术类型,也要执行常用算术转换算术类型,也要执行常用算术转换 对对于于常常用用类类型型char、int、float和和double,常用算术转换的含义如下:常用算术转换的含义如下:如如果果其其中中一一个个运运算算对对象象是是double类类型型,另另一一个个运算对象的值被转换为运算对象的值被转换为double类型的值类型的值如如果果以以上上条条件件不不满满足足,并并且且其其中中一一个个运运算算对对象象是是float类类型型,另另一一个个运运算算对对象象的的值值被被转转换换为为float类型的值类型的值如如果果以以上上两两个个条条件件不不满满足足,对对两两个个运运算算对

37、对象象进进行行整整数数提提升升,即即char类类型型运运算算对对象象的的值值被被转转换换为为int类型的值类型的值char ch1,ch2;int i;float f1,f2;double d;表达式表达式 ch1+d表达式表达式 f1+f2表达式表达式 i*ch1表达式表达式 ch1-ch2八、赋值运算符八、赋值运算符 赋赋值值运运算算符符(assignment operators)是是双目运算符,分为两种:双目运算符,分为两种:简单赋值运算符简单赋值运算符(simple assignment operator)复合赋值运算符复合赋值运算符(compound assignment opera

38、tors)1、简单赋值运算符、简单赋值运算符 简简单单赋赋值值运运算算符符(在在不不至至混混淆淆的的情情况况下下又又 称称 赋赋 值值 运运 算算 符符)是是 =,赋赋 值值 表表 达达 式式(assignment expression)有两个功能:有两个功能:求赋值表达式的值求赋值表达式的值产生副作用产生副作用 赋赋值值表表达达式式的的值值是是赋赋值值以以后后左左运运算算对对象象的值的值 赋值表达式的类型是左运算对象的类型赋值表达式的类型是左运算对象的类型 副副作作用用是是将将右右运运算算对对象象的的值值转转换换为为赋赋值值表表达达式式的的类类型型的的值值,并并将将转转换换后后的的值值存存储

39、储到到左运算对象中左运算对象中 注意:右运算对象的类型并没有改变注意:右运算对象的类型并没有改变double d;表达式表达式 d=9【例【例2.10】求赋值表达式的值求赋值表达式的值#include int main(void)int a,b;printf(%dn,a=b=2+3);printf(a=%dn,a);printf(b=%dn,b);return 0;赋赋值值运运算算符符的的左左运运算算对对象象必必须须是是可可修修改改的左值的左值(modifiable lvalue)基本类型的变量属于可修改的左值基本类型的变量属于可修改的左值 左左值值(lvalue)是是一一个个表表达达式式(具

40、具有有除除void以以外外的的对对象象类类型型)。该该表表达达式式潜潜在在地地标标明明一一个个对对象象,即即左左值值是是可可以以标标明明一一块块内内存存的的表达式表达式 右值右值(rvalue)是表达式的值是表达式的值表达式表达式 5=2+3 是错误的是错误的 在在变变量量声声明明时时给给变变量量赋赋值值,称称为为初初始始化化(initialization)int i=0;double d1=3.6,d2=7.2;int a=b=c=100;/错误错误int a=100,b=100,c=100;/正确正确 赋赋值值运运算算符符的的两两个个运运算算对对象象的的类类型型不不同同时发生的类型转换,可

41、能会丢失数据时发生的类型转换,可能会丢失数据int i;表达式表达式 i=3.6char ch;表达式表达式 ch=a对对于于常常用用类类型型char、int、float和和double,按下表进行的类型转换通常是可接受的按下表进行的类型转换通常是可接受的左运算对象的类型左运算对象的类型 右运算对象的类型右运算对象的类型doublefloat、int 或 charfloatint 或 charintchar 当当左左运运算算对对象象的的类类型型为为 int,右右运运算算对对象的类型为象的类型为 float 或或 double 时,截断取整时,截断取整#include int main(void

42、)int i;printf(%dn,i=3.6);printf(i=%dn,i);return 0;2、复合赋值运算符、复合赋值运算符 简简复复合合赋赋值值运运算算符符有有10个个,本本节节介介绍绍其其中的中的5个,分别是:个,分别是:*=/=%=+=-=除除了了左左值值E1仅仅被被计计算算一一次次,赋赋值值表表达达式式 E1 op=E2 等等价价于于E1=E1 op(E2),其其中,中,op是是*、/、%、+或或-中的任何一个中的任何一个r*=2+3等价于等价于r=r*(2+3)#include int main(void)int r;r=3;printf(%dn,r*=2+3);print

43、f(r=%dn,r);return 0;执执行行序序列列中中某某些些特特定定的的点点被被称称为为序序点点(sequence point)表表达达式式A和和表表达达式式B之之间间有有序序点点,意意味味着着与与表表达达式式A相相关关的的每每一一个个值值计计算算和和副副作作用用完完成成后后,与与表表达达式式B相相关关的的每每一一个个值值计计算算和和副作用才开始副作用才开始 如如果果与与表表达达式式相相关关的的副副作作用用有有多多个个,C语语言言并并没没有有规规定定这这多多个个副副作作用用发发生生的的先先后后次次序,仅规定这多个副作用在序点之前完成序,仅规定这多个副作用在序点之前完成int a=12;

44、a+=a-=a*a;/不推荐使用不推荐使用九、后缀增九、后缀增1运算符与后缀减运算符与后缀减1运算符运算符 后后缀缀增增1运运算算符符(postfix increment operator)是是+,属属于于单单目目运运算算符符,其其运运算算对象必须是可修改的左值对象必须是可修改的左值表达式表达式 5+是错误的是错误的 由由后后缀缀增增1运运算算符符和和运运算算对对象象构构成成的的表表达式有两个功能:达式有两个功能:求表达式的值求表达式的值产生副作用产生副作用 求表达式的值在副作用之前完成求表达式的值在副作用之前完成 表表达达式式的的值值是是运运算算对对象象的的值值;表表达达式式的的类型是运算对

45、象的类型类型是运算对象的类型 副作用是使运算对象的值增副作用是使运算对象的值增1 后后缀缀减减1运运算算符符(postfix decrement operator)是是-,除除了了副副作作用用是是使使运运算算对对象象的的值值减减1以以外外,后后缀缀减减1运运算算符符与与后后缀缀增增1运运算符是类似的算符是类似的int a=20,b=10;printf(%dn,a+);printf(a=%dn,a);printf(%dn,b-);printf(b=%dn,b);十、前缀增十、前缀增1运算符与前缀减运算符与前缀减1运算符运算符 前前 缀缀 增增 1运运 算算 符符(prefix increment

46、 operator)是是+,属属于于单单目目运运算算符符,其其运运算算对象必须是可修改的左值对象必须是可修改的左值表达式表达式+5 是错误的是错误的 由由前前缀缀增增1运运算算符符和和运运算算对对象象构构成成的的表表达式有两个功能:达式有两个功能:求表达式的值求表达式的值产生副作用产生副作用 表表达达式式的的值值是是运运算算对对象象的的值值加加1;表表达达式的类型是运算对象的类型式的类型是运算对象的类型 副作用是使运算对象的值增副作用是使运算对象的值增1 表达式表达式+E 等价于等价于 E+=1 前前 缀缀 减减 1运运 算算 符符(prefix decrement operator)是是-,

47、除除了了“表表达达式式的的值值是是运运算算对对象象的的值值减减1”和和“副副作作用用是是使使运运算算对对象象的的值值减减1”以以外外,前前缀缀减减1运运算算符符与与前前缀缀增增1运运算算符是类似的符是类似的int a=20,b=10;printf(%dn,+a);printf(a=%dn,a);printf(%dn,-b);printf(b=%dn,b);int a=3,b;b=+a+2;十一、类型转换运算符十一、类型转换运算符 类类型型转转换换运运算算符符(cast operator)是是(type-name),属属于于单单目目运运算算符符,表表达达式式的的值值是是将将运运算算对对象象的的值

48、值转转换换为为 type-name 类类型得到的值,表达式的类型是型得到的值,表达式的类型是 type-name 注意:运算对象的类型并没有改变注意:运算对象的类型并没有改变double d=8.7;printf(%dn,(int)d%3);printf(sizeof d=%dn,sizeof d);printf(d=%fn,d);十二、逗号运算符十二、逗号运算符 逗逗号号运运算算符符(comma operator)“,”是是双双目目运运算算符符,表表达达式式的的值值是是右右运运算算对对象象的的值值,表达式的类型是右运算对象的类型表达式的类型是右运算对象的类型表达式表达式 5,3.6 逗号运算

49、符的两个运算对象之间有序点逗号运算符的两个运算对象之间有序点int a=3,b=5,t;t=a;a=b;b=t;等价于等价于int a=3,b=5,t;t=a,a=b,b=t;逗号既是分隔符也是运算符逗号既是分隔符也是运算符printf(%d%d,10,(20,30);第三章第三章 顺顺 序序 结结 构构第第3 3章:顺序结构章:顺序结构3.1 结结构化程序构化程序设计设计3.1.1 算法的基本概念算法的基本概念程序程序对对数据的数据的处处理流程:理流程:程序的主要功能就是程序的主要功能就是对对数据的数据的处处理,其整个流程主要包括数理,其整个流程主要包括数据的据的输输入、数据的入、数据的处处

50、理、数据的理、数据的输输出。出。程序程序程序程序=数据数据数据数据结结结结构构构构+算法。算法。算法。算法。算法:算法:算法:算法:简简简简而言之,就是解决而言之,就是解决而言之,就是解决而言之,就是解决问题问题问题问题的方法与步的方法与步的方法与步的方法与步骤骤骤骤。程序程序程序程序设计语设计语设计语设计语言:言:言:言:是程序开是程序开是程序开是程序开发发发发工具,即是将算法工具,即是将算法工具,即是将算法工具,即是将算法转转转转化化化化为为为为程程程程序的开序的开序的开序的开发发发发工具。工具。工具。工具。程序:程序:程序:程序:算法的具体算法的具体算法的具体算法的具体实现实现实现实现。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 应用文书 > 工作计划

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁