C语言 第一章 语言概述L

上传人:xins****2008 文档编号:232634985 上传时间:2023-09-23 格式:PPT 页数:69 大小:2.75MB
收藏 版权申诉 举报 下载
C语言 第一章 语言概述L_第1页
第1页 / 共69页
C语言 第一章 语言概述L_第2页
第2页 / 共69页
C语言 第一章 语言概述L_第3页
第3页 / 共69页
资源描述:

《C语言 第一章 语言概述L》由会员分享,可在线阅读,更多相关《C语言 第一章 语言概述L(69页珍藏版)》请在装配图网上搜索。

1、C C程序设计教程程序设计教程高等学校计算机基础教育教材精选高等学校计算机基础教育教材精选 崔武子崔武子 赵重敏赵重敏 李青李青 著著 第第1章章 C语言基础知识语言基础知识 11 C语言概述语言概述 12 简单简单C程序与上机步骤程序与上机步骤 13 数据类型数据类型 14 常量与变量常量与变量 15 运算符和表达式运算符和表达式 1.1 C1.1 C语言概述语言概述 1.1.1 C语言语言的发展的发展1.1.2 C语言的特点语言的特点1.1.3 C程序的执行程序的执行1.1.4 C程序形式和程序执行过程程序形式和程序执行过程1.1.1 C1.1.1 C语言的发展语言的发展 人和计算机交换信

2、息用到的语言称为人和计算机交换信息用到的语言称为计算机计算机语言。语言。为了解决某一特定问题用某一种计算机语言为了解决某一特定问题用某一种计算机语言编写的指令序列称为编写的指令序列称为程序。程序。1.1.1 C1.1.1 C语言的发展语言的发展 1.程序设计语言的发展:程序设计语言的发展:(1)机器语言机器语言 a.形式特点:由形式特点:由 0,1序列组成的指令系统序列组成的指令系统 b.不需要任何翻译工作,执行效率高不需要任何翻译工作,执行效率高 c.难记、难认、难理解,程序开发效率底,难记、难认、难理解,程序开发效率底,易出错、易出错、难调试难调试 d.不同的计算机结构具有不同的指令系统不

3、同的计算机结构具有不同的指令系统(不同的机器具有不同的语言不同的机器具有不同的语言)10000000 加加10010000 减减1.1.1 C1.1.1 C语言的发展语言的发展 (2)汇编语言汇编语言 (符号语言符号语言)a.形式特点:由一套简单的助记符来表示形式特点:由一套简单的助记符来表示 不同的机器指令不同的机器指令 b.需要相应的翻译机制需要相应的翻译机制 (汇编系统汇编系统)c.抽象层次高一些抽象层次高一些,容易理解些容易理解些,程序生产效率高程序生产效率高d.不同的计算机结构具有不同的汇编系统不同的计算机结构具有不同的汇编系统 源程序源程序(汇编语言汇编语言)汇编系统汇编系统 目标

4、程序目标程序(机器语言机器语言)1.1.1 C1.1.1 C语言的发展语言的发展 (3)面向过程的高级语言面向过程的高级语言 (算法语言,算法语言,3GL)a.形式特点:更接近于人们通常数学计算公式的描述形式特点:更接近于人们通常数学计算公式的描述 b.需要更高级的翻译系统需要更高级的翻译系统 (编译系统编译系统 compler)c.表达能力强,编程效率高表达能力强,编程效率高 d.不依赖于具体的机器,依赖于不同机器上的编译系不依赖于具体的机器,依赖于不同机器上的编译系 统统 (不同机器上的编译系统是有差异的不同机器上的编译系统是有差异的)1.1.1 C1.1.1 C语言的发展语言的发展 (4

5、)非过程化的高级语言非过程化的高级语言 (4GL)*过程化语言:用语言描述怎样做的过程过程化语言:用语言描述怎样做的过程*非过程化语言:只要告诉计算机做什么非过程化语言:只要告诉计算机做什么*其它方面的特点与面向过程的高级语言相同其它方面的特点与面向过程的高级语言相同*非过程化的高级语言的几种类型:非过程化的高级语言的几种类型:a.4GL:VB,VC b.逻辑性语言:逻辑性语言:PROLOG c.面向对面向对象象语言:语言:SmallTalkC语言的发展过程语言的发展过程 C语言的出现是与语言的出现是与UNIX OS紧密联系在一起的,随着紧密联系在一起的,随着UNIX OS的成功和在国际上的广

