




已阅读5页,还剩62页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
返回主目录,C语言程序设计,(第3章C语言程序设计基础),本章主要介绍C语言的数据类型、常用运算符及其表达式和数据的输入(输出)。,1.C语言的数据类型2.变量和常量3.C语言的基本数据类型4.常用运算符及其表达式5.数据的输入与输出,一、C语言的数据类型,基本整型(有符号、没有符号),短整型(有符号、没有符号),长整型(有符号、没有符号),一、变量,在程序运行过程中,其值有可能发生改变的量,称之为变量。变量的概念含义如下:1.变量代表内存中的某个存储空间,是存放数据的“容器”。2.变量中存放的数据称为变量的值,在不同的时刻,变量的值可能不同。3.一个变量只能存放某一类型的数据。4.每一个变量必须有一个名称,称为变量名,在程序执行过程中,变量名是不变的。5.变量名与计算机的存储单元相对应的。6.从变量中取值,实际上是通过该变量名找到相应的内存地址,从其存储单元中读取数据。,二、变量的定义,在使用变量前必须先指明变量的类型和名称。2.标识符的命名规则如下:由英文字母、数字和下划线构成,且不能以数字开头。最长不能超过31个字符。不能与关键字同名。变量名一般用小写字母表示。,三、常量,在程序运行过程中,其值不可能发生改变的量,称之为常量。在程序中出现的具体数值和内存单元的地址都是常量。在C语言程序中,还可以用一个符号或名字来代替一个常量,称为符号常量。符号常量定义的方式主要有如下两种:用const限定符来定义符号常量(将一个变量定义为“只读”常量)。如:constfloatPI=3.14159;2.用编译预处理命令#define来定义符号常量(指定一个标识符来代替一个字符串)如:#definePI3.14159,一、整型数据,1、整型常量整型常量有三种表示方法:十进制:由0,1,2,3,4,5,6,7,8,9等数字构成。八进制:由0,1,2,3,4,5,6,7等数字构成,八进制数是以0开头的。如:0123,05,0345等。(0802,0905,0908等是错误的)十六进制:由0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F等数字构成,十六进制数是以0 x开头的。例如:0 x123,0 x5,0 xab,0 x9764等。,2、整型变量整型变量在使用前必须先定义。整型数据在内存中存储形式:整数在内存中是以二进制补码形式存放的,其中,最高位表示符号,0为正,1为负。正数的原码和补码是相同的,负数的原码和补码不相同,负数的补码是其反码加1。负数的反码是在原码的基础上按位取反,最高位保不变。,3.整型变量的具体分类,类型说明方式字节数值范围基本整型int2-3276832767即-215215-1无符号基本整型unsignedint2065535即0216-1短整型short2-3276832767即-215215-1无符号短整型unsignedshort2065535即0216-1长整型long4-21474836482147483647即-231231-1无符号长整型unsignedlong404294967295即0232-1,注意:如果在一个整数的后面加上L或l,系统认为该整数是长整型。如果一个整数没有其它特殊说明,系统默认为基本整型。不同整数类型的变量都有确定的数值范围,在程序种使用某种整数类型数据时,必须先估计数据的大小,要保证数据的值在规定范围内,如果计算的数据超出范围,将发生“溢出”。例如:一个int型变量的最大允许值为32767,如果加1,就会发生“溢出”,计算结果不再是32768。,例3-1整型数据的溢出。#includestdio.hmain()intx,y,z;x=32767;y=x+1;printf(%dn,y);,二、实型数据,1、实型常量实型常量有两种表示方法:十进制小数形式:由数字和小数点构成。例如:123.456,0.5,3.0等。3.0可简写为3.,0.5可简写为.5。指数形式:由数字、小数点和字母E(或e)构成。例如:1.23e4,0.6e5,345e-4等。注意:用指数形式来表示实数时,E(或e)之前必须有数字,并且E(或e)后面的指数必须为整数。例如1.2E5.4是非法的。当以指数形式输出实数时,在E(或e)前面的数中,小数点左边只能有一位非零的数字。例如:1.28E4。,2、实型变量实型数据是按照指数的形式存储的。实型变量有三种类型:,类型说明方式字节精确度数值范围单精度float4小数点后6位10-371038双精度double8小数点后15位10-30710308长双精度longdouble10小数点后18位10-4931104932,注意:如果一个实数没有其它特殊说明,系统默认为双精度型,如果在其后面加字母F(或f),系统将按单精度型进行处理。例如:3.14F是单精度型数据,3.14是双精度型数据,3.14L是长双精度型数据。,实型数据是按照指数的形式存储的。系统将实型数据分成小数部分和指数部分,分别存放。,例如,实数314.159的存储形式如下:,三、字符型数据,1、字符是构成源程序的基本元素,C语言字符常量用单引号标注,字母、标点符号都属于字符常量。如:A,等。2、字符在计算机中是以其ASCII码值来存储的。3、C语言中还有一种特殊形式的字符常量,就是以一个开头的字符序列,称为转义字符。,字符形式含义ASCII码n换行,将当前位置移到下一行的开头10t水平制表(跳到下一个tab位置)9b退格,将当前位置移到前一列8r回车,将当前位置移到本行开头13f换页,将当前位置移到下页开头12反斜杠字符92单引号字符39双引号字符34ddd1到3位8进制数所代表的字符xhh1到2位16进制数所代表的字符,C语言的转义字符如下:,4、字符型变量,字符变量用来存放单个字符,一个字符变量在某一时刻只能存放一个具体字符,占一个字节。字符变量定义的一般形式如下:char变量名;例如:charch1;,例3-2大小写英文字母的转换。main()charc1,c2;c1=a;c2=98;printf(%c%d,%c%dn,c1,c1,c2,c2);c1=c1-32;c2=c2-32;printf(%c%d,%c%dn,c1,c1,c2,c2);,5、字符串常量,字符串常量是用双引号括起来的一组字符。例如:howareyou,字符常量和字符串常量是两个不同的概念,不能混淆,C语言系统自动在字符串的结尾加一个结束标志符0,来表示该字符串已经结束a是字符常量,占一个字节。a是字符串常量,占两个字节(后接一个结束标志符)。,注意:只能将一个字符常量赋给一个字符变量,绝对不能将一个字符串常量赋给一个字符变量。,在字符串中,结束标志符是字符串的一部分,输出时,结束标志符不输出。,1占2个字节1L占4个字节1占1个字节1占2个字节,三、枚举型数据,1、“枚举型”数据就是将变量的可能值一一列举出来,变量的值是列举范围中的任意一个值。,2、定义枚举类型的一般形式如下enum枚举类型名成员表列;例如:enumweeksun,mon,tue,wed,thu,fri,sat;其中sun,mon,,sat等称为枚举元素。枚举元素在编译时被当作常量处理,不能对其赋值。,3、定义枚举型变量的一般形式如下:enum枚举类型名变量名;例如:enumweekx,y;x与y的值是枚举元素sun,mon,tue,wed,thu,fri,sat中的一个。,四、数据类型长度测试,C语言中,不同的数据类型在存储时所占的存储空间和数值范围是不同的,即使是同一个数据类型在不同类型的计算机上存储时,所占的存储空间和数值范围也有所不同,通常使用字节运算符sizeof()来求各类型数据存储时所占的字节数。,sizeof()的一般格式为:sizeof(类型名或变量名),例3-3#includestdio.hmain()intx,y,z;x=sizeof(int);y=sizeof(longdouble);z=sizeof(char);printf(%d,%d,%d,x,y,z);,五、不同数据类型间的转换和运算,C语言系统中,整型、实型、字符型等数据可以混合运算。,当表达式中出现不同类型数据时,系统将自动按照右图中的高低顺序,由低到高进行类型转换,将不同类型数据转换成同一类型数据。,一、算术运算术及其表达式,C语言提供的算术运算符有七种,其功能、结合方式、优先级如下所示:,二、赋值运算术与赋值表达式,1、“=”是赋值运算符,作用是将符号右边的数据赋给符号左边的变量,成为此变量的当前值。例如a=5就是将整数5赋给变量a,变量a的当前值为5。,赋值运算符是双目运算符,结合方式从右到左,优先级很低,只比逗号运算符高,比其它运算低。,注意:一般情况下,赋值运算符左右两边的数据类型应一致。例如:inta;a=4.2;错误,不能将实数赋给整型变量。允许在定义变量时,对变量赋初值。例如:inta=5,b=6;可以对几个变量同时赋值。例如:inta,b,c;a=b=c=4;上述赋值不能写成:inta=b=c=4;否则,将会出现编译错误。,1、符合赋值运算符在赋值运算符“=”前面加上其它运算符构成复合赋值运算符。C语言系统中的复合赋值运算符有以下几个:+=,-=,*=,/=,%=,=,假定x的初值为4,求x的值。第一步:x=4*6x=24第二步:x*524*5120实际上,x的值为24。,例3-5:x=(4*6,x*5);假定x的初值为4,求x的值。第一步:4*624第二步:x*54*520第三步:x=20实际上,x的值为20。,四、自增、自减运算术及其表达式,自增运算符:+,使变量的值增1。单目运算符。自减运算符:-,使变量的值减1。单目运算符。注意:自增、自减运算符的操作数必须是变量,只有变量才能实现自增运算或自减运算。例如:下面的表达式是错误的。+4,5-,+(i+j),+i+,+j=+i;i=4;j=4;假定i=3;j=i+;i=4;j=3;假定i=3;j=-i;i=2;j=2;假定i=3;j=i-;i=2;j=3;,+i:在使用i之前,先使i的值增1(先增后用)i+:在使用i之后,再使i的值增1(先用后增)-i:在使用i之前,先使i的值减1(先减后用)i-:在使用i之后,再使i的值减1(先用后减),例3-6假定i=3;k=(+i)+(+i)+(+i);i=6;k=18;,例3-7假定i=3;k=(i+)+(i+)+(i+);i=6;k=9;,五、强制类型转换运算符,强制类型转换运算符的一般形式为:(类型名)(表达式)作用是将表达式转换成所需类型。强制类型转换运算符是单目运算符。例如:(int)(3.5+2.2)的值为5。因为3.5+2.2结果为5.7,强制转换时,舍弃其小数部分。例如:(float)(3-2)的值为1.000000例3-8假定x=3.2,y=5.4;执行z=(int)(x+y);结果:z=8;x=3.2;y=5.4;,六、关系运算符与关系表达式,关系运算符实际上就是比较运算符,将两个值进行比较,判断比较的结果是否满足给定的条件。如果满足给定的条件,表达式的值为“真”,否则表达式的值为“假”。,注意:关系运算符的优先级低于算术运算符,高于赋值运算符。,运算符功能操作数个数结合方式优先级别大于双目从左到右高=大于或等于双目从左到右3x的值为1。y=3=6y的值为0。z=3!=6z的值为1。c=532c的值为0。,七、逻辑运算符与逻辑表达式,C语言提供的逻辑运算符有3种:,逻辑表达式的值是一个逻辑值。用“1”表示“真”,用“0”表示“假”。,逻辑运算的“真值表”:,ab!a!ba执行表达式+x|+y后,x的值为1,y的值为0。逻辑运算符两侧的操作数,除可以是和非的整数外,也可以是其任何类型的数据,如实型、字符型等。,例:假定a=1,b=2,n=1,c=3,d=4,执行(m=ab)x=a;y=65;putchar(x);putchar(y);,2、字符输入函数getchar()函数使用形式:变量名=getchar();作用:从终端输入一个字符。,例3-8#includestdio.hmain()charx;x=getchar();putchar(x);getch();,二、数据的格式输入与输出,1、格式输出函数printf()函数使用形式:printf(格式控制字符串,输出表列);作用:将“输出表列”中的数据按照“格式控制字符串”的要求输出。例如:printf(%d,%d,a,b);注意:格式控制字符串包含两部分内容:格式说明和普通字符。,格式说明:由“%”和格式字符组成。如%d,%f等。作用是将要输出的数据转换成指定的格式输出。格式说明总是由“%”字符开始的。普通字符:按照原样输出字符。,下表列出了printf()函数的格式字符,格式字符作用d,i以带符号的十进制形式输出整数(正数不输出符号)o以无符号的八进制形式输出整数X,x以无符号的十六进制形式输出整数u以无符号的十进制形式输出整数c以字符形式输出单个字符s输出字符串f以小数形式输出实数(保留6位小数)E,e以指数形式输出实数(保留5位小数)G,g选用%f或%e中宽度较短的一种格式输出实数,格式字符作用L,l输出长整型整数,可用在d,o,x,u前面m.n(m,n为正整数)m表示数据输出的最小宽度。对实数,表示输出n位小数;对字符串,表示截取的字符个数-按照左对齐方式输出数据+按照右对齐方式输出数据(系统默认对齐方式为右对齐),下表列出了printf()函数的附加格式字符,除了格式字符以外,printf()函数还可以使用附加格式字符,附加格式字符放在格式字符与%之间。,格式控制字符串中,可以使用转义字符。,格式控制字符串通常用小写字母书写,并且要用双引号标注。格式控制字符必须与输出表列一一对应;输出表列之间用逗号隔开。,例3-9以带符号形式输出整数和实数#includestdio.hmain()inta=-123;floatb=123.0;printf(%d,%fn,a,b);printf(%9d,%en,a,b);printf(%9d,%9.2fn,a,b);printf(%-9d,%-9.2fn,a,b);,例3-10输出长整型整数#includestdio.hmain()longinta=123456789;printf(%ld,%dn,a,a);,例3-11用不同进制形式输出正整数#includestdio.hmain()inta=66;printf(%d,%o,%x,%cn,a,a,a,a);getch();,例3-12用不同进制形式输出负整数#includestdio.hmain()inta=-1,b=-2;printf(%d,%u,%o,%xn,a,a,a,a);printf(%d,%u,%o,%xn,b,b,b,b);,例3-13输出字符串#includestdio.hmain()printf(%s,%5.3sn,china,china);,例3-14实数输出时,如果要降低小数部分精确度,系统自动按四舍五入的方式进行取舍。#includestdio.hmain()floata=12.5646;printf(%8.3f,%8.2fn,a,a);,例3-15如果要输出“%”,应在格式控制字符串中连续使用两个%#includestdio.hmain()floata=12.5646;printf(%8.3f%n,a);,例3-16如果在%后面紧跟0,则多余的空位用0来填补#includestdio.hmain()floata=12.5646;printf(%09.3f%n,a);,例3-17普通字符按原样输出#includestdio.hmain()inta=123;printf(a=%dn,a)
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年公共卫生体系建设实施方案评估报告
- 农业科技新突破:2025年植物基因编辑技术应用创新报告
- 智慧交通系统交通流量预测的2025年预测模型构建报告
- 智能化助力2025年线下演出市场复苏与观众数据分析报告
- 诚信建设课件培训
- 2025年新能源行业反垄断合规风险与新能源行业政策环境分析报告
- 校长在2025年秋季新学期教学工作会议上的讲话:深耕课堂主阵地守护成长生命线筑牢质量压舱石
- j维护服务合同4篇
- 少儿能力培训课件
- 2025年公司安全培训考试试题附参考答案(完整版)
- 神经外科术后高热患者的治疗及护理讲课件
- 中学生健康生活方式指南
- 电信转正考试题及答案
- 食堂从业人员健康管理制度
- Q-GDW10166.1-2025 输变电工程初步设计内容深度规定第1部分:110(66)kV架空输电线路
- 2025年青岛版(2024)小学科学三年级上册(全册)教学设计(附目录P150)
- JG/T 503-2016承插型盘扣式钢管支架构件
- 落户防离职协议书
- T/SFABA 5-2024食品配料天然度检测
- 铁路团体车票协议书
- 大众内部购车协议书
评论
0/150
提交评论