第3章-最简单的C程序设计-谭浩强第五版

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

第3章最简单的C程序设计•常量与变量•数据类型•输入输出函数及格式2常量和变量1.常量:在程序运行过程中,其值不能被改变的量整型常量:如1000,12345,0,-345实型常量◦十进制小数形式:如0.34-56.790.0◦指数形式:如12.34e3(代表12.34103)字符常量:如’?’(一个字符,大小写含义不同)◦转义字符:如’\n’(一般屏幕上无法显示)字符串常量:如”boy”符号常量:#definePI3.14163常量和变量2.变量:在程序运行期间,变量的值是可以改变的变量必须先定义,后使用定义变量时指定该变量的名字和类型变量名和变量值是两个不同的概念变量名实际上是以一个名字代表的一个存储地址从变量中取值,实际上是通过变量名找到相应的内存地址,从该存储单元中读取数据4常量和变量3.常变量:constinta=3;常变量和变量的区别变常量具有变量的基本属性,有类型,占存储单元,值不许改变。常变量和符号常量的区别预编译后符号常量就不存在了,对符号常量的名字不分配存储单元5常量和变量4.标识符:一个对象的名字C语言规定标识符只能由字母、数字和下划线3种字符组成,且第一个字符必须为字母或下划线合法的标识符:如sum,average,_total,Class,day,BASIC,li_ling不合法的标识符:M.D.John,¥123,#33,3D64,a>b大小写字母是不同的字符6数据类型所谓类型,就是对数据分配存储单元的安排,包括存储单元的长度(占多少字节)以及数据的存储形式不同的类型分配不同的长度和存储形式7C语言允许使用的数据类型:基本类型◦整型类型基本整型短整型长整型双长整型字符型布尔型浮点类型单精度浮点型双精度浮点型复数浮点型数据类型81.整型数据的分类(补码形式存放,符号数字化)最基本的整型类型◦基本整型(int型):占2个或4个字节◦短整型(shortint):VC++6.0中占2个字节◦长整型(longint):VC++6.0中占4个字节◦双长整型(longlongint):C99新增的(注意每种类型能容纳的数值范围,超出此范围,数值溢出)数据类型9整型数据2.整型变量的符号属性◦整型变量的值的范围包括负数到正数◦可以将变量定义为“无符号”类型◦扩充的整形类型:10整型数据扩充的整型类型:有符号基本整型[signed]int;无符号基本整型unsignedint;有符号短整型[signed]short[int];无符号短整型unsignedshort[int];有符号长整型[signed]long[int];无符号长整型unsignedlong[int]有符号双长整型[signed]longlong[int];无符号双长整型unsignedlonglong[int]11字符型数据字符是按其代码(整数)形式存储的C99把字符型数据作为整数类型的一种字符型数据在使用上有自己的特点12字符型数据1.字符与字符代码大多数系统采用ASCII字符集◦字母:A~Z,a~z◦数字:0~9◦专门符号:29个:!”#&‘()*等◦空格符:空格、水平制表符、换行等◦不能显示的字符:空(null)字符(以‘\0’表示)、警告(以‘\a’表示)、退格(以‘\b’表示)、回车(以‘\r’表示)等13ASCII字符集:列出所有可用的字符每个字符:惟一的次序值(ASCII码)'0'-'9''A'-'Z''a'-'z'14字符型数据字符’1’和整数1是不同的概念:◦字符’1’只是代表一个形状为’1’的符号,在需要时按原样输出,在内存中以ASCII码形式存储,占1个字节◦整数1是以整数存储方式(二进制补码方式)存储的,占2个或4个字节00110001000000000000000115字符型数据2.字符变量用类型符char定义字符变量◦charc=’?’;系统把“?”的ASCII代码63赋给变量c◦printf(”%d%c\n”,c,c);◦输出结果是:63?16浮点型数据浮点型数据是用来表示具有小数点的实数为什么称为浮点数?规范化的指数形式:小数部分中小数点前的数字为0,小数点后的第一位数字为不为0。17浮点型数据float型(单精度浮点型)◦编译系统为float型变量分配4个字节◦数值以规范化的二进制数指数形式存放参见主教材图3.1118浮点型数据浮点型数据分为float型(单精度浮点型)double型(双精度浮点型)编译系统为double型变量分配8个字节15位有效数字longdouble(长双精度)型(注意每种类型能表示的数值范围)19浮点型数据数据精度取值范围单精度六位有效数字10-37-1038双精度十六位有效数字10-307-10308长双精度十九位有效数字10-4931-104932不同的编译系统,数据精度对有效数字位数的规定略有差异。20浮点型数据数据精度与取值范围是两个不同的概念:floatx=1.23456789;floaty=123456789;虽在数据表示范围内,但无法精确表达。floatz=1.2e55z的精度要求不高,但数据表示范围超出。并不是所有的实数都能在计算机中精确表示。实型常量的类型都是double(除非加f或F)x=1.23457y=1.23458e821运算符和表达式1.基本的算术运算符:+:正号运算符(单目运算符)-:负号运算符(单目运算符)*:乘法运算符/:除法运算符%:求余运算符+:加法运算符-:减法运算符22运算符和表达式2.算术表达式用算术运算符和括号将运算对象(也称操作数)连接起来的、符合C语法规则的式子,称为C算术表达式运算对象包括常量、变量、函数等23算术表达式例2-15数学式--C表达式s(s-a)(s-b)(s-c)(x+2)e2x注意:在程序设计语言中不能省略运算符s*(s-a)*(s-b)*(s-c)(x+2)*exp(2*x)24运算符和表达式自增++、自减运算符--:inti;++i,--i,i++,i--(这种运算符只适用变量)◦使变量的值1或减1++ii++:i=i+1--ii--i=i-1◦取变量的值作为表达式的值++i:i=i+1;取i值作为表达式++i的值.(在使用i之前,先使i的值加(减)1)i++:取i值作为表达式i++的值;i=i+1.(在使用i之后,使i的值加(减)1)25自增自减运算inti,k;i=2;k=++i;i=2;k=i++;i=3i=3k=3k=2k=ii=i+1i=i+1k=i26◦单目+-++--◦双目*/%◦双目+-高低从右向左-5+3%2=(-5)+(3%2)=-43*5%3=(3*5)%3=0-i++-(i++)算术运算符的优先级和结合性27运算符和表达式3.自增、自减运算符使用场合:循环语句中;用于指针变量使用自增、自减运算符,注意避免某些情况下的二义性28#includestdio.hvoidmain(){inta,b,c;b=5;c=5;a=++b+c--;printf(%d,%d,%d\n,a,b,c);a=b---c;printf(%d,%d,%d\n,a,b,c);a=-b+++c;printf(%d,%d,%d\n,a,b,c);}b=b+1,a=b+c,c=c-1a=b-c,b=b-1a=-(b++)+ca=(b--)-ca=-b+c,b=b+129运算符和表达式4.不同类型数据间的混合运算:有两种类型转换◦系统自动进行的类型转换◦强制类型转换30运算符和表达式系统自动进行的类型转换(1)+、-、*、/运算的两个数中有一个数为float或double型,结果是double型。系统将float型数据都先转换为double型,然后进行运算(2)如果int型与float或double型数据进行运算,先把int型和float型数据转换为double型,然后进行运算,结果是double型(3)字符型数据与整型数据进行运算,就是把字符的ASCII代码与整型数据进行运算31自动类型转换(非赋值运算)水平方向:自动(无论运算符两边类型是否一致)垂直方向:低高(真正是不同类型混合运算)高doublefloatunsignedlonglongunsignedunsignedshort低intchar,short32例如:inti=3;floatf=2.5;doubled=7.5;10+’a’+i*f-d/3=?高doublefloatunsignedlonglongunsignedunsignedshort低intchar,short33运算符和表达式例3.3给定一个大写字母,要求用小写字母输出。解题思路:关键是找到大、小写字母间的内在联系同一个字母,用小写表示的字符的ASCII代码比用大写表示的字符的ASCII代码大3234运算符和表达式#includestdio.hintmain(){charc1,c2;c1=’A’;c2=c1+32;printf(%c\n,c2);printf(”%d\n”,c2);return0;}将字符‘A’的ASCII代码65放到c1中将65+32的结果放到c2中用字符形式输出用十进制形式输出35运算符和表达式5.强制类型转换运算符强制类型转换运算符的一般形式为(类型名)(表达式)◦(double)a(将a转换成double类型)◦(int)(x+y)(将x+y的值转换成int型)◦(float)(5%3)(将5%3的值转换成float型)◦(double)(5/2)和(double)5/2相同吗?36运算符和表达式6.C运算符(1)算术运算符(+-*/%++--)(2)关系运算符(><==>=<=!=)(3)逻辑运算符(!&&||)(4)位运算符(~|∧&)(5)赋值运算符(=及其扩展赋值运算符)(6)条件运算符(?:)37运算符和表达式6.C运算符(7)逗号运算符(,)(8)指针运算符(*和&)(9)求字节数运算符(sizeof)(10)强制类型转换运算符((类型))(11)成员运算符(.-)(12)下标运算符([])(13)其他(如函数调用运算符())38C语句C语句的作用和分类最基本的语句----赋值语句39C语句的作用函数包含声明部分和执行部分执行部分由语句组成语句的作用:向计算机系统发出操作指令,要求执行相应的操作40C语句的作用和分类C语句分为以下5类:(1)控制语句:if、switch、for、while、do…while、continue、break、return、goto等(2)函数调用语句(3)表达式语句(4)空语句(5)复合语句41赋值语句在C程序中,最常用的语句是:◦赋值语句◦输入输出语句其中最基本的是赋值语句42赋值语句例3.4给出三角形的三边长,求三角形面积。43赋值语句解题思路:假设给定的三个边符合构成三角形的条件关键是找到求三角形面积的公式公式为:其中s=(a+b+c)/2))()((csbsassarea44#includestdio.h#includemath.hintmain(){doublea,b,c,s,area;a=3.67;b=5.43;c=6.21;s=(a+b+c)/2;area=sqrt(s*(s-a)*(s-b)*(s-c));printf(a=%f\tb=%f\t%f\n,a,b,c);printf(area=%f\n,area);return0;}对边长a、b、c赋值计算s计算area数学函数,计算平方根调用数学函数加此行45归纳总结:1.赋值运算符◦“=”是赋值运算符◦作用是将一个数据赋给一个变量◦也可以将一个表达式的值赋给一个变量462.赋值表达式◦一般形式为:变量=表达式◦对赋值表达式求解的过程:计算赋值运算符右侧表达式的值将赋值运算符右侧表达式的值赋给左侧的变量将赋值运算符左侧的变量的值作为表达式的值例如:a=3*

1 / 98
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功