




免费预览已结束,剩余51页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
2019/2/5,1,第3部分 数据类型、运算符和表达式,c 语言程序设计,修德 砺能 崇学 尚行 广州城建职业学院,3.1 c语言的数据类型 3.2 运算符与表达式,本部分主要内容,修德 砺能 崇学 尚行 广州城建职业学院,数据类型,数据为什么有类型之分?,学习任何语言,首先要学习其数据类型.,c语言有丰富的数据类型,可以表达复杂的数据结构,在程序中要处理大量的数据,对于数据来说,它们有着某些相同的属性,处理规律相同,存储格式、取值范围也相同。我们将具有相同属性的数据称为一类,即数据类型,符合计算机中数据的存储方式。,修德 砺能 崇学 尚行 广州城建职业学院,3.1 c语言的数据类型,c语言提供了丰富的数据类型,如图所示。,修德 砺能 崇学 尚行 广州城建职业学院,十进制数:非0开头。 例如:1234 0 -1234,八进制数:以0开头。 例如:01234 010 00 -01234,十六进制数:以0x开头。 例如:0x12 0x0 -0xc4,整型常量,定义,是由数字串组成的数据。,分类,十进制常数、八进制常数和十六进制常数。,修德 砺能 崇学 尚行 广州城建职业学院,例 整型数应用,#include void main() int a,b,c; a=12; b=012; c=0x12; printf(“a=%d,b=%d,c=%dn“,a,b,c); ,程序运行结果: a=12,b=10,c=18,修德 砺能 崇学 尚行 广州城建职业学院,整型变量,整型变量的基本类型符是int,除此之外,c语言中还包括其它三种整数类型:短整型(short int)、长整型(long int)、无符号型(unsigned),若不指定为无符号型,隐含的即为有符号型。 为了更精确地描述整型数据,又把整型变量细分为六种类型,它们的区别主要在于表示整型数的范围不同。,修德 砺能 崇学 尚行 广州城建职业学院,3整型数据的输出,%d 以十进制的形式输出 %o 以八进制的形式输出 %x 以十六进制的形式输出 %u 以无符号十进制整数的形式输出,修德 砺能 崇学 尚行 广州城建职业学院,4整型数据的输入,scanf是格式输入函数,其功能是按指定的格式输入数据 scanf函数的使用格式: scanf(“格式字符串”,输入项1,输入项2,); 注:输入项必须使用地址,普通变量的地址是在变量名前加取地址符& %d 以十进制的形式输入 %o 以八进制的形式输入 %x 以十六进制的形式输入 %u 以无符号十进制整数的形式输入,修德 砺能 崇学 尚行 广州城建职业学院,#include void main() int r,r2,r3,r4; r=32767; r2=r*r; r3=r*r*r; r4=r3+r2; printf(“r=%d,r2=%d,r3=%d,r4=%dn“,r,r2,r3,r4); printf(“r=%o,r2=%o,r3=%o,r4=%on“,r,r2,r3,r4); printf(“r=%x,r2=%x,r3=%x,r4=%xn“,r,r2,r3,r4); ,修德 砺能 崇学 尚行 广州城建职业学院,3.1.2 字符型数据-1字符型常量,字符常量是用一对单引号括起来的一个字符。 如:a、a、b、=、+、?都是合法的字符常量。在c语言中,大小写字母是有区别的,如a和a是两个不同的字符常量。 c语言允许使用字符常量,这类常量以反斜杠“”开头,后跟一个或几个字符,称为转义字符。 常用的转义字符及含义请见教材p3,修德 砺能 崇学 尚行 广州城建职业学院,3.1.3 字符型数据,【例】转义字符的使用。 #include void main() printf(“cometon!b.nitsta bird.n“); ,程序运行结果如下: comeon. itsabird.,修德 砺能 崇学 尚行 广州城建职业学院,3.1.3 字符型数据,2字符型变量 字符型变量用来存放一个字符型常量。 字符型变量的定义方法: char 变量名1,变量名2,变量名n; 如:char ch1,ch2; ch1=x;ch2=y; 功能是把字符常量x和y分别赋给字符型变量ch1和 ch2。,修德 砺能 崇学 尚行 广州城建职业学院,3.1.3 字符型数据,【例】 字符型数据的应用(大小写字母转换)。 #include void main() char c1,c2; c1=a; c2=b; printf(“%c,%cn“,c1,c2); printf(“%d,%dn“,c1,c2); c1=c1+32; c2=c2+32; printf(“%c,%cn“,c1,c2); printf(“%d,%dn“,c1,c2); ,程序运行结果: a,b 65,66 a,b 97,98,修德 砺能 崇学 尚行 广州城建职业学院,字符输出函数,putchar函数(字符输出函数) 功能:在显示器上输出单个字符。 其一般形式为: putchar(字符变量) 对控制字符则执行控制功能,不在屏幕上显示。 使用本函数前必须要用文件包含命令:#include或#include“stdio.h”,修德 砺能 崇学 尚行 广州城建职业学院,输出单个字符,#include main() char a=b,b=o,c=k; putchar(a);putchar(b);putchar(b);putchar(c); putchar(t); putchar(a);putchar(b); putchar(n); putchar(b);putchar(c); ,修德 砺能 崇学 尚行 广州城建职业学院,字符输入函数,getchar函数(字符输入函数) 功能:从键盘上输入一个字符。 其一般形式为: getchar(); 通常把输入的字符赋予一个字符变量,构成赋值语句 如: char c; c=getchar();,修德 砺能 崇学 尚行 广州城建职业学院,例 输入单个字符,#include main() char c; printf(“input a charactern“); c=getchar(); putchar(c); ,修德 砺能 崇学 尚行 广州城建职业学院,字符串常量,字符串常量是由一对双引号括起来的字符序列,例如: “a”、“”、“hello”、“c program” , “$123” 等都是合法的字符串常量。 字符串所包含的字符个数称为字符串的长度,如“hello”长度为5,“你好”的长度为4(一个汉字相当于两个字符)。 双引号内没有任何字符的字符串称为空串,如“,其长度为0。,修德 砺能 崇学 尚行 广州城建职业学院,a ”a”,c语言规定,存储一个字符串时,系统将在字符串的结尾处自动添加一个字符串结束的标志 “0”,如: a在内存中占一个字节,可表示为: “a“在内存中占二个字节,可表示为:,修德 砺能 崇学 尚行 广州城建职业学院,3.1.4 实型数据,1实型常量 实型常量又称为浮点实数。实型常量可以用小数形式或指数形式表示。 1)十进制小数形式。由数字09和小数点组成。如:0.135、.48、25.0、-3.9等都是十进制小数形式的实型常量。 2)指数形式。由十进制数,加阶码标志“e”或“e”以及阶码组成。 c语言的语法规定,字母“e”或“e”之前必须要有数字,且“e”或“e”之后的阶码(即指数)必须为整数。如2.34e2、2.34e-2、0.01e3都是合法的,而2.34e2.0、e3、5.6e均不合法。,修德 砺能 崇学 尚行 广州城建职业学院,2实型变量,在程序运行过程中其值可以改变的实型量称为实型变量。 实型变量分为单精度(float)和双精度(double)两种类型。 例如: float a,f; 定义a,f为单精度实型变量 double x,y; 定义x,y为双精度实型变量 通常,float型的数据提供67位有效数字,double型的数据提供1516位的有效数字,具体精确到多少位与机器有关。,修德 砺能 崇学 尚行 广州城建职业学院,例 实型数据应用示例,#include void main() float r=5.6,x,s; x=3.1415926789; s=r*x; printf(“%fn“,s); ,程序运行结果: 17.592918,修德 砺能 崇学 尚行 广州城建职业学院,单精度数的输入和输出,#include void main() float x,y,sum; printf(“请输入两个浮点数:n“); scanf(“%f%f“, ,修德 砺能 崇学 尚行 广州城建职业学院,双精度数的输入和输出,#include void main() double x,y,sum; printf(“请输入两个浮点数:n“); scanf(“%lf%lf“, ,修德 砺能 崇学 尚行 广州城建职业学院,指定格式输出,#include void main() float x; double y; x=12.3456789;y=987654.321098; printf(“n%e,%le“,x,y); printf(“n%f,%lf“,x,y); printf(“n%.3f,%.3lf“,x,y); printf(“n%14.3f,%14.3lf“,x,y); printf(“n%-14.3f,%-14.3lf“,x,y); printf(“n%8.3f,%8.3lf“,x,y); printf(“n%14f,%14lf“,x,y); ,修德 砺能 崇学 尚行 广州城建职业学院,3.2 运算符与表达式,3.2.1算术运算符与算术表达式 3.2.2 赋值运算符与赋值表达式 3.2.3 逗号运算符与逗号表达式,修德 砺能 崇学 尚行 广州城建职业学院,3.2.1 算术运算符与算术表达式,1基本算术运算符 加法运算符“+”:是双目运算符,如14+8、x+y等。 减法运算符“-”:如14-8、x-y等。 乘法运算符“*”:如x*y、2*3等。 除法运算符“/”:参与运算量如果为整型,结果也为整型,舍去小数部分;如果运算量中有一个是实型,则运算结果为双精度实型。如7/2的结果是3,5.0/2的结果是2.5。 模运算符“%”:或称求余运算符,其运算对象必须为整型数据,其运算结果是整除后的余数。例如7%3=1,即7除以3得余数为1。,修德 砺能 崇学 尚行 广州城建职业学院,3.2.1 算术运算符与算术表达式,2自增、自减运算符 自增运算符(+)和自减运算符(-)的作用是分别使变量值自增1和自减1,它们均为单目运算符。 自增、自减运算符可以放在运算量的前面(称为前缀形式),也可以放在运算量的后面(称为后缀形式),例如+x或x+,它们相当于x=x+1。 但在表达式中,这两种用法是有区别的:如果自增或自减运算符在运算量的前面,c语言在引用运算量之前先使运算量执行加1或减1操作;如果运算符在运算量的后面,c语言就先引用运算量的值,然后再执行加1或减1操作。,修德 砺能 崇学 尚行 广州城建职业学院,3.2.1 算术运算符与算术表达式,【例】自增、自减运算符应用示例。 #include void main() int i,j; i=5; printf(“j=%dn“,j=i+); printf(“i=%dn“,i); printf(“j=%dn“,j=+i); printf(“i=%dn“i); printf(“k=%dn“,-i); ,程序运行结果: j=5 i=6 j=7 i=7 k=6,修德 砺能 崇学 尚行 广州城建职业学院,3.2.1 算术运算符与算术表达式,3算术运算符的优先级别和结合性 算术运算符和圆括号的优先级按由高到低的次序排列如下: ()、+、-、*、/、%、+、- 以上运算符中,除了单目运算符“+”和“-”的结合性是从右到左外,其余运算符的结合性都是从左到右。,修德 砺能 崇学 尚行 广州城建职业学院,3.2.1 算术运算符与算术表达式,4算术表达式 用算术运算符和括号将运算对象连接起来符合c语法规则的式子,称为算术表达式。 其中运算对象包括常量、变量、函数等。 例如,7/2+3.5*a-8%5*2.0,修德 砺能 崇学 尚行 广州城建职业学院,3.2.2 赋值运算符与赋值表达式,1赋值运算符 赋值符号“=”就是赋值运算符,它的作用是将一个数据赋给一个变量。 在c语言中,赋值也被认为是一种运算。 赋值表达式形式: 变量=表达式 赋值表达式的值就是被赋值变量的值 例如:x=10,y=x+6,z=3*b-c等等,修德 砺能 崇学 尚行 广州城建职业学院,3.2.2 赋值运算符与赋值表达式,赋值运算具有右结合性。 a=b=c=9 可理解为 a=(b=(c=9)。,修德 砺能 崇学 尚行 广州城建职业学院,3.2.2 赋值运算符与赋值表达式,2复合的赋值运算符 在赋值运算符之前加上其它运算符可以构成复合 赋值运算符。 c语言提供的复合赋值运算符如下: +=、-=、*=、/=、%=、 &=、=、|=、= 前5种为复合算术运算符,后5种为复合位运算符 例如: x+=7 等价于x=x+7,即先使x加7,再赋给x。 y*=x-6 等价于y=y*(x-6),而不是y=y*x-6。,修德 砺能 崇学 尚行 广州城建职业学院,3.2.3 逗号运算符与逗号表达式,逗号运算符是c语言提供的一种特殊的运算符用“,”来表示。 用逗号运算符将两个表达式连接起来,称为逗号表达式。 逗号表达式的一般形式: 表达式1,表达式2 逗号表达式的求解过程是:先求解表达式1,再求解表达式2,表达式2的值就是逗号表达式的值。 例如,逗号表达式 a=2*5,a*4,修德 砺能 崇学 尚行 广州城建职业学院,3.2.3 逗号运算符与逗号表达式,逗号表达式的一般形式可以扩展为: 表达式1,表达式2,表达式n 逗号运算符的结合性为“从左到右”,先计算表达式1,最后计算表达式n,表达式n的值就是整个逗号表达式的值。 逗号运算符的优先级别在所有运算符中是最低的。,修德 砺能 崇学 尚行 广州城建职业学院,3.2.3 逗号运算符与逗号表达式,【例】逗号运算应用示例。 #include void main() int x,y; x=50; y=(x=x-5,x/5); printf(“%d,%dn“,x,y); ,程序运行结果: 45,9,修德 砺能 崇学 尚行 广州城建职业学院,3.2.4 位运算和位运算符,所谓位运算是指进行二进制位的运算。 语言提供了六种位运算符: & 按位与 | 按位或 按位异或 按位反 右移 以上运算符除了“”为单目运算符外,其余均为双目运算符。另外,运算对象只能是整型或字符型数据,不能是实型数据。,修德 砺能 崇学 尚行 广州城建职业学院,位运算和位运算符,1按位与运算“&” 按位与运算符“&”是让参与运算的两个数对应的二进位分别相与。只有对应的两个二进位均为1时,结果位才为1,否则为0。 即:0&0=0 0&1=0 1&0=0 1&1=1。 按位与运算通常用来对某些位清零或保留某些位(和1与时,该位原值不变)。,修德 砺能 崇学 尚行 广州城建职业学院,12&35,12 00000000 00000000 00000000 00001100 35 00000000 00000000 00000000 00100011 12&35 00000000 00000000 00000000 00000000 即 12&35=0,修德 砺能 崇学 尚行 广州城建职业学院,考考你,1)100&425= 2)2321&-56= 小提示:可以用附件里的计算器先求出各个数所对应的二进制数,然后来进行位运算,保留32位,修德 砺能 崇学 尚行 广州城建职业学院,2按位或运算“|”,按位或运算符的功能是参与运算的两个数对应的二进位相或。只要对应的二个二进位有一个为1,结果位就为1;只有当两个对应位的数都为0时,该位的运算结果才为0。 即:0|0=0 0|1=1 1|0=1 1|1=1。,修德 砺能 崇学 尚行 广州城建职业学院,1235,12 00000000 00000000 00000000 00001100 35 00000000 00000000 00000000 00100011 12&35 00000000 00000000 00000000 00101111 即 1235=47,修德 砺能 崇学 尚行 广州城建职业学院,考考你,1)100425= 2)232&-56= 小提示:可以用附件里的计算器先求出各个数所对应的二进制数,然后来进行位运算,保留32位,修德 砺能 崇学 尚行 广州城建职业学院,3按位异或运算“”,按位异或运算的功能是参与运算的两数各对应的二进位相异或。当两个对应的二进位相异时,结果为1,两个对应的二进位相同时,结果为0。即:00=0; 01=1; 10=1; 11=0。 按位异或运算的主要应用: 1)使特定位翻转 2)与0按位异或,保留原值 3)交换两个值,不需要临时变量,修德 砺能 崇学 尚行 广州城建职业学院,1235,12 00000000 00000000 00000000 00001100 35 00000000 00000000 00000000 00100011 1235 00000000 00000000 00000000 00101111 即 1235=47,修德 砺能 崇学 尚行 广州城建职业学院,4按位取反运算“”,按位取反运算符为单目运算符,运算对象就置于运算符的右边。其功能是把运算对象的内容按位取反,即将1变0,将0变1。 如 40= 40 00000000 00000000 00000000 00101000 40 11111111 11111111 11111111 11010111 即为 00000000 00000000 00000000 00101001的负值 即为 -41,修德 砺能 崇学 尚行 广州城建职业学院,5左移运算“” 右移运算用来把“”左边的运算数的各二进位全部右移若干位,移动的位数由“”右边的数字指定。右移时,低位移出的二进制数舍弃,左端移入的二进制数分两种情况:对于无符号整数和正整数,高位补0;对于负整数,高位补1,这是因为负数在机器内均用补码表示的原因 右移n位相当于除以2n 321=32/2=16 323=32/23=4 -321=-16 32 00000000 00000000 00000000 00100000 -32的补码 11111111 11111111 11111111 11100000 -321 11111111 11111111 11111111 11110000 换成正数 00000000 00000000 00000000 00010000 16,修德 砺能 崇学 尚行 广州城建职业学院,.3.2.4 位运算和位运算符,7
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 家具配件厂健康体检管理规定
- 2025年便携医疗电子行业研究报告及未来行业发展趋势预测
- 管模维修工技能操作考核试卷及答案
- 铸管制芯工内部技能考核试卷及答案
- 玻璃厂印章保管责任管理规章
- 电池厂晋升管理规范制度
- 2025年吉安市青原区两山发展集团有限公司及下属子公司面向社会公开招聘考试参考题库及答案解析
- 2025云南昭通职业学院招聘城镇公益性岗位工作人员5人备考考试试题及答案解析
- 2025锡林郭勒盟工会招聘8名工会社会工作者和9名专职集体协商指导员备考练习试题及答案解析
- 2025年湖南大众传媒职业技术学院高层次人才公开招聘30人考试模拟试题及答案解析
- 高一语文学法指导(绝对经典)
- 双胎妊娠护理查房
- 2025年浙江省中考语文试题卷(含答案解析)
- 2025年副科级警察面试题及答案
- 2025 呼吸内科查房肺康复评估工具课件
- 2025年公安警察、辅警招聘知识考试题(附含答案)
- 2025年贵州建筑中级试题及答案
- 收银奖惩管理办法
- 浙江摆摊管理办法
- 古代服饰复原与租赁服务创新创业项目商业计划书
- 机械设计部绩效考核制度
评论
0/150
提交评论