第2讲数据类型、运算符和表达式

上传人:金** 文档编号:204381281 上传时间:2021-10-25 格式:PPT 页数:37 大小:541KB
返回 下载 相关 举报
第2讲数据类型、运算符和表达式_第1页
第1页 / 共37页
第2讲数据类型、运算符和表达式_第2页
第2页 / 共37页
第2讲数据类型、运算符和表达式_第3页
第3页 / 共37页
亲,该文档总共37页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《第2讲数据类型、运算符和表达式》由会员分享,可在线阅读,更多相关《第2讲数据类型、运算符和表达式(37页珍藏版)》请在金锄头文库上搜索。

1、全国计算机等级考试 2C课程,第二讲 数据类型、运算符和表达式,标识符,标识符在C程序中的作用:标识符可用作变量名、符号名、函数名、数组名、文件名,以及具有专门含义的名字。C程序中标识符的组成:合法的标识符只能由字母、数字、下划线组成,且第一个字符必须是字母或下划线数字不能打头如sum、day、Date、lotus_1_2_3、 _above都是合法的标识符。类别:C语言中标识符共有三种:关键字、预定义标识符和用户标识符,关键字C程序中关键字共有39个,由系统定义,代表固定含义,不能另作他用。,auto break case char constcontinue default do doub

2、le else,enum extern float for gotoif int long register return,short signedsizeofstaticstructswitchtypedefunsignedunionvoid,volatilewhileasminterrupthugenearcdeclfarpascal,标识符,注意:所有关键字均为小写。,预定义标识符预定义标识符在C语言中具有特定含义,如C语言提供的库函数名,如:printf、defineC语言允许用户另作他用,但这将使这些标识符失去系统规定的原意,所以建议不要另作他用。用户标识符用户标识符是指由用户根据需

3、要定义的标识符。用户标识符一般用来给变量、函数、数组、文件等命名说明:命名原那么是见名知意,不宜混淆,如l与I, o与0注意C语言中,标识符大小写敏感不能使用关键字作用户标识符,标识符,小练习:,1、以下选项中,能用作用户标示符的是2021年9月A) viod B) 8_8C) _0_ D) unsigned2、以下C语言用户标识符中,不合法的是2021年3月A) _1B) AaBcC) a_bD) ab,小练习:,3、阅读以下程序#includemain()int case;float printf;printf(“请输入2个数:);scanf(“%d%f,4、该程序在编译时产生错误,其出错

4、原因是A)定义语句出错,case是关键字,不能用作用户自定义标示符B)定义语句出错,printf不能用作用户自定义标示符C)定义语句出错,scanf不能作为输入函数使用D)定义语句出错,printf不能输出case的值,C语言的数据类型,C语言提供了丰富的数据类型,总结如下:,整型常量整常数书写形式:十进制整数:由数字09和正负号表示.如 123,-456,0八进制整数:由数字0开头,后跟数字07表示.如0123,011十六进制整数:由0 x开头,后跟09,af,AF表示. 如0 x123,0Xff,整型常量的类型整型常量也有根本整型(int)、长整型(long)和无符号整型(unsigned

5、)之分,由其值所在的范围确定。例如:在VC+环境下,2147483647为int型; 4294967295为unsigned;而4294967296为long型。此外,假设在整常量后加上字母l或L,无论数值大小都视其为long 型常量。例如:12L、34l。,常 量,实型常量实数或浮点数表示形式:十进制数形式:必须有小数点 如0.123, .123, 123.0, 0.0, 123.指数形式:e或E之前必须有数字;指数必须为整数如12.3e3,123E2,1.23e4都是正确的,而e-5,1.2E-3.5是错误的,实型常量的类型默认所有实型常量都是double型只有在实型常量后加字母f或F,才

6、认为它是float 型,常 量,字符常量定义:用单引号括起来的单个普通字符或转义字符。如 a A ? n 101都是合法的符号常量。字符常量的值是该字符的ASCII码值。常用字符的ASCII码值如下表所示,常 量,常 量,转义字符转义字符,是一类特殊的字符常量,在反斜线“后面跟一个字符或一个代码值表示。常见转义字符如下:,常 量,转义字符普通字符常量都可以用3位8进制数表示的转义字符或2位16进制数表示的转义字符表示。例如:字符常量A可以表示为101,或x41。其中 A 的ASCII码值是65,而101和x41,分别是65的8进制和16进制表示。请看下面的例子注意: 483 超出了取值范围,不

7、能表示任何字符。,例如: 101 -A 012 - n 376 - x61 - a 60 -0 483 - (),要特别注意字符常量与字符串常量的区别,字符串常量定义:用双引号(“)括起来的字符序列存储:每个字符串尾自动加一个 0 作为字符串完毕标志,常 量,常 量,符号常量定义格式: #define 符号常量 常量,例如:#define PRICE 30main() int num,total; num=10; total=num*PRICE; printf(total=%d“,total);,运行结果:total=300,说明:符号常量一般采用大写字母定义语句属宏定义预处理命令,不是C语句

8、,所以不用“;完毕,小练习:,1、以下选项中,能用作数据常量的是2021年3月 Ao115 B 0118 C1.5e1.5 D 115L2、以下选项中不能作为C语言合法常量的是2021年9月 Acd B) 0.1c+6C) a D) 0113、有以下程序,其中k的初值为八进制数main()int k=011;printf(%dn,k+);程序运行后的输出结果是A)12 B)11C)10D)9,变 量,变量的概念:程序运行时其值可以改变的量就叫做变量。每个变量都要用一个变量名即用户标识符来标识。例如:a,b,area 等。,变量的定义方法: 数据类型 变量1,变量2,变量n;,决定分配字节数和数

