




已阅读5页,还剩45页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第2章 数据类型、运算符 与表达式 2.1 2.1 一个简单的一个简单的C C程序例子程序例子 2.2 2.2 C C程序常见符号分类程序常见符号分类 2.3 2.3 数据类型数据类型 2.4 2.4 常量常量 2.5 2.5 变量变量 2.6 2.6 常用运算符及表达式常用运算符及表达式 2.7 2.7 赋值和表达式中的类型转换赋值和表达式中的类型转换 1 *2 语 言 程 序 设 计 第 二 章 C 2.1:一个简单的C程序例子 #include /*函数功能:计算两个整数相加之和 入口参数:整型数据a和b 返回值: 整型数a和b之和 */ int Add(int a, int b) return (a + b); /*主函数*/ main() int x, y, sum = 0; printf(“Input two integers:“); scanf(“%d%d“, /*输入两个整型数x和y*/ sum = Add(x, y); /*调用函数Add计算x和y相加之和*/ printf(“sum = %dn“, sum); /*输出x和y相加之和*/ 并列的两个函数并列的两个函数 其中一个是其中一个是 程序的入口程序的入口 程序注释程序注释 编译预处 理命令 *3 语 言 程 序 设 计 第 二 章 C 下面针对一般的C程序作几点说明: (1)一个完整的C语言程序可以由多个函数组成,但必须 包含一个且只能包含一个名为main的函数(主函数)。程序 总是从main函数开始执行,与它在程序中的位置无关。 (2)在一个C函数模块中,由左右花括号 括起来的部分 是函数体,其中的语句系列实现函数的预定功能。 (3)函数首部包括函数返回值类型、函数名、形参类型、 形参名的说明。有时可以没有形参,但()不能省略。 (4) C程序中的每一个语句必须以“;”结束,但书写格 式是自由的。 (5)#include是编译预处理命令,其作用是将双引号或尖 括号括起来的文件内容读到该命令的位置处。 (6)在C程序的任何位置处都可以用/* */作注释, 以提高程序的可读性。 *4 语 言 程 序 设 计 第 二 章 C 2.2 C程序常见符号分类 关键字(Keyword) 又称为保留字,C语言中预先规定的具有固定含义的一些单词 数据类型修饰符int,控制语句return等 标识符(Identifier) 系统预定义标识符,main,printf 等 用户自定义标识符,通常用做变量名、 函数名Add, x, y 等 运算符(Operator) 34种,详见附录2 分隔符(Separator) 空格、回车/换行、逗号等 其它符号 大花括号“”和“”通常用于标识函数体或者一个语句块 “/*”和“*/”是程序注释所需的定界符 数据(Data) 变量(Variable) 常量(Constant) *5 语 言 程 序 设 计 第 二 章 C 标识符命名 变量名 函数名 由英文字母、数字和下划线组成,大小写敏感 不可以是数字开头 直观,见名知意,便于记忆和阅读 最好使用英文单词或其组合 切忌使用汉语拼音 下划线和大小写通常用来增强可读性 variablename variable_name variableName 不允许使用关键字作为标识符的名字 int, float, for, while, if等 某些功能的变量采用习惯命名 如:for语句所采用的循环变量习惯用i, j, k Windows Windows 风格风格 UNIX UNIX 风格风格 *6 语 言 程 序 设 计 第 二 章 C 2.3 数据类型(Data Type) 数据类型总表 数据类型决定: 1. 数据占内存字节数 2. 数据取值范围 3.数据表示形式数据表示形式 4. 4.可参与的运算种类 C 数 据 类 型 基本类型 构造类型 指针类型 空类型void 定义类型typedef 字符类型char 整型 实型 单精度型float 双精度型double 枚举类型enum 数组 结构体struct 共用体union 短整型short 长整型long 基本整型int 无符号整型 *7 语 言 程 序 设 计 第 二 章 C b, B, KB, MB, GB, TB 如何衡量数据类型所占空间大小? bit,中文叫法:位 Byte,中文叫法:字节 Kilobyte(KB),中文叫法: K Megabyte(MB),中文叫法:兆 Gigabyte(GB),中文叫法:G Terabyte(TB),中文叫法:T 1 TB 1 TB = 1,024 GB1,024 GB 1 GB1 GB = 1,024 MB1,024 MB 1 MB1 MB = 1,024 KB1,024 KB 1 KB1 KB = 1,024 B1,024 B 1 B 1 B = 8 b8 b *8 语 言 程 序 设 计 第 二 章 C 类型 符号关键字数的表示范围所占位数 整型字符型实型 有 无 (signed)int16 -3276832767 (signed)short16 -3276832767 (signed)long 32 -21474836482147483647 16 unsigned int 065535 32 04294967295 unsigned long unsigned short 16 065535 有float 32 3.4e-383.4e38 有double641.7e-3081.7e308 有char 8-128127 无unsigned char80255 数据类型总表(数据类型修饰符) 说明:数据类型所占字节数随机器硬件不同而不同. *9 语 言 程 序 设 计 第 二 章 C 标识符命名规则 在在C C语言中,变量名的命名要符合以下几个规则:语言中,变量名的命名要符合以下几个规则: 组成:组成: 只能由英文只能由英文字母字母、数字数字、下划线下划线组成,且组成,且第一个字母必须是第一个字母必须是 英文字母或下划线英文字母或下划线 大小写敏感大小写敏感 不能使用关键字不能使用关键字 不能与库函数名重名不能与库函数名重名 长度:长度: Turbo CTurbo C系统下的有效长度为系统下的有效长度为1 1至至3232个字符。个字符。 命名原则:命名原则: 见名知意见名知意 不宜混淆不宜混淆 如如l l与与I, oI, o与与0 0 例:判断下列标识符号合法性 sum Sum M.D.John day Date 3days #33 lotus_1_2_3 char ab _above $123 M.D.John3days #33char $123 ab *10 语 言 程 序 设 计 第 二 章 C 枚举常量: 直接常量: 整型常量 实型常量 字符常量 字符串常量 定义:程序运行时其值不能改变的量(即常数) 分类: 符号(宏)常量: 2.42.4常量常量 *11 语 言 程 序 设 计 第 二 章 C 1.整型常量的表示形式 2.4.1整型常量 在C语言中,有3种类型的整型常量:基本整型常量、长 整型常量、无符号整型常量。 基本整形常量三种形式: 十进制整数:由数字09和正负号表示.如 123,-456,0 八进制整数:由数字0开头,后跟数字07表示.如0123,011 十六进制整数:由0x开头,后跟09,af,AF表示. 如0x123,0xff 例 12 与 12L 例 30000 为int型 65536 为long int 型 问题: 0123 = ( )10 0x123 = ( )10 0xff = ( )10 83 291 255 问题: 0123 = ( )10 0x123 = ( )10 0xff = ( )10 整型常量的类型 根据其值所在范围确定其数据类型 在整常量后加字母l或L,认为它是long int 型常量 在整常量后加字母u或U,认为它是unsigned int 型常量 2.整型常量的类型确定 *12 语 言 程 序 设 计 第 二 章 C 表示形式: 十进制小数形式:(必须有小数点) 如 0.123, .123, 123.0, 0.0, 123. 指数形式:(e或E之前必须有数字;指数 必须为整数)如12.3e3 ,123E2, 1.23e4 , e-5 , 1.2E-3.5 实型常量的类型 默认double型 在实型常量后加字母f或F,认为它是float 型 在实型常量后加字母lf或LF,认为它是long double 型 2.4.2 2.4.2 实型常量(实数或浮点数)实型常量(实数或浮点数) *13 语 言 程 序 设 计 第 二 章 C 定义:用单引号括起来的单个普通字符或转义字符. 字符常量的值:该字符的ASCII码值 #define PRICE 12.5 main() int num=3; float total; char ch1,ch2=D; total=num*PRICE; ch1=ch2-A+a; printf(“total=%f,ch1=%cn”,total,ch1); 宏定义 变量定义 输出结果 运行结果: total=37.500000, ch1=d *23 语 言 程 序 设 计 第 二 章 C 2、 const类型修饰符 用const修饰定义的变量为常量 const float pi = 3.1425926; const常量与宏常量相比的优点是什么? const常量有数据类型 某些集成化调试工具可以对const常量进行调试 #define pi 3.1425926#define pi 3.1425926 *24 语 言 程 序 设 计 第 二 章 C 3、 数据在内存中的存储格式 整型 实型 N=S2j 字符型 阶码符号阶码的数值尾数符号尾数的数值 阶码j尾数S 所占位数决定所占位数决定 实数的取值范围实数的取值范围 所占位数决定所占位数决定 实数的精度实数的精度 *25 语 言 程 序 设 计 第 二 章 C 4、char型与int型之间的关系 例:小写字母转换为大写字母 # #includeinclude .h mainmain()() charchar chch = b; = b; printfprintf(“%c, %dn“, ch, ch);(“%c, %dn“, ch, ch); chch = b - = b - 3232; ; printfprintf(“%c, %dn“, ch, ch);(“%c, %dn“, ch, ch); # #includeinclude .h mainmain()() charchar chch = b; = b; printfprintf(“%c, %dn“, ch, ch);(“%c, %dn“, ch, ch); chch = b - = b - (a - A)(a - A) ; ; printfprintf(“%c, %dn“, ch, ch);(“%c, %dn“, ch, ch); b, 98 B, 66 b, 98 B, 66 *26 语 言 程 序 设 计 第 二 章 C 2.6 运算符和表达式 C 运 算 符 算术运算符:(+ - * / % + -) 关系运算符:( = !=) 逻辑运算符:(! ab (ab)=c b+cb f=abc 例 若a=0; b=0.5; x=0.3; 则 a278在C中是允许的, 值为 0 例 int i=1, j=7,a; a=i+(j%4!=0); 则a=2 例 a0 结果为 A100 结果为 1 0 二二. .关系运算符和表达式关系运算符和表达式 *31 语 言 程 序 设 计 第 二 章 C 关系运算注意: 例 注意区分“=”与“=” int a=0,b=1; if(a=b) printf(“a equal to b”); else printf(“a not equal to b”); 例 应避免对实数作相等或不等的判断 如 1.0/3.0*3.0=1.0 结果为 可改写为:fabs(1.0/3.0*3.0-1.0) 真 假 假 假 假 假 真 真 假 假 真 真 真 假 真 真 三三. .逻辑运算符和表达式逻辑运算符和表达式 *33 语 言 程 序 设 计 第 二 章 C 例 abb=5; !a ab=2;c=3;d=4;m=1;n=1; (m=ab) d=func(); c=d+2; 四四. .赋值运算符和表达式赋值运算符和表达式 *37 语 言 程 序 设 计 第 二 章 C 说明: 结合方向:自右向左 优先级: 14 左侧必须是变量,不能是常量或表达式 赋值表达式的值与变量值相等,且可嵌套 赋值转换规则:使赋值号右边表达式值自动转 换成其左边变量的类型 例 3=x-2*y; a+b=3; 例 float f; int i; i=10; f=i; 则 f=10.0 例 int i; i=2.56; /结果i=2; 例: a=b=c=5 a=(b=5) a=5+(c=6) a=(b=4)+(c=6) a=(b=10)/(c=2) /a=-264 等价于a=a+(a=a-(a*a) /a=0 等价于a=a+(a=a*(a=a-(a=a*3) 四四. .赋值运算符和表达式赋值运算符和表达式 *39 语 言 程 序 设 计 第 二 章 C 作用:使变量值加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; * / % -+ - (2) (3) (4) 例 -i+ -(i+) i=3; printf(“%d”,-i+); /-3 例 -i+ i=3; printf(“%d”,-i+); 五五. .自增、自减运算符自增、自减运算符+ -+ - *41 语 言 程 序 设 计 第 二 章 C 形式:表达式1,表达式2,表达式n 结合性:从左向右 优先级: 15(级别最低) 逗号表达式的值:等于表达式n的值 用途:常用于循环for语句中 例 a=3*5,a*4 a=3*5,a*4,a+5 例 x=(a=3,6*3) x=a=3,6*a 例 a=1;b=2;c=3; printf(“%d,%d,%d”,a,b,c); printf(“%d,%d,%d”,(a,b,c),b,c); 六六. .逗号运算符和表达式逗号运算符和表达式 *43 语 言 程 序 设 计 第 二 章 C 七.位操作运算符 |-按位或运算 -按位异或运算 printf(“n%5d%5d%5d“, !x, x|y, x printf(“n%5d%5d%5d“, x, x|y, x printf(“n%5u%5d%5dn“, x, x|y, x 0 1 1 -13 12 8 65532 12 8 逻辑非的结果逻辑非的结果 不是按位取反不是按位取反 正数的补码正数的补码 与其原码相同,与其原码相同, 负数的补码为负数的补码为 其反码加其反码加1 1 八.位操作运算符 *45 语 言 程
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025-2030年中国数码经络治疗仪行业发展机遇与投资方向预测研究报告
- 留守儿童与义务教育论文
- 湖北省“黄鄂鄂”2025年高三下学期4月联考试题 生物 含答案
- 兽医病理解剖试题含答案
- 池州市重点中学2025年高考英语二模试卷含答案
- 辽宁省锦州市第四中学2025届高三一诊考试英语试卷含解析
- 职业技术学院护理五年制专业人才培养方案
- 2025年吉林省长春市中考二模历史试题(原卷版+解析版)
- 河南省名校大联考2024-2025学年高一下学期4月期中数学试题(原卷版+解析版)
- 糖果与巧克力食品安全与质量控制方法实践案例分析实践案例考核试卷
- 幼儿园孩子讲解中药知识
- 学校在铸牢中华民族共同体意识教育工作情况报告
- 成人重症患者颅内压增高防控护理专家共识2024
- 2025年度美团外卖加盟商合作协议范本4篇
- 医院pdca改进案例文档
- 洗煤厂建设项目可行性研究报告申请立项备案
- 2025年聚焦全国两会知识竞赛题库及答案(共100题)
- 2025年职教高考对口升学 护理类 专业综合模拟卷(1)(四川适用)(原卷版)
- 外研版(2025新版)七年级下册英语Unit 6 学情调研测试卷(含答案)
- 生产线和工艺流程管理制度
- DB45T 2155-2020 暴雨强度公式编制技术规范
评论
0/150
提交评论