6、泛流行,的成功和在国际上的广泛流行,C语言在软件工程语言在软件工程里越来越受到重视。里越来越受到重视。C语言本身也有一个发展过程,目前仍处于发展和完善语言本身也有一个发展过程,目前仍处于发展和完善过程中。过程中。语言的家谱如下图所示:语言的家谱如下图所示:ALGOL 60 (1960,Algorithm language)由国际委员会设计,比由国际委员会设计,比Fortran出现的晚,但比出现的晚,但比Fortran精致精致和完善,由于它抽象,庞大而没有得到推广和流行起来和完善,由于它抽象,庞大而没有得到推广和流行起来 CPL (1963,Combined Programming Langua

7、ge)比比ALGOL大,功能强,难以学习,难以实现大,功能强,难以学习,难以实现BCPL (1967,Basic Combined Programming Language)剑桥大学的剑桥大学的Martin Richards 研制,目的是把研制,目的是把CPL加以浓缩,加以浓缩,使得既保持使得既保持CPL的基本特性,又易于学习,实现的基本特性,又易于学习,实现B (1970,取BCPL的第一个字母)由美国由美国Bell实验室的实验室的Ken Thompson研制研制对对BCPL进一步简化,用进一步简化,用B语言写出了第一个语言写出了第一个UNIX OS并在并在PDP-7机上实现。由于机上实现。

8、由于B语言采用按字编址,不适合语言采用按字编址,不适合PDP_11按字节编址进按字节编址进行存取的要求,行存取的要求,B还缺乏一定的数据类型的表达能力,编译产生的还缺乏一定的数据类型的表达能力,编译产生的是解释执行代码,速度慢,这是是解释执行代码,速度慢,这是B发展的主要障碍发展的主要障碍C语言的发展过程语言的发展过程C (1972,取,取BCPL的第二个字母的第二个字母)Bell Lab 的的D.Ritchie研制改进了研制改进了B的数据结构。的数据结构。追求的目标:保持了追求的目标:保持了BCPL和和B的精练性和接近机器硬件的优点,的精练性和接近机器硬件的优点,恢复其通用性,使其简洁、灵活

9、、高效、可移植。恢复其通用性,使其简洁、灵活、高效、可移植。1973年,年,UNIX在在C语言改写的环境下,加进了多道程序的语言改写的环境下,加进了多道程序的功能。功能。70年代中期,年代中期,UNIX和和C得到了广泛的应用,受到了越来越得到了广泛的应用,受到了越来越多的人的关注。多的人的关注。UNIX公认为第一标准的操作系统,语言成为公认为第一标准的操作系统,语言成为“近十年来近十年来对计算机程序设计实践最重要的贡献之一对计算机程序设计实践最重要的贡献之一”,成为微机、小型,成为微机、小型机、超小型机、大形机、巨型机上共同使用的一种语言。机、超小型机、大形机、巨型机上共同使用的一种语言。19

10、83年,年,D.Ritchie和和Thompson获得获得ACM图灵奖图灵奖标准标准C (1978)以以K&R合著的合著的The C Programming Language一书中的一书中的C为基为基础础ANSI C (1983)美国国家标准化协会根据美国国家标准化协会根据C语言问世以来各种版本对语言问世以来各种版本对C的发展和扩的发展和扩充,制定了新的标准,称为充,制定了新的标准,称为ANSI C,比原来的标准比原来的标准C有了很大的发有了很大的发展展 以标准以标准C为基础,相应于不同的编译系统,产生了不同版本的为基础,相应于不同的编译系统,产生了不同版本的C语言,如语言,如MSCTurbo

