第3章最简单的C程序设计--顺序程序设计.ppt

上传人:本田雅阁 文档编号:2254817 上传时间:2019-03-11 格式:PPT 页数:44 大小:748.01KB
返回 下载 相关 举报
第3章最简单的C程序设计--顺序程序设计.ppt_第1页
第1页 / 共44页
第3章最简单的C程序设计--顺序程序设计.ppt_第2页
第2页 / 共44页
第3章最简单的C程序设计--顺序程序设计.ppt_第3页
第3页 / 共44页
亲,该文档总共44页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《第3章最简单的C程序设计--顺序程序设计.ppt》由会员分享,可在线阅读,更多相关《第3章最简单的C程序设计--顺序程序设计.ppt(44页珍藏版)》请在三一文库上搜索。

1、2019年3月11日星期一,1,第3章 最简单的C程序设计-顺序程序设计,教学目标: 通过本章的学习要求学生了解C顺序程序设计的基本方法;掌握C语言的基本数据类型;掌握常量和变量;掌握C语言的常用运算符和常用的表达式的应用方法;掌握函数输入输出语句的基本用法。 教学内容: 3.1 顺序程序设计 3.2 数的表现形式及其运算 3.3 C语句 3.4 数据的输入输出,2019年3月11日星期一,2,3.1 顺序程序设计举例,【例题3.1】有人用温度计测量出用华氏法表示的温度(如690F)现要求将其转换为以摄氏法表示的温度(如200C)。,解题思路:,根据物理学知识知:,因此: 通过键盘输入一个华氏

2、温度值 根据转换关系进行运算(解决问题的方法即算法) 在显示器上输出摄氏温度值,2019年3月11日星期一,3, 算法,算法是解决“做什么”和“怎么做”的问题,不要认为 只有“计算”的问题才有算法,广义地说为解决某一问题而 采用的方法和步骤。, 算法的特性, 有穷性:一个算法应有限的操作步骤而不能是无限的。 确定性:算法中的每一个步骤都应当是确定的。 有零个或多个输入:执行算法需要从外界取得必要信息。 有一个或多个输出:将算法的结果打印在屏幕上。 有效性:每一个步骤应当有效地执行。,2019年3月11日星期一,4, 算法表示, 用自然语言表示算法 用流程图表示算法 用N-S图表示算法 用伪代码

3、表示算法 用计算机语言表示算法,注释框,2019年3月11日星期一,5, 例题3.1流程图及源程序,#include int main() float f,c; f=64.0; c=(5.0/9)*(f-32); printf(“f=%fnc=%fn”,f,c); return 0; ,2019年3月11日星期一,6,【例题3.2】计算存款利息。有1000元,想存一年。有三种 方法可选: 活期,年利率为r1;一年期定期,年利率 为r2;存两次半年定期,年利率r3。请分别计算出一年后 按3种方法所得到的本息和。,解题思路:,关键是本息和的计算公式。本息和=本金*(1+利率), 一年活期本息和=1

4、000*(1+r1) 一年定期本息和=1000*(1+r2) 一年两次本息和=1000*(1+r3/2)*(1+r3/2),2019年3月11日星期一,7,因此: 通过键盘输入本金值 根据本息和公式计算(解决问题的方法即算法) 在显示器上输出3种方法的本息和,算法N-S图:,依据N-S图编写源程序:,2019年3月11日星期一,8,3.2 数据的表现形式及其运算,3.2.1 常量和变量,在程序运行过程中,其值不能被改变的量称为常量。, 整型常量:程序中用到1000。 实型常量:程序中用到利率。有十进制和指数两种。 字符常量:普通字符用单撇括起来的单个字符;以 开头的字符序列。如:a;n。 字符

5、串常量:用双撇括起来的字符序列如123。 符号常量:用#define命令来定义的符号所代表的一 个常量。如:#define pi 3.1415926。,2019年3月11日星期一,9,【例3.3】符号常量的使用。依据某商品的价格计算顾客购买商品的件数应付的金额。,# define PRICE 30 #include int main() int num,total; num=20; total=num*PRICE; printf(“total=%dn”,total); return 0; ,/*定义价格为符号常量*/ /*输入输出包含的头文件*/ /*程序的主函数并从此处执行*/ /*定义两个

6、变量*/ /*给变量num赋初值20*/ /*计算总金额*/ /*打印输出*/,2019年3月11日星期一,10,2 变量,2019年3月11日星期一,11,3.标识符,在计算机高级语言中,用来对变量、符号常量名、函数、数 组及类型等命名的有效字符序列统称为标识符。,标识符命名规则:,只能由字母、数字和下划线3种字符组成,且第一个字 符必须是字母或下划线。,判断下列标识符是否合法:,¥123;price;_define;int;array;M.D.Jonh,2019年3月11日星期一,12,3.2.2 数据类型, 数学研究的数与计算机中的数的区别:, 数学研究的数是抽象的,数值运算是绝对准确的

