没有幻灯片标题

Similar documents
CC213

计算概论A B03 C++语言的基本成分 - 运算成分(2)

PowerPoint 演示文稿

FY.DOC

新版 明解C言語入門編

新・解きながら学ぶC言語

数据结构

新・明解C言語入門編『索引』

Microsoft Word - 正文.doc

<4D F736F F F696E74202D20B5DA32D5C220B5A5C6ACBBFA433531D3EFD1D4BBF9B4A1>

任务 3 加法运算练习游戏 019 这就需要用到 C# 语言的基础语法, 如数据类型 运算符和控制语句, 还需要其他的常用控件 在此任务的完成过程中, 读者可以接触到 C# 的数据类型 变量常量 运算符 控制语句等基础语法, 掌握以上知识点及其在软件开发中的应用 3.2 相关知识 预定义

Microsoft PowerPoint - 5. 指针Pointers.ppt [兼容模式]

chap07.key

Microsoft PowerPoint - 03.Fortran程序设计基础1

C++ 程序设计 告别 OJ1 - 参考答案 MASTER 2019 年 5 月 3 日 1

《C语言程序设计》教材习题参考答案

<4D F736F F D205A572D2D A1AAA1AAD4ACE7F42D43D3EFD1D4CAB5D1B5BDCCB3CC2E646F6378>

ch02_Basic

新版 明解C++入門編

2015年计算机二级(C语言)模拟试题及答案(三)

PowerPoint 演示文稿

6 C51 ANSI C Turbo C C51 Turbo C C51 C51 C51 C51 C51 C51 C51 C51 C C C51 C51 ANSI C MCS-51 C51 ANSI C C C51 bit Byte bit sbit

内容简介 本书从结构化程序设计技术出发, 以 C 程序设计语言为载体, 以 Windows 下的 Visual C 为程序调试和运行平台, 通过对典型实例的算法及相应 C 语言代码的描述, 介绍了在程序设计过程中如何对问题进行分析 如何组织数据和如何描述解决问题, 揭示了在计算机应用过

第3章 Java语言基础

untitled

第 1 章 C 语言的发展 特点与程序结构 本章主要介绍了 C 语言的发展 特点和程序结构, 重点阐述了程序设计的基本方法, 包括面向过程的程序设计和面向对象的程序设计 ; 算法的概念及其表示, 包括用自然语言 流程图 伪代码 N-S 流程图的表示方法 ; 最后介绍了 C 语言应用程序的开发过程 1

Generated by Unregistered Batch DOC TO PDF Converter , please register! 浙江大学 C 程序设计及实验 试题卷 学年春季学期考试时间 : 2003 年 6 月 20 日上午 8:3

没有幻灯片标题

新・解きながら学ぶJava

《C语言程序设计》第2版教材习题参考答案

内容简介 本书以教育部高等学校计算机科学与技术教学指导委员会编制的 关于进一步加强高等学校计算机基础教学的意见暨计算机基础课程教学基本要求 中有关计算机程序设计基础 (C 语言 ) 课程教学基本要求为指导, 结合教育部考试中心最新的全国计算机等级考试二级 (C 语言程序设计 ) 考试大纲要求和作者多

内容简介 C 语言是一种结构化程序设计语言, 本书通过大量的实例讲解 C 语言程序设计的方法, 主要内容包括 C 语言程序的结构 数据类型 运算符和表达式 数据的输入和输出 选择结构 循环结构 数组 函数 指针 编译预处理 结构和共用体 位运算 文件等 每个单元包括小结 实验 习题等 本书可作为高等

Microsoft Word - YYCXfm.DOC

STRUCT Tag OptTag ID Tag ID 7..4 Declarators VarDec ID VarDec LB INT RB FunDec ID LP VarList RP ID LP RP VarList ParamDec COMMA VarList ParamDec Param

nooog

第一章 绪论