9、的表示范围,变量名必须是合法的标识符,例如: int a,b,c; float data;,变 量,变量的赋值对于变量,既可以先定义后赋值,也可以在定义的同时赋初值。允许在一条语句中一次定义多个一样类型的变量注意:int x=y=z=1;语句是不允许的。,例如: int a;a=4; /*先定义后赋值*/ float data=3.67; /*在定义的同时赋初值*/ int x=1,y=2,z; /*也可以在一条语句中一次定义多个一样类型的变量*/,变 量,变量的赋值编译程序将根据变量类型为其分配固定字节数的内存单元假如在定义时没有给变量赋初值,那么变量的值是一个随机值,变 量,定义变量的语句

10、,必须位于函数的开头,例如:main() int a,b=2; a=1; float data; data=(a+b)*1.2; printf(“data=%fn,data);,例如:main() int a,b=2; float data; a=1; data=(a+b)*1.2; printf(“data=%fn,data);,由于该定义变量的语句出如今赋值语句“a=1;之后,程序编译时将会出错,经过这样的修改,错误排除了!,变 量,对于变量,必须先定义,后使用,例如: int student; stadent=19; 由于以上语句中,stadent并没有定义,因此在编译时出现如下错误:

11、Undefined symbol statent in function main,变 量,对于变量,应该先赋值,再调用,例如: float a,b,c; c=a%b; 以上语句中,由于a,b都没有赋值,因此在编译时将出现如下错误: illegal use of floating point in function main,整型变量整型变量有short、int和long几种。整型变量占字节数随机器不同而不同。VC+环境下int和long都是占用4个字节, short占用2个字节。,实型变量float:占4字节,提供7位有效数字;double:占8字节,提供1516位有效数字,字符型变量字符变

12、量存放字符的ASCII码对c字符变量,可以直接与int数据间进展算术运算,例如: float a=111111111111.111111111f; double b=111111111111.111111111; printf(a=%fnb=%lfn,a,b);执行结果: a=111111110656.000000 b=111111111111.111110,例如:a=D; /* a=68; */ x=A+5; /* x=65+5; */ s=!+G /* s=33+71; */,注意:C语言中没有字符串变量,用字符数组存放,变量的类型,可用sizeof(标识符测量变量所占的字节数。如:在VC

13、+环境下,int a,b;b=sizeof(a);b的值为4要书写长整形常量,可在后面加后缀l或L,如 12L。书写无符号整数常量,可在数字末尾加上U或u,如 12u。书写长整形无符号常量,应该加上后缀lu或LU,如 12LU。注意:无符号常量不能表示小于0的数。如:-200u是不合法的。,整形数据的分类,小练习:,1、以下选项中正确的定义语句是2021年9月 A) double a;b; B) double a=b=7 C) double a=7,b=7; D) double,a,b;2、假设函数中有定义语句:int k;,那么2021年3月 A) 系统将自动给k赋初值0B) 这时k中值无定

14、义C) 系统将自动给k赋初值-1D) 这时k中无任何值3、C源程序中不能表示的数制是2021年9月 A二进制 B八进制 C十进制 D十六进制,对于有符号整数,内存中最高位用1表示负号,用0表示正数,整数在内存中的存储形式,对于正整数采用原码形式存放。例如:对于整数5,在内存中存储为00101,对于负整数采用补码形式存放。例如:对于整数-5,要在内存中存储需要两步:先求出整数5的原码的反码,即1111111111111010再对以上反码加1得到补码,即1111111111111011,对于无符号整数,16个二进制位全部用来存放整数,最高位不再表示符号。无符号整数没有负数,取值范围是0429496

15、7295,把补码转换为十进制数的步骤如下:先对补码按位取反。如-5的补码是1111111111111011,取反后得到00100;转换成十进制数。如对上步二进制数转换后得到十进制正整数4;在得到的十进制数前加上“-号,即得到负整数-4;再对得到的负数减去1,最终得到结果就是-5,整数在内存中的存储形式,根本算术运算符: + - * / %结合方向:从左向右优先级: - -* / % - + - (2) (3) (4)说明:“-可为单目运算符时,右结合性两整数相除,结果为整数%要求两侧均为整型数据,考虑:5%2 = ?-5/2 = ?1%10 = ?5%1 = ?5.5%2= ?,答案:5%2

16、= 1 -5/2 = -21%10 = 15%1 = 05.5%2= (),算术表达式,自增、自减运算符: + -作用:使变量值加1或减1种类:前置 +i, -i (先执行i+1或i-1,再使用i值后置 i+,i- (先使用i值,再执行i+1或i-1说明:+ - 不能用于常量和表达式,如5+,(a+b)+ -结合方向: 自右向左优先级:- + - -* / % -+ - (2) (3) (4)-i+ -(i+)。例如:i=3; printf(“%d,-i+); /-3j+k; (j+)+k;,算术表达式,简单赋值运算符符号:=格式:变量标识符=表达式作用:将一个数据常量或表达式赋给一个变量复合赋值运算符种类:+=、-=、*=、/=、%=、=、&=、=、|=含义:exp1 op= exp2 exp1 = exp1 op exp2例如: a+=3 a=a+3 x*=y+8 x=x*(y+8) x%=3 x=x%3,赋值表达式,考虑题: a=b=c=5 a=(b=5) a=5+(c=6) a=(b=4)+(c=6) a=(b=10)/(c=2),赋值运算符说明:结合方向:自右向左优先级: 1

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 大杂烩/其它

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号