7、。 计算机研究的数是具体的,受存储单元字节的限制。 如:1/3 对数学而言是循环小数;对计算机而言只能 是0.333333即近似值。, 数据类型:,是对数据分配单元的安排,包括存储单元的长度及数据 存储形式。不同的类型分配不同的长度和存储形式。,2019年3月11日星期一,13, C语言允许的数据类型,2019年3月11日星期一,14,3.2.3 整型数据,在内存中所占字节数,TC为2B,VC为4B。且以补码表示,2019年3月11日星期一,15, 数在计算机中的存放形式,整型数据在计算机中的存放是指在存储单元中的存储 形式用补码形式存放。, 正数的补码同其原码相同。 负数的补码是求其正数的原

8、码,然后按位取反,末位加1。 如:+5和-5在计算机内存单元的存储形式如下:,2019年3月11日星期一,16,【例3.4】十进制整数123的二进制数、八进制数、十六进制数分别是多少?,123=1111011B 二进制数 =173 O 八进制数 =7B X 十六进制数,在程序中定义以下三个变量 int i=0173; int j=0x7b; int k=123;,0173、0x7b和123表示的是同一个数,只是用的数制不同。,2019年3月11日星期一,17,【例3.5】分析下列程序的输出结果 # include int main( ) printf(“%d,%o,%xn”,10,10,10)

9、; printf(“%d,%d,%dn”,10,010,0x10); printf(“%d,%xn”,012,012); return 0; ,对于%是输出格式控制符。且其后跟的d、o和x分别代表的是十进制数、八进制数和十六进制数。即: %d:以十进制形式输入输出。 %o:以八进制形式输入输出。 %x:以十六进制形式输入输出。,2019年3月11日星期一,18,【例3.6】分析下列程序的输出结果 # include int main( ) int a,b; scanf(“%o%d”, ,输入的两个17中前一个17计算机认定为八进制数,与在输入时前是否加0无关。后一个17是十进制数。原因是由格式

10、控制符决定的。思考%5d的含义?,2019年3月11日星期一,19,3.2.4 字符型数据,A的ASCII值是65,2019年3月11日星期一,20,#include void main( ) char c1,c2; c1=97; c2=a; printf(“%c %cn”,c1,c2); printf(“%d %dn”,c1,c2); ,【例3.7】分析下列程序的输出结果,/*定义两个字符型变量c1,c2*/ /*对c1赋以整型数据97*/ /*对c2赋以字符常量a的ASCII值*/,在0-255范围内的整型数据可以和字符型相互转换。 %C:按字符型数据格式输出;%d:按整型数据格式输出,2

11、019年3月11日星期一,21,3.2.5 浮点型数据,2019年3月11日星期一,22,【例3.8】分析下列程序的执行结果,#include int main( ) float f=123.45; double d=3.1415926; printf(“%f,%en”,f,f); printf(“%f,%en”,d,d) ; printf(“%5.3f,%5.2f”,d,d); return 0; ,/*定义单精度型变量f并赋初值123.45*/ /*定义双精度型变量d并赋初值3.141592*/ /*f为单精度 e为指数形式输出*/,123.450000,1.234500e+002 3.1

12、41593 ,3.14159e+000 3.142, 3.14,2019年3月11日星期一,23,3.2.7 运算符和表达式,算术运算符:+ - * / % 关系运算符: = | & 求字节运算符:sizeof 分量运算符: . - 赋值运算符:= 条件运算符: ?: 逗号运算符: , 指针运算符: * & 下标运算符: 强制类型转换运算符: (类型),因而体现了C语言运算符丰富的特点之一,2019年3月11日星期一,24,1.基本的算术运算符 运算符 C语言基本算术运算符共有5种。+ - * / %。都是双目运算即要求有两个操作数。 %运算要求左右两边必须为整型数据。7%4 的值为3。 两个

13、整数相除,结果为整数,舍去小数部分,即取整且向零靠拢。5/3=1 ;-5/3=-1。 参加运算的两个数中有一个数为实数,则结果为double. 字符型数据可以和数值型数据混合运算。 算术表达式 如:10+a+i*f-d/e 是算术表达式。 运算的优先级是:先* / % 后+ - ,其运算的结合性自左至右。,2019年3月11日星期一,25,C语言的自增运算符:+,自减运算符:- - 。其操作对象只能是变量。作用使变量的值增1或减1。 其形式:+i ,- -i与i+,i- - +i, -i 在使用i之前,使i的值加1(减1) i+, i 在使用i之后,使i的值加1(减1) 如:int i; i=

14、3; j=+i; k=i+; 其优先级高于算术运算符优先级,按从右至左结合方向。 如:-i+相当于-(i+),2.自增与自减运算符,/*先计算表达式+i的值赋给j即j=4*/ /*变量i的值赋给k即k=3后再执行表达式i+*/,2019年3月11日星期一,26,(double)a 则是将a的类型转换为double类型。 (int)(x+y)则是将x+y的值转换为int类型。 (float)(5%3)则是将5%3的值转换为float类型。,【例3.9】分析下列程序运行的结果 #include int main( ) float x; int i; x=3.6 ; i= (int)x; print

