C程序设计:第三章 数据类型、运算符与表达式_第1页
C程序设计:第三章 数据类型、运算符与表达式_第2页
C程序设计:第三章 数据类型、运算符与表达式_第3页
C程序设计:第三章 数据类型、运算符与表达式_第4页
C程序设计:第三章 数据类型、运算符与表达式_第5页
已阅读5页,还剩36页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、 第三章 数据类型、运算符与表达式 3.1 c的数据类型 32 常量与变量321 常量和符号常量 在程序运行过程中,其值不能被改变的量称为常量。常量区分为不同的类型如 12、0、-3为整型常量,4.6、-1.23为实型常量,a、d为字符常量。1.符号常量的定义与使用先定义后使用2.符号常量名要大写322 变量 其值可以改变的量称为变量。一个变量应该有一个名字,在内存中占据一定的存储单元.1.标识符:用来标识变量名、符号常量名、函数名、数组名、类型名、文件名的有效字符序列称为标识符(identifier) 简单地说,标识符就是一个名字。 2. C语言规定标识符只能由字母、数字和下划线三种字符组成

2、,且第一个字符必须为字母或下划线。下面列出的是合法的标识符,也是合法的变量名: sum,average,_total,Class,day,month,Student_name,tan,lotus_1_2_3,BASIC,h_ng3.变量必须先定义后使用4.定义格式为:数据类型 变量名1,变量名2,变量名n; 33 整型数据331 整型常量的表示方法 ,C整常数可用以下三种形式表示: 1、十进制整数。如 123,一456,0。 2、八进制整数。以0开头的数是八进制数。如0123表示八进制数123,即(等于十进制数8 3。-011表示八进制数-11,即十进制数-9。 3、十六进制整数。以 0 x开

3、头的数是十六进制数。如 0 x123,代表十六进制数 12 3,即1X162X16+3=2 5 6+3 2+3=2 91。-0X12等于十进制数-18。332 整型变量 1整型数据在内存中的存放形式 数据在内存中是以二进制形式存放的。 int i;i=10; 2整型变量的分类 根据数值的范围将变量定义为基本整型、短整型或长整型(12L或12l)。 1、基本整型,以int 表示。占二个字节 2、短整型,以 short int表示,或以 short表示。占二个字节 3、长整型,以 long int表示,或以 long表示。占四个字节 一个int 型变量的值的范围为一3276832767。“无符号”

4、类型:对以上三类都可以加上修饰符unsigned,以指定是“无符号数”。如果加上修饰符signed,则指定是“有符号数”。隐含为有符号。归纳起来,可以用以下6种整型变量。即: 有符号基本整型 int 无符号基本整型unsigned int 有符号短整型 short int 无符号短整型 unsigned short int 有符号长整型 long int 无符号长整型 unsigned long int 3整型变量的定义溢出 34 实型数据341 实型常量的表示方法 实数(real number)又称浮点数(floating point number) 实数有两种表示形式: 1、十进制小数形式

5、。它由数字和小数点组成1234 2、指数形式。如123e3或123E3都代表123000。但注意字母e(或E)之前必须有数字(1位),且e后面的指数必须为整数。342 实型变量 1、实型数据在内存中的存放形式 一个实型数据一般在内存中占4个字节,与整型数据的存储方式不同,实型数据是按照指数形式存储的。系统把一个实型数据分成小数部分和指数部分,分别存放。 2实型变量的分类 C实型变量分为:单精度(float型) 占四个字节。有效数字7位 双精度(double型)占八个字节 长双精度型(long double)占十六个字节3、实型变量的定义 4实型数据的舍入误差 35 字符型数据3.5.1 字符常

6、量 C的字符常量是用单引号括起来的一个字符。如bD等都是字符常量。注意,a和“A是不同的字符常量。“转义字符”:意思是将反斜杠后面的字符转换成另外的意义。如 n中的“n”不代表字母n而作为“换行”符。 *转义字符n :换行t :跳到下一个TAB位置b :退格r :回车不换行f :换页 :反斜杠 :单引号“ :双引号ddd : 8进制数所代表的字符xhh :16进制数所代表的字符Printf(“101102103104x41n”);结果为:ABCDA352 字符变量 字符型变量用来存放字符常量,请注意只能放一个字符, a与“a”不同,a占一个字节,“a”占二个字节353 字符数据在内存中的存储形

7、式及其使用方法 将一个字符常量放到一个字符变量中,实际上并不是把该字符本身放到内存单元中去,而是将该字符的相应的 ASCll代码放到存储单元中。例如字符a的 ASCll代码为97,在内存中实际上是以二进制形式01100001存放的,*字符数据在内存中的存储形式与127(0256)以内的整型数据在内存中的存储形式相同%d 0127为正数%d 128256为负数354 字符串常量1、 字符常量是由一对单引号括起来的单个字符,字符串常量是一对双引号括起来的字符序列。如, ”How do you do”,”CHINA”,”a”,”12345”都是字符串常量。可以输出一个字符串,如 printf(”Ho

8、w do you do”)2、字符串结束标志”,以便系统据此判断字符串是否结束。C规定以字符0作为字符串结束标志。0是一个ASCll码为0的字符,从ASCll代码表中可以看到ASCll码为0的字符是“空操作字符”,即它不引起任何控制动作,也不是一个可显示的字符。3、字符串常量占内存字节数=字符串长度+1 36变量赋初值 程序中常需要对一些变量预先设置初值变量设置初值。C语言允许在定义变量的同时使变量初始化。如: 37 各类数值型数据间的混合运算整型、实型、字符型数据间可以混合运算。例如: 10a十1587651234*b是合法的。在进行运算时,不同类型的数据要先转换成同一类型,然后进行运算。转

9、换的规则按图310所示。 38算术运算符和算术表达式|/ 整数相除,实数相除 2算术表达式和运算符的优先级与结合性优先级与数学一致结合性:左结合性:从左向右右结合性:从右向左 3强制类型转换运算符 (类型名)(表达式)*需要说明的是在强制类型转换时,得到一个所需类型的中间变量,原来变量的类型未发生变化。 4自增、自减运算符 作用是使变量的值增1或减1,如: +i,i=i+1 -i, i=i-1(在使用i之前,先使i的值加(减)1) i+,i-(在使用i之后,使i的值加(减)1) 注意:1、自增运算符(+)和自减运算符(-)只能用于变量,而不能用于常量或表达式2、十十和一的结合方向是“自右至左“

10、 5有关表达式使用中的问题说明(1)、i=3(i+)+(i+)+(i+)(2)、多个字符组成的运算符,自左而右组合如 ij,编译系统在处理时尽可能多地(自左而右)将若干个字符组成一个运算符理解为:(I+)+j(3)、在函数printf中参数符合右结合性 39赋值运算符和赋值表达式 1、赋值运算符 2、类型转换 如果赋值运算符两侧的类型不一致,但都是数值型或字符型时,在赋值时要进行类型转换。 (1)、将实型数据(包括单、双精度)赋给整型变量时,舍弃实数的小数部分(2)、将整型数据赋给单、双精度变量时,数值不变,但以浮点数形式存储到变量中 (3)、将一个 double型数据赋给 float变量时,

11、截取其前面 7位有效数字,但应注意数值范围不能溢出。(4)、字符型数据赋给整型变量时,分二种情况: (1) 、如果所用系统将字符处理为无符号的量或对unsigned char型变量赋值,则将字符的 8位放到整型变量低 8位,高 8位补零。(2)、如果所用系统将字符处理为带符号的量,若字符的最高位为0,则整型变量的高 8位为0,若字符的最高位为1,则整型变量的高 8位全为1,社称为符号扩展。 5、将一个int、short、 long 型数据赋值给一个char变量时,只将其低8位原封不动地送到char型变量(即截断)6、若将一个int型数据赋给一个long 型变量,数据送入低 16位,高16位进行

12、符号扩展。若将一个 long型数据赋给一个int 型变量,只将 long型数据中低 16位原封不动地送到整型变量(截断).7、若将一个unsigned int型数据赋给一个long int型变量,数据送入低 16位,高16位补0,不进行符号扩展。8、若将一个signed 型数据赋给一个unsign型变量,符号位照赋 3复合的赋值运算符(自反赋值运算符M1=10,m2=10,m3=10,m4=10 求m1,m2,m3,m4及表达式的值a=12逗号运算符与逗号表达式35,68称为逗号表达式,又称为“顺序求值运算符”。逗号表达式的一般形式为 a=3a=3*5,a*4表达式的值为60,a为15(a=3

13、*5,a*4),a+5 表达式的值为多少?20习题1、下列四组C语言标识符中,正确的一组是_。A.name cchar _abc A23B.abc?d 5byte usa ABC.-AB3C Double _hii3 integerD._Asdf char short_tt bb2、经 char w; int x ; float y; double z; 说明后,表达式w * x + z y 的数据类型是_。Afloat B.char C.int D.double 3、已知ch是字符型变量,以下不正确的赋值语句是_。Ach=a; B.ch=a;Cch=141; D. ch=x61;4、字符串B

14、BB123Xbbt的长度为_。A.8 B.17 C.14 D.10 5、C语言中,int 占2 个字节,则long 类型数据占_个字节。A.1 B.2 C.4 D.86、以下_是c语言提供的合法数据类型关键字。AFloat Bunsigned Cinteger DChar7、以下程序的输出结果是_。main()int a = 1,b = 2,c = 3,k;k=a + + + b + + + c + + ;printf(n%d, %d, %d, %d,a,b,c,k) ;A.1,2,3,6 B.2,3,4,6C.1,3,3,7 D.1,3,3,6 8、下面标识符中,合法的用户标识符为。 (A)for (B) tt-2 (C) long (D)num_19、下列变量说明中,正确的是。 (A)float : a,b,c; (B) int a;b;c; (C) double a,b; (D)int a,b,10、先用下列语句定义变量:int c; 然后要将97赋给变量c,则下列语句中正确的是。 (A)c=a (B) c=”a” (C) c=”97” (D) C=9711、执行下列语句的结果为。 i=3; k=(i+)+(+i)+(i+); printf(“%d,”,k

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论