《程序设计02章数据类型与运算.ppt》由会员分享,可在线阅读,更多相关《程序设计02章数据类型与运算.ppt(128页珍藏版)》请在三一办公上搜索。
1、,第二章,基本数据类型及运算,进位计数制,在计算机科学中除十进制外,常用的还有二进制、八进制和十六进制。如果用r个基本符号(例如0,1,2,r1)表示数值,则称其为r进制数,r称为该数制的基数。,不同计数制具有的共同特点,每一种计数制都有固定的符号集 如十进制数制,其符号有十个:0,1,2,9。二进制数制,其符号有两个:0和1。不同进制都使用位置表示法,即处于不同位置的数符所代表的值不同,该值与所在位置的权值有关。值=数符*权值 x4x3x2x1x0.x-1x-2x-3x-4,权值是基数的i次幂,十进制各位置(012.)的权值,100=1 101=10 102=100 103=1000 如 1
2、23.456=1*102+2*101+3+4*10-1+5*10-2+6*10-3,二进制各位置(012.)的权值,20=1 21=2 22=4 23=8 24=1625=32 26=64 27=128 28=25629=512 210=1024 211=2048212=4096 213=8192 214=16384215=32768 216=65536,不同进制之间的转换,r进制转换为十进制 将r进制数的每位(非零)数值与相应位置的权值相乘,然后相加即可。x4x3x2x1x0.x-1x-2x-3x-4如(100110.101)2=(1*25+1*22+1*21+1*2-1+1*2-3)10=
3、(38.625)10,思考,(1111)2=(?)10=2?-1(11111)2=(?)10=2?-1(111111)2=(?)10=2?-1(1111111)2=(?)10=2?-1(11111111)2=(?)10=2?-1,十进制数转换为r进制:除r取余法 将一个十进制整数反复除以基数r,直到商为0为止,并记下每次所得余数 将最后一个余数到第一余数按从左到右的次序连起来,它们所组成的数字串即为相应的r进制整数。,非十进制数间的转换两个非十进制数之间的转换方法一般结合上述两种方法进行转换,即先把被转换数据转换为相应的十进制数,然后再将十进制数转换为其他进制数。由于二进制、八进制和十六进制之
4、间存在特殊关系,即8=23,16=24,因此转换方法就比较容易,特殊关系,1位二进制数相当于1位二进制数 1位四进制数相当于2位二进制数 221位八进制数相当于3位二进制数 231位十六进制数相当于4位二进制数 24,特殊关系基本对照表,二进制 八进制 二进制 十六进制 二进制 十六进制 000 0 0000 0 1000 8 001 1 0001 1 1001 9 010 2 0010 2 1010 A 011 3 0011 3 1011 B 100 4 0100 4 1100 C 101 5 0101 5 1101 D 110 6 0110 6 1110 E 111 7 0111 7 11
5、11 F,二进制转换到八进制 只需将二进制数从右向左每3位一组(最后不足3位补零),根据基本对照表,从左向右即可完成转换。二进制同十六进制之间的转换:4位一组反之,可以转换为二进制,其他相关内容,参考1.1.2,有关位的知识以及计算机中数值的编码表示方法,内存是以2的指数(0123.)个字节为单位的连续的存储空间,每个内存单元有一个唯一的编号,即地址一个字节由8个二进制位组成最右边的一位称为“最低位”,最左边的一位称为“最高位”。每一个二进制位的值是0或1。,以最高位作为符号位为0表示正数,为1表示负数。表示数值,可采用不同的编码方法,一般有:原码、反码和补码。,原码,符号位为0代表正数,为1
6、代表负数,其余各位代表数值本身的绝对值+0和0是同一个数0,而在内存中却有两个不同的表示。00000000000000001000000000000000由于0的表示方法不唯一,不适合计算机的运算。,反码,正数的反码与原码相同。而负数的反码是:原码除符号位外(仍为1),各位取反。+0的反码是:00000000000000000的反码是:1111111111111111同样,0的表示不唯一。所以在计算机内部一般也不使用反码来表示数。,补码,正数的补码与原码相同。而负数的补码是:除最高位仍为1外,原码的其余各位求反(即反码),再加1。用补码形式表示数值0时,是唯一的:000000000000000
7、0,计算机通常都是以补码形式存放数。不仅数值表示唯一,而且能将符号位与其他位统一处理。在计算机中可以使减法变为加法,为硬件实现提供方便。,主要内容,数据类型常量变量运算符与表达式类型转换运算的优先级与结合性等,数据类型,数据类型是一个抽象的概念,包含有一组数据(值)的定义和对该组数据能够进行的操作(运算)的定义。对数据类型的使用,必须通过类型的实际例子(实例/实体,即变量或常量)来体现。程序中,数据仅以变量或常量的形式表示,C语言的数据类型,数据类型,构造类型,指针类型,空类型(无值类型)void,C语言的数据类型,基本数据类型较简单,是语言(编译器)已经定义好的类型,可直接使用;构造类型是由
8、基本数据类型或其他构造类型组织而成的,是程序员自己定义的类型指针在C语言中极为普遍,指针提供了动态处理变量的能力,是C语言的精髓。,第2章,第4章,第5章,2.1 基本数据类型,基本数据类型是其他类型的基础整型、字符型、浮点型基本类型数据是程序处理的基本对象不同的数据类型的数据具有不同的取 值范围和允许的操作。,思考,为什么C语言不提供布尔类型?,2.1.1 整型,整型的基本类型名为int。根据数值的范围又可分为普通整型(int)、短整型(short int或short)和长整型(long int或long)。根据整型值是否带符号位来分类,可以分为无符号整型(unsigned)和带符号整型(s
9、igned可以省略)。,类型与类型名,有符号基本整型有符号短整型有符号长整型无符号基本整型无符号短整型无符号长整型,(signed)int(signed)short(int)(signed)long(int)unsigned intunsigned short(int)unsigned long(int),整型,需要注意的是,标准C没有具体规定以上各类数据所占内存字节数。只要求long型数据长度不短于int型,short型不长于int型。具体如何实现,由各计算机系统和编译系统决定。,整型,如在Turbo C 2.0中,一个int型和一个short型数据分别占用2个字节(16位)的内存空间,一个
10、long型数据占用4个字节(32位)的内存空间;而在Visual C+6.0中,一个short型数据占用2个字节的内存空间,一个int型数据和一个long型数据分别都占用4个字节的内存空间。,常用存储容量,1B=8bit=1字节1KB=1024B1MB=1024KB(百万、兆)1GB=1024MB(十亿、千兆)1TB=1024GB(万亿、百万兆),整型,根据整型数据所占的位数,可以计算一个整型数据能表示的数据的取值范围。超出最大值:溢出。以int(有符号普通整型)为例计算取值范围。在Visual C+6.0中,普通整型占32位,即4个字节。,存储方式,0 1 31第0位是符号位:0:正整数,最
11、大为2311,即2147483647。1:负整数,1到31位全为0时表示的数最小(231的补码)。最小整数是231,Turbo C2.0中,类型 字节数 数值范围short 2 215(2151)unsigned short 2 0(2161)int 2 215(2151)unsigned 2 0 216 long 4 231(2311)unsigned long 4 0(2321),Visual C+6.0,类型 字节数 数值范围short 2 215(215-1)unsigned short 2 0(216-1)int 4 231(231-1)unsigned 4 0(232-1)long
12、 4 231(231-1)unsigned long 4 0(2321),2.1.2 浮点型,标准C语言中,浮点型数分为单精度型(float)、双精度型(double)和长双精度型(long double)浮点数三类。一个float型数据占用4个字节的内存空间,一个double型数据占用8个字节的内存空间,一个long double型数据占用16个字节(128位)的内存空间。,有效位数,浮点型数据的取值范围和值的精度与所用的机器有关。有效位数:是该数中有效数字的个数,指从该数左方第一个非零数字算起到最末一个数字(包括中间的零)的个数,它不取决于小数点的位置。,浮点型数据是按照指数形式存储的。系
13、统把一个浮点型数据表示为小数部分和指数部分,分别存放。,数值范围,类型 字节数 有效位数float 4 7 数值范围 3.410383.41038阶的范围 3838,思考,最接近0的正的float型数据是?,数值范围,类型 字节数 有效位数double 8 16 数值范围 1.7103081.710308阶的范围 308308,数值范围,类型 字节数 有效位数long double 16 1819 数值范围 1.21049321.2104932阶的范围 49324932,2.1.3 字符型,C语言中,字符型的基本类型名为char。以1个字节(8位)来存放一个字符有符号字符型数据的取值是1281
14、27无符号字符型数据的取值是0255,2.2 常量,常量是在程序执行过程中值不变的数据。如圆周率的值、字母B在ASC码字符集中的编码值等,这类数据就称为常量。数值常量:整型常量、浮点数常量字符型常量:字符常量、字符串常量、转义字符符号常量,2.2.1 整型常量,常用的三种不同的数制十进制 八进制 十六进制65 0101 0 x41125 0175 0 x7d长整型:-56l;3567L;04L无符号整型:586u;077765U;0 xfffdU无符号长整型:0375ul;0 x45feUL,例2.1 整数的不同进制数表示,main()printf(%d%x%on,125,125,125);p
15、rintf(%d%x%on,045,045,045);printf(%d%x%on,0 x32,0 x32,0 x32);执行结果:125 7d 175 37 25 45 50 32 62,2.2.2 浮点数常量,浮点数在程序中只能以十进制数表示。小数形式:3.141-25.3 23.45 指数形式:(整数部分).(小数部分)e(或E)(指数部分)注意:字母e(或E)之前必须有数字,且e后面的指数必须为整数 非法浮点数 3.14e7.8;12.34 e8;12,345e-2,2.2.3 字符常量,字符常量是指用单引号括起来的一个字符。字符按对应的ASCII码值存储,占一个字节 a:97 A:6
16、5 9:57 0:48字符常量可以作为整数参与运算a-32 等价于 97-32=65 9-9 等价于 57-9=48 A+32 等价于 65+32=97,例 大小写字母的转换,#include void main()char c1,c2;c1=A;c2=c;printf(“c c”,c1+32,c2-32);,转义字符,还有一种特殊形式的字符常量,以一个开头的字符序列:转义(escape)字符转义字符,在屏幕上不能显示,在程序中也无法用一个一般形式的字符表示,只能采用特殊形式来表示。C语言中,转义字符有三种:简单转义字符、八进制转义字符和十六进制转义字符,转义字符,八进制转义字符和十六进制转义
17、字符,用ddd 或xhh形式可以表示任意字符 A 65 101 x41 5 53 065 x35 234 352 xea,2.2.4 字符串常量,用一对双引号括起来的零个或多个字符的序列。如:“hello”“b”“$43.23”字符串常量与字符常量的存储不同C编译程序在存储字符串常量时自动在其末尾加上NULL 或0(ASCII码值为0)作为字符串结束标志,“China”长度为5,需要占6个字节 C h i n a NULL,区别,b 和“b”“”和“”,2.2.5 符号常量,便于程序调试和修改,将常量定义为一个标识符,称为符号常量。通常用大写表示。#define MAX 1024#define
18、 STAR*const float PI=3.1415926;/C99方式 int const NUMB=1024;/C99方式,常量的存储,内存中安排常量数据存储区按照常量在程序中的出现顺序(重复出现的常量,仅仅存放一次),依次存放各个常量(二进制机器数形式);只能使用常量,不能够改变常量的值,2.3 变量,值可以改变的数据。变量代表内存中的一个(或多个)存储单元,单元内容就是变量的值。需要给变量取个名字使用标识符代表变量(变量名),标识符:以字母和“_”开头的;字母、数字和“_”组成的串一般用小写字母不能与关键字同名。,2.3.1 变量定义,变量必须先定义后使用。定义格式为 数据类型名 变
19、量名表;例如:int num;char ch1,ch2;double length,result,sum;,以逗号分开的变量列表,2.3.2 变量的初始化,定义变量时可以对变量赋初值。例如:int num2,num3=100;char ch1=b,ch2;float r=2.345;,变量的存储,内存中(按照函数的调用顺序动态地)安排变量数据存储区按照变量在程序中的出现顺序,依次存放各个变量;可以使用变量,也能够改变变量的值,2.3.3 变量地址,存放变量的内存空间中的首单元地址称为变量地址内存空间存放的内容称为变量的值。,&a2500H|2501H|-1250-a=1250&b2502H|2
20、503H|-2504H|-2505H|-123.67-b=123.67 2506H|变量名、变量值、变量地址间的关系,例如:int a=1250;float b=123.67;,2.4 运算符与表达式,C语言的运算符范围很宽,把除了控制语句和输入输出以外的几乎所有的基本操作都作为运算符处理。C的运算符可分为算术运算符、赋值运算符、关系运算符等。,按运算对象(操作数)的数目可将C的运算符分为单目运算符、双目运算符和三目运算符(仅有1个),语言的运算符,算术运算符+-*/%+-关系运算符!逻辑运算符!|位运算符|赋值运算符 及其扩展赋值运算符 条件运算符?:逗号运算符,,语言的运算符,(8)指针运
21、算符*(9)求字节数运算符 sizeof(10)强制类型转换运算符(类型)(11)分量运算符-(12)下标运算符(13)函数调用运算符(),表达式定义(递归方法),单个常量或变量就是一个表达式将表达式通过运算符进行连接,得到新的表达式表达式中的运算符有优先级和结合性的限制可以使用()改变优先级和结合性,C语言的表达式,(1)算术表达式(2)关系表达式(3)逻辑表达式(4)赋值表达式(5)逗号表达式,2.4.1算术运算符和算术表达式,1.双目运算加+10+5=15减-10-5=5乘*10*5=50除/30/4=7 30.0/4=7.5取余%14%3=2;25%8=1,2 单目运算,自增 a+或+
22、a 等效于a=a+1 自减 a-或-a 等效于 a=a-1取负-a注意:单目运算的“前置”和“后置”的区别“前置”变量先增值(或先减值),后被使用“后置”变量先被使用,后增值(或后减值),自增运算符和自减运算符只能用于变量,而不能用于常量或表达式,结合方向是“自右至左”。为避免二义性,最好采取大家都能理解的写法,可以加一些“不必要”的括号,如(i+)+j。,int x,y,i=25;x=-i;/*相当于:i=i-1;x=i;*/y=i;结果是:x=24,y=24;int x,y,i=25;x=i-;/*相当于:x=i;i=i-1;*/y=i;结果是:x=25,y=24;,算术表达式和运算符的优
23、先级与结合性,将表达式通过算术运算符进行连接先取负,再*/%后+-结合方向为“自左至右”可以使用()改变优先级和结合性(ij)*k(i+j)*k,2.4.2 赋值运算符和赋值表达式,赋值是指将表达式的值赋给一个变量=x=18 x=5*2+y num=x*(a+b)赋值表达式可以连用(右结合)x=y=z=100,赋值表达式,赋值运算符比算术运算符的优先级低赋值表达式的值等于表达式的值如果赋值运算符右边值的类型与左边变量的类型不一致,需要把右边值的类型转换成左边变量的类型(自动完成)可以构成复合赋值运算符,(算术)复合赋值运算符,加赋值a+=b等效于a=a+(b)减赋值a-=b等效于a=a-(b)
24、乘赋值a*=b等效于a=a*(b)除赋值a/=b等效于a=a/(b)取余赋值a%b等效于a=a%(b)如 x*=10+2 等效于 x=x*(10+2),2.4.3关系运算符和关系表达式,6个关系运算符,用于比较两个运算分量间的大小关系。大于=大于等于 小于=小于等于=等于!=不等于 前4种关系运算符的优先级相同,后两种运算符的优先级相同关系运算符;前4种的优先级高于后两种。,关系表达式,将表达式通过关系运算符进行连接关系表达式的值是逻辑值,即“真”或“假”关系表达式的值为真用 1 或 非零数值表示,关系表达式的值为假用零表示。642 的结果为?关系运算符结合性是左结合性。,2.4.4 逻辑运算
25、符和逻辑表达式,C语言中逻辑运算符有3个 逻辑与a&b 逻辑或a|b 逻辑非!a 关系和逻辑表达式构成复合的逻辑关系,常用于控制结构中。判断闰年的表达式为?(year%4=0)&(year%100!=0)|(year%400=0),2.2.5位运算符和位表达式,位运算是指进行二进制位的运算。C语言中,位运算符有位逻辑运算符和移位运算符。可以完成汇编语言的一些工作.位逻辑运算:移位运算:按位与 a&b右移位 a4 按位或 a|b左移位 a2 按位异或 ab 按位反 a,按位与、或运算,按位与运算 两个运算量中对应位都是1,则该位的结果值为1,否则为零.按位或运算 两个运算量中对应位只要有一个为1
26、,则该位的结果值为1,否则为零.,按位与、或运算,x=01010101(0 x55)x=01010101 y=01011010(0 x5a)y=01011010&|01010000(0 x50)01011111(0 x5f),按位异或、反运算,按位异或运算 两个运算量中对应位不同,则该位的结果值为1,否则为0。按位反运算 一个运算量的每一位都取反(0与1互反),x=01010101 x=01010101y=01011010 10101010(0 xaa)00001111(0 x0f),注意,1.位逻辑运算只能对整型和字符型变量进行操作,不能对浮点型和双精度型变量操作。2.注意位逻辑运算与逻辑运
27、算的区别.x=7;x&8 的值为?x&8 的值为?,移位运算,右移位运算 变量名右移位数 每右移1位相当于除以2左移位运算 变量名左移位数 每左移1位相当于乘以2,移位运算,在移位时,被移出的位被舍弃 空出的位则以0填充移位运算并不会修改操作数,2.4.6 条件运算符和条件表达式,条件运算符?:是唯一的三目运算符由条件运算符和操作数组成的表达式简称为条件表达式,或三目表达式 表达式1?表达式2:表达式3若表达式1为真,则表达式结果为表达式2的值,否则整个表达式结果为表达式3的值,逻辑表达式,算术表达式,2.4.7 逗号运算符和逗号表达式,表达式1,表达式2,表达式n按照顺序依次求解各个表达式表
28、达式n的值也就是整个逗号表达式的值 如:a=2*5,a/10,a-2 表达式值为8 x=(a=10,b=100,c=1000);x的值为1000并不是任何地方出现的逗号都是作为逗号运算符。int a,b;,2.4.8 其他运算符,sizeof是取得某种数据类型的一个数据的存储长度(以字节为单位)。格式是:sizeof(数据类型名或变量名)如:double dx;则 sizeof(dx)为8 sizeof(double)为8 可以获取不同编译程序为不同类型的数据所分配的实际内存字节数.,2.5 混合运算与类型转换,类型转换的实质是将某种类型的值转换为另一种类型的值。转换的方式有两种:自动类型转换
29、和强制类型转换。自动类型转换又称为隐式转换强制类型转换又称为显式转换,2.5.1 自动类型转换,1.不同类型数据进行混合运算时,数据会自动转换为同一类型数据。“较低级”“较高级”(按存储长度)charshortunsigned shortint unsigned intlong intfloatdouble,图示,例如,float f=3.5;int n=6;long k=21;f*n+k/2,2.赋值转换 将表达式的类型转换为变量类型 例如:int k;float x=123.85;k=x;/*k=123*/x=k;/*x=123.0*/,2.5.2 强制类型转换,强制变量或表达式的值转换为
30、特定类型。(类型)变量 或(类型)(表达式)例如:int i,a,b;(char)i(float)(25%3)(int)(4.5*a+b/3.14),数据类型转换,不能改变变量的数据类型和值,如 float f=5.8;int i=(int)f;又如:double a,b,c;c=a%b;/错误 c=(int)a%(int)b;/正确 c=a%b;/错误 a=(int)b*c;a=(int)(b*c);,思考,浮点数四舍五入为整数的转换方式 int(f+0.5),2.6 运算的优先级与结合性,表达式可能有多种运算符的混合使用求解表达式的值,必须要解决各种运算符的运算优先次序问题。即,考虑优先级
31、和结合性。例如:i+1=j|k3!=x,优先级,优先级是指不同级别运算符之间的运算次序单目运算符的优先级高于双目运算符双目运算符优先级高于三目运算符,算术运算符高于关系运算符关系运算符高于逻辑运算符移位运算符高于关系运算符位逻辑运算符低于关系运算符()括号运算符优先级最高逗号运算符优先级最低赋值运算符及复合赋值运算符的优先级仅高于逗号运算符.,结合性,结合性是指在一个表达式中有多个优先级相同的运算符之间的运算次序.右结合性 右左 包括 单目、三目和赋值运算符左结合性 左右 其余运算符,例如,a/b*c%d 即(a/b)*c)%da+!b+c-即(a+(!b)+(c-)i=k&ij-1 即(i)
32、=k)&(i(j-1)a=b=c=5即a=(b=(c=5)!a!(!a),实际处理方式,a+b+x*d,2.7 数据输入输出,数据是程序处理的对象;输入输出操作是程序不可缺少的部分 C中输入输出操作都是通过函数调用实现的C提供了标准I/O:stdio.h#include,2.7.1 字符输出函数putchar()和格式输出函数printf(),字符输出函数putchar(参数)向终端输出一个字符。参数可以是字符变量、字符常量、字符ASCII码。putchar(A);显示大写字母A putchar(97);显示小写字母a 若 c=!则 putchar(c);显示字符!,例,#include vo
33、id main()char a,b,c;a=A;b=B;c=007;putchar(a);putchar(b);putchar(n);putchar(c);sleep(5);putchar(c);putchar(A);putchar(B);putchar(n);putchar(007);sleep(3);putchar(007);输出:AB/*响铃一次,隔5秒后再响铃一次 AB/*响铃一次,隔3秒后再响铃一次,格式输出函数printf,基本形式 printf(“控制字符串”,输出项列表);按规定的输出格式,把输出项依次输出到缺省输出设备(通常为显示器)输出项可以是变量、常量、或表达式;其间用逗
34、号分隔。,格式输出函数printf,控制字符串包括格式控制说明符和普通字符。控制说明符%格式字符,控制说明符,%c按字符型输出%d 或%i 按十进制整数输出%u按无符号整数输出%f按浮点型小数输出%o按八进制整数输出%x 按十六进制整数输出%s 按字符串输出%e或E 按指数形式输出浮点型数,格式输出函数printf,在格式说明中,在%和格式字符间可以插入附加符号(又称修饰符),可以控制输出的宽度、精度、小数位数、对齐方式等。附加字符说明l输出长整型数(与d、o、x、u结合用)m 指定数据输出的宽度(即域宽),格式输出函数printf,.n 对实型数据,指定输出 n 位小数;对字符串,指定左端截
35、取n 个字符输出+使输出的数据无论正负都带符号输出 使数据在输出域内按左对齐方式输出,格式输出函数printf,普通字符 可打印字符:直接显示出字符 不可打印字符:使用转义字符n,t,a例如:m=3;n=12;printf(“num1=%d num2=%dn”,m,n);显示:num1=3 num2=12 printf(“%f%n”,95.6);显示:95.6%,2.7.2 字符输入函数getchar()和格式输入函数scanf(),字符输入函数getchar()无参数,只能接收一个字符。从键盘上输入一个可打印字符,函数的返回值为该字符的ASCII码。通常将其返回值赋于某个字符变量或整型变量。
36、,例,#include void main()char c;c=getchar();putchar(c);,例:输入一个字符,输出其前导字符,字符和后续字符,#include void main()char c;int c1,c2;c=getchar();c1=c-1;c2=c+1;printf(“%c%c%c”,c1,c,c2);printf(“%d%d%dn”,c1,c,c2);输入:B 输出:ABC 65 66 67,程序可靠性?,格式输入函数scanf(),从键盘输入数据,按指定的输入格式把数据赋给相应的输入项。scanf(“控制字符串”,输入项列表);注意:接收数据的变量必须用其地址
37、表示,输入数据时,在两个数据间用一个或多个空格隔开,也可用回车键、跳格键tab,scanf()常用的格式字符,%c按字符型输入%d 或%i 按十进制整数输入%u按无符号整数输入%f按浮点型小数输入%o按八进制整数输入%x 按十六进制整数输入%s 按字符串输入%e或E 按指数形式输入浮点型数,修饰符,l与d、o、x、u结合输入长整型数l与 f 结合输入double型数m指定数据输入的宽度(即域宽)(对float和double型,域宽=整数位数+1+小数位数)*忽略读入的数据(即不将读入数据赋给相应变量),使用scanf()函数时应注意,(1)参数形式是地址形式:&变量名(2)在程序运行中输入,输
38、入的变量个数和类型必须与格式说明符一一对应。(3)格式控制中有普通字符时,照原样输入(4)为了减少不必要的输入量,除了逗号、分号、空格符以外,格式控制中尽量不要出现普通字符,也不要使用n、t等转义字符,小结,(1)C语言基本数据类型有整型、浮点型和字符型,整型又分为普通整型、短整型和长整型,关键字分别使用int、short和long;浮点型又分为单精度浮点型和双精度浮点型,关键字分别使用float和double;字符型的关键字是char。(2)标识符是用来标识在C程序中的变量、符号常量、数据类型和函数的。在C语言中标识符分为关键字(保留字)、特定字和用户定义字。,(3)变量代表值可以变化的数据
39、 常量代表值不会发生改变的数据变量需要先定义,再使用 常量可以直接使用(字面常量),或使用标识符代表(符号常量),(4)C语言的运算符分为:算术运算符、赋值运算符、关系运算符、逻辑运算符、位运算符、条件运算符、逗号运算符 等。(5)表达式是用运算符与圆括号将操作数连接起来所构成的式子。在表达式后加上分号,构成语句。,(6)表达式计算要考虑运算符的优先级和结合性。写复杂表达式时最好使用圆括号来明确地指定运算顺序。(7)不同类型的数据在一起运算时,需要转换为相同的数据类型。转换的方式有两种:自动类型转换和强制类型转换。,(8)printf()函数和scanf()函数可以接收和显示各种数据类型的数据 getchar()函数和putchar()函数分别接收和显示单个字符。,C语言的简单语句,函数调用语句 由一个函数调用加一个分号构成表达式语句 由一个表达式加一个分号构成空语句 只有一个分号的语句,