




已阅读5页,还剩48页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第3章最简单的C程序设计,3.1C的数据类型3.2常量与变量3.3整型数据3.4浮点型数据3.5字符型数据3.6各类数值型数据间的混合运算3.7运算符和表达式3.8数据输入输出的概念及在C语言中的实现,本章要点,数据的描述规则数据的操作规则,.,学习目标掌握C的数据类型掌握常量、变量的概念及应用和运算符的应用掌握各种表达式的应用重点难点重点:C的数据类型、常量、变量、算术运算与算术表达式、赋值运算符与赋值表达式。难点:变量的含义和使用。,C语言提供了以下一些数据类型。,数据类型,构造类型,指针类型,空类型(无值类型)void,3.1C的数据类型,.,整型100,125,-100,0实型3.14,0.125,-3.789字符型a,b,2字符串”a”,”ab”,”1232”,3.2常量与变量,常量和符号常量在程序运行过程中,其值不能被改变的量称为常量常量区分为不同的类型:,.,例3.1符号常量的使用#definePRICE30#includevoidmain()intnum,total;num=10;total=num*PRICE;printf(total=%dn,total);,#define语句定义一个符号常量PRICE,其值等于30。该值在程序运行过程中不能被改变。符号常量通常用大写字母表示。编译程序在翻译本源程序文件时,符号常量PRICE用其值30替换。程序运行结果是:total=300,思考:为什么要定义符号常量?,.,变量变量代表内存中具有特定属性的一个存储单元,它用来存放数据,这就是变量的值,在程序运行期间,这些值是可以改变的。变量名实际上是一个以一个名字对应代表一个地址,在对程序编译连接时由编译系统给每一个变量名分配对应的内存地址。从变量中取值,实际上是通过变量名找到相应的内存地址,从该存储单元中读取数据。,.,变量命名的规定:语言规定标识符只能由字母、数字和下划线三种字符组成,且第一个字符必须为字母或下划线。例:sum,_total,month,Student_name,lotus_1_2_,BASIC,li_lingM.D.John,¥123,3D64,ab,32个关键字:(由系统定义,不能重作其它定义)autobreakcasecharconstcontinuedefaultdodoubleelseenumexternfloatforgotoifintlongregisterreturnshortsignedsizeofstaticstructswitchtypedefunsignedunionvoidvolatilewhile,注意:编译系统将大写字母和小写字母认为是两个不同的字符。建议变量名的长度最好不要超过8个字符。在选择变量名和其它标识符时,应注意做到“见名知意”,即选有含意的英文单词(或其缩写)作标识符。要求对所有用到的变量作强制定义,也就是“先定义,后使用”。,整型常量的表示方法整型常量即整常数。在语言中,整常数可用以下三种形式表示:(1)十进制整数。(2)八进制整数。以0头的数是八进制数。(3)十六进制整数。以0 x开头的数是16进制数。整型变量(1)整型数据在内存中的存放形式数据在内存中是以二进制形式存放的。如:inti;/*定义为整型变量*/i=10;/*给i赋以整数10*/,3.3整型数据,.,两种表示形式,小数指数,0.1233e-3,注意:字母e(或E)之前必须有数字,且e后面的指数必须为整数,1e3、1.8e-3、-123e-6、-.1e-3e3、2.1e3.5、.e3、e,3.4浮点型数据,浮点型常量的表示方法,规范化的指数形式:在字母e(或E)之前的小数部分中,小数点左边应有一位(且只能有一位)非零的数字.,.,例,a,A,1abc、“a”,3.5字符型数据,字符常量(1)用单引号包含的一个字符是字符型常量(2)只能包含一个字符,有些以“”开头的特殊字符称为转义字符,n换行t横向跳格r回车反斜杠dddddd表示1到3位八进制数字xhhhh表示1到2位十六进制数字,.,字符变量字符型变量用来存放字符常量,注意只能放一个字符。字符变量的定义形式如下:charc1,c2;在本函数中可以用下面语句对c1,c2赋值:c1a;c2b;一个字符变量在内存中占一个字节。,字符数据在内存中的存储形式及其使用方法将一个字符常量放到一个字符变量中,实际上并不是把该字符本身放到内存单元中去,而是将该字符的相应的ASCII代码放到存储单元中。例3.2向字符变量赋以整数。#includevoidmain()charc1,c2;c1=97;c2=98;printf(“%c%cn”,c1,c2);printf(“%d%dn”,c1,c2);,运行结果:9798,字符串常量字符串常量是一对双撇号括起来的字符序列.合法的字符串常量:“Howdoyoudo.”,“CHINA”,“a”,“$123.45”可以输出一个字符串,如printf(“Howdoyoudo.”);,是字符常量,”是字符串常量,二者不同。如:假设被指定为字符变量:charc,c=a;c=”a”;c”CHINA”;,结论:不能把一个字符串常量赋给一个字符变量。,规定:在每一个字符串常量的结尾加一个“字符串结束标志”,以便系统据此判断字符串是否结束。规定以字符作为字符串结束标志。,混合运算:整型(包括int,short,long)、浮点型(包括float,double)可以混合运算。在进行运算时,不同类型的数据要先转换成同一类型,然后进行运算.,说明:这种类型转换是由系统自动进行的。,3.6各类数值型数据间的混合运算,.,例3.3有人用温度计测量出用华氏法表示的温度(如F,今要求把它转换为以摄氏法表示的温度(如C)。,转换公式,f代表华氏温度,c代表摄氏温度,.,#includeintmain()floatf,c;f=64.0;c=(5.0/9)*(f-32);printf(f=%fnc=%fn,f,c);return0;,定义f和c为单精度浮点型变量,指定f的值,计算c的值,输出f和c的值,.,例3.4计算存款利息。有1000元,想存一年。有三种方法可选:(1)活期,年利率为r1(2)一年期定期,年利率为r2(3)存两次半年定期,年利率为r3请分别计算出一年后按三种方法所得到的本息和。,.,#includeintmain()floatp0=1000,r1=0.0036,r2=0.0225,r3=0.0198,p1,p2,p3;p1=p0*(1+r1);p2=p0*(1+r2);p3=p0*(1+r3/2)*(1+r3/2);printf(”%fn%fn%fn”,p1,p2,p3);return0;,定义变量同时赋予初值,运算符简介的运算符有以下几类:(1)算术运算符(+、-、*、/、%)(2)关系运算符(、!)(3)逻辑运算符(!、|)(4)位运算符(、|、)(5)赋值运算符(及其扩展赋值运算符)(6)条件运算符(?:)(7)逗号运算符(,)(8)指针运算符(*、)(9)求字节数运算符(sizeof)(10)强制类型转换运算符((类型))(11)分量运算符(-)(12)下标运算符()(13)其他(如函数调用运算符(),3.7运算符和表达式,(1)算术表达式和运算符的优先级与结合性基本的算术运算符:用算术运算符和括号将运算对象(也称操作数)连接起来的、符合语法规则的式子,称为算术表达式。运算对象包括常量、变量、函数等。例如:*.5a是一个合法的表达式,算术表达式和运算符,语言规定了运算符的优先级和结合性。在表达式求值时,先按运算符的优先级别高低次序执行,例如先乘除后加减。规定了各种运算符的结合方向(结合性)算术运算符的结合方向为“自左至右”,即先左后右。,(2)强制类型转换运算符可以利用强制类型转换运算符将一个表达式转换成所需类型。一般形式:(类型名)(表达式)例如:(double)将转换成double类型(int)(x+y)将x+y的值转换成整型(float)(5%3)将5%3的值转换成float型,(3)自增、自减运算符作用是使变量的值增或减如:+i,-i(在使用i之前,先使i的值加(减)1)i+,i-(在使用i之后,使i的值加(减)1)注意:(1)自增运算符(),自减运算符(),只能用于变量,而不能用于常量或表达式,(2)和的结合方向是“自右至左”。自增(减)运算符常用于循环语句中使循环变量自动加。也用于指针变量,使指针指向下一个地址,.,赋值运算符和赋值表达式,(1)赋值运算符赋值符号“”就是赋值运算符,它的作用是将一个数据赋给一个变量。如“”的作用是执行一次赋值操作(或称赋值运算)。把常量赋给变量。也可以将一个表达式的值赋给一个变量.(2)类型转换如果赋值运算符两侧的类型不一致,但都是数值型或字符型时,在赋值时要进行类型转换。(3)复合的赋值运算符在赋值符“”之前加上其他运算符,可以构成复合的运算符。例如:等价于(4)赋值表达式一般形式为:,逗号运算符:将两个表达式连接起来,又称为“顺序求值运算符”如:5,,一般形式:表达式,表达式,求解过程:先求解表达式,再求解表达式。整个逗号表达式的值是表达式的值。例:逗号表达式*5,*,逗号运算符和逗号表达式,1.关系运算符及其优先次序(大于)=(大于或等于)=(等于)!=(不等于),说明:关系运算符的优先级低于算术运算符关系运算符的优先级高于赋值运算符,关系运算符和关系表达式,.,C语言中没有专用的逻辑值,1代表真,0代表假,2.关系表达式用关系运算符将两个表达式(可以是算术表达式或关系表达式,逻辑表达式,赋值表达式,字符表达式)接起来的式子,称关系表达式例:ab,a+bb+c,(a=3)(b=5),ab)(bb”的值为“真”,表达式的值为1。,算术运算符高关系运算符赋值运算符低(优先级关系),.,逻辑运算符和逻辑表达式,1.逻辑运算符及其优先次序!(逻辑非)相当于其他语言中的NOTa=B;b=O;c=Y;putchar(a);putchar(b);putchar(c);putchar(n);,运行结果:BOY,putchar(a);putchar(n);putchar(b);putchar(n);putchar(c);putchar(n);,运行结果:BOY,.,(二).字符输入函数一般形式:getchar()函数作用:从终端输入一个字符。函数值:从输入设备得到的字符。,例3.6输入单个字符。#includevoidmain()charc;c=getchar();putchar(c);putchar(n);,.,3.8-2格式输入与输出,(一).格式输出函数函数作用:向终端(或系统隐含指定的输出设备)输出若干个任意类型的数据。一般格式:printf(格式控制,输出表列),%d:以带符号的十进制形式输出整数%o:以八进制无符号形式输出整数%x:以十六进制无符号形式输出整数%u:以无符号十进制形式输出整数%c:以字符形式输出,只输出一个字符%s:输出字符串%f:以小数形式输出单,双精度数,隐含输出六位小数%e:以指数形式输出实数%g:选用%f或%e格式中输出宽度较短的一种格式,不输出无意义的0,.,几种常见的格式符的修饰符:,l:用于长整型整数,可加在格式符d,o,x,u前面m(代表一个正整数):数据最小宽度n(代表一个正整数):对实数,表示输出n位小数;对字符串,表示截取的字符个数:输出的数字或字符在域内向左靠,.,(1)格式符。用来输出十进制整数。几种用法:%d:按十进制整型数据的实际长度输出。%md:为指定的输出字段的宽度。如果数据的位数小于,则左端补以空格,若大于,则按实际位数输出。例:printf(“%4d,%4d”,a,b);若a=123,d=12345,则输出结果为123,12345%ld:输出长整型数据。例:longa=13579;/*定义a为长整型变量*/printf(“%ld”,a);,.,(2)格式符。以八进制整数形式输出。输出的数值不带符号,符号位也一起作为八进制数的一部分输出。例:inta=-1;printf(%d,%o,a,a);-1在内存单元中的存放形式(以补码形式存放)如下:1111111111111111输出为:-1,177777不会输出带负号的八进制整数。对长整数(long型)可以用“%lo”格式输出。还可以指定字段宽度,例:printf(“%8o“,a);输出为:177777。(数字前有2个空格),.,(3)格式符。以十六进制数形式输出整数。同样不会出现负的十六进制数。例:inta-1;printf(“%x,%o,%d”,a,a,a);输出结果为:ffff,177777,-1可以用“%lx”输出长整型数,也可以指定输出字段的宽度例:“%l2x”,.,(4)格式符,用来输出unsigned型数据.一个有符号整数(int型)也可以用%u格式输出;一unsigned型数据也可以用%d格式输出。unsigned型数据也可用%o或%x格式输出。(5)格式符,用来输出一个字符。如:chard;printf(,d);输出字符.一个整数,只要它的值在-255范围内,可以用“%c”使之按字符形式输出,在输出前,系统会将该整数作为ASCII码转换成相应的字符;一个字符数据也可以用整数形式输出。,.,运行结果:a=-1,177777,ffff,65535b=-2,177776,fffe,65534c=a,97i=a,97,例3.7无符号数据的输出。#includevoidmain()unsignedinta=65535;intb=-2,i=97;char=a;printf(“a=%d,%o,%x,%un”,a,a,a,a);printf(“b=%d,%o,%x,%un”,b,b,b,b);printf(“c=%c,%dn”,c,c);printf(“i=%c,%dn”,i,i);,.,(6)s格式符输出字符串.。例如:printf(%s,CHINA)输出字符串“CHINA”(不包括双引号)。%ms,输出的字符串占m列,若串长大于m,则全部输出,若串长小于m,则左补空格。%-ms,若串长小于m,字符串向左靠,右补空格。%m.ns,输出占m列,只取字符串中左端n个字符,输出在m列的右侧,左补空格。%-m.ns,n个字符输出在m列的左侧,右补空格,若nm,m自动取n值。,.,例3.8字符串的输出。#includevoidmain()printf(“%3s,%7
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 邵阳工业职业技术学院《申论》2023-2024学年第二学期期末试卷
- 人教版七年级历史下学期第二单元隋辽宋夏金元时期:民族关系发展和社会变化第1课时北宋的政治测试试题(含答案)
- 2025年怎样做明星测试题及答案
- 小学英语(高频短语+句型+考点全覆盖)
- 2025年iqc电子基础知识试题及答案
- 2025年天门社区面试试题及答案
- 2025年学术规范考试试题及答案
- 2025年同济会计面试题及答案
- 2025年东京大学文学试题及答案
- 2025年旅游文化类面试题及答案
- 第二章-英国学前教育
- 国家职业技能鉴定考试-高级机修钳工题库
- 315国际消费者权益保护日知识讲座课件
- 2023年二手房买卖合同正式版
- 2例不良事件根因分析
- YS/T 269-2008丁基钠(钾)黄药
- GB/T 3808-2018摆锤式冲击试验机的检验
- (完整版)《汽车材料》课程标准
- GB 1523-2013绵羊毛
- 2004年考研英语一真题及答案
- 过程装备控制基础过程装备控制技术及应用
评论
0/150
提交评论