c语言刘白林题库,第2章 基础知识

本文详细介绍了C语言中的标识符、常量、变量的概念和规则,包括关键字的使用限制。接着讲解了C语言的数据类型,如整型、实型和字符型,以及它们的存储形式和取值范围。此外,还阐述了不同类型数据的混合运算、运算符的优先级和类型转换,并通过实例解释了赋值运算、关系运算和逻辑运算。最后,提到了位运算符及其在二进制位操作中的应用。
摘要由CSDN通过智能技术生成

任课教师:刘白林,E-mail:xit.lbl@,计算机程序设计基础,第2章数据类型、运算符与表达式,第2章数据类型、运算符与表达式,2.1标识符、常量和变量2.2C语言的数据类型2.3不同类型数据的混合运算2.4运算符与表达式2.5位运算,,2.1标识符、常量和变量,2.1.1标识符与关键字2.1.2常量2.1.3变量,,2.1.1标识符与关键字,标识符:用来标识变量名、符号常量名、函数名、数组名、类型名、文件名的有效字符序列标识符命名原则:由三种字符组成:字母、数字和下划线第一个字符:必须为字母或下划线注意:C语言中,大小写字母是不同的标识符字符长度:ANSIC:无规定MSC:8字符TurboC:32字符起名原则:“见名知意”——可读性,,2.1.1标识符与关键字,关键字:又称为保留字预先定义的、具有特殊意义的标识符关于关键字的规定:1.不能重新定义关键字2.不能将关键字定义为一般标识符C语言中关键字的类型:1.类型标识符2.控制流标识符3.预处理标识符4.其他标识符,,2.1.1标识符与关键字,C语言中关键字:1.类型标识符:int,char,float,double,long,short,unsigned,void,struct,union,enum,auto,extern,register,static,typedef2.控制流标识符:goto,return,continue,break,if,else,for,do,while,switch,default3.预处理标识符:define,include,undef,ifdef,endif4.其他标识符:sizeof,volatile,,2.1.2常量,常量:其值不能被改变的数据直接常量:如:1,-7,3.14,‘t’,”Program”等符号常量:用一个标识符代表一个常量习惯上,符号常量名常用大写字母符号常量的定义:#definePI3.14159,,2.1.3变量,变量的使用要求:先定义,后使用变量的定义格式:类型名变量名;如inta,b;,变量:其值可以改变的数据本质:在内存中占据一定的存储单元,存储单元中存放变量的值,3,a,,2.1.3变量,C语言允许在定义变量的同时使变量初始化如:inta=3;/*定义a为整型变量,初值为3*/floatf=3.12;/*定义f为整型变量,初值为3.12*/charc=‘a’;/*定义c为整型变量,初值为‘a’*/inta=3;相当于inta;a=3;inta=100,b=-100,c=0;inta=100,b=-100,c=0;inta,b=123,c,i=0,j;,,,2.2C语言的数据类型,,2.2C语言的数据类型,2.2.1整型数据2.2.2实型数据2.2.3字符型数据,,2.2.1整型数据(一),整型常量:十进制整数:如123,-456,0八进制整数:(以0开头)如0123,-023十六进制整数:(以0 x开头)如0 x123,-0 x23,,2.2.1整型数据(二),整型变量:类型名:int整型数据在内存中的存放形式:数值以补码表示整型变量的分类:,,2.2.1整型数据(三),ANSI标准定义的整数类型,,2.2.1整型数据(四),整型变量的定义:整型数据的溢出:整型常量的类型:注:1)将一个整型常量赋值给一个整型变量是应注意对应的整型变量的取值范围2)在一个整型常量后面加一个字母l或L,则表示longint型常量,,2.2.2实型数据(一),实型常量的表示:十进制小数形式:如:.123、123.、123.0、0.0指数形式:如:123e3(123E3)——123*103如:123e-2(123E-2)——123*10-2,,2.2.2实型数据(二),实型变量:实型数据在内存中的存放形式:如101101.011,实型变量的分类:,,2.2.2实型数据(三),ANSI标准定义的实数类型,,2.2.2实型数据(四),实型数据的舍入误差:由于实型变量是用有限的存储单元存储的,因此能提供的有效数字是有限的,在有效位以外的数字将舍去。由此可能产生一些误差实型常量的类型:多数编译系统将实型常量作为双精度来处理在一个实型常量后面加一个字母f或F,则表示此常量按单精度来处理,,2.2.3字符型数据(一),字符常量的表示:用单引号括起来的一个字符如:‘a’、‘D’、‘5’、‘$’、‘’转义字符:用\开头的字符序列如:’\n’、’\t’、’\b’、’\\’、’\’’、’\”’如:’\10’、’\121’、’\xa’、’\x41’、’\x61’字符串常量:用双引号括起来的字符序列,,转义字符,2.2.3字符型数据(二),字符型变量:用来存放字符常量(单个字符),而非字符串如:charc1,c2;c1=‘a’;c2=‘\n’;字符型变量的存放:存放的是对应字符的ASCII码值字符型数据和整型数据是通用的字符型数据占用内存空间的一个字符,只能存放0~255范围内的整数程序举例:字符型数据与整型数据,,2.3不同类型数据的混合运算,,2.3.1数据混合运算与类型转换2.3.2赋值运算时的类型转换2.3.3强制类型转换,2.3.1数据混合运算与类型转换,运算原则:进行运算时,不同类型的数据先转换为同一类型,然后进行运算转换规则为:,此种数据类型转换是由系统自动进行的,注:箭头表示当运算对象为不同类型时数据转换的方向,,2.3.2赋值运算时的类型转换,赋值运算符:=说明:赋值运算符左侧必须为变量,右侧为表达式。将运算符右侧的数据赋值给运算符左侧的变量规则:在进行赋值运算时,赋值运算符右侧的数据类型先转换为与赋值运算符左侧变量的数据类型如:inta;a=3.14;/*a的值为3*/,,2.3.2赋值运算时的类型转换,赋值运算符:变量=表达式,,2.3.3强制类型转换,强制类型转换:(类型名)(表达式)说明:将一个表达式的类型转换为指定的的数据类型如:floata=4.5;intb;b=a*2;如:floata=4.5;intb;b=(int)a*2;,,2.4运算符与表达式,,2.4.1C语言运算符简介2.4.2算术运算符及表达式2.4.3赋值运算符及表达式2.4.4关系运算符及表达式2.4.5逻辑运算符及表达式2.4.6逗号运算符及表达式,2.4.1C语言运算符简介,,2.4.2算术运算符及表达式,基本算术运算符:+加法或正值运算符-减法或负值运算符*乘法运算符/除法运算符%模运算符,或求余算符如:3+55–99/43.5*27%4算术表达式:用算术运算符和括号将运算对象(也称操作数)连接起来的、符合C语法规则的式子。操作对象包括:常量、变量、表达式、函数等表达式的类型:算术运算符的优先级和结合性:,,2.4.2算术运算符及表达式,自增、自减运算符作用:++i--i在使用i之前,使i的值加或减1i++i--在使用i之后,使i的值加或减1说明:只能用于变量如:inti=3,j,k;j=i++;k=++i;inti=3,j;j=(i++)+(i++)+(i++);inti=3,j;j=(++i)+(++i)+(++i);结合方向:“自右至左”,如:-j++,i+++j,,2.4.3赋值运算符及表达式,赋值运算符:变量=表达式如:inta,b;floatd,e;charc1,c2;a=0;b=a+7;d=3.14;e=2;c1=‘a’;c2=65;复合的赋值运算符:赋值运算符前可以加其他运算符,构成复合运算符如:a+=3相当于a=a+3x*=y+8相当于x=x*(y+8)x%=3相当于x=x%3,,2.4.3赋值运算符及表达式,赋值表达式:格式:如:a=5a=(b=5)a=(b=4)+(c=6)a+=a-=a*a,,2.4.4关系运算符及表达式,优先级比较算术运算符关系运算符赋值运算符,关系表达式:用关系运算符将两个表达式连接起来的式子。关系表达式的值:即“真”或“假”——逻辑值C语言中,以1表示“真”,0表示“假”例:a=3,b=2,c=1d=a>be=a>b>cf=ad)应用举例:判断某年是否闰年闰年:y%4==0&&y%100!=0||y%400==0非闰年:!(y%4==0&&y%100!=0||y%400==0)或:y%4!=0||y%100==0&&y%400!=0,,2.4.6逗号运算符及表达式,逗号运算符:又称顺序求值运算符格式:表达式1,表达式2说明:依次求解各表达式,整个表达式的值为表达式2的值。如:(3*5,2*4)的值为8如:a=3*5,2*4a=3*5,a*4(a=3*5,a*4),a+5逗号表达式的扩展形式:格式:表达式1,表达式2,……,表达式n如:a=3*5,a*4,a+5逗号运算符的优先级最低,,2.4.7条件运算符及表达式,格式:表达式1?表达式2:表达式3说明:当表达式1的值为真时,条件表达式的值取表达式2的值;否则,条件表达式的值取表达式3的值。优先级:,优先级比较关系和逻辑运算符条件运算符赋值运算符,结合方向:“自右至左”例:inta=2,b=3,c=0;a>b?a+b:a*bc?a+b:a*b例:a>b?a:c>d?c:d,,2.5位运算,位运算符:按位逻辑与&按位逻辑或|按位取反~按位异或^左移>,操作举例:chara=0 x56,b=0 x3b;,a&b:00010010,a|b:01111111,a^b:01101101,~a:10101001,a<>2:00001110,“异或”操作:参加运算的两个二进制位的值不同则结果为1,否则结果为0,,运算符与表达式小结,表达式:由运算符和数据对象按C语言语法规则连接起来的式子。注意问题:1)运算符的书写形式与含义;2)运算符要求的数据对象数目;3)运算符的结合方向;4)运算符的优先级;5)表达式值的求解;6)表达式的类型。,,“C语言程序设计”课程答疑,任课教师:刘白林,,一、每周有专业教师负责答疑:参考教务处的统一安排二、教师邮箱:[email protected]:cyycxsj@,

展开阅读全文

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值