11、C UNIXC等,其基本语句相同,库函数不太相同等,其基本语句相同,库函数不太相同1.1.2 C语言的特点语言的特点 人们从不同的角度总结出人们从不同的角度总结出C语言的许多特点,这些特点都基语言的许多特点,这些特点都基本上反映了语言产生的环境,也体现了设计者所追求的目标。本上反映了语言产生的环境,也体现了设计者所追求的目标。下面我们从语言的发展与下面我们从语言的发展与UNIX系统的关系来讨论系统的关系来讨论C语言的语言的特点。特点。1.简洁、高效、灵活和强功能简洁、高效、灵活和强功能 C语言反映了设计者追求简洁、高效、灵活和强功语言反映了设计者追求简洁、高效、灵活和强功能的程序设计思想,这设

12、计目标体现在:能的程序设计思想,这设计目标体现在:a.C语言程序以小写字母为基础,小写字母具语言程序以小写字母为基础,小写字母具 有易读易写的特点。有易读易写的特点。b.表达方式简洁、规整、表达方式简洁、规整、C程序紧凑。程序紧凑。c.表达方式灵活。表达方式灵活。C语言的特点语言的特点 人们从不同的角度总结出人们从不同的角度总结出C语言的许多特点,这些特点都基本上反映了语言产语言的许多特点,这些特点都基本上反映了语言产生的环境,也体现了设计者所追求的目标。生的环境,也体现了设计者所追求的目标。下面我们从语言的发展与下面我们从语言的发展与UNIX系统的关系来讨论系统的关系来讨论C语言的特点。语言

13、的特点。2.数据类型丰富,适应系统软件和应用软件开发的需要数据类型丰富,适应系统软件和应用软件开发的需要 在中,数据类型的特点体现在:在中,数据类型的特点体现在:具有四种基本数据类型具有四种基本数据类型(整型、实型、字符型、整型、实型、字符型、枚举类型枚举类型)多种组合类型多种组合类型(数组、结构、联合数组、结构、联合)指针类型指针类型 允许用户自定义类型允许用户自定义类型C语言的特点语言的特点3.C语言有丰富的运算符语言有丰富的运算符(34种种,见附录见附录)为了体现程序的结构化和模块化的现代软件工程思为了体现程序的结构化和模块化的现代软件工程思想,便于大型程序的设计、调试和维护,语言采取想

14、,便于大型程序的设计、调试和维护,语言采取了如下措施:了如下措施:4.C语言是一种结构化语言,适合于大型程序的模块化语言是一种结构化语言,适合于大型程序的模块化设计设计 丰富的数据类型和运算符的结合使用,可以得到运丰富的数据类型和运算符的结合使用,可以得到运算对象的值和流程的控制,体现算对象的值和流程的控制,体现C C表达灵活和高效率的表达灵活和高效率的优点。优点。C语言的特点语言的特点 提供结构化程序所需要的基本控制流结构语句提供结构化程序所需要的基本控制流结构语句 ifelse,while,dowhile,for,switch 程序以函数的集合构成,函数具有独立的功能,程序以函数的集合构成

15、,函数具有独立的功能,并作为模块化设计的基本单位。并作为模块化设计的基本单位。包含程序的源文件,一个程序可以分割成多个源包含程序的源文件,一个程序可以分割成多个源 文件,分别对各个源文件进行编译,然后通过链文件,分别对各个源文件进行编译,然后通过链 接得到可执行的目标程序文件。接得到可执行的目标程序文件。C语言的特点语言的特点 5.C语言生成的代码质量高语言生成的代码质量高 直到现在汇编语言仍是编写系统软件的主要工具。直到现在汇编语言仍是编写系统软件的主要工具。实践证明,针对同一问题,用实践证明,针对同一问题,用C语言语言描述其代码的描述其代码的效率只比汇编语言低效率只比汇编语言低10%20%

16、,语言成为人们描述,语言成为人们描述系统软件和应用软件比较理想的工具。系统软件和应用软件比较理想的工具。UNIX操作系统等软件都是用操作系统等软件都是用C语言写的。语言写的。C语言的特点语言的特点 可移植性是可移植性是指程序可以从一个环境不加或稍加改指程序可以从一个环境不加或稍加改动就可以搬到另一个完全不动就可以搬到另一个完全不 同的环境上运行。同的环境上运行。由于语言的编译程序便于移植,使得在一个环由于语言的编译程序便于移植,使得在一个环境上用编写的许多程序可以很方便地移植到另一环境上用编写的许多程序可以很方便地移植到另一环境上。境上。6.可移植性好可移植性好C语言的特点语言的特点 7.C语