15、f(“x=%f,i=%dn”,x,i); return 0; ,/*定义一个单精度型变量x*/ /*定义一个整型变量i*/ /*对x赋一实型数据3.6 */ /*将实型数据x的类型转换为int即整型*/,3.强制类型转换,2019年3月11日星期一,27,#include int main( ) int i,j; i=2; j=-i+; printf(“j=%d,i=%dn”,j,i); return 0; ,【例3.10】分析下列程序运行的结果,2019年3月11日星期一,28,3.3 C语句,goto语句,2019年3月11日星期一,29,3.3.2 最基本的语句 -赋值语句,【例题3.1

16、1】给出三角形的三条边,求三角形面积。,解题思路:, 三角形的三条边要符合构成三角形的条件 有三条边如何求三角形面积(数学计算公式) C语言调用数学公式要用到数学头文件 程序中用到的量:a b c s area 数据类型 三条边的值如何获取是赋值还是键盘输入,2019年3月11日星期一,30,#include #include int main() float a,b,c,s,area; printf(“input Triangular three sides:n“); scanf(“%f%f%f“, ,参考程序:,2019年3月11日星期一,31,赋值语句:是由赋值表达式加上一个分号构成。其

17、应用十分普遍。 C语言中的赋值号是等号“=”且是一个运算符,若在其构成的表达式后面加上分号“;”即构成赋值语句。 C语言中的赋值表达与赋值语句是两个不同的概念。 如:x=8 x=8; 分析if(a=b)0) t=a;的含义,x=8是赋值表达式 x=8;是赋值语句,2019年3月11日星期一,32, 复合的赋值运算符,复合的赋值运算符是指在赋值符=之前加上其它的运算符。,例如:a+=3 等价于 a=a+3 x*=y+8 等价于 x=x*(y+8) x%=3 等价于 x=x%3, 赋值过程中的类型转换,2019年3月11日星期一,33,变量赋初值,在定义变量的同时初始化变量 int a=56; f

18、loat b=32.56; double x,y=45.6789; char c=a; 先定义变量后再对变量赋值 int a,b; char c; a=48; b=a+56; c=b; 使用scanf函数对变量赋值 int a,b; scanf(“%d%d”,2019年3月11日星期一,34,3.4 数据输入输出,2019年3月11日星期一,35,【例题3.12】通过键盘输入a,b,c三个数,输出这三个数的和,#include void main() int a,b,c; int sum ; scanf(“%d%d%d”, ,2019年3月11日星期一,36,3.4. 字符数据的输入输出,注:

19、也可用格式输出来实现字符的输出即printf(“%cn”,getchar();,2019年3月11日星期一,37,3.6 顺序结构程序设计,【例题4.13】求12345的乘积。,算法分析: 定义一变量t并赋初值1即t=1 运用赋值表达t=t2即t=12的积 运用赋值表达t=t3即t=123的积 运用赋值表达t=t4即t=1234的积 运用赋值表达t=t5即t=12345的积 输出t的值,2019年3月11日星期一,38,【例题4.14】输入三角形的边长a,b,c且能构成三角形,求其面积,算法分析: 输入a,b,c说明是动态不是静态 实现输入采用C提供的scnaf() 不考虑输入a,b,c能否构

20、三角形 定义三个实型变量a,b,c 用给三边求三角形公式计算面积 输出三角形面积,2019年3月11日星期一,39,#include #include void main() float a,b,c; double s,area; printf(“input three number a,b,cn“); scanf(“%f%f%f“, ,2019年3月11日星期一,40,【例题4.15】假设由键盘输入的一元二次方程系数a,b,c,且在实数范围内有解,试编写求ax2+bx+c=0方程的根的程序。,算法分析, 输入a,b,c说明是动态不是静态 实现输入采用C提供的scnaf() 不考虑输入a,b,

21、c能否使方程有解 定义三个实型变量a,b,c 由数学计算方程公式进行求解 输出方程的两个根,求根公式如下,如何将数学表达式写成C语言表达式?,2019年3月11日星期一,41,#include #include void main() float a,b,c; double disc,x1,x2,p,q; printf(“input a,b,c:n“); scanf(“a=%f,b=%f,c=%f“, ,C源程序如右所示,调试步骤: 启动VC+ 新建项目 新建文件 保存编译 连接 运行查看结果,2019年3月11日星期一,42,顺序结构程序设计练习,所用格式符不对应将%d改为%f,|1234

22、1234 |即默认为右对齐输出,若“-”则是左对齐,ff,10,2019年3月11日星期一,43,8.输入一个三位整数如456,则反序输出各位数字即654。,算法分析,核心是如何将百、十、个位数拆分开来。可采用算术运算中整除和求余运算来实现。 百位数=三位数/100 十位数=三位数/10%10 个位数=三位数%10 对得到的百、十、个上的数再重新组合。个位数*100+十位数*10+百位数。,C源程序,include int maim() int d,x,y,z,n; printf(“input d:”); scanf(“%d”, ,2019年3月11日星期一,44,本章小结,通过本章学习重点掌握C程序的基本结构及编写程序时算法思想。掌握格式输入输出函数printf()和scanf()的用法及字符输入输出函数getchar()和putchar()函数的用法掌握运用VC+调试程序的步骤及基本方法。,作业:P82-P84 1 2 3 6 7,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1