JAVA 单元 2.1 四则运算机 ( 一 ) 单元教学进度设计 教学环节 教学内容 教师学生活动活动 反馈 反馈课前作业完成情况 反馈加分 1. 下面哪些是合法的变量名? ( ) A.2variable 答案 :DEG B..variable2 解答 : C.._whatavariable A:/

Microsoft Word - 《C语言开发入门》课程教学大纲-2.doc

第 章 顺序结构程序设计 程序里要对数据进行各种操作 其中进行各种运算操作是最基本的操作之一 在 语言程序中 使用表达式 也就是通常所说的计算式子 描述各种运算 表达式是由参与运算的数据和表示运算的符号按照一定的规则组成的式子 描述运算的符号称为运算符 由一个或两个特定符号表示一种运算 语言具有丰富

OOP with Java 通知 Project 2 提交时间 : 3 月 14 日晚 9 点 另一名助教 : 王桢 学习使用文本编辑器 学习使用 cmd: Power shell 阅读参考资料

运算符重载 为什么要 运算符重载 那些运算符可以重载, 哪些不可以 如何实现运算符重载 实现方式 : 成员函数与非成员函数 类型转换 怎样实现对象与基本数据类型数据的运算 2

OOP with Java 通知 Project 4: 4 月 18 日晚 9 点 关于抄袭 没有分数

( CIP) /. :, ( ) ISBN TP CIP ( 2005) : : : : * : : 174 ( A ) : : ( 023) : ( 023)

PowerPoint 演示文稿

设计模式 Design Patterns

试卷代号 :1253 座位号 E 口 国家开放大学 ( 中央广播电视大学 )2014 年秋季学期 " 开放本科 " 期末考试 C 语言程序设计 A 试题 2015 年 1 月 E 四! 五 总分! 一 单选题 ( 每小题 2 分, 共 20 分 ) 1. 由 C 语言源程序文件编译而成的目标文件的默

zt

Microsoft PowerPoint - 4. 数组和字符串Arrays and Strings.ppt [兼容模式]

内容简介本书主要内容包括程序设计基础知识 C 语言数据类型 运算符与表达式 程序结构 数组 指针 其他数据类型 函数 文件等, 通过对大量实例进行分析, 力求提高和培养学生的程序设计能力 本书有配套辅导教程 程序设计基础实训指导教程 C 语言 ( 科学出版社出版 ), 引导读者学习和巩固各章节内容

PowerPoint 演示文稿

第 章 程序由语句组成, 语句经常使用数据类型 运算符 表达式等 Java 语言的数据类型 运算符与表达式等是从 C++ 语言简化而来, 更加简洁 高效 2. 1 常量和变量 Java 程序运行时, 值不可修改的数据称为常量, 分为字面常量 ( 常数 ) 与标识符常量两种 变量是程序运行时值发生改变

Mx* Language Reference Manual 2016 年 4 月 7 日 1 用词说明 未定义 指中央还没有表态指语言定义中不涉及的部分, 编译器和运行时环境如何表现是未知的 主要是为了给学生实现语言留下足够的空间, 标准测试集里不会出现涉及未定义部分的内容 例如 : 术语 : 源程

int *p int a 0x00C7 0x00C7 0x00C int I[2], *pi = &I[0]; pi++; char C[2], *pc = &C[0]; pc++; float F[2], *pf = &F[0]; pf++;

第 3 章选择结构 q q q Python 中表示条件的方法 if 语句 选择结构程序设计方法

《计算概论》课程 第十九讲 C 程序设计语言应用

C++ 程序设计 告别 OJ2 - 参考答案 MASTER 2019 年 5 月 3 日 1

C 1

普通高等教育电气信息类应用型规划教材 程序设计基础 基于问题情境的 C 语言实践教程 张克军主 编 代俊雅副主编 北 京

エスポラージュ株式会社 住所 : 東京都江東区大島 東急ドエルアルス大島 HP: ******************* * 关于 Java 测试试题 ******

Microsoft Word - 第1篇(1-6).DOC

51 C 51 isp 10 C PCB C C C C KEIL