17、言已逐步发展为通用程序设计语言语言已逐步发展为通用程序设计语言 目前,语言已独立于目前,语言已独立于UNIX系统而蓬勃发展,系统而蓬勃发展,语言已广泛用于办公自动化数据库系统、专家系统、语言已广泛用于办公自动化数据库系统、专家系统、知识工程等众多的领域中。知识工程等众多的领域中。C语言的缺点语言的缺点 运算符优先级太多,不便记忆运算符优先级太多,不便记忆 还没有一个一致公认的标准还没有一个一致公认的标准 C C不是一个强类型的语言,类型检查太弱,转换不是一个强类型的语言,类型检查太弱,转换 比较随便,不太安全比较随便,不太安全C语言的缺陷主要反映在:语言的缺陷主要反映在:1.1.3 C1.1.

18、3 C程序的执行程序的执行 P2P2nC语言是由附录语言是由附录中列出的中列出的32个个关键字再加上语法规则构成的。关键字再加上语法规则构成的。1.1.3 C1.1.3 C程序的执行程序的执行 P2P2nC程序的程序的执行过程执行过程:e1.c编辑编辑编译编译e1.obj连接连接e1.exe运行运行输出结果输出结果1.1.4 C1.1.4 C程序形式和程序执行过程程序形式和程序执行过程 P2P2【例例1.1】C语言程序示例语言程序示例程序如下:程序如下:#include#include int mysum(int m,int n);main()int a,b,x;double c,y,z;c=

19、4.0;y=sqrt(c);a=10;b=20;x=mysum(a,b);z=x+y;printf(z=%lfn,z);int mysum(int m,int n)int k;k=m+n;return k;程序的运行结果是:程序的运行结果是:z=32.000000 c=4.0;c=4.0;y=y=sqrt(csqrt(c););a=10;a=10;b=20;b=20;x=x=mysum(a,bmysum(a,b););z=x+y;z=x+y;main函数函数 sqrt函数函数 其他函数其他函数文件文件math.h mysum函数函数本课程的目标本课程的目标n掌握解决简单问题的步骤掌握解决简单问

20、题的步骤。n用用C语言能够实现如下程度的功能。语言能够实现如下程度的功能。演示演示Yanshi.exe 执行时必须先选择创建菜单执行时必须先选择创建菜单1.2 1.2 简单简单C C程序与上机步骤程序与上机步骤 P3P31.2.1 简单简单C程序程序1.2.2 上机步骤上机步骤1.2.1 1.2.1 简单简单C C程序程序 P3P3【例例 1.2】编编 写写 在在 屏屏 幕幕 上上 显显 示示 一一 个个 句句 子子“Lets study the C language.”的程序。的程序。#include main()printf(Lets study the C language.);main

21、是主函数名是主函数名有且仅有有且仅有一个主函数一个主函数函函数数体体本函数体有一条输出语句本函数体有一条输出语句运行结果如下:运行结果如下:Lets study the C language.不能丢不能丢命令行命令行注意:区分大小写注意:区分大小写【例例1.3】编编写写输输出出两两个个句句子子“Lets study the C language.”和和“Its interesting.”的程序。的程序。#include main()printf(Lets study the C language.n);/*输出字符串后换行输出字符串后换行*/printf(Its interesting.n);

