(16)--第03章 顺序结构程序设计(1).ppt
《(16)--第03章 顺序结构程序设计(1).ppt》由会员分享,可在线阅读,更多相关《(16)--第03章 顺序结构程序设计(1).ppt(112页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第3章 顺序结构程序设计本章内容3.1 体重指数计算器3.2 常量与变量3.3 运算符和表达式3.4 基本数据输入输出3.5 顺序结构程序设计举例本章学习目标 掌握基本数据类型常量与变量的使用方法 理解基本数据类型的数据的内存映像 掌握运算符的操作含义和表达式计算规则 理解基本运算符的优先级和结合性 了解基本数据类型数据的输入与输出 具有运用顺序结构设计程序的能力学习导引顺序结构是程序设计中最为基本的结构顺序结构程序由多条语句顺序组成在执行过程中,严格按照从上到下的顺序执行整个程序都是顺序执行的,甚至多个程序也是顺序执行的通过基本数据类型及表达式,结合案例,理解顺序结构3.1 体重指数计算器体
2、重指数(Body Mass Index,BMI)是用人们的体重(单位公斤)除以身高(单位米)的平方的值,它是WHO推荐的肥胖分类标准,用于衡量人体胖瘦程度以及是否健康BMI 分类WHO 标准亚洲标准中国参考标准相关疾病发病的危险性体重过低18.518.518.5低(但其它疾病危险性增加)正常范围18.524.918.522.918.523.9平均水平超重 252324增加肥胖前期 25.029.92324.92426.9增加I度肥胖 30.034.92529.92729.9中度增加II度肥胖35.039.930.039.930.039.9严重增加度肥胖 40.040.040.0非常严重增加3.
3、1 体重指数计算器程序#includeintmain()floathight,weight,bmi;/*定义3个变量*/printf(请输入您的身高(厘米):);/*显示提示信息*/scanf(%f,&hight);/*输入身高*/printf(请输入您的体重(公斤):);/*显示提示信息*/scanf(%f,&weight);/*输入体重*/bmi=weight/(hight/100*hight/100);/*利用公式计算出bmi*/printf(您的体重指数是:%.2fn,bmi);/*输出bmi的值*/return0;请输入您的身高(厘米):182请输入您的体重(公斤):84您的体重指数
4、是:25.363.1 体重指数计算器在C程序中所有变量必须先声明(定义)后使用,声明通常放在函数起始处声明用于说明变量名称、属性,有时给予初始化本程序获取从键盘输入的身高和体重,通过表达式计算出bmi的值,再输出体重指数值bmi。本程序main()函数的语句从上到下顺序执行,称为顺序控制结构程序顺序结构是程序设计的基础,只有掌握了顺序结构程序设计,才能编写出优秀的程序相比计算器和Excel计算BMI值,本程序具有良好的交互界面开发优秀的程序更加方便人们的工作和生活,这是程序设计的魅力所在3.2 常量与变量常量就是在程序运行过程中不能改变的量在程序运行时是可以改变的量为变量,在定义时,须指定变量
5、的数据类型3.2 常量与变量变量的声明就是变量的定义,其基本格式为:数据类型 变量名1,变量名2,变量名n;可同时定义多个同类型变量,表示可选项,多个变量名之间用逗号分隔开,并以分号表示定义结束变量名的先后没有顺序,对于程序员没有影响。在编译时,在一个连续存储内存空间内为变量分配存储单元,这些变量的地址与顺序有关系3.2 常量与变量一个单精度浮点数类型的变量的定义:float bmi=25.36;在定义变量时,指定了变量的名称和数据类型;数据类型指明了编译时分配给该变量的内存单元大小、数据在内存单元的存储形式以及运算的规则,从而可以确定该变量的取值范围;实际上变量名就是该内存单元的符号地址。初
6、始化bmi的值为25.36,名称、存储单元和值的三位一体:3.2 常量与变量3.2.1 整型常量与整型变量3.2.2 实型常量与实型变量3.2.3 字符常量与字符变量3.2.1 整型常量与整型变量1.整型常量在计算机中的数据都以二进制形式存储。在书写C源程序时,为了便于整型数据的表示和使用,整型常量有十进制、八进制和十六进制等三种十进制整数由数字09组成的序列,数值之前可以加正号(+)或负号(-),正号常常缺省,如8848、-10924、+2021等等常见的不合法的十进制整常数:074(不能有前导0)、26H(不能含有字母H)、11O(不能含有字符O)9876543210123456789(数
7、值太大了,超出了表达范围)3.2.1 整型常量与整型变量1.整型常量八进制整数由数字0开头(即以0作为八进制数的前缀),后跟数字07。前缀0之前可以加正号(+)或负号(-),但八进制数通常是无符号数,如下:016(十进制为14)010101(十进制为4161)-0256(十进制-174)0177777(十进制为65535)常见的不合法的八进制整常数:61(无前缀0)、03E4(不能含有字母E)、059(不能包含了非八进制数码9)3.2.1 整型常量与整型变量1.整型常量十六进制整数前缀为0X或0 x,后跟数字09、字母AF或af。前缀0X或0 x之前可以加正号(+)或负号(-),但十六进制数通
8、常是无符号数,如下:0Xbee(十进制为3054)-0 xFFF(十进制为-4095)0 xFF(十进制为255)常见的不合法的八进制整常数:E0F(无前缀0X或0 x)、78H(无前缀0X或0 x,且有非法字符H)3.2.1 整型常量与整型变量2整数在内存中存放形式 无论常量为十进制、八进制、或十六进制,在计算机系统中,有符号整数的数值在内存中都是以二进制补码形式存放的。在Visual C+6.0中,为整数分配两个字节(16位)或者四个字节(32位)的内存单元,在新C标准里可以分配8个字节的内存单元,表示更大范围的整数3.2.1 整型常量与整型变量2整数在内存中存放形式如果分配两个字节,(+
9、168)十进制=(0000000010101000)二进制补码,这16位中,最高位0是符号位(第15位),表示正数3.2.1 整型常量与整型变量2整数在内存中存放形式分配两个字节内存,(+168)十进制=(0000000010101000)二进制补码3.2.1 整型常量与整型变量2整数在内存中存放形式如果分配4个字节,(+168)十进制=(00000000000000000000000010101000)二进制补码,这32位中,最高位0是符号位(第31位)3.2.1 整型常量与整型变量2整数在内存中存放形式如果分配两个字节,(-168)十进制=(1111 1111 0101 1000)二进制补
10、码,这16位中,最高位1是符号位(第15位),表示负数3.2.1 整型常量与整型变量2整数在内存中存放形式如果分配4个字节,(-168)十进制=(1111 1111 1111 1111 1111 1111 0101 1000)二进制补码,这32位中,最高位1是符号位(第31位),表示负数3.2.1 整型常量与整型变量3整型变量的分类整型变量的基本类型为int,C语言在整型变量定义时,允许在int前面增加两类修饰符:一类修饰符控制变量是否有符号,有符号用signed(缺省),无符号用unsigned;另一类修饰符控制变量分配的字节数,这类修饰符包括short和long两类;其实在C99标准中还有
11、long long,但是,多数编译器不支持这个修饰符,从字面意思可知,short比基本型int分配的字节数少;long比基本型int分配的字节数多。在C语言中,整数变量分为6类3.2.1 整型常量与整型变量3整型变量的分类Visual C+6.0 中各类整型所分配的内存字节数及表示范围类型说明符数的范围字节数int-21474836482147483647 即-231(231-1)4unsigned int04294967295 即0(232-1)4short int-3276832767 即-215(215-1)2unsigned short int065535 即0(216-1)2long
12、 int-21474836482147483647 即-231(231-1)4unsigned long04294967295 即0(232-1)43.2.1 整型常量与整型变量3整型变量的分类有符号和无符号整型变量的定义与使用#includeintmain()inti,j,m,n;unsignedu;i=255;j=-180;u=201;m=i+u;n=j+u;printf(i+u=%d,j+u=%dn,m,n);return0;i+u=456,j+u=213.2.1 整型常量与整型变量4整型常量的分类通过在整数常量后面添加两类后缀来区分:一类后缀为U或u,表示为无符号整数;另外一类后缀为L
13、或l,表示为长整型。注意表示范围。#includeintmain()inti=4294967128u;unsignedintu=4294967128u;printf(i=%dn,i);/*显示基本整型变量i的值*/printf(u=%un,u);/*显示无符号整型变量u的值*/return0;i=-168u=42949671283.2.1 整型常量与整型变量5整型数据的溢出不同类型整型数据的取值范围要记牢,从而可以在编程时避免出错#includeintmain()inta,b=2147483536,c;a=2147483592;c=a+b;printf(a=%dn,a);printf(b=%d
14、n,b);printf(c=a+b=%dn,c);return0;a=2147483592b=2147483536c=a+b=-1683.2.1 整型常量与整型变量5整型数据的溢出乘法比加减更容易溢出出错#includeintmain()inta,b,c;a=76800;b=94300;c=a*b;printf(a=%dn,a);printf(b=%dn,b);printf(c=a*b=%dn,c);return0;a=76800b=94300c=a*b=-13476945923.2.2 实型常量与实型变量1实型常量实型也称为浮点型、实数型实型常量也称为实数或者浮点数。在语言编程中,实数采用十
15、进制,它有二种形式:小数形式指数形式3.2.2 实型常量与实型变量(1)小数形式实数常量它由数码09和小数点组成,数的前面可以加正号(+)或负号(-),表示正实数或负实数,没有正负号的缺省形式为正实数例如:0.0、25.0、-.789(小数点前可以为空,表示缺省0)、0.13、5.0、300.(点后可以为空,缺省了0,它和300整数不同)、-267.830。小数形式的实数必须有小数点,小数点前后可以省略0表示为空,但不能同时为空3.2.2 实型常量与实型变量(2)指数形式实数常量由数码09、小数点、e或E阶码标志组成,一般形式为 a E na是十进制的尾数,可以是小数或整数,带正负号,缺省为正
16、n是十进制带符号整数的阶码,必为整数,带正负号,缺省为正指数形式实数常量的真值含义为a10n尾数、e或E、阶码这三个部分都不能省略3.2.2 实型常量与实型变量(2)指数形式实数常量合法的指数形式的实数:2.5E+3(真值2.5103)5.8E-4(真值5.810-4)8e2(真值8.0102)-7.4E-3(真值-7.410-3)不合法的指数形式的实数:3.2E(E之后无阶码)E6(E之前无尾数)4.3E2.5(阶码不是整数)3.2.2 实型常量与实型变量2实数在内存的存放形式计算机中实数是按以2为底的指数形式存储,一般占4、8、10或更多个字节的连续内存空间实数所占内存空间又三部分组成:最
17、高位存放实数符号S,接下来是尾数部分M,最后为阶码部分E,通过(-1)S2EM公式可以计算出来该实数的十进制值根据具体C语言编译器的约定和满足的IEEE标准,决定尾数和阶码占多少位尾数所占存储空间是有限的,只能存储有限精确度的实数,可能某些数位被舍去,所以不一定能用二进制数精确地表示计算机中尾数部分占的位(bit)数愈多,实数的有效数字越多、精度越高;阶码部分占的位数越多,则能表示的数值范围越大。3.2.2 实型常量与实型变量3实型变量的分类单精度(float)、双精度(double)和长双精度(long double)Visual C+6.0:单精度4个字节,-3.410-383.41038
18、,提 供 6 7位 有 效 数 字;双 精 度 8个 字 节,-1.710-3081.710308,提供1516位有效数字。长双精度也是8个字节,与双精度实型相同;不同编译器,实型分配字节不同。实型常量后缀为F或f为单精度型常量;后缀为大写或小写L,指定常量为长双精度实型,分配的字节更多。如果实型没有后缀,则为双精度实型3.2.2 实型常量与实型变量4实型数据的有效位数实型所占的内存字节数有限,只能提供有效位有效位的近似值#includeintmain()floatf,fb;f=1.23456789e8f;fb=f+22.5;printf(f=%en,f);/*单精度数只能提供7位有效数字*/
19、printf(f+22.5=%en,fb);printf(f=%fn,f);printf(f+22.5=%fn,fb);return0;f=1.234568e+008f+22.5=1.234568e+008 f=123456792.000000f+22.5=123456816.0000003.2.2 实型常量与实型变量4实型数据的有效位数#includeintmain()floata;doubleb;a=55555.123456f;b=999999999.123456712;printf(%fn%fn,a,b);printf(%.9fn%.9fn,a,b);return0;55555.1250
20、00999999999.12345755555.125000000999999999.1234567203.2.3 字符常量与字符变量字符型数据就是那些用来表示字母、符号、文字等文本信息的数据,还有控制字符用于通信C语言中,通常字符型数据就是占1个字节(8位)的整数,表示字符所对应字符代码(常常为ASCII值,7位)3.2.3 字符常量与字符变量1字符常量(1)单引号括起来一个字符合法字符常量:a、b、=、+、?、$等可显示的字符在语言中,字符常量有以下特点:字符常量只能单引号只能单引号括起来,不能用双引号或其它括号字符常量只能是单个字符单个字符,不能是多个字符单个数字与单个数字字符是不同的;
21、如5和5,5是字符常量,其值是0X35,5是有符号整型常量3.2.3 字符常量与字符变量1字符常量(2)转义字符转义字符是一种特殊的字符常量。转义字符以反斜线开头,后跟一个或几个字符。转义字符具有特定的含义,不同于字符原有的意义,故称“转义”字符转义字符主要用来表示那些用一般字符不便于表示的控制字符3.2.3 字符常量与字符变量(2)转义字符转义字符转义字符的意义ASCII代码值a鸣铃7b退格符,删除当前字符,光标向左移动一位8t制表符的横向制表,光标移动到下一制表位置9n回车换行符,光标移动到下一行的行首10v竖向跳格,纵向制表11f走纸换页12r回车符,光标移动到当前行的行首13双引号符3
22、4单引号符39反斜线符92ddd13位八进制数所代表的字符,可以为任意字符0dddxhh12位十六进制数所代表的字符,可以为任意字符0 xhh3.2.3 字符常量与字符变量2字符变量字符变量的类型说明符是char,占1个字节(8位)有符号有符号字符变量和无符号无符号字符变量无符号字符变量的取值范围是0255有符号字符变量的取值范围是-128127如果字符变量或常量参与整数运算整数运算,直接使用其值运算charc1=A;charc2=65;charc3=x41;charc4=101;3.2.3 字符常量与字符变量2字符变量#includeintmain()chara,b;inti;a=G;b=0
23、 xFF000047;/*多字节整数赋值给少字节整数,要截取低字节*/i=0 xFF000047;/*十进制值为-16777145*/printf(%c,%c,%cn,a,b,i);printf(%d,%d,%dn,a,b,i);return0;G,G,G71,71,-167771453.2.3 字符常量与字符变量2字符变量#includeintmain()chara1=G,a2,b1=h,b2;a2=a1+32;b2=b1-32;printf(%c,%c%d,%dn,a1,a2,a1,a2);printf(%c,%c%d,%dn,b1,b2,b1,b2);return0;G,g 71,103
24、h,H 104,723.2.3 字符常量与字符变量2字符变量#includeintmain()chara=-98;/*有符号字符变量,取值范围-128127*/unsignedcharb=255;/*无符号字符变量,取值范围0255*/printf(%d,%dn,a,b);return0;-98,2553.2.3 字符常量与字符变量3字符串常量字符串常量是一对双引号双引号括起的字符序列例如:Helloworld,Computer,if等字符串常量和字符常量不同,它们之间主要有以下区别:(1)字符常量由单引号括起来,字符串常量由双引号括起来(2)字符常量只能单个字符,字符串常量可含零个、一个或多
25、个字符。(3)一个字符常量赋值给一个字符变量;语言中没有相应的字符串变量,用字符数组来存放字符串(4)字符常量占用一个字节的内存空间。字符串常量占用的内存字节数等于字符串中字符数加加1,增加的一个字符0(ASCII码为0)表示字符串结束3.3 程序与程序语言语言具有丰富的运算符,用运算符将变量、常量或函数等操作数连接起来,符合C语言语法规则的式子称为表达式表达式在C语言中,除了控制语句外,几乎所有的操作都可以用表达式来处理几乎所有的操作都可以用表达式来处理,这也是语言的主要特点之一与算术四则运算规则(先乘除,后加减,有括号先算括号里面的)一样,C语言表达式的运算也有先后顺序,这不仅取决于运算符
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 16-第03章 顺序结构程序设计1 16 03 顺序 结构 程序设计
限制150内