收藏 分销(赏)

C程序设计配套及课后习题答案C数据类型.pptx

上传人:w****g 文档编号:4610151 上传时间:2024-10-07 格式:PPTX 页数:26 大小:144.59KB 下载积分:10 金币
下载 相关 举报
C程序设计配套及课后习题答案C数据类型.pptx_第1页
第1页 / 共26页
C程序设计配套及课后习题答案C数据类型.pptx_第2页
第2页 / 共26页


点击查看更多>>
资源描述
数据结构?数据结构?待处理的数据都是以某种形式存在的(数字,字符等等)数据之间存在某种联系数据结构:数据的组织形式。如:数组(一系列前后相邻的数字)C语言中的任何数据都必须为其指定语言中的任何数据都必须为其指定数据类型!数据类型!3.2 3.2 常量和变量常量和变量3.2.1常量常量&符号常量符号常量定义:程序运行时其值不能改变的量(即常数)。分类分类:直接常量直接常量:整型常量 实型常量 字符常量 字符串常量符号常量符号常量:用标识符代表常量定义格式:#define 符号常量 常量一般用大写字母是宏定义预处理命令,不是C语句如:#define PRICE 30符号常量举例#define PRICE 30main()int num,total;num=10;total=num*PRICE;printf(total=%d,total);运行结果:total=3003.2.2 变量变量 “标识符”(identifier)的概念定义:用来标识变量、常量、函数等的字符序列组成规则:l只能由字母、数字、下划线组成,且第一个字母必须是字母或下划线l大小写敏感大小写敏感:case-sensitive:case-sensitivel不能使用关键字长度:各个C编译系统有不同的规定。建议不要超过8个命名原则:l见名知意l不宜混淆 如l与I,o与0在语言中,要求对所有用到的变量,必须 “先定义、后使用先定义、后使用”!这样做的目的:这样做的目的:(1)避免变量名使用错;(2)便于为不同类型的数据分配内存空间;(3)便于在编译过程中检查该变量所进行的运算是否合法;变量定义的一般格式:数据类型 变量名,变量名2;例如,int radius,length,area;3.3 3.3 整型数据整型数据3.3.1 3.3.1 整型常量的表示方法整型常量的表示方法三种形式:十进制整数:十进制整数:由数字09和正负号表示.如:123,-456,0八进制整数:八进制整数:由数字0开头,后跟数字07表示.如:0123,011十六进制整数:十六进制整数:由0 x开头,后跟09,af,AF表示.如:0 x123,0Xff3.3.2 3.3.2 整型变量整型变量1.在内存中的存放形式:二进制(正数、负数的不同表示形式)。在内存中占两个字节。最左边一位:符号位。最左边一位:符号位。0 0为正,为正,1 1为负。为负。2.分类(根据数值表达范围的不同)(1)基本整型:int (数字范围:-215(215-1)(2)短整型:short int 或 short(3)长整型:long int 或 longunsigned&signedunsigned&signedv实际应用中,大部分常量的值是正的,如学生年龄,身高等。为此定义了“unsignedunsigned”无符号类型无符号类型,指代无符号数值,如123,4687等。v但是还有一些数字是负数:如-123,-3等,用“signedsigned”有符号类型有符号类型来定义。v如果一个变量,既不指定为unsigned,也不指定为signed,则默认为默认为 signedsigned。v无符号整型变量中可以存放的正数的范围比有符号整型变量中存放的范围扩大一倍。(见见4343页:图页:图 3.43.4)int a;3276832767 unsigned int b;0655353.3.3 3.3.3 整型常量的类型整型常量的类型v根据其值所在范围确定其数据类型。v在整常量后面加一个字母u或U,认为是unsigned类型。此时,在内存中的最高位即最左边一位不是符号位,而是数据。v在整常量后加字母l或L,认为它是long int 型常量。3.4 3.4 实型数据实型数据3.4.1 3.4.1 实型常量的表示实型常量的表示 实型常量,又叫实数或浮点数。表示形式:十进制数形式:十进制数形式:(必须有小数点)如0.123,.123,123.0,0.0,123.指数形式:指数形式:(e或E之前必须有数字;之后的是指数,指数必须为整数)如12.3e3,123E2,1.23e4“规范化的指数形式规范化的指数形式”3.4.23.4.2 实型变量实型变量1.实型数据在内存中:占占4 4个字节个字节2.2.存储方式:指数形式!存储方式:指数形式!按小数部分和指数部分分别存放。两个部分分别占的位数不同的编译系统有各自规定。3.分类(按表示精度的不同)1.1.单精度:单精度:float float 一般占字节(位);67位有效数字2.2.双精度:双精度:doubledouble 一般占个字节;1516位有效数字3.3.长双精度:长双精度:long double3.4.3 3.4.3 实型常量的类型实型常量的类型默认默认doubledouble型在实型常量后加字母f f或或F F,认为它是float型3.5 3.5 字符型数据字符型数据3.5.1 3.5.1 字符常量字符常量定义:用单引号单引号括起来的单个普通字符或转义字符.字符常量的值:该字符的ASCII码值如 101 -A 012 -n 376 -x61 -a如 A65 a97 048 n10如 a A?n 101转义字符:反斜线后面跟一个字符或一个代码值表示注意注意:如果反斜杠或单引号本身作为字符常量,必须使用转义字符:、。转义字符!转义字符!在语言程序中,常常会看到这样的语句:在语言程序中,常常会看到这样的语句:printf(printf(“Welcome to C!Welcome to C!nn”););执行结果:语句最后的执行结果:语句最后的nn并没有被打印在屏幕并没有被打印在屏幕上。上。n n 称为称为“转义字符转义字符”。在碰到反斜杠时,在碰到反斜杠时,printfprintf把反斜杠和下一个字把反斜杠和下一个字符结合起来构成符结合起来构成“转义序列转义序列”,例如(,例如(nn)的)的意思是意思是“换行换行”,它使光标定位到下一行的开,它使光标定位到下一行的开始位置。始位置。3.5.2 3.5.2 字符变量字符变量 字符变量的类型关键字为字符变量的类型关键字为charchar,内存中,内存中占用占用1 1字节。字节。字符变量字符变量用来存储用来存储字符常量字符常量。将一个字。将一个字符常量存储到一个字符变量中,实际上是将符常量存储到一个字符变量中,实际上是将该字符的该字符的ASCIIASCII码值(无符号整数)存储到码值(无符号整数)存储到内存单元中。内存单元中。注意注意:一个字符型变量只能存放一个字符常一个字符型变量只能存放一个字符常量!量!3.5.3 3.5.3 字符型数据的存储方式及使用字符型数据的存储方式及使用字符数据在内存中存储的是字符的字符数据在内存中存储的是字符的ASCIIASCII码码 一一个无符号整数,其形式与整数的存储形式一样,个无符号整数,其形式与整数的存储形式一样,所以所以语言允许字符型数据与整型数据之间通用。语言允许字符型数据与整型数据之间通用。(1 1)一个字符型数据,既可以字符形式输出,也)一个字符型数据,既可以字符形式输出,也可以整数形式输出。可以整数形式输出。(见(见5050页例页例3.63.6)(2 2)允许对字符数据进行算术运算,此时就是对)允许对字符数据进行算术运算,此时就是对它们的它们的ASCIIASCII码值进行算术运算。码值进行算术运算。(见(见5151页例页例3.73.7)3.5.4 3.5.4 字符串常量字符串常量定义:字符串常量是用一对定义:字符串常量是用一对双引号双引号括起来的括起来的若干若干字符序列。字符序列。例如,例如,“How do you do.How do you do.”、“Good morning.Good morning.”等,都是等,都是字符串常量,其长度分别为字符串常量,其长度分别为1414和和1313(空格也是一个字符)。(空格也是一个字符)。字符串长度:字符串长度:字符串中字符串中字符的个数字符的个数称为字符串长度。称为字符串长度。空串:空串:长度为长度为0 0的字符串(即一个字符都没有的字符串)的字符串(即一个字符都没有的字符串)。表示为。表示为“”(一对(一对紧连紧连的双引号)。的双引号)。注意:如果注意:如果反斜杠反斜杠和和双引号双引号作为字符串中的有效字符,作为字符串中的有效字符,则必须使用转义字符。则必须使用转义字符。例如,例如,I say:Goodbye!I say:Goodbye!I say:Goodbye!I say:Goodbye!字符串的存储字符串的存储C C语言规定:在存储语言规定:在存储字符串常量字符串常量时,由系统在字符串的末尾自时,由系统在字符串的末尾自动加一个动加一个00作为字符串的作为字符串的结束标志结束标志。注意:在源程序中书写字符串常量时,不必加结束字符注意:在源程序中书写字符串常量时,不必加结束字符00,否则画蛇添足。,否则画蛇添足。如果有一个字符串为如果有一个字符串为“CHINACHINA”,则它在内存中的实际存,则它在内存中的实际存储如下所示:储如下所示:最后一个字符最后一个字符00是系统自动加上的。因此,这个字符串是系统自动加上的。因此,这个字符串占用字节而非字节内存空间。占用字节而非字节内存空间。CHINA0注意:在注意:在C C语言中没有专门的字符串变量!语言中没有专门的字符串变量!3.63.6 变量赋初值变量赋初值 程序中通常要求对一些变量预先设置初值。程序中通常要求对一些变量预先设置初值。int a=3;int a;a=3;单个变量的赋值:单个变量的赋值:多个变量的赋值:多个变量的赋值:int a,b,c=5;int a,b,c=5;仅对仅对c c赋值赋值int a=3,b=3,c=5;int a=3,b=3,c=5;对三个变量都赋值对三个变量都赋值3.63.6 各种数值类型数据之间的各种数值类型数据之间的 混合运算混合运算在在语语言言中中,整整型型、实实型型和和字字符符型型数数据据间间可可以以混混合合运运算算(因因为为字符数据与整型数据可以通用)。字符数据与整型数据可以通用)。如如果果一一个个运运算算符符两两侧侧的的操操作作数数的的数数据据类类型型不不同同,则则系系统统按按“先先转转换换、后后运运算算”的的原原则则,首首先先将将数数据据自自动动转转换换成成同同一一类类型型,然然后后在在同同一一类类型型数数据据间间进行运算。进行运算。(转换规则如转换规则如5454页图页图3-103-10所示所示)横横向向向向左左的的箭箭头头,表表示示必必须须的的转转换换。charchar和和shortshort型型必必须须转转换换成成 int int 型,型,floatfloat型必须转换成型必须转换成doubledouble型。型。纵向向上的箭头,表示不同类型的转换方向。纵向向上的箭头,表示不同类型的转换方向。例如,例如,intint型与型与doubledouble型数据进行混合运算,则先将型数据进行混合运算,则先将intint型数据转换成型数据转换成doubledouble型,然后在两个同类型的数据型,然后在两个同类型的数据间进行运算,结果为间进行运算,结果为doubledouble型。型。注意:箭头方向只表示数据类型由低向高转换,不要理注意:箭头方向只表示数据类型由低向高转换,不要理解为解为intint型先转换成型先转换成unsignedunsigned型,再转换成型,再转换成longlong型,最后型,最后转换成转换成doubledouble型。型。3.8 3.8 算术运算符和算术表达式算术运算符和算术表达式在语言中,除控制语句和输入输出函数外,其它所有在语言中,除控制语句和输入输出函数外,其它所有基本操作都作为运算符处理。基本操作都作为运算符处理。1.1.五种基本算术运算符五种基本算术运算符 +、-(减法(减法/取负)、取负)、*、/、%(求余数)(求余数)v关于除法运算关于除法运算 /C C语言规定:两个整数相除,其商为整数,小数部分被舍弃。例语言规定:两个整数相除,其商为整数,小数部分被舍弃。例如,如,5/2=25/2=2。v关于求余数运算关于求余数运算 要求两侧的操作数均为整型数据,否则出错。要求两侧的操作数均为整型数据,否则出错。2.2.表达式和算术表达式表达式和算术表达式表达式的概念表达式的概念:用运算符和括号将运算对象(常量、变量和:用运算符和括号将运算对象(常量、变量和函数等)连接起来的、符合语言语法规则的式子,称为表函数等)连接起来的、符合语言语法规则的式子,称为表达式。达式。u算术表达式:表达式中的运算符都是算术运算符。例如,算术表达式:表达式中的运算符都是算术运算符。例如,3+6*93+6*9、(x+y)/2(x+y)/2 等,则称为算术表达式。等,则称为算术表达式。运算符的优先级与结合性运算符的优先级与结合性:(1 1)语言规定了运算符的优先级和结合性。)语言规定了运算符的优先级和结合性。所所谓谓结结合合性性是是指指,当当一一个个操操作作数数两两侧侧的的运运算算符符具具有有相相同同的的优优先先级级时时,该该操操作作数数是是先先与与左左边边的的运运算算符符结结合合,还还是是先先与与右右边边的的运运算算符符结结合。合。自左至右的结合方向,称为左结合性。反之,称为右结合性。自左至右的结合方向,称为左结合性。反之,称为右结合性。结结合合性性是是语语言言的的独独有有概概念念。除除单单目目运运算算符符、赋赋值值运运算算符符和和条条件件运算符是右结合性外,其它运算符都是左结合性。运算符是右结合性外,其它运算符都是左结合性。3.3.强制类型转换强制类型转换 除自动转换外,语言也允许强制转换。除自动转换外,语言也允许强制转换。数据类型强制转换的一般格式为:数据类型强制转换的一般格式为:(要转换成的数据类型要转换成的数据类型)()(被转换的表达式被转换的表达式)当当被被转转换换的的表表达达式式是是一一个个简简单单表表达达式式时时,外外面面的的一一对对圆圆括括号号可以缺省。可以缺省。例如,例如,(double)a(double)a(等价于(等价于(double)(a)/*(double)(a)/*将变量将变量a a的值转换成的值转换成doubledouble型型*/(int)(x+y)(int)(x+y)/*/*将将x+yx+y的结果转换成的结果转换成intint型型*/(float)5/2(float)5/2(等价于(等价于(float)(5)/2(float)(5)/2)/*/*将将5 5转换成实型,再除以转换成实型,再除以2 2(=2.5=2.5)*/(float)(5/2)(float)(5/2)/*/*将将5 5整除整除2 2的结果(的结果(2 2)转换成实型()转换成实型(2.02.0)*/注意:注意:强制转换类型得到的是一个所需类型的中间量,原表达式类强制转换类型得到的是一个所需类型的中间量,原表达式类型并不发生变化。型并不发生变化。例如,例如,(double)a(double)a 只是将变量只是将变量a a的值转换成一个的值转换成一个doubledouble型的中间量,其数据类型并未转换成型的中间量,其数据类型并未转换成doubledouble型。型。P56P56例例 3.83.84 4 自增、自减运算符自增、自减运算符v作用:增运算使单个变量的值增,自减运算使单个变作用:增运算使单个变量的值增,自减运算使单个变量的值减。量的值减。v用法与运算规则:用法与运算规则:(自增、自减运算符都有两种用法自增、自减运算符都有两种用法)前置运算前置运算运算符放在变量之前:变量、变量运算符放在变量之前:变量、变量 先使变量的值增(或减),然后再以变化后的先使变量的值增(或减),然后再以变化后的值参与其它运算,即值参与其它运算,即先增减、后运算先增减、后运算。后置运算后置运算运算符放在变量之后:变量、变量运算符放在变量之后:变量、变量 变量先参与其它运算,然后再使变量的值增(或变量先参与其它运算,然后再使变量的值增(或减),即减),即先运算、后增减先运算、后增减。注意:自增、自减运算符,注意:自增、自减运算符,不能用于常量和表达式不能用于常量和表达式。例如,例如,5+5+、-(a+b)-(a+b)等都是非法的。等都是非法的。见见 P57 P57 3.9 3.9 赋值运算符和赋值表达式赋值运算符和赋值表达式赋值符号赋值符号“=”就是赋值运算符,它的作用是将一个就是赋值运算符,它的作用是将一个表达式的值赋给一个变量。表达式的值赋给一个变量。赋值运算符的一般形式为:赋值运算符的一般形式为:变量变量 =赋值表达式赋值表达式 例如,例如,x=5 x=5 y=(float)5/2 y=(float)5/2如果表达式值的类型,与被赋值变量的类型不一致,但如果表达式值的类型,与被赋值变量的类型不一致,但都是数值型或字符型时,系统自动地将表达式的值转换都是数值型或字符型时,系统自动地将表达式的值转换成被赋值变量的数据类型,然后再赋值给变量。成被赋值变量的数据类型,然后再赋值给变量。复合赋值运算符复合赋值运算符复复合合赋赋值值运运算算符符是是由由赋赋值值运运算算符符之之前前再再加加一一个个双双目目运运算算符符构构成的。复合赋值运算的一般格式为:成的。复合赋值运算的一般格式为:变量变量 双目运算符双目运算符 =表达式表达式 复合赋值运算符复合赋值运算符它它等价于等价于:变量变量 =变量变量 双目运算符双目运算符 (表达式表达式)例如,例如,x+=3 /*x+=3 /*等价于等价于 x=x+3*/x=x+3*/y*=x+6/*y*=x+6/*等价于等价于y=y*(x+6);y=y*(x+6);而不是而不是y=y*x+6*/y=y*x+6*/C C语言规定的语言规定的1010种复合赋值运算符如下:种复合赋值运算符如下:+=+=,-=-=,*=,/=/=,%=%=;/*/*复合算术运算符(复合算术运算符(5 5个)个)*/&=&=,=,|=|=,=;/*/*复合位运算符(复合位运算符(5 5个)个)*/3.9 3.9 逗号运算符和逗号表达式逗号运算符和逗号表达式语言提供一种用逗号运算符语言提供一种用逗号运算符“,”连接起来的式子,称为连接起来的式子,称为逗号表达式,逗号表达式,又称顺序求值运算符又称顺序求值运算符。1.1.一般形式一般形式 表达式表达式,表达式表达式,表达式表达式n n2.2.求解过程求解过程 自自左左至至右右,依依次次计计算算各各表表达达式式的的值值,“表表达达式式n n”的的值即为整个逗号表达式的值。值即为整个逗号表达式的值。例如,逗号表达式例如,逗号表达式 a=3*5,a*4 a=3*5,a*4 的值?的值?先求解先求解a=3*5 a=3*5 得得a=15a=15;再求;再求a*4=60 a*4=60 所以值所以值=60=60。又例如,逗号表达式又例如,逗号表达式 (a=3*5,a*4),a+5(a=3*5,a*4),a+5 的值?的值?先求解先求解a=3*5 a=3*5 得得a=15a=15;再求;再求a*4=60a*4=60;最后求解;最后求解a+5=20a+5=20,所以逗号表达式的值所以逗号表达式的值=20=20。注意:并不是任何地方出现的逗号,都是逗号运算符。注意:并不是任何地方出现的逗号,都是逗号运算符。很多情况下,逗号仅用作分隔符。很多情况下,逗号仅用作分隔符。(1 1)下述标识符中,()下述标识符中,()是合法的用户标识符。)是合法的用户标识符。A A)A&BA&BB B)voidvoid C C)_student_studentD D)ab*ab*(2 2)C C语言中运算对象必须是整数的运算符是(语言中运算对象必须是整数的运算符是()。)。A A)%B B)/C C)%和和/D D)*(3 3)下述)下述C C语言转义符中(语言转义符中()是非法的。)是非法的。A A)bbB B)037037C C)0 xf0 xfD D)(4 4)C C语言中最简单的数据类型包括(语言中最简单的数据类型包括()。)。A A)整型,实型,逻辑型)整型,实型,逻辑型B B)整型,实型,字符型)整型,实型,字符型C C)整型,字符型,逻辑型)整型,字符型,逻辑型D D)整型,实型,逻辑型,字符型)整型,实型,逻辑型,字符型(5 5)下面四个选项)下面四个选项,均是合法浮点数的选项是均是合法浮点数的选项是()A)+1e+1,5e-9.4,03e2A)+1e+1,5e-9.4,03e2B)-.60,12e-4,-8e5B)-.60,12e-4,-8e5C)123e,1.2e-.4,+2e-1C)123e,1.2e-.4,+2e-1D)-e3,.8e-4,5.e-0 D)-e3,.8e-4,5.e-0 当堂练习!当堂练习!C CA A B BC CB B
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服