22、换行符换行符 注释部分注释部分/*输出字符串后换行输出字符串后换行*/运行结果如下:运行结果如下:Lets study the C language.Its interesting.函数体可有多条语句函数体可有多条语句 注意:书写格式注意:书写格式1.2.2 1.2.2 上机步骤上机步骤 P5P5n请按教材上机实践请按教材上机实践 例例1.2 例例1.31.3 1.3 数据类型数据类型数数据据类类型型基本类型基本类型整型整型整型整型 (int)长整型长整型 (long)实型实型(浮点型浮点型)单精度型单精度型(float)双精度型双精度型(double)数值类型数值类型字符类型字符类型(cha

23、r)枚举类型枚举类型(enum)构造类型构造类型(组合类型组合类型)数组类型数组类型结构体类型结构体类型(struct)共同体类型共同体类型(union)文件类型文件类型 (file )指针类型指针类型空类型空类型 (void)不返回任何类型的数据不返回任何类型的数据1.3 1.3 数据类型数据类型 P7P7【例例1.4】观察运行下面程序后观察运行下面程序后sum和和ave的的值值#include main()int a,b,sum;float ave;a=5;b=6;sum=a+b;ave=sum/2;printf(“%d,%fn”,sum,ave);sum=11?ave=?5.5?5运行结

24、果:运行结果:11,5.000000 保留六位保留六位 输出整型输出整型输出实型输出实型说说 明:明:n常用数据类型:整型、实型、字符型、常用数据类型:整型、实型、字符型、数组、结构体类型、指针类型等。数组、结构体类型、指针类型等。n一定要选择合适的数据类型。一定要选择合适的数据类型。n使用正确的输出格式说明。使用正确的输出格式说明。1.4 1.4 常量与变量常量与变量 P8P81.4.1 常量与变量的概念常量与变量的概念1.4.2 整型常量与变量整型常量与变量1.4.3 实型常量与变量实型常量与变量1.4.4 字符型常量与变量字符型常量与变量 1.4.1 1.4.1 常量与变量的概念常量与变

25、量的概念 P8P8【例例1.5】编写输出编写输出1000和和100的和与差的程序。的和与差的程序。#include#define FIRST 1000 main()int s;s=FIRST+100;printf(s=%dn,s);s=FIRST-100;printf(s=%dn,s);将用将用FIRST代替代替1000 都是常量都是常量 变变量量s=1100s=900变量的命名规则变量的命名规则 n变量名由变量名由az、AZ、09、_ 组成。组成。n变量名的第一个字符变量名的第一个字符不能是数字。不能是数字。nC语言中语言中关键字关键字不能作为变量名。不能作为变量名。注意:区分大小写注意:区

26、分大小写【例例1.6】下下面面变变量量名名中中哪哪些些是是合合法法的的,哪哪些是不合法的?些是不合法的?Int float _123 9k qbasic printf a.b year business1 business2()()()()()()()()()()()变量名要变量名要简单明了简单明了见名知意见名知意 不提倡用不提倡用函数名函数名 变量必须先定义后使用变量必须先定义后使用 main()int a,b;a=5;b=6;int sum;sum=a+b;printf(“%dn”,sum);下面程序是错误的。下面程序是错误的。定义变量定义变量 int a;制造容器制造容器 a 变量的定义

27、、多次赋值以及输出的全过程。变量的定义、多次赋值以及输出的全过程。不定值不定值a=5;5a=6;6printf(“a=%d”,a);输出输出 a=6注意:注意:a代表存储单元代表存储单元6是存储单元中的内容是存储单元中的内容1.4.2 1.4.2 整型常量与变量整型常量与变量 P10P101整型常量整型常量 n整型常量不能带小数点。整型常量不能带小数点。n%d 十十进制形式输出;进制形式输出;%o 八八进制形式输出;进制形式输出;0101%x 十六十六进制形式输出进制形式输出;0 x5a2问:问:printf(”%d,%x”,17,17);的运的运行结果?行结果?17,11#include m

28、ain()int a=0101,b=0 x5a2;printf(%d,%0,%xn,a,a,a);printf(%d,%0,%xn,b,b,b);运行结果是:运行结果是:65,101,411442,2642,5a2【例例1.7】写出下面程序的运行结果。写出下面程序的运行结果。基本型基本型长整型长整型-32768 32767-2147483648 2147483647整型常量的常用类型整型常量的常用类型 2整型变量整型变量 n整型变量中整型变量中只能存放只能存放整型数据。整型数据。n整型变量的常用类型:整型变量的常用类型:基本型基本型 int (一般占一般占2个字节)个字节)长整型长整型 lon

