




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、,C语言程序设计基础,共 26 页 第 2 页,C语言主要内容,数据:数据类型,常量、变量 运算符及表达式 语句:输入/出语句,控制结构语句 函数,数组 指针 构造数据类型:结构体,共同体,枚举 预编译与位运算 文件,第三章,复杂的数据类型,小,大,第四、五章,第六章,第七章,第八章,第九章,第十章,第十一章,共 26 页 第 3 页,第三章 C语言程序设计基础,第一节 介绍基本数据类型、常量与变量 第二节 各种类型的常量 第三节 各种类型的变量 第四节 运算符及表达式 第五节 类型转换,数据与运算符,共 26 页 第 4 页,3-1 介绍基本数据类型、常量与变量,构造数据类型,基本数据类型,
2、数据类型,整型,实型,字符型,数组,结构体,枚举,指针,空类型,共同体,数据类型,数据:是程序加工处理的对象,3-1介绍基本数据类型、常量与变量,数据,程序运行过程中,值不允许改变的数据,程序运行过程中,值允许改变的数据,main() int a,b,sum; a=2; b=3; b=c; sum=a+b; ,#define pi 3.1415926 main() int r; float s; r=1; s=3.1415926*r*r; s=pi*r*r; ,常量的使用: 直接常量是直接引用 符号常量要先定义再引用,由数字和字符直接表示, 常量值即数据本身,用一个标识符代表常量 , 区分常量
3、名和常量值,常量,常量,变量,直接常量,符号常量,变量是用一个符号来表示一个数据 变量名: 变量的名字,一个变量有唯一的变量名 变量的值: 变量中存放的数据,值可变 变量的类型: 限定变量值的类型 整型,实型,字符型,2,a,1)变量的概念,main() int a,b,sum; a=2; a=3; sum=a+b; ,任何变量都具有这三个属性,3-1介绍基本数据类型、常量与变量,变量,2)变量的使用,定义,变量的定义: 1) 类型说明符 变量名; int-整型 char-字符型 float,double-实型 例如: int a; char c; float f; 2) 类型说明符 变量表;
4、 例如:int a,b; 等价 int a; int b;,变量赋值,变量的赋值: 变量名=常量 或 变量名=变量 例如: a=2; a=b;,确定变量名和变量类型,变量的引用,变量的引用: sum=a+b; printf(“%d”,a);,修改变量的值,取变量的值,先定义,然后赋值,最后引用,3-1介绍基本数据类型、常量与变量,变量与常量使用的对比,直接常量的使用: 直接引用(没有定义和赋值) a=2; a=3.14; 符号常量的使用(无赋值) 1)定义 #define pi 3.1415926 2)引用 s=pi*r*r;,变量的使用: 1)变量定义: int a; 2)变量赋值 a=2;
5、 3)变量的引用: sum=a+b;,3-1介绍基本数据类型、常量与变量,什么时候用常量和变量?,共 26 页 第 9 页,各种类型的常量 按照数据类型划分,3-2各种类型的常量,直接常量,整型常量,实型常量,字符型常量,字符常量,字符串常量,共 26 页 第 10 页,整型常量,3-2各种类型的常量,三种表示形式: 十进制:以非0打头,+,-,09 八进制:以0打头,+,-,07 十六进制:以0 x打头,+,-,09,AF. (0是零),举例: int a; a=20; a=020; a=0 x20;,一般编程使用十进制,但是考试中,给你一个数要能区分,共 26 页 第 11 页,实型常量,
6、3-2各种类型的常量,数学表示实数 常用形式: 科学记数法:,两种表示形式: 小数形式: 指数形式:,举例: double a; a=314.15; a=3.1415E2;,练习: a=-3.1415E-2;,3-2各种类型的常量,共 26 页 第 12 页,字符型常量-字符常量,字符常量 用一对单引号括起来的一个字符 例如:a ,A,2,+ 字符取自ASCLL字符集(255个) ASCLL码: 一个字符对应一个数值(0255) 字符的存储:在计算机中存储 的是字符对应的ASCLL 码 例如: char c; c=A; 有时,字符数据与整型数据能通用 int c; c=A;等价c=65;,65
7、,C,思考:输出什么? char c ; c=A+1; printf(“c=%c”,c);,共 26 页 第 13 页,字符型常量-字符常量,字符常量 分为 1.可显示字符:az,09等,原样输出 2.转义字符:打头的字符 *:n,0,t,r,”等,不是原样输出,而是各自表示一定控制意义 例如: n 回车换行 0 字符串结束 *: ddd,八进制数ddd对应的ASCLL字符 例如:101 -A xhh,十六进制数hh对应的ASCLL字符 例如:x41 -A,举例: printf(“abcndef”); printf(“abc0def”);,举例: printf(“abc101e”); prin
8、tf(“abcx41e”);,转义字符是一个整体,例如:n,101被看做一个字符,不能拆开,3-2各种类型的常量,例2.3 分析下面的运行结果。 main() printf(123456t101aaa ndeftx42n);,3-2各种类型的常量,注意: 1)字符串常量与字符常量不可混淆 例如:”a”与a a)定界符不同 b)字符常量只能是一个字符 c)存储方式不同 2)在字符常量和字符串常量内,空格是一个字符, Ascll码是32 “ ”与”不同,前者字符长度是2,后者是1,字符型常量-字符串常量,字符串常量 用一对双引号括起来的多个字符 字符串数据的存储: 每个字符串常量末尾,系统自动添加
9、一个转义符0 例如:”CHINA”,字符长度6,ASCII码值,举例:”CHINA”,”a”,a,3-2各种类型的常量,共 26 页 第 16 页,各种类型的变量 按照数据类型划分,变量,整型变量 int,实型变量,字符型变量 char,单精度 float,双精度 double,3-2各种类型的变量,整型变量,1)基本整型: 类型说明符:int,存储占内存两个字节 举例:int a;a=2; 数据范围:-3276832767(-215 (215-1) 2)短整型 类型说明符:short int(short),占字节和范围与int一样 3)长整型 类型说明符:long int (long),存储
10、占4个字节 数据范围: (-231 (231-1) 举例:long a;a=40000; 4)整型数据的输出 printf: %d 十进制整数 %ld 十进制长整数,高字节,低字节,高字节,低字节,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,举例:整型变量,main() int i; long int long_i;/*变量定义放在前面*/ i=40000; /*溢出*/ printf(i=%dn,i); long_i=40000; /*改用long int*/ printf(long_i=%ldn,long_i); ,结果: i=-25536 Long_i=40000,整
11、数,如果数据范围超过32767或-32768用long int,整型变量,整型变量,修饰符: signed带符号数 ,unsigned无符号数 signed int,等价int 2字节 -32768 32768 unsigned int 2字节 0 65535 signed short 同signed int unsigned short 同unsigned int signed long,等价long 4个字节 -2147483648 2147483647 unsigned long 4个字节 0 4294967295,存储占字节数没有改变 取值范围改为从0开始,正数的范围扩大一倍,举例:
12、unsigned int i; i=40000; printf(“i=%u,i);,i=40000,signed和unsigned比较:,实型变量,实型变量分为单精度型和双精度型 1)单精度浮点: 类型说明符:float,存储占4个字节 数据范围 10-38 (1038) 精度:有效数字7位 举例:float f; 2)双精度浮点: 类型说明符:double,存储占8个字节 数据范围: 10-308 (10308) 精度:有效数字15-16位 举例:double d; 3)实型数据的输出 printf: %f 小数形式,6位小数 %e 指数形式,main() float f1; f1=12.1
13、4; printf(f1=%f,f1); printf(f1=%e,f1); ,结果: f1=12.141593 d1=12.1415926,main() float f1; double d1; f1=12.1415926; printf(f1=%fn,f1);/*7位有效数字*/ d1=12.1415926; /* 改用double */ printf(d1=%10.7fn,d1); ,结果: 12.140000 1.21400e+01,精度与数据范围的区别,字符型变量,1)字符型变量: 类型说明符:char,存储占1个字节 数据范围: 0 255 (28-1) 举例:char c; c=
14、a;/*用于存放字符常量*/ c=“a”;/*错误 */ 2)没有字符串变量 字符串要用字符数组来存放 3)某些情况下,char型与int型数据可以互换 4)字符型数据的输出: pirntf: %c输出数对应的字符 %s 输出字符串,char ch; ch=a; printf(“ch=%d”,ch); printf(“ch=%c”,ch); printf(“ch=%s”,”a”);,char c1; int d1; c1=97;d1=a; printf(c1=%d,d1=%dn,c1,d1); printf(c1=%c,d1=%c,c1,d1);,注意:,所有变量都在函数开头就定义,而不是在引
15、用变量的前面定义,main() int a,b,sum; a=2; a=3; sum=a+b; ,main() int a,b; a=2; a=3; int sum; sum=a+b; ,3-2各种类型的变量,变量赋初值(也称为变量初始化),1)赋初值: 在变量定义的同时给变量赋予初值. 举例:int a=5; 等价于 int a;a=5; 2)可以给定义变量中的所有或一部分变量赋初值 char a,b,c=a; 等价于 char a,b,c; c=a; float a=0.1,b=0.4,c=0.5; 等价于 float a,b,c; a=0.1; b=0.4; c=0.5;,共 26 页
16、第 24 页,变量,整型变量 int,实型变量,字符型变量 char,单精度 float,双精度 double,3-2常量与变量,直接常量,整型常量,实型常量,字符型常量,字符常量,字符串常量,小结:,符号常量,常量,3-3 运算符与表达式,运算符,每一种运算符代表一种运算操作. 例如:+ - 加法,1)表达式由运算符和运算分量组成 例如:a+b a,b是运算分量 2) 不同运算符对应表达式的格式不同 例如: 运算符 + , 表达式:a+b 双目运算符 运算符+, 表达式:a+ 单目运算符 运算符 ?:, 表达式 a?b:c 三目运算符 3)多个表达式又可以组成一个表达式 例如: a*c+a/
17、b+a,表达式 表示一种运算关系的算式,运算符,按运算类型分类 1. 算术运算符 2. 自增、自减运算符 3. 赋值运算符 4. 关系运算符 5. 逻辑运算符 6.条件运算符 7.逗号运算符 按运算分量的数目分类 单目运算 例如:自增运算符 a+ 双目运算 加法运算符 a+b 三目运算 条件运算符 a?b:c,主要学习: 1)每种运算符的运算含义,构成表达式的格式。 举例:a+b 2)运算符之间: 一个表达式中包含多个不同运算符,存在优先级、结合性问题 优先级关系:一个表达式中包含多个不同运算符时,运算优先次序 结合性:相同优先级的运算符进行运算时的次序,3-3 运算符与表达式,例如: a*c
18、+a/b+a,算术运算符与算术表达式,1)算术运算符 2)算术表达式的格式: 求负是单目运算符,-a 其它都是双目运算符 ,a+b,a-b,a*b,a/b,a%b 3)优先级 -(求负) (* ,/ ,%) (+ ,-) 4)结合性:自左向右 注意: 1)整数/整数 结果仅保留整数 举例:5/2 实数/整数 整数/实数 结果包含小数 举例:5.0/2 3)整数%整数 5.0%2 余数符号是被除数符号 -7/3 -1 7/-3 1,举例: int a=8, b=5,c=2,d; d=(a+b*c) d=(a/b*b) d=(a%b*c),d=18 d=5 d=6,/与%的区别 : 9/2 与 9
19、%2,减与求负区别 : 9-2 与 -2,自增、自减运算符,1)运算符 2)表达式的格式:单目运算符, 自增:后置形式a+,前置形式+a 自减:后置形式a-,前置形式-a 前置与后置的区别: +a : 先自增,再参与运算 -a:先自减,再参与运算 a+ : 先参与运算,再自增 a- :先参与运算,再自减 举例:y=+a; 等价 a=a+1; y=a; a先加1再赋值 y=a+; 等价 y=a; a=a+1; a先赋值再加1 3)优先级 +,-同级 注意:运算分量只能是变量,不能是常量或表达式 2+错误 (a+b)+错误,x=3, z=3 x=3, y=6, z=3*6=18 x=3, y=6,
20、 z=2*6=12 x=3, y=6, z=3*5=15 x=3, y=6, z=2*5=10 x=4, z=4*4=16,自增自减运算实例,实例 已知:int x = 2, y = 5, z; z = +x; x?z? z = +x * +y; z = x+ * +y; z = +x * y+; z = x+ * y+; z = +x * +x;,赋值运算符,复合赋值运算符,1)赋值运算符 2)赋值表达式的格式:变量=表达式 例如:a=2; a=2*b; 注意:1)左边必须是变量,不能是常量或表达式 例如:2=2 错误 (a+b)=2 错误 2) 赋值表达式的值就是被赋值变量的值 a=(b=
21、10); a? b? 3)复合赋值运算符 op= op可以是+,-,*,%,位运算符 4)优先级:=与op=同级 5)结合性:自右向左,e1 op= e2 等价于:e1=e1 op (e2),例:x += 2; 等价 x = (x + 2); x *= y+1; 等价 x = x * ( y+1); 不等价 x = x * y+1;,a=b=10; 等价 a=(b=10) a=3;b=a*=a; 等价 b=(a*=a),实例 已知:int a=3,b=-4,c=5,x=2.5,y=4.7; b%=c+a-c/7 a+-c+b+ a+=b+3 (a+=b)+3,-4,运算实例,() 自增、自减运
22、算符 算术运算符 赋值运算符,高,-6,2,2,关系运算符与关系表达式,1)关系运算符 用于比较两个分量的大小关系,2)关系表达式格式: 双目运算符 例如:ab,a=b,a!=b 3)关系运算结果: 只有两种结果(0和1) 1-“成立”,0-“不成立” 例如: 95 2, = ,=c 5)结合方向:从左到右 例如:ab=c 6)注意: 区分 =与= 举例: int a; a=2 ;与 a=2的区别 写表达式:判断a是否能被2整除? 满足返回1,否则返回0,a%2=0,数学,c语言是= 数学,c语言是= 数学,c语言是!= 数学=,c语言是=,关系运算符实例,实例 已知:int a=13, b=
23、2, c=1; ab a!=b a=b (ab)=c ab=c,成立, 结果为 1 成立, 结果为 1 不成立,结果为 0 成立,结果为 1 与上面等价,结果为 1,如何判断数学中的逻辑关系:0a9?,等价于(0=a)=9,10 结果恒为1,0=a=9,逻辑运算符与逻辑表达式,1)逻辑运算符,与:当两个分量同时为真(非0)时,结果为1,其余为0 举例: 5 c= (a+)|(b+); a?b?c? 2)表达式1 a?b?c?,a=2,b=3,c=1,a=-1,b=3,c=0,1)a=1,b=3,c=0; !a printf(“%d,%d”,a,b); 2)逗号做运算符,3)表达式格式:表达式1
24、,表达式2,表达式n 例如3+5,6+8,3+1 4)执行过程: 先执行表达式1,再执行表达式2,依次执行下去,最后求表达式n的值 整个表达式的值是表达式n的值 举例: 3+5,6+8 的值是14 5)逗号运算符的优先级比其他所有运算符都低 举例: 1)a=3*5,a*4的值? 2) (a=3*5,a*4),a+15的值?,60,30,条件运算符 表达式格式:表达式1 ? 表达式2 : 表达式3 举例:(52)?4:1 或者 (ab)?(a+1):(a/b) 功能:如果表达式1成立(表达式的值为非0) 则整个表达式的值取表达式2的值; 否则,取表达式3的值,例:max = (ab) ? a :
25、 b;,举例:52?4:1 的值?,4,求变量a与b的最大值,唯一的三目运算符,条件表达式能根据表达式1的值来选择结果,条件运算符与条件表达式,共 26 页 第 38 页,2-4 简单的C语言程序介绍,例4:/* example4.c */ int max(int x,int y) int m; if(xy) m=x; else m=y; return(m); main( ) int a,b,maxnum; scanf(%d,%d, ,运行结果是: 2,5 maxnum=5,输入两个数,输出较大的数,int max(int x,int y) int m; m = (xy) ? x : y; r
26、eturn(m); ,条件运算符,结合性:从右向左,举例: a=1,b=2,c=3,d=4,表达式ab?a:cb?a:(cd?c:d) 结果:3,ab?a:cd?c:d,等价于 ab?a:(cd?c:d),运算符间的优先级,() 括号 改变表达式中的优先级关系 单目运算符 +;-;!;-(负) 算术运算符 *;/;% +;- 关系运算符 ;=;= =;!= 逻辑运算符 %= 右结合 逗号运算符 ,高,低,优先级不同时:运算符优先级的高低决定进行运算的先后次序 优先级相同时:同优先级运算符的运算次序由结合性决定。,3-5 数据类型转换,在一个表达式中,允许不同数据类型的数据进行混合运算 例如:3
27、.14+2-c+56/8.0 运算要求: 运算分量1 OP 运算分量2 两个运算分量必须先转换为相同类型,再运算 数据类型转换方式有三种: “隐式的”类型转换 “强制的”类型转换 “赋值表达式”类型转换,3-5 数据类型转换,例如:3.14+2-c+56/8.0 运算: 运算分量1 OP 运算分量2 两个运算分量必须先转换为相同类型,再运算 “隐式的”类型转换是一种自动转换,只要两个分量是不同类型就自动转换 举例:32+1 ; 1.4+2.1; c+a 但 2+3.1,2+a 转换规则 较低类型较高类型 举例: a+32 字符 整型 32+3.14 整型 实型 float f;double d; f+d;,举例: int i=3; float f=0.1; double d=3.4; long e=2; 求10+a
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 网络隔离机(卡)项目安全风险评价报告
- 遵义师范学院《中国通史古代》2023-2024学年第二学期期末试卷
- 江苏省南京市琅琊路小学明发滨江分校2025届小升初复习数学模拟试卷含解析
- 赣南医学院《空间构成与表现》2023-2024学年第二学期期末试卷
- 温州科技职业学院《城乡规划设计基础1》2023-2024学年第二学期期末试卷
- 三峡大学《流行音乐配器法(1)》2023-2024学年第二学期期末试卷
- 河北地质大学华信学院《民航服务礼仪》2023-2024学年第二学期期末试卷
- 甘肃林业职业技术学院《药理学及实验》2023-2024学年第二学期期末试卷
- 盐城师范学院《口述史实践》2023-2024学年第二学期期末试卷
- 吉林省延边重点中学2024-2025学年初三校际联合检测试题(二模)化学试题含解析
- 第二单元“中华传统文化经典研习”说课稿 2024-2025学年统编版高中语文选择性必修上册001
- 2024年德州市人民医院高层次卫技人才招聘笔试历年参考题库频考点附带答案
- 订单与合同管理制度
- 【MOOC期末】《英美文学里的生态》(北京林业大学)期末中国大学慕课MOOC答案
- 外科患者疼痛护理与管理
- 《家校社协同育人“教联体”工作方案》专题培训
- 2024年六西格玛黄带认证考试练习题库(含答案)
- 儿童牙齿分龄护理方案
- 2023-2024学年广东省深圳市宝安区七年级(下)期中英语试卷
- DB43T 2558-2023 城镇低效用地识别技术指南
- 中国心力衰竭诊断和治疗指南2024解读(完整版)
评论
0/150
提交评论