《C语言数据类型常量与变量.ppt》由会员分享,可在线阅读,更多相关《C语言数据类型常量与变量.ppt(47页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、跳转到第一页说明说明用户名:用户名:密码:密码:wuli2012一、公共一、公共EMAIL:跳转到第一页说明说明EMAIL:电话:电话:二、助教:阳睿老师二、助教:阳睿老师跳转到第一页第一章习题第一章习题作业:作业:P154、7自已上机调试,不需用交。自已上机调试,不需用交。交课代表:交课代表:P155、6说明说明跳转到第一页1.习题和参考解答:习题和参考解答:写作业,对答案改错、有更好方法进行总结,每写作业,对答案改错、有更好方法进行总结,每周一交课代表,周一交课代表,不判作业!期末考试前抽查不判作业!期末考试前抽查!如何考查同学们作业掌握情况,如何考查同学们作业掌握情况,随堂做题、抽查随堂
2、做题、抽查或提问!或提问!三、三、学习辅导学习辅导的使用的使用说明说明跳转到第一页2.程序上机指南(目录程序上机指南(目录P8):):按照辅导书上写的操作就可。按照辅导书上写的操作就可。VC+6.0平台内容平台内容丰富,初学不要深究,丰富,初学不要深究,以学以学C语言为主,平台为辅的原语言为主,平台为辅的原则学习!则学习!3.上机实验安排(目录上机实验安排(目录P9作参考):作参考):6、8、1015周(周(8次次/16小时),需写预习小时),需写预习报告,到时会布置。报告,到时会布置。跳转到第一页第一章第一章总总结结1.函数的构成函数的构成函数类型函数类型函数名函数名(函数参数表函数参数表)
3、函数首部函数首部声明部分;声明部分;执行语句部分;执行语句部分;函数体部分函数体部分floataverage(x,y,z)floatx,y,zaver;aver=(x+y+z)/3;returnaver;跳转到第一页2.程序是从主函数程序是从主函数开始开始和和结束结束的的intmain()intx,y,z;intmax(inta,intb);scanf(%d,%d,&x,&y);z=max(x,y);/*调调用用max函函数数*/printf(max=%d,z);return0;intmax(inta,intb)if(ab)returna;elsereturnb;/返回主调函数返回主调函数 【
4、例【例2.1】输入两个整数,输入两个整数,输出其中较大的数。输出其中较大的数。C99标准标准跳转到第一页第三章第三章 最简单的最简单的C程序设计程序设计C的数据类型的数据类型常量与变量的概念常量与变量的概念各种数据类型的常量及变量各种数据类型的常量及变量3.2 数据的表现形式及运算数据的表现形式及运算跳转到第一页第一节第一节C的数据类型的数据类型=跳转到第一页二二.关键字关键字也称也称“保留字保留字”它是它是C语言中具有特定含义的一类标识符语言中具有特定含义的一类标识符P378附录附录CC99推荐的推荐的C语言的关键字是语言的关键字是37个个如:如:int、char、float、define等
5、等大小写代表不同含义大小写代表不同含义跳转到第一页程序数据结构程序数据结构十十算法算法十十程序设计方法程序设计方法十十语言工具和环境语言工具和环境 设计一个程序的几个要素:设计一个程序的几个要素:三三.数据类型数据类型跳转到第一页数据结构:数据结构:C语言中以语言中以数据类型数据类型的形式出现的形式出现算法:即操作步骤算法:即操作步骤程序设计方法:要求结构化程序设计方法程序设计方法:要求结构化程序设计方法语言工具和环境:语言工具和环境:C语言语言、VisualC+6.0TurboC+3.0跳转到第一页【例【例2.2】求和求和intmain()inta,b,sum;a=1;b=2;sum=a+b
6、;printf(“sumis%dn”,sum);return0;数据结构数据结构算法算法程序设计方法程序设计方法语言工具和环境语言工具和环境跳转到第一页短整型(短整型(short)基本型(基本型(int)长整型(长整型(long)单精度(单精度(float)双精度(双精度(double)整型整型字符型(字符型(char)实型(浮点型)实型(浮点型)枚举型(枚举型(enum)数组类型数组类型结构体类型(结构体类型(struct)共用体类型(共用体类型(union)函数类型函数类型基本类型基本类型派生类型派生类型指针型指针型空类型空类型(void)C的的数数据据类类型型C99新增类型:双长整型(新
7、增类型:双长整型(longlong)、布、布尔型(尔型(bool)、复数浮点型、复数浮点型不作要求!不作要求!跳转到第一页常量区分为不同类型,如常量区分为不同类型,如 12、3.2、a第二节第二节常量与变量常量与变量2、符号常量:、符号常量:用一个标识符代表的一个常量用一个标识符代表的一个常量定义方法定义方法:#define 标识符标识符 常量常量一、常量和符号常量一、常量和符号常量1、常量:、常量:在程序运行过程中,其值不能被改变的量在程序运行过程中,其值不能被改变的量习惯上,符号常量名用习惯上,符号常量名用大写大写,变量用,变量用小写小写跳转到第一页#include#definePRICE
8、30intmain()intnum,total;num=10;/10是常量是常量total=num*PRICE;/PRICE是符号常量是符号常量printf(total=%d,total);return0;例例2.3:求总价格求总价格运行结果:total=300符号常量的好处:符号常量的好处:含义清楚;含义清楚;能做到能做到“一改全改一改全改”。60600跳转到第一页二、变量:其值可随程序的运行而改变的量二、变量:其值可随程序的运行而改变的量注意注意:变量名和变量值的区别:变量名和变量值的区别对应内存地址对应内存地址内存地址中存放的内容内存地址中存放的内容标识符标识符跳转到第一页三、标识符三、
9、标识符 标识符就是给程序中的变量、常量、函数、数标识符就是给程序中的变量、常量、函数、数组、结构体以及文件所起的名字。组、结构体以及文件所起的名字。1命名规则:命名规则:()以()以字母字母或或下划线下划线开头,由开头,由字母、数字字母、数字和和下下划线划线组成;组成;例:例:month li1_1 ()不能和系统关键字同名;()不能和系统关键字同名;例:例:short ()尽量不要用下划线开头;()尽量不要用下划线开头;例:例:_total ()一般长度不超过()一般长度不超过8个字符;个字符;跳转到第一页例例:判断下列标识符号合法性判断下列标识符号合法性sumSumM.D.JohndayD
10、ate3daysstudent_name#33lotus_1_2_3charab_above$1233days#33charab$123()大小写是不同的字母。()大小写是不同的字母。例:例:TotalTOTALStudentstudent跳转到第一页 好的命名习惯:好的命名习惯:()尽量做到见名知意;()尽量做到见名知意;例:例:sum,area,name,age,sex,salary ()变量名、函数名尽量用小写;()变量名、函数名尽量用小写;()在易混淆地方,尽量避免用易认错的字母;()在易混淆地方,尽量避免用易认错的字母;e.g.0(数字)数字)(大写字母)大写字母)o(小小写字母)写
11、字母)1(数字)数字)I(I的大写字母)的大写字母)l(L的的小写字母)小写字母)(数字)数字)(大写字母)大写字母)z(小写字母)小写字母)跳转到第一页四、变量的使用四、变量的使用1、先定义先定义2、后赋初值后赋初值3、再改变变量的值、再改变变量的值“先定义,后使用先定义,后使用”:保证变量名正确使用保证变量名正确使用;方便了变量的内存单元分配方便了变量的内存单元分配;便于语法检查。便于语法检查。跳转到第一页【例【例2.4】求余数求余数intmain()floata,b,rem;a=1.0;c=2.0;rem=a%b;printf(“remis%fn”,rem);return0;内存单元分配
12、内存单元分配编译发现编译发现2处错误处错误编译发现编译发现2处错误处错误跳转到第一页第三节第三节整型数据整型数据10进制:进制:(没有前缀没有前缀)其数码为其数码为09。8进制:进制:(以数字开头以数字开头)其数码为其数码为07。16进制:进制:(以数字以数字+字母字母x开头开头)其数码为其数码为09,AF或或af。一一.整型常量整型常量10进制:进制:23 0 -1238进制(进制(前缀前缀0):):012 00 010716进制(前缀进制(前缀0 x):):0 x36 0 x2A 0 xFFFF711016进制(前缀进制(前缀0 x):):0 x36 0 x2A 0 xFFFF544265
13、535跳转到第一页注意:注意:1、长度:整型数后加、长度:整型数后加l或或L表示长整型,表示长整型,Turboc中存储中存储空间从原来空间从原来2个字节扩大为个字节扩大为4个字节,个字节,在在Visualc不变不变.长整型(长整型(后缀后缀L):):23L023L-0 x123L358000L(十进制为十进制为358000)0200000L(十进制为十进制为65536)2、符号位:、符号位:无符号整型(无符号整型(后缀后缀U):):23U077U0 xFFU3.3.后缀可同时使用后缀可同时使用 :0XA5Lu十六进制无符号长整数十六进制无符号长整数A5,十进制为,十进制为165跳转到第一页二、
14、整型变量二、整型变量所谓所谓变量变量数据类型是:数据类型是:按被定义变量的按被定义变量的性质性质;表示形式表示形式;占据;占据存储空间存储空间的多少来的多少来划分的。划分的。1.整型数据在内存中的存放形式整型数据在内存中的存放形式数值是以补码表示的:数值是以补码表示的:正数的补码和原码相同;正数的补码和原码相同;负数的补码:将该数的负数的补码:将该数的绝对值绝对值的二进制形式按位取反再加的二进制形式按位取反再加1。跳转到第一页n00000000 00001110 14n11111111 11110001 取反取反n11111111 11110010 +1 n11111111 11110010
15、-14(补码)补码)求补:按位取反,末位加一。求补:按位取反,末位加一。例例2.5:求求-14补码补码跳转到第一页基本型:基本型:int短整型:短整型:short或或short int长整型:长整型:long或或long int无符号型:无符号型:unsigned或或unsigned int unsigned short unsigned long整型变量整型变量2.整型变量的分类整型变量的分类跳转到第一页说明:说明:各种各种无符号无符号类型量所占的内存空间字类型量所占的内存空间字节数与相应的节数与相应的有符号有符号类型量类型量相同相同。有符号整型变量:最大表示有符号整型变量:最大表示3276
16、7无符号整型变量:最大表示无符号整型变量:最大表示65535Turboc跳转到第一页655350 0-3276832767Turboc跳转到第一页占内存占内存byte字节字节占内存占内存bit位位int2/416/32-3276832767-21474836482147483647unsignedint2/416/3206553504294967295short216-3276832767unsignedshort216065535long432-231(231-1)unsignedlong4320(232-1)类型说明符类型说明符数的范围数的范围总结:总结:C整数类型内存定义整数类型内存定义
17、跳转到第一页3.整型变量的定义整型变量的定义:变量定义的一般形式为:变量定义的一般形式为:类型说明符类型说明符 变量名标识符,变量名标识符,变量名标识符,变量名标识符,.;在书写变量定义时,应注意以下几点:在书写变量定义时,应注意以下几点:允许在一个类型说明符后,定义多个相同类型的变量。允许在一个类型说明符后,定义多个相同类型的变量。各变量名之间用逗号间隔。各变量名之间用逗号间隔。最后一个变量名之后必须以最后一个变量名之后必须以“;”号结尾。号结尾。决定分配字节数和数的表示范围跳转到第一页例如:例如:int a,b,c;(a,b,cint a,b,c;(a,b,c为整型变量为整型变量)shor
18、t x,y;(x,y short x,y;(x,y为短整型变量为短整型变量)unsigned p,q;(p,qunsigned p,q;(p,q为无符号整型变量为无符号整型变量)变量定义必须放在变量使用之前。变量定义必须放在变量使用之前。一般放在函数体的一般放在函数体的开始部分开始部分。跳转到第一页例例2.6:整型变量的定义整型变量的定义intmain()inta,b,c,d;unsignedu;a=12;b=-24;u=10;c=a+u;d=b+u;printf(a+u=%d,b+u=%dn,c,d);return0;运算结果为运算结果为:a+u=22,b+u=-14跳转到第一页例例2.7:
19、intmain()inta,b;a=32767;b=a+1;printf(%d,%dn,a,b);return0;运行结果:运行结果:32767,-32768longb;4.整型数据的溢出整型数据的溢出na:01111111 11111111 32767nb:10000000 00000000 -32768(补码)补码)Turboc跳转到第一页第四节第四节实型实型(浮点型浮点型)数据数据一一.实型常量实型常量(实数、浮点数实数、浮点数)十进制形式:由数字和小数点组成十进制形式:由数字和小数点组成指数形式:由十进制数,加阶码标志指数形式:由十进制数,加阶码标志“e”或或“E”以及阶码(只能为整以
20、及阶码(只能为整数,可以带符号)组成。数,可以带符号)组成。实型常量实型常量跳转到第一页例如:例如:十进制形式:十进制形式:0.025.05.789.135.0300.-267.8230注意:必须有小数点。注意:必须有小数点。指数形式:指数形式:其一般形式为:其一般形式为:a E na E n(a a为十进制数,为十进制数,n n为十进制为十进制整数整数)其值为其值为 a*10a*10n2.1E53.7E-2-2.8E-2VisualC输出:输出:2.100000E+005对对P50页有疑问页有疑问跳转到第一页单精度(单精度(floatfloat型)型)双精度(双精度(doubledouble
21、型)型)实型变量实型变量长双精度(长双精度(long doublelong double型)型)二二.实型变量实型变量1.实型数据在内存中的存放形式实型数据在内存中的存放形式 实型数据一般占实型数据一般占4 4个字节(个字节(3232位)内位)内存空间。按指数形式存储。存空间。按指数形式存储。2.实型变量的分类实型变量的分类跳转到第一页Visual C 实型实型类型定义floatdoubleLongdouble占内存占内存bit位位有效数字有效数字数值范围数值范围3276416P5012819P50P51图图3.12类类型型跳转到第一页实型变量定义的格式和书写规则实型变量定义的格式和书写规则与
22、整型相同。与整型相同。例如:例如:float x,y;(x,yfloat x,y;(x,y为单精度实型量为单精度实型量)double a,b,c;(a,b,c double a,b,c;(a,b,c为双精度实型量为双精度实型量)3.实型数据的舍入误差实型数据的舍入误差实型数据的舍入误差:实型数据的舍入误差:因有效数字位数有限而产生的。因有效数字位数有限而产生的。跳转到第一页例例2.8:实型数据的舍入误差实型数据的舍入误差intmain()floata,b;a=123456.789e5;b=a+20;printf(“a=%fnb=%fn”,a,b);return0;运行结果:运行结果:a=123
23、45678848.000000b=12345678868.000000double运行结果:运行结果:跳转到第一页后缀为后缀为“f f”或或“F F”的实型常数表示该数为单精的实型常数表示该数为单精度实数。如度实数。如356f356f,编译系统按单精度,编译系统按单精度(3232位位)处理。处理。另外:另外:实型常数不带后缀时,都实型常数不带后缀时,都按双精度按双精度doubledouble型处理型处理。实型常数的类型实型常数的类型跳转到第一页第五节第五节字符型数据字符型数据一一.字符常量:字符常量:1.1.由由单引号单引号括起来的字符括起来的字符 如如a a、K K、?等。等。注意:注意:只
24、能用只能用单引号单引号括起来,不能用双引号或其它括号。括起来,不能用双引号或其它括号。字符常量只能是字符常量只能是单个字符单个字符,不能是字符串。,不能是字符串。用用单引号单引号括起来的单个括起来的单个普通字符普通字符或或转义字符转义字符.跳转到第一页字符常量的字符常量的值值:该字符的:该字符的ASCIIASCII码值码值如如 A A6565,a a97972.2.转义字符:转义字符:将字符转换成另外的意思。将字符转换成另外的意思。1.1.表示形式:表示形式:反斜线后面跟反斜线后面跟一个字符一个字符或或一个代码值一个代码值表示表示如如n101常见转义字符及其含义见教材常见转义字符及其含义见教材
25、P40表表3.1。(见见P377附录附录B)跳转到第一页t:横向跳格到下一输出区,通常一个输出区占横向跳格到下一输出区,通常一个输出区占8列。列。r:回车,但不换行。回车,但不换行。n:换行。换行。ddd:13位八进制数代表的字符。例:位八进制数代表的字符。例:101:Axhh:12位十六进制数代表的字符。位十六进制数代表的字符。tab广义地讲,广义地讲,语言字符集中的任何一个字符均可用转语言字符集中的任何一个字符均可用转义字符来表示。表中的义字符来表示。表中的ddd和和xhh正是为此而提出的。正是为此而提出的。如如012-nx61-a等等跳转到第一页voidmain()printf(Yb=n);voidmain()charch;ch=176;printf(%cn,ch);例例2.9:转义字符:转义字符例例2.10:转义字符:转义字符运行结果:运行结果:运行结果:运行结果:126退格退格例例:A A-101101-x41x41-65-65跳转到第一页注意:注意:理论上理论上C字符集的字都能显示,字符集的字都能显示,但是但是在中文操作系统下,在中文操作系统下,ASCII码为码为127(128)以后的部分被作为中文字符处理,故以后的部分被作为中文字符处理,故不会显示不会显示出附录出附录B中的扩展字符!中的扩展字符!跳转到第一页第三章习题第三章习题作业:作业:P834