29、g(一般占一般占4个字节)个字节)n定义变量时必须根据需要给出其类型。定义变量时必须根据需要给出其类型。【例例1.8】写出下面程序的运行结果。写出下面程序的运行结果。#include main()int a,b;long int c;a=32767;b=32768;c=32768;printf(%d,%d,%ldn,a,b,c);32767,-32768,32768 基本型基本型长整型长整型注意:数据溢出注意:数据溢出-327683变量初始化变量初始化 n在定义变量的同时给变量赋值在定义变量的同时给变量赋值int a=5;int a;a=5;int a=5,b=6;int a,b;a=5;b=

30、6;不能,不能,b 没有定义没有定义能否改成能否改成“;”1.4.3 1.4.3 实型常量与变量实型常量与变量 P11P111实型常量实型常量【例例1.9】写出下面程序的运行结果。写出下面程序的运行结果。#include main()printf(%fn,123451234512345.1);printf(%en,12345.6788885);123451234512345.094000 按小数形式输出按小数形式输出 1实型常量实型常量【例例1.9】写出下面程序的运行结果。写出下面程序的运行结果。#include main()printf(%fn,123451234512345.1);prin

31、tf(%en,12345.6788885);123451234512345.094000 1.23457e+04按指数形式输出按指数形式输出 2实型变量实型变量 n实型变量中只能存放实型数据。实型变量中只能存放实型数据。单精度型单精度型 float 占占4个字节个字节 有效位至少有效位至少6 双精度型双精度型 double 占占8个字节个字节 有效位至少有效位至少15n实型变量无法精确地存放数据,会有误差实型变量无法精确地存放数据,会有误差。【例例1.10】观察下面程序的运行结果。观察下面程序的运行结果。#include main()float a,b;double c;a=12.3;b=12

32、345.67;c=12345.67;printf(%fn,a);printf(%fn,b);printf(%lfn,c);12.30000012345.66992212345.670000按双精度按双精度形式输出形式输出 1.4.4 1.4.4 字符型常量与变量字符型常量与变量 P13P131字符型常量字符型常量 常规字符常规字符 用单引号括起来的单个字符。用单引号括起来的单个字符。转义字符转义字符 用用开头的字符序列。开头的字符序列。n字符常量按其字符常量按其ASCII码值参加整数运算。码值参加整数运算。【例例1.11】观察下面程序的运行结果。观察下面程序的运行结果。#include mai

33、n()printf(%c,%dn,a,a);printf(%d,%cn,A+1,A+1);printf(%dn,a-A);printf(%c%cn,1,x1);printf(%c%cn,25,x15);printf(I am OKn);a,9766,B32 I am OK2字符型变量字符型变量 n字符型变量字符型变量 char 占一个字节占一个字节。n存放存放ASCII字符集中的任何字符集中的任何一个一个字符。字符。【例例1.12】观察下面程序的运行结果。观察下面程序的运行结果。#include main()char c1,c2=A,c3;int sum;c1=65;c3=101;sum=c2

34、+30;printf(%c,%cn,c1,c3);printf(%d,%dn,c1,c3);printf(sum=%dn,sum);sum=95(=1 82+1=65)A,A65,651.5 1.5 运算符和表达式运算符和表达式 P15P151.5.1 算术运算符和表达式算术运算符和表达式1.5.2 赋值运算符和表达式赋值运算符和表达式1.5.3 逗号运算符和表达式逗号运算符和表达式1.5.4 自加、自减运算符自加、自减运算符1.5.1 1.5.1 算术运算符和表达式算术运算符和表达式 P15P15n+(加)(加)-(减)(减)*(乘)(乘)/(除)(除)%(求余)(求余)-(求负)(求负)表

35、达式表达式2+3.5的值?的值?5.5 表达式表达式1/2的值?的值?0 0.5 表达式表达式1/2.0的值?的值?表达式表达式5%2的值?的值?1 表达式表达式2%5的值?的值?2 2.0%5()注意:注意:说明:说明:n“%”:两侧运算量必须是整型:两侧运算量必须是整型。n其他:其他:若运算量都是整型,则按整型计算若运算量都是整型,则按整型计算 结果为整型结果为整型 若至少有一个为实型,则先转化为双精度若至少有一个为实型,则先转化为双精度型后计算型后计算 结果为双精度型结果为双精度型 n数据类型的转换规则如下:数据类型的转换规则如下:floatintlongdoublechar转转换换方方

