




已阅读5页,还剩66页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第3章 最简单的C程序设计,3.1 顺序程序设计举例 3.2 数据的表现形式及其运算 3.3 C语句 3.4 数据的输入输出,内容回顾,三种基本结构,顺序结构,选择结构,循环结构 (当型),循环结构(直到型),3.1顺序程序设计举例,内容回顾,算法:,例3.1 有人用温度计测量出用华氏法表示的温度(如 F,今要求把它转换为以摄氏法表示的温度(如 C) 。,N-S图,#include int main ( ) float f,c; f=64.0; c=(5.0/9)*(f-32); printf(“f=%fnc=%fn“,f,c); return 0; ,3.1顺序程序设计举例,例3.2 计算存款利息。有1000元,想存一年。有三种方法可选: (1)活期,年利率为r1; (2)一年期定期,年利率为r2; (3)存两次半年定期,年利率为r3; 请分别计算出一年后按三种方法所得到的本息和。,内容回顾,算法:,#include int main ( ) float p0=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); return 0; ,3.2 数据的表现形式及其运算,3.2.1 常量和变量 3.2.2 数据类型 3.2.3 整型数据 3.2.4 字符型数据 3.2.5 浮点型数据 3.2.6 怎样确定常量的类型 3.2.7 运算符和表达式,内容回顾,1、常量:在程序执行的整个过程中,其值不能改变 的量。,整型常量:,3.2.1 常量和变量,1)整型常量 十进制整型:能出现数字09,可带正负号 如:0,11,95,-2 八进制整型:以数字0开头的数字串,能出现数字07 如:011(十进制9),0111(十进制73) 十六进制整型:以0x开头的,能出现数字09,字母af或AF 如:0x11(十进制17),0xa5(十进制165),内容回顾,注意: 整型常量也分类别: 如:100,是int型常量 123u, 89U,是unsigned型常量 0l,34L,是long int型常量,实型常量:有两种表示形式 十进制小数形式:由数字与小数点组成(必须有小数点)。 如 1.23,-123.,0.0123,.0,0. 指数形式,如123e3或123E3都代表123103 注意字母e或E之前必须有数字,后面必须是整数,为合法的浮点型常量,如:1E-5,.1234e12,2.e0,6.5E-15,1、常量:,内容回顾,字符常量:分为两类 普通字符:用单撇号括起来的一个字符 如 : a, 9, (空格)是合法字符常量 ”a”, 99 是非法字符常量 注意:(1)字符常量只能是一个字符,不包括单撇号 (2)字符常量存储在计算机存储单元时,是以其ASCII代码存储的。如字符 a的ASCII码是97,在存储单元中存放的是97( ASCII:American Standard Code for Information Interchang美国标准信息交换代码,代码对照表见书P377 附录B),转义字符:以(反斜杠)开头的特殊形式的字符。,如: n ,r ,123 ,x3b,1、常量:,内容回顾,字符常量与字符串常量不同,字符串常量:用双撇号把若干个字符括起来,字符串常量是双撇号中的全部字符(但不包括双撇号)如”boy” 定义:用一对双撇号(” ”)括起来的字符序列。 如: ”hello” ”Mary” ”aaan ” 存储:每个字符串尾自动加一个 0 作为字符串结束标志,1、常量:,内容回顾,地球物理与信息工程学院,10,符号常量:用标识符表示的常量 如: #define PI 3.1416,1、常量:,内容回顾,2.变量:在程序执行的过程中,其值可以改变的量。,内容回顾,注意:C语言规定:变量必须先定义,后使用。,变量的定义语句: 类型说明符 变量名1,变量名2,;,例: int x; 定义整型变量x int a,b; 定义两个整型变量a,b,类型说明符和变量名之间要用空格隔开,变量赋初值,格式: 类型说明符 变量1=常数1,变量2=常数2,; 例:int a=2; float data=3.67; char ch=A; int x=1,y=1,z=1;,变量赋初值是指在定义变量时给变量赋值,这个值称为变量的初值。,3.常变量 4.标识符:用来标识变量名、符号常量名、数组名、类型名、函数名等的有效字符序列。,C语言对标识符的规定:,(1)只能由字母、数字、下划线组成,且第一个字母必须是字母或下划线 (2)长度:在TC中最多允许32个字符,建议不要超过8个,内容回顾,在C语言中,标识符大小写敏感。,3.2.2 数据类型,所谓类型,就是对数据分配存储单元的安排,包括存储单元的长度(占多少字节)以及数据的存储形式 不同的类型分配不同的长度和存储形式,内容回顾,3.2.3 整型数据,整型数据常见的存储空间和值的范围,说明:数据类型所占字节数随编译系统的不同而不同,2 4,3.2.4 字符型数据,字符是按其代码(整数)形式存储的 C99把字符型数据作为整数类型的一种 字符型数据在使用上有自己的特点,内容回顾,1.字符与字符代码 大多数系统采用ASCII字符集 字母:A Z,a z 数字:09 专门符号:29个:! ” # & ( ) *等 空格符:空格、水平制表符、换行等 不能显示的字符:空(null)字符(以0表示)、警告(以a表示)、退格(以b表示)、回车(以r表示)等,2.字符变量 用类型符char定义字符变量,占1个字节空间,只能存放一个字符。,例如:char c1,c2; c2=a; 定义了字符型变量c1,c2,把a存放到c2中,3.2.4 字符型数据,内容回顾,存储特点:在字符变量中实际上存储的是字符的ASCII码,其存储形式与整数的存储形式相同。,例如: char c = ?; / 系统把“?”的ASCII代码63赋给变量c printf(”%d %cn”,c,c); 输出结果是:,63 ?,注意: 1.字符数据与整型数据可相互赋值,直接运算。,例 int a,x; char c; a=D; /* a=68; */ x=A+5; /* x=65+5; */ c=97; /* c=a; */,2.大小写字母转换 小写字母减32得到相应的大写字母, 如:a-32 得到A 大写字母加32得到相应的小写字母 如:B+32 得到b,3.2.5 浮点型数据,浮点型数据是用来表示具有小数点的实数,内容回顾,注意: 浮点型常量也分类别: 如:123.3,是double类型 34.5f,8.9F,是float类型,回顾结束,3.2.6 怎样确定常量的类型,字符常量:由单撇号括起来的单个字符或转义字符 整型常量:不带小数点的数值 系统根据数值的大小确定int型还是long型等 浮点型常量:凡以小数形式或指数形式出现的实数 C编译系统把浮点型常量都按双精度处理 分配8个字节,几乎每一个程序都需要进行运算,对数据进行加工处理,否则程序就没有意义了。C语言的运算符范围宽,把除了控制语句和输入输出以外的几乎所有的基本操作都作为运算符处理,如将赋值运算符、方括号作为下下标运算符,3.2.7 运算符和表达式,的运算符 (1) 算术运算符 (+ - * / % + -) (2) 关系运算符 ( !) (3) 逻辑运算符 (! |) (4) 位运算符 ( | ) (5) 赋值运算符 (及其扩展赋值运算符) (6) 条件运算符 (?:),3.2.7 运算符和表达式,的运算符 (7) 逗号运算符 (,) (8) 指针运算符 (*和) (9) 求字节数运算符 (sizeof) (10) 强制类型转换运算符 ( (类型) ) (11) 成员运算符 (.-) (12) 下标运算符 ( ) (13) 其他 (如函数调用运算符(),1、算术运算符和算术表达式,算术运算符:算术运算符用于各类数值运算。 基本的算术运算符: 、 (正、负号运算符) 、*、/、%(取余),只需要一个运算对象,单目运算符,3.2.7 运算符和表达式,除法运算符“/”进行求商运算。对于不同类型的运算对象,除法表达式计算结果的类型也会不同。,例:计算x/y 如果x,y是整型,则结果为整型,小数部分被略去。 5/2结果为2,整型量 2/5结果为0,整型量 如果x,y其中一个为浮点型量,则结果为浮点型 5.0/2.0结果为2.5,“”是求余运算。ab计算a除以b后的余数,也是a模b的值。它要求两个运算对象必须是整型,其结果也是整型量。,例:52结果为1 25结果为2 10%3.0 语法错误,扩充:% 和 / 的一种常用的用法: 求一个整数各位上的数字。 例如:对任意一个三位数n,分别求出个、十、百位上的数字。 eg:n=456 个位:456%10 得到 6 十位:456/10%10(或456%100/10)得到5 百位:456/10/10 (或456/100)得到4,算术表达式 用算术运算符和括号将运算对象(操作数)连接起来的、符合C语法规则的式子,称为C算术表达式。 如:1+3.5*2-10 (x+y)*3-6+a 表达式的值 表达式的运算结果,一般数学式 a(b+c)+dac,算术表达式 (a*(b+c)+d)*a*c 将方括号改成圆括号,*不能省略,x/(x+y)+1.0/(x*y) 其中不能出现分数,改用除法运算符,圆括号不能缺少,3.14159*r*r/2.0 其中 为非字母字符,要用浮点型常量代替,例:将数学公式改为算术表达式,3、算术运算符的优先级和结合性 优先级: 高 - -* / % - + - 低 (2) (3) (4) 注意:可以用( )来改变运算的顺序. 如 (3+5)*8/(4.0-2) 结合性: 运算符的“结合性”决定同优先级的运算符对操作数的运算次序 左结合性:自左向右运算 右结合性:自右向左运算 + - *为左结合性 例如:a+b+c-d 根据左结合性,等价于(a+b)+c)-d - (求负值运算)为右结合性,2、自增、自减运算符,类别: 单目运算,运算优先级为2,运算符: + 使变量的值增 1 - 使变量的值减 1,运算规则: 后缀 i i 前缀 i i,先使i的值加(减)1 ,再使用i的值,结合性:右结合,例如: int main() int x,m,n; x=10; m=x+; n=+x; return 0; ,该语句执行后,m=10,x=11,该语句执行后,n=12,x=12,例: j=3; k=+j; j=3; k=j+; j=3; printf(“%d”,+j); j=3; printf(“%d”,j+); a=3;b=5;c=(+a)*b; a=3;b=5;c=(a+)*b;,/k=4,j=4,/k=3,j=4,/4,/3,/c=20,a=4,/c=15,a=4,自增、自减运算只能用于变量,不能用于常量和表达式。,注意:,例 +6, +(a+b)均为非法的运算,自增、自减运算符高于基本算术运算符。,自增、自减运算符的运算顺序。,3.2.7 运算符和表达式,3. 算术表达式和运算符的优先级与结合性: 用算术运算符和括号将运算对象(也称操作数)连接起来的、符合语法规则的式子,称为算术表达式 运算对象包括常量、变量、函数等 语言规定了运算符的优先级和结合性 关于“结合性”的概念是C语言的特点之一,附录D(P387)列出了所有运算符以及它们的优先级别和结合性,4.表达式中不同数据类型的混合运算,当表达式中的数据类型不同时,要进行类型转换。,转换方式 自动(隐式)转换:系统自动把数据由低级类型向高级转换。 强制转换:将表达式的运算结果强制转换成指定的数据类型。,如下表达式是合法的: 13.14159+ 0+ A,自动(隐式)转换,即: +、-、*、/ 运算的两个数中有一个数为float或double型,结果是double型。系统将float型数据都先转换为double型,然后进行运算 (2) 如果int型与float或double型数据进行运算,先把int型和float型数据转换为double型,然后进行运算,结果是double型 (3)字符型数据与整型数据进行运算,就是把字符的ASCII代码与整型数据进行运算,自动转换规则:,横向必做,纵向选做,例:数据类型自动转换实例,有如下变量类型: char c; int i; float f; double d; 计算表达式: c+f+i+d,char float int double,c + f + i + d,int,double,double,double,该表达式值的类型是double类型,double,double,double,5.强制类型转换运算符:(类型名),格式:(目标类型名)(表达式),注意: 1)强制转换属单目运算,运算优先级为2。 2)强制转换得到的是中间变量类型,原变量类型不变。 如:int n; float x=1.5f; n = (int)x; 强制转换后n的值是1,而x仍然是1.5,类型是float,例:int x=2, y=3; float z=1.6f; (float)(x+y); /将x+y的值转换为float类型,得5.0 (int)z + x; /先将z转换为整型1,再与x相加,得3),练习: 计算表达式的值: (int)(double)9/2) - 9%2,答案:3,3.2.7 运算符和表达式,6.运算符(已讲略) (1) 算术运算符 (+ - * / % + -) (2) 关系运算符 ( !) (3) 逻辑运算符 (! |) (4) 位运算符 ( | ) (5) 赋值运算符 (及其扩展赋值运算符) (6) 条件运算符 (?:),3.2.7 运算符和表达式,6.运算符(略) (7) 逗号运算符 (,) (8) 指针运算符 (*和) (9) 求字节数运算符 (sizeof) (10) 强制类型转换运算符 ( (类型) ) (11) 成员运算符 (.-) (12) 下标运算符 ( ) (13) 其他 (如函数调用运算符(),补充:逗号运算符与逗号表达式,逗号运算符,或称顺序求值运算符 运算符:, 运算优先级:最低,15级 结合性:左结合,逗号表达式:由逗号运算符连接起来的两个或两个以上的表达式。 格式: 表达式1,表达式2, ,表达式n 逗号表达式的值 表达式n的值,求解过程:先求表达式1的值,再求表达式2的值,直至求出表达式n的值。整个表达式的值为表达式n的值。,例: 1)x=0, y=100 2)x=5*8, 6+9 3)x=1, y=99, z=(x+y)*5 4)x=(i=10, j=5, i*j) 5)x=i=10, j=5, i*j,先后给x,y的赋值,表达式的值为100,先把x赋值为40,表达式的值为15,给x,y赋值后,计算z的值,表达式的值为500,等价于x50,先给x,i赋值,再给j赋值,计算i*j,表达式的值为50,求解过程:先求表达式1的值,再求表达式2的值,直至求出表达式n的值。整个表达式的值为表达式n的值。,课堂练习 a=3*5,a*4 a=3*5,a*4,a+5 x=(a=3,6*3) x=a=3,6*a a=1;b=2;c=3; printf(“%d,%d,%d”,a,b,c); printf(“%d,%d,%d”,(a,b,c),b,c);,/a值15,表达式值60,/a值15,表达式值20,/赋值表达式,表达式值18,x值18,/逗号表达式,表达式值18,x值3,/1,2,3,/3,2,3,3.3 C语句,3.3.1 C语句的作用和分类 3.3.2 最基本的语句-赋值语句,3.3.1 C语句的作用和分类,语句分为以下5类: (1) 控制语句: if、switch、for、while、dowhile、continue、break、return、goto等 (2) 函数调用语句 (3) 表达式语句 (4) 空语句 (5) 复合语句,3.3.1 C语句的作用和分类,C语句用来向计算机系统发出操作指令,以分号“;”结尾,可分为,5类,控制语句 函数调用语句 表达式语句 空语句 复合语句,3.3.1 C语句的作用和分类,(一)控制语句 完成一定的控制功能 1 if() else 条件语句 6 break 间断语句 2 for() 循环语句 7 switch() 开关语句 3 while()循环语句 8 goto 转向语句 4 do while();循环语句 9 return 返回语句 5 continue 继续语句 “( )”表示一个判别条件, “”表示内嵌的语句 例:if(xy)z=x;else z=y;,3.3.1 C语句的作用和分类,2函数调用语句 如: printf (“hello!“); 由一次函数调用加一个分号构成一个语句。 3表达式语句 如: i=i+1; i+; x+y; a=5; 由一个表达式加分号构成一语句。,4空语句 什么也不做。 例如: ; 即只有一个分号的语句。 5复合语句 用把一些语句括起来构成一个整体,但每一个语句后的分号都不能省。 如: z=x+y; t=z/100; printf (“%f“, t); ,3.3.2 最基本的语句-赋值语句,在C程序中,最常用的语句是: 赋值语句 输入输出语句 其中最基本的是赋值语句,赋值运算符和赋值表达式,1、简单赋值运算符 运算符:= 表达式格式:变量表达式 优先级:14,低于算术运算符 结合性:右结合 运算规则:把=右边表达式的值赋给左边变量,说明:,赋值运算符左边必须是变量而不能是表达式;,赋值表达式的值是赋值号左边变量被赋值后的值;,例:j+3=j a*b=c*4,例:x=5 表达式的值为5 (赋值表达式) 8+(x=4) 表达式值是12 (算术表达式),如果赋值号两边的类型不一致,则将赋值号右边表达式的值的类型转换成赋值号左边变量的类型;,赋值语句可以连续进行。,例:a=b=c=0,根据右结合性,该表达式等价于: a=(b=(c=0),例 int i; i=2.56; /结果i=2;,例 float f; int i; i=10; f=i; 则 f=10.00000,2、复合赋值运算,算术运算符“+ * / %”和赋值运算符“=”结合起来,形成复合赋值运算符。,+= :加赋值运算符; 如a+=3,等价于 a=a+3 -= :减赋值运算符; 如a-= b+3,等价于 a=a- (b+3) *=、/=、%= 与此类似,注意:,复合运算符在书写时,两个运算符之间不能有空格。 复合赋值运算符的结合性和优先级等同于简单的赋值运算符“=”。 复合运算符左边必须是变量; 复合运算符右边的表达式计算完成后才参与复合赋值运算;,3.3.2 最基本的语句-赋值语句,解题思路:假设给定的三个边符合构成三角形的条件 关键是找到求三角形面积的公式 公式为: 其中s=(a+b+c)/2,#include #include int main ( ) double a,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=%ftb=%ft%fn“,a,b,c); printf(“area=%fn“,area); return 0; ,对边长a、b、c赋值,计算s,计算area,#include #include int main ( ) double a,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=%ftb=%ft%fn“,a,b,c); printf(“area=%fn“,area); return 0; ,数学函数,计算平方根,调用数学函数加此行,#include #include int main ( ) double a,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=%ftb=%ft%fn“,a,b,c); printf(“area=%fn“,area); return 0; ,转义字符,使输出位置跳到下一个tab位置,调用数学函数加此行,归纳总结: 1.赋值运算符,运算符:= 表达式格式:变量表达式 优先级:14,低于算术运算符 结合性:右结合 运算规则:把=右边表达式的值赋给左边变量,说明:,赋值运算符左边必须是变量而不能是表达式;,赋值表达式的值是赋值号左边变量被赋值后的值;,例:j+3=j a*b=c*4,例:x=5 表达式的值为5 (赋值表达式) 8+(x=4
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 工业设计在制造业的重要作用
- 工业自动化与产品质量提升的关系
- 工作压力与时间管理心理技巧
- 工作场所心理健康的规划设计
- 工作中的创新思维实践案例分享
- 工作与生活平衡的探索与实践
- 工程塑料在注塑中的应用及发展
- 工厂生产效率提升方法论
- 工厂能效评估与节能改进措施
- 工程造价管理与成本控制分析
- 妊娠期急性脂肪肝临床管理指南(2022版)解读
- 呼伦贝尔农业无人机项目可行性研究报告(范文)
- LTPS-LCD工艺流程简介资料
- 初中生物总复习(七八年级上下册)
- (完整版)10KV配电室安装工程施工方案
- 幼儿卫生保健试题和参考答案解析
- 锅炉基础知识及水泥余热发电锅炉性能1
- 辽宁省建筑施工三类人员安全生产考核合格证变更申请表
- (完整版)家庭亲密度与适应性量表
- DOE操作作业指导书
- 初三自主招生简历范文
评论
0/150
提交评论