




已阅读5页,还剩50页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第二章数据类型、运算符和表达式,2,主要内容,2.1预备知识2.2常量和变量的概念2.3各种数据类型的常量及变量2.4变量赋初值2.5不同类型数据之间的混合运算2.6常用运算符和表达式2.7输入函数与输出函数,3,2.4.1变量和内存的概念,变量:程序运行过程中其值可以改变的量。系统为程序中的每一个变量开辟存储单元。变量名:字母开头,后跟字母、数字和下划线组成。C语言中的关键字不能作为变量名。,4,2.4.1变量和内存的概念,#include#definePI3.1415926voidmain()floatr,s,ar;scanf(“%f”,说明:变量必须先定义后使用;变量中存储的只能是一个数据,往变量中存放数据的操作称为赋值。变量改变的是其值,而不是变量名。,5,2.4.2变量赋初值,变量定义inta,b,c;floatw;doublez;charc1,c2;,类型标识符变量名1=常量1,变量名2=常量2,;,/*指定a,b,c为整型变量*/*指定w为单精度实型变量*/*指定z为双精度实型变量*/*指定c1,c2为字符型变量*/,6,2.4.2变量定义和赋初值,变量赋初值inti=0;inta=5,b=5,c=5;floatep=0.001;charc=a;,/*指定i为整型变量,初值为0*/*指定a,b,c的初值为5*/*指定ep的初值为0.001*/*指定c的初值为a*/,7,注意:变量的“名”和变量的“值”不同,变量的“名”是该变量所代表的存储单元的标志,而变量的“值”是指存储单元中的内容。如:inta;a=5;a=10;,?,5,10,8,主要内容,2.1预备知识2.2常量和变量的概念2.3各种数据类型的常量及变量2.4变量赋初值2.5不同类型数据之间的混合运算2.6常用运算符和表达式2.7输入函数与输出函数,互换,9,2.6运算符和表达式,C运算符,算术运算符:(+-*/%+-)关系运算符:(=!=)逻辑运算符:(!c=a/b;A.0B.1/2C.0.5D.1,答案:B、C,答案:A,18,算术运算符的优先级,19,自增(+)和自减运算(-),+运算符的作用:是使变量的值增1。,-运算符的作用:是使变量的值减1。,20,自增(+)和自减运算(-),自增和自减运算只能应用于整型变量和指针型变量。+和-可以写在变量的左侧或右侧;而且其意义不同。“+变量名”和“-变量名”:先做运算,后取值“变量名+”和“变量名-”:先取值,后做运算,21,自增(+)和自减运算(-)举例,N=I+,N=+I,11,10,11,11,22,练习,:已知i=7j=i+;j=?i=?j=+i;j=?i=?,7,8,8,8,23,若k和j为int型变量,运算表达式j=3;k=+j;j+;执行后,变量k的值为_,变量j的值为_。,4,5,练习,24,关于自增和自减运算符的说明:,自增和自减运算符的运算对象不能是常量或表达式,只能是单个变量。变量类型可以为整型、指针类型。自增和自减运算符的结合方向是“自右向左”。例:-i+等价于-(i+);*i+等价于*(i+);,25,2、赋值运算符和赋值表达式,赋值:在计算机程序中,要完成这样一种操作将一个表达式的计算结果送到一个变量当中。简单的赋值运算符:=赋值表达式:变量名=表达式赋值运算符的结合性:自右向左即:a=b=c相当于a=(b=c),26,算术运算符与“=”结合在一起,形成复合的赋值运算符。,复合的赋值运算符,例:i+=2a%=3a*=b+5,等价于i=i+2等价于a=a%3等价于a=a*(b+5),27,主要内容,2.1预备知识2.2常量和变量的概念2.3各种数据类型的常量及变量2.4变量赋初值2.5不同类型数据之间的混合运算2.6常用运算符和表达式2.7输入函数与输出函数,28,2.5数据的混合运算,1、自动转换运算转换赋值转换2、强制类型转换,29,1、自动转换运算转换,在进行运算时,不同类型的数据要先自动转换成同一类型,然后进行运算。转换的规则按图所示。,intchar,short,高,低,long,unsigned,doublefloat,转换由编译系统自动完成。转换按数据长度增加的方向进行,即按“向高看齐”的原则提升“较低”类型,以保证不降低精度。,30,(1)实型赋予整型,舍去小数部分。(2)整型赋予实型,数值不变,但将以浮点形式存放,即增加小数部分(小数部分的值为0)。(3)字符型赋予整型,由于字符型为一个字节,而整型为两个字节,因此将字符的ASCII码值放到整型变量的低八位中,高八位为0。(4)整型赋予字符型,只把低八位赋予字符型变量。(5)double型赋予float型,丢失的部分按四舍五入向前进位。,1、自动转换赋值转换,31,注意:一个long型或double型数据给一个int型或float型变量赋值时,可能会引起数值溢出。注意:如果赋值运算符两边的数据类型不相同,系统将进行类型转换,即把赋值号右边的类型换成左边的类型,如果右边表达式的数据类型长度比左边长时,将丢失一部分数据,这样会降低精度。,1、自动转换赋值转换,32,练习:,已知:doublea;floatb;intc;chard;执行语句c=(d+b)*c-a;后,变量c的数据类型是()。A.doubleB.floatC.intD.char,正确答案:C,33,2、强制类型转换,强制类型转换运算符,将一个类型的变量值强制转换为另一种类型。一般格式为:(类型标识符)表达式例:k=(int)(int)x+(float)i)(float)(x=85),34,注意:对一个变量进行强制转换后,得到一个新的类型的数据,但原来变量的类型不变。例:x原为实型变量且值为2.6,在执行i=(int)x后得到一个整数2,并把它赋给整型变量i,但x仍为实型,值为2.6。,2、强制类型转换,35,练习:,若有定义:floata=3.9,b=6.9;intc;执行语句c=a+(int)(a+b)%3/2;后,c的值为()。A.3B.3.9C.4D.4.4,正确答案:A,36,主要内容,2.1预备知识2.2常量和变量的概念2.3各种数据类型的常量及变量2.4变量赋初值2.5不同类型数据之间的混合运算2.6常用运算符和表达式2.7输入函数与输出函数,37,2.7输入函数与输出函数,输出计算机向外部输出设备(显示器,打印机等)输出数据输入从输入设备(键盘,鼠标,扫描仪等)向计算机输入数据在使用系统库函数时,要用预编译命令“#include”包含有关的头文件#include/*标准输入输出库函数*/#include“stdio.h”/*标准输入输出库函数*/,38,2.7.1格式输出函数printf,printf函数一般格式:printf(格式控制,输出表列)格式控制是由双引号括起来的字符串,包含三种信息:1、格式说明:由“%”和格式字符组成,如%d,%f等。它的作用是将输出的数据按照指定的格式输出。2、普通字符:需要原样输出的字符。3、转义字符:用于控制输出。输出表列是一些要输出的数据。,39,2.7.1格式输出函数printf,printf函数一般格式:printf(格式控制,输出表列),普通字符输出表列printf(“sum=%dn”,sum);格式说明转义字符,printf(%d,%dn,a,b);,40,格式说明项:由“%”与格式字符组成,其作用是将数据转换为指定的格式输出,按不同类型的数据有以下不同的格式字符:%d、%ld,按整型数据的实际长度输出。%md、%mld,m为指定的输出字段的宽度,如数据的位数小于m,则左端补空;若数据位数大于m,则按实际长度输出。%c:用于输出一个字符。%f:用于以小数形式输出实数(包括单、双精度);%m.nf、%m.nlf,指定输出的数据共占m位,其中包括n位小数,如数据的位数小于m,则左端补空;若数据位数大于m,按实际长度输出。小数位数被截断时按四舍五入输出。,2.7.1格式输出函数printf,41,inta=-1,b=25,c=125;longx=356142;printf(%d,%5dn,a,b);printf(%5d,%2dn,c,c);printf(%ld,%dn,x,x);输出结果为:,例:,42,2.7.2格式输入函数scanf,scanf函数一般格式:scanf(格式控制,地址表列)scanf函数的功能是按照指定的格式输入数据,可以输入任意类型的多个数据。格式控制与printf函数含义相同,它由若干个格式说明构成,其作用是控制转换输入数据的类型。地址表列由若干个地址构成,它们可以是变量的地址,也可以是字符串的首地址。,43,如何分隔数据?,用隐含的分隔符:在输入数据中用空格或换行符分隔数据。scanf(%d%d%d,输入数据3,4,5则a=3,b=4,c=5,44,2.7.3数学函数,使用数学库中的函数时,应该首先用预处理命令#include指明要用到的数学函数的描述所在的头文件。调用数学函数时,要给出函数名,后面是一对圆括号,括号内是使用函数所需的参数,参数可以是常量、变量或表达式。,45,例:计算并打印2的3次方的语句可以写成:printf(“%7.2f”,pow(2.0,3.0);调用的数学函数pow需要两个参数,这两个参数都是double型的,返回值也是double型的。语句执行结果为:8.00。,46,常用数学函数,47,变量的定义,inta,b,c;,指定a,b,c为整型变量,unsignedlower,指定lower为无符号整型变量,floatx,y;,指定x,y为实型变量,doublez;,指定z为双精度实型变量,charc1,c2;,指定c1,c2为字符型变量,课堂练习,48,转义字符程序测试,#includevoidmain()printf(thisisoneprogramincn);printf(nthisisoneprograminc);printf(athisisoneprogramincn);printf(thisisoneprogramincn);printf(bbthisisoneprogramincn);printf(thisisoneprograminc);printf(rsecondprogramn);printf(thisisoneprograminc);printf(tsecondprogramn);printf(thisisoneprograminc);printf(101secondprogramn);printf(thisisoneprograminc);printf(x1asecondprogramn);,49,1.定义一个无符号长整变量L1;,unsignedshortS1,unsignedlongL1,定义一个无符号短整变量S1;,定义一个浮点类型变量F1;,定义一个双精度变量D1;,floatF1,doubleD1,按要求写语句:,50,写出下面算术表达式的值:,设x=2.5,a=10,y=4.7求表达式的值x+a%3*(int)(x+y)%2/4x=2.5;a=10;y=4.7;a%310%31(int)(x+y)(int)7.27a%3*(int)(x+y)1*77a%3*(int)(x+y)%27%21a%3*(int)(x+y)%2/41/40 x+a%3*(int)(x+y)%2/42.5+0,最后结果:2.5,51,思考题:(简单程序设计),输入三角形的三边长,求三角形的面积。,52,分析:输入三角形的三边,用下述公式计算三角形的面积:其中s=(a+b+c)/2,/*功能:输入三角形三边,计算面积*/#include#includevoidmain()floata,b,c,s,area;printf(Pleaseenter3sidesofatriangle:n);scanf(%f,%f,%f,53,完,54,要求:,深刻理解在计算机中各类型数据在内存中的存储形式、取值范围和能够对它进行的操作;深刻理解各基本类型作了short、long、unsigned扩展之后与原类型之间的区别;深刻理解各种整型常量的形式,字符常量、转义字符和符号常量的意义和作用。熟练掌握每一种变量的定义
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年事业单位招聘考试教师美术学科专业知识试卷(含2025年高频题库解析)
- 2025年食品检验工(中级)真题模拟解析试卷
- 2025年全国计算机技术与软件专业技术资格(水平)考试软件测试员试卷
- 2025年度绿色食品冷链物流配送与全程质量监控服务合同
- 宁夏金凤区数学试卷
- 2025年摩托车维修工(四级)考试试题解析手册
- 2025年环保清洁产品销售与售后服务合同
- 2025年跨境电商平台合作承包合同(含法律合规咨询)
- 2025年跨境电商平台财务数据处理及风险控制外包合同
- 2025年绿色建筑项目施工图设计咨询服务合同
- 2025玛纳斯县司法局招聘编制外专职人民调解员(5人)笔试模拟试题及答案解析
- 2025年陕西华山旅游集团有限公司招聘(50人)笔试备考试题及答案解析
- 中医基础理论试题及答案
- 信访业务培训课件
- 2025年秋期人教版2年级上册数学核心素养教案(第6单元)(教学反思有内容+二次备课版)
- 马拉松赛事全案策划
- 2025年国企财务招聘笔试题和答案(基础知识测试题)
- 公路工程检测员考试试题及答案
- 220KV间隔扩建(四措一案最终)
- 2025年广东华南农业大学招聘事业编制工作人员考试笔试试题(含答案)
- 2025年会计继续教育试题及答案
评论
0/150
提交评论