36、向向charfloat2算术表达式算术表达式 假设假设a的值为的值为5,写出表达式,写出表达式 a*(6+sqrt(9.0)/2)的求解过程。的求解过程。求求平方根函数平方根函数第一步:第一步:5*(6+3.0)/2)第二步:第二步:5*(9.0/2)第三步:第三步:5*4.5第四步:第四步:22.5表达式的值表达式的值变量须有确定值变量须有确定值注意:注意:n数学中的数学中的“”、“”用多层用多层“()”代替。代替。n printf(“%d”,32767+1);的运行结果是的运行结果是-32768,而不是,而不是32768。超过数据范围超过数据范围【例例1.13】将代数式将代数式 改写成改写

37、成C语言算术表达式。语言算术表达式。3.14159*(r*r)/(a+b)无乘方无乘方运算符运算符不能用不能用不能不能丢丢不能不能丢丢可省可省略略可省可省略略1.5.2 1.5.2 赋值运算符和表达式赋值运算符和表达式 P17P171赋值运算符赋值运算符 =+=-=*=/=%=简单赋值运算符简单赋值运算符 复合赋值运算符复合赋值运算符 2赋值表达式赋值表达式 ni=3*2是赋值表达式是赋值表达式32=6n赋值表达式的一般形式是:赋值表达式的一般形式是:变量变量=表达式表达式 i变量变量必须是必须是变量名变量名 任何合法任何合法表达式表达式 表达式表达式赋值表达式的值:赋值表达式的值:b=5 b

38、=b+2 57得到得到75b7表达式表达式b=b+2的值为的值为7赋值表达式的值:赋值表达式的值:当当a的值为的值为1,b的值为的值为2时时赋值表达式赋值表达式a=b 的值是的值是 多少?多少?2当当a的值为的值为1,b的值为的值为2时时赋值表达式赋值表达式b=a 的值是的值是 多少?多少?1赋值表达式赋值表达式x=(y=8)+1的值是多少?的值是多少?9赋值表达式赋值表达式x=y=5的值是多少?的值是多少?5结合方向为自右至左结合方向为自右至左注意:注意:n赋值运算符的两边数据类型不一致赋值运算符的两边数据类型不一致时:时:例如,例如,int a;a=(int)4.5;4赋给赋给a例如,例如

39、,int a;a=4.5;系统可自动转换:系统可自动转换:可人为地转换可人为地转换:自动转换成自动转换成44赋给赋给a表达式的值为表达式的值为4强制类型转换强制类型转换1.5.3 1.5.3 逗号运算符和表达式逗号运算符和表达式 P19P191逗号运算符逗号运算符n在所有运算符中优先级最低在所有运算符中优先级最低。,【例例1.15】逗号表达式的示例。逗号表达式的示例。#include main()int a,b,x,y;a=(x=8,x%5);b=x=8,x%5;printf(%d,%d,%d,a,b,(y=2,y*3);2逗号表达式逗号表达式运行结果运行结果 3,8,6a的值变为的值变为3b

40、的值变为的值变为8需输出需输出的字符的字符格式格式要求要求分隔符分隔符逗号运算符逗号运算符在此无意义在此无意义1.5.4 1.5.4 自加、自减运算符自加、自减运算符 P20P20n自加自加(+)i+;+i;都使都使i的的值增值增1n自减自减(-)i-;-i;都使都使i的的值减值减1【例例1.16】编写一个使用自加、自减运算符的程序。编写一个使用自加、自减运算符的程序。#include main()int i,j,a,b;i=j=a=b=1;+i;j+;-a;b-;printf(%d,%d,%d,%dn,i,j,a,b);运行结果如下:运行结果如下:2,2,0,0运算的先后顺序运算的先后顺序 自加(减)自加(减)算术运算符算术运算符赋值运算符赋值运算符逗号运算符逗号运算符 先先后后

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

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


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