Static Enforcement of Security with Types

CHAPTER VC#

OOP with Java 通知 Project 4: 4 月 19 日晚 9 点

Ps22Pdf

内容简介 本书根据全国计算机等级考试二级 C 语言程序设计考试大纲要求, 结合目前高等院校学生学习计算机程序设计课程的情况组织内容, 全面地介绍了 C 语言程序设计的基础知识, 系统地讲述了 C 语言程序设计的基本方法和技巧 本书以 ANSI C 语言标准为依据, 深入浅出地介绍了 C 语言的基本数

5. 閱 讀 下 文, 推 斷 內 最 適 合 填 入 的 詞 語 依 序 為 何? 人 也 真 是 一 個 絕 字, 一 邊 向 左, 一 邊 向 右, 一 副 的 樣 子, 偏 又 相 連 著, 各 說 各 話 各 走 各 路, 卻 又 人, 這 麼 一 個 簡 單 的 字, 竟 包 含 如 此

untitled

untitled

chp2

class sometimes { int naive; void make_money() { this.naive++; int main() { sometimes keep = new sometimes; keep.naive = 0; while (getint() < Wallace)

C PICC C++ C++ C C #include<pic.h> C static volatile unsigned char 0x01; static volatile unsigned char 0x02; static volatile unsigned cha

CYY 1.mps


语言教程 1 C 语言概述 C 语言的发展过程 当代最优秀的程序设计语言 C 语言版本 C 语言的特点 面向对象的程序设计语言 C 和 C 简单的 C 程序介绍 输入和

试卷代号 ~1075 座位号 E 口 国家开放大学 ( 中央广播电视大学 )20]5 年秋季学期 " 开放本科 " 期末考试 C 十十语言程序设计 试题 同二二十斗 2016 年 1 月 巴叫一 1. 下面的保留字 ( ) 不能作为函数的返回类型 A. void B. int C. new D. l

C/C++程序设计 - 字符串与格式化输入/输出

Microsoft Word - 第3章.doc

2009年挑战乔戈里


untitled

OOP with Java 通知 : Project 2 提交时间 : 3 月 14 日晚 9 点 另一名助教 : 王桢

C/C++语言 - C/C++数据

Microsoft Word - 第3章.doc

2011-论文选集-2.cdr

class sometimes { int naive; void make_money() { this.naive++; int main() { sometimes keep = new sometimes; keep.naive = 0; while (getint() < Wallace)

OOP with Java 通知 : Project 2 提交时间 : 3 月 15 日晚 9 点

c_cpp

Microsoft PowerPoint - 8. 运算符重载 Operator Overloading.pptx

Microsoft Word - 文前.doc

Microsoft PowerPoint - 01_Introduction.ppt

第二章 C++简单程序设计

试卷代号 :1075 座位号 rn 国家开放大学 ( 中央广播电视大学 )2015 年秋季学期 " 开放本科 " 期末考试 c+ 十语言程序设计试题 2016 年 1 月 t 问一 Urr-f 斗 士 1 1. 下面的保留字 ( ) 不能作为函数的返回类型 A. void B. int C. new

网C试题(08上).doc

<4D F736F F D204323B3CCD0F2C9E8BCC6BDCCB3CCA3A8B5DA33B0E6A3A9CEA2BFCEB0E620B5DA33D5C22E646F63>

zt

C C

Microsoft PowerPoint - string_kruse [兼容模式]

第1章 Delphi简介

Transcription:

第 2 章 C 语言的基本数据类型与表达 式 2. 1 C 语言的语法基础 2. 2 C 语言的基本数据类型 2. 3 常量和变量 2. 4 运算符与表达式 2. 5 数据类型转换

用 第 2 章 C 语言的基本数据类型与表达 2.1 C 语言的语法基础 2. 1. 1 C 语言字符集 式 C 语言的基本符号可分 4 个类, 归纳如下 : (1) 英文字母 : 大小写各 26 个, 共计 52 个 ;(2) 阿拉伯数 : 0 1 2 3 4 5 6 7 8 9 共 10 个数字 ; (3) 下划线 : _ ; (4) 特殊符号 : 通常由 1 ~ 2 个符号组成, 主要 来表示运算符

例如 : 算术运算符 : + - * / % ++ -- 关系运算符 : < > >= <= ==!= 逻辑运算符 : &&! 位运算符 : & ~ ^ >> < < 条件运算符 :?: 和赋值运算符 : = 其他分隔符 : ( ) [ ] { }., ;

2. 1. 2 标识符 (*) 概念 : 就是用来标识变量名 符号常量名 函数名 类型名 文件名等的有效字符序列 定义规则 : (1) 标识符只能由字母 数字和下划线三种字符组成, 且第一个字符必须为字母或下划线 如 : _1 year month student_name sum0 M. D. Jones $123 #a 3b?c a=b

(2) 在 C 语言中, 大小写字母不等效 因此, a 和 A, I 和 i, Sum 和 sum, 分别是两个不同的标识符 (3) 用户自定义的标识符不能与保留字 ( 关键字 ) 同名 保留字

2. 1. 3 关键字 概念 : 就是具有特定含义的标识符, 用户不能用来作自定义标识符 C 语言中的关键字较少, 由 ANSI 标准推荐的关键字有 32 个 常用的有 : (1) 与数据类型有关的 ( 14 ): char int float double signed unsigned short long void struct union typed ef enum sizeof

(2) 与存储类别有关的 : auto extern register static (3) 与程序控制结构有关的 ( 12 ): do while for if else switch case default goto continue break return

2.2 C 语言数据类型 d) 字符型 ( char ) 整型 ( short, i nt, l ong, unsi gne 基本类型数值类型 实型 单精度型 ( fl oat ) 双精度型 ( doubl e ) 枚举类型 ( enum) 数据类型数组类型 ( [ ] ) 构造类型结构体类型 ( struct ) 共用体类型 ( uni on) 指针类型 ( * ) 空类型 ( voi d)

2.3 常量和变量 2.3.1 常量 概念 : 在程序运行中, 其数值不能被改变的量 分类 : 直接常量和符号常量 1. 直接常量 : 是在程序中直接引用的数据 以数据的分为 : 整型 实型 字符型 字符串原形出现!

(1) 整型常量三种表现形式 : 十进制形式 : 与数学上的整数表示相同 例如 : 12, -100, 0 八进制形式 : 在数码前加数字 0 例如 : 012=1*8 1 +2*8 0 =10( 十进制 ) 十六进制形式 : 在数码前加 0X( 数字 0 和字母 X, 大小写均可 ) 例如 : 0x12=1*16 1 +2*16 0 =18( 十进制 )

注意事项 : 八进制的数码范围为 0--7 ; 则 : 018 091 0A2 都是错误的数据表示方法 十六进制的数码除了数字 0-9 外, 还使用英文字母 a-f ( 或 A-F) 表示 10-15 如 : 0x1e 0Xabcdef 0x1000 但 : 0X2defg 0x100L 都是错误的

(2) 实型常量 二种表现形式 : 十进制形式 : 由数字和小数点组成 ; 例如 : 3. 4 4.. 3 指数形式 : 由 十进制小数 - 尾数 + e( 或 E)- 底 + 十进制数整数 - 指数 三部分组成 例如 : 12. 5e-6 表示 12. 5 10-6 十进制小数 e( 或 E) 十进制数整数

注意事项 : 小数点不能单独出现 ; 如 : 0. =. 0 = 0 = 0. 0. e 或 E 的两边必须有数, 且其后面必须为整数 ; 如 : 6E0. 2 e5 6E

(3) 字符型常量二种表现形式 : 用单引号括起来的一个字符 ; 如 : ' A' ' 1' '? ' 等 用单引号括起来的由反斜杠 (\) 引导的转义字符 如 : ' \n' ' \101' ' \x41' 只能是英文的单引号 在统计字符个数时, 只能记为一个字符

转义字符表 字符形式 功能 \n 换行 \t \V 横向跳格 坚向跳格 \b \r \f \\ \ \ \ % \ddd \xhh 退格 回车换页反斜杠 单引号 双引号 百分号 8 进制数表示的 ASCI I 码对应的字符 16 进制数表示的 ASCI I 码对应的字符

一个字符的多种表示方法 : 65D( 十进制 ) =41H( 十六进制 ) =101Q( 八进制 ) 字符 A 可以表示为 ' A' ' \x41' ' \101 6 5 0x41 0101 要避免的错误 : 表示单引号 : ' ' ' 表示百分号 : ' %' 表示斜线 : ' \'

例 2.1 : main( ) { /* 注 @ 代表空格 */ printf( @@ab@c\t@de \nf \\a \n"); printf("h\ti \n"); } 设一个输出区占 8 列, 试分析输出结果 f \ a h a b c d e i

(4) 字符串型常量用双引号括起来的一个字符序列 ; 如 : ABCDEF 只能是英文的双引号 字符串常量在存储时除了存储双引号中的字符序列外, 系统还会自动在最后一个字符的后面加上转义字符 ' \0', 所以一个字符串常量在内存中所占的字节数是字符串长度加 1 如 : "chi na" 的长度为 5, 而在内存中占的字节数为 6 ' \0' 是 ASCI I 码为 0 的空操作字符, C 语言规定用 ' \0' 作为字符串的结束标志, 以便系统根据它来判断字符串是否结束

(4) 字符串型常量 字符串常量中的字符可以是转义字符, 但它只代表一个字符 如 : 字符串 "ab\n\\cd " 的长度是 6, 而不是 8 在 C 语言中没有专门的字符串类型, 需要使用字符型数组, 即用一个字符型数组来存放一个字符串, 数组中的每个单元存放该字符串中一个字符

2. 符号常量 : 概念 : 是用标识符 ( 符号 ) 来表示一个数据 特点 : 在程序中不能给它赋值 定义形式 : #defi ne 标识符常量数据 例如 : #defi ne PI 3. 14159 在程序预处理时, 凡是出现标识符 PI 的地方都将用数据 3. 14159 来替换 如 : 2*2. 3*PI 就等价于 2*2. 3*3. 14159

2.2.3 变量 基本概念 : 变量是指在程序运行中, 其值可以被改变的量 变量代表计算机内存中的某一存储空间, 该存储空间中存放的数据就是变量的值 在同一程序块中, 每个变量都有唯一的名字, 不能被重复定义 使用变量时必须 先定义, 后使用

1. 定义形式 : 类型标识符变量名 1 [, 变量名 2, 变量名 3,... ] ; 如 : int, float,char 例如 : 自己设定, 满足标识符的规定 ; 不可省 i nt a, b, c ; fl oat x, y; char c1, c2; 或 i nt c1, c2 ;

2. 整型变量 (1) 整型变量的分类 基本型, 以 i nt 表示 短整型, 以 short int 表示, 或以 short 表示 长整型, 以 l ong i nt 表示, 或以 l ong 表示 无符号型, 其中无符号型又分为无符号整型, 无符号短整型和无符号长整型, 分别以 unsi gned i nt unsi gned short unsi gned l ong 表示

内存地址 2000 2001 x short x; i nt y; y 2002 2003 2004 2005 内存

(2) 整型常量的类型 在将一个整型常量赋给一个整型变量时如何进行类型匹配?. 短整型 (short) 常量 : 其值在 -32768 - +32767 范围内, 认为它是 i nt 型, 它可以赋值给 short i nt i nt 和 l ong i nt 型变量. 整型 (i nt) 常量 : 其值在 -2147483648 - +2147483647 范围内, 如果超过此范围, 则认为它是 l ong i nt 型 它可以赋值给 i nt 和 l ong i nt 型变量

第 2 章 C 语言的基本数据类型与表达式第二章 2. 2 常量和变量. 长整型常量的表示 : 数据后加一个字母 1 或 L, 则认为是 l ong i nt 型常量. 例如 : 1231, 432L, 0L 等等 这往往用于函数调用中, 如果函数的形参为 l ong nt 型, 则要求实参也为 l ong i nt 型, 此时用 123 作实参不行, 而要用 123L 作实参 i

例 2. 2, 看看下面程序的输出是什么? main() {short int x; int x; x =32769; } printf("%d",x); 运行结果 : -32767 第 2 章 C 语言的基本数据类型与表达式第二章 2. 2 常量和变量

第 2 章 C 语言的基本数据类型与表达式第二章 2. 2 常量和变量 3. 实型变量的分类 (1) 实型变量的分类 单精度 ( fl oat ) 型 双精度 ( doubl e ) 型 占内存 有效数字位数 范围 fl oat 4 个字节 7 10-38- doubl e 8 个字节 14-15 10-308- -38-10 38-308- 10 308

内存地址 (2) 实例 2000 2003 2004 x fl oat x; y doubl e y; 2011 内存

4. 字符变量 字符变量用来存放字符常量, 注意一个字符变量只能存放一个字符 一般以一个字节来存放一个字符, 或者说一个字符变量在内存中占一个字节 例如 : char c; c= a ; c= \034 ; c= \n ; c= \x65 ; c=65;c=0101;c=0x41;

字符的值域 : 即字符的取值范围 ASCI I 字符表中的所有字符, 每个字符型数据在内存中占一个字节, 包括可显示字符和非显示字符 0-127 或 0-255

5. 变量初始化 在说明变量的同时给变量一个初始值 变量定义 分配存储空间 变量初始化 分配存储空间的同时存入数据 a? i nt a, b; b? 不确定 i nt a=1, b=2; a 1 b 2

例 2. 3 : i nt a=5, b=3; i nt a, b, c; a=b=3;

例 2.4 : #define PI 3.14159 main( ) { float s, r; } r=2; s = PI * r * r; /* 计算圆的面积, 存入变量 s */ printf("s=%f\n", s);/* 输出变量 s 的值 ( 面积 ) */ 运行结果 s=12.566360

2.4 运算符与表达式 运算符的分类 分类依据 : 运算符的功能 分类 : 算术运算符关系运算符 逻辑运算符 按位运算符 赋值运算符 其它运算符 表达式 : 是由操作数 ( 如常量 变量 表达式 : 操作数 ( 如常量 变量等 ) 和运算符运算符连接起来的式子 第 2 章 C 语言的基本数据类型与表达式

2.4.1 算术运算符和算术表达式 1. 算术运算符 +: 加法 - : 减法 * : 乘法 / : 除法 %: 取余或模 5%3=2 5/3=1 3%5=3 3+5 3-5 3*5 3/5=0 5%( -3 ) 1+1 1-1 a*b 3. =2 /5=0. 6-5%3=-2 +3-3 3/5. =0. 6-5%( -3 ) =-2

2. 算术表达式 结合性是指同级运算时运算符的结合方向 用算术运算符和括号将操作数连接起来的式子 如优先级 a#b#c : ( # 代表某一运算符 ) ( ) 若先运算 a#b, * 再将其结果与 / % c 运算 +,- 结合性称为左结合性 ; 从左至右运算规则自左向右, 与数学上一致 若先运算 b#c, 再将 a 与其结果运算, 表达式的值为数值型 : 整型 / 实型则称右结合性 从右至左运算规则

例 2. 5 : 已知 : fl oat a=2. 0; i nt b =6, c =3; 求解 : a*b/c-1. 5+ A =? 12. 0/3 4. 0-1. 5 2. 5 +65(i nt) 67. 5

3. 自增与自减运算符 ( 重点和难点 ) ++i, --i i ++, i -- (1) 单独使用时 先增 ( 减 ) 1, 再使用 i 先使用 i, 再增 ( 减 ) 1 ++i ; 等价 i ++; 等价 i =i +1; (2) j =++i ; (3) j =i ++; i =4; j =4; 若 i 的初始值为 3 i =4; j =3;

结合性 : 自右向左 例 : i = 2; j = -i+ 分析 :+; ( 1 ) ++ -- + ( 正号 ) - ( 取负 ) 是同级运算符, 结合方向 : 自右向左 ( 2 ) -i++ 等价于 - ( i++ ) ( 3 ) 对于括号内的自增运算, 又要先使用 i, 再使 i 增加 1 运算结果 : i 的值为 3, j 的值为 -2

2.4.2 关系运算符和关系表达式 1. 关系运算符 关系运算 : 比较运算, 比较两个操 作数, 看是否满足给定的关系 < : 小于, 5<3, 3<5 <= : 小于等于, 5<=3,3<=5, 与数学上 ( ) 不同 > : 大于, 5>3, 3> 5 >= : 大于等于, 5 >=3,3 >=5, 与数学上 ( ) 不同 == : 等于, 5==3, 与数学上 (=) 不同!= : 不等于, 5!=3, 与数学上 ( ) 不同

2. 关系表达式 用关系运算符将表达式连接起来的式子 优先级 算术 运算符 高低 < <= > >= 高 低 ==! = 结合方向自左向右表达式的值为逻辑量 关系成立, 即为真, 结果为 1 ; 关系不成立, 即为假, 结果为 0 ; C 语言中非 0 即为真, 0 值就是假

2.4.3 逻辑运算符和逻辑表达式 1. 逻辑运算符!: 逻辑非, 一元运算符 运算规则 : 取反, 真 假, 假 && : 逻辑与 又称逻辑乘 运算规则 : 只要两个操作数有一个为真, 结果为真 真 运算规则 : 两个操作数均为真, 结果为真 : 逻辑或 又称逻辑加

2. 逻辑表达式的值为逻辑量 1/0 非 0 值 : 真 =1 0 值 : 假 =0 整型 0 实型 0.0 0.0 字符型 \0 \0 指针类型 NULL NULL

3. 逻辑表达式 用逻辑运算符将表达式连接起来的式子 优先级! 逻辑非 高低 算术 运算符 高低 关系 运算符 高 低 && 逻辑与 高 低 逻辑或 结合性!: 自右向左 && : 自左向右

例 2.6 : i nt a=5; fl oat b=3. 5;! a 0! b 0 a&&b 1 a b 1! a&&! b 0

4. 注意 在逻辑表达式的求解中, 并不是所有的逻辑运算符都被执行, 只是在必须执行下一个逻辑运算符才能求出表达式的解时, 才执行该运算符

( 1 ) a && b && c 求解方法 : 只有 a 为真 ( 非 0 ), 才需要判断 b 的值, 只有 a 和 b 都为真, 才需要判断 c 的值 只要 a 为假, 就不必判断 b 和 c, 运算立即中止 例 2.7 : a=0; b=1; c=2; d=a && ( b++ ) && ( - -c ) ; 运算结果 : d=0,a=0,b=1,c=2

( 2 ) a b c 求解方法 : 只要 a 为真 ( 非 0 ), 就不必判断 b 和 c ; 只有 a 为假, 才判断 b ; a 和 b 都为假, 才判断 c 例 2-8 : a=0; b=1; c=2; d=a ( b++ ) ( - -c ) ; 运算结果 : d=1,a=0,b=2,c=2

2.4.4 赋值运算符和赋值表达式 1. 赋值运算符 = ( 数学上的等号 ) 功能 : 将一个表达式的值赋给一个变量变量 2. 赋值表达式 用赋值运算符将变量变量和表达式连接起来的式子形式 : < 变量 >=< 表达式 > 求值规则 : 将 = 右边表达式的值赋给左边的变量 结合性 : 自右至左

例 2.9 : ( 1 ) x=(y=12)/4 y 值为 12, x 值为 3, 表达式的值为 3 ( 2 ) x=y=12/4 y 值为 3, x 值为 3, 表达式的值为 3 ( 3 ) x=(y=12/4) (y 值为 3, x 值为 3, 表达式的值为 3 ( 4 ) (x=y)=12/4 该赋值运算符左边不是变量, 而是一个表达 第 2 章 C 语言的基本数据类型与表达式式

3. 复合赋值运算符 *= /= %= += -= <<= >>= &= Λ = = 共 10 个 由赋值运算符与算术 位移 位逻辑运算符组成 复合运算符是一个运算符, 但功能上, 是两个运算符功能的组合 例 2-10 : a+=b 相当于 a=a+b a*=b+c 相当于 a=a*(b+c) a=2; a+=a*=a;

2.4.5 其它运算符 1. 条件运算符 有两个符号 :?: :,, 它与三个操作数组成三元运算 一般形式 : < 表达式 1>? < 表达式 2>: < 表达式 3> 求值规则和表达式的值 : 求解 求解真 ( 非表达式 2 0) 求解表达式假 (0) 1 表达式 3 表达式 的值

优先级 : 逻辑 > 条件 > 赋值 结合性 : 自右至左 例 2-11 : i nt max, a=5; b=3; max=a>b?a: b --a==b++? a++ : b++ y = x>10? x/10 : x>0? x: -x ;

2. 逗号运算符 形式 : 逗号表达式 1, 逗号表达式 2,, 逗号表达式求值规则 n : 从左至右依次计算各表达式的值 优先级最低结合性 : 自左至右 表达式的值 最后一个表达式的值

例 2. 12: a b y 逗号表达式 y=a=4, b=5, a+b; 4 5 4 9 y=(a=4, b=5, a+b); 4 5 9 9 注意 : C 语言常用逗号作为分隔符, 例如 : i nt a=3, b=4, c=5; pri ntf("%d, %d, %d", (a, b, c));

3. 求字节运算符 形式 : si zeof 功能 : 变量名 si zeof ( 类型名 ) 求得变量或某种数据类型所需的字节数 运算结果 : 整型数例 2-13 : i nt a ; fl oat x ; si zeof a, si zeof x, si zeof(i nt), si zeof(fl oat)

2.5 数据类型转换 C 语言允许整型 实型 字符型数据进行混合运算 有 3 种转换方式 : 自动转换赋值转换强制转换

2. 5. 1 类型自动转换 ( 隐式转换 ) doubl e fl oat l ong i nt unsi gned i nt i nt char, short 总趋势 : 存储长度较短 存储长度较长

例 2. 14 : i nt x=2; doubl e y=1. 6; char c=' A' ; c+x*y=? 65(i nt) 2(i nt) 1. 6 (doubl e) 3. 2(doubl e) 68. 2(doubl e)

2. 5. 2 赋值转换 在赋值时, 将赋值符右边值的类型转换成与其左边变量类型一致的类型 几种情况 : (1) 实型整型 ( 字符型 ) 取整数部分, 去掉小数部分 (2) 整型 字符型实型 补足有效位 fl oat f=23; 23. 00000 ( 7 位 )

2. 5. 3 强制转换 形式 : 注意 : ( 类型名 ) 表达式 强制类型转换时, 得到所需类型的值, 原来变量的类型和值都不变 例 : i nt a=2, b=5; fl oat x=4. 4; (fl oat)b/a 2. 5 (fl oat)(b/a) 2. 0

第 2 章本章小结 1 常量的定义 变量的定义和赋值 整型 i nt short l ong 实型 fl oat doubl e 字符型 char

2 自增自减运算符 ++/-- 3 常见运算的优先级别 ( 参见附录 2) 逻辑非! 算术运算符关系运算符逻辑与 或条件运算符赋值运算符 逗号运算符 低高

第 2 章 C 语言的基本数据类型与表达式第一章 1. 3 C 语言上机操作步骤 课堂练习 实训二 课后作业