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

上传人:sccc 文档编号:5637054 上传时间:2023-08-04 格式:PPT 页数:44 大小:748.01KB
返回 下载 相关 举报
第3章最简单的C程序设计顺序程序设计.ppt_第1页
第1页 / 共44页
第3章最简单的C程序设计顺序程序设计.ppt_第2页
第2页 / 共44页
第3章最简单的C程序设计顺序程序设计.ppt_第3页
第3页 / 共44页
第3章最简单的C程序设计顺序程序设计.ppt_第4页
第4页 / 共44页
第3章最简单的C程序设计顺序程序设计.ppt_第5页
第5页 / 共44页
点击查看更多>>
资源描述

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

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

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

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

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

5、个常量。如:#define pi 3.1415926。,2023年8月4日星期五,9,【例3.3】符号常量的使用。依据某商品的价格计算顾客购买商品的件数应付的金额。,#define PRICE 30#include int main()int num,total;num=20;total=num*PRICE;printf(“total=%dn”,total);return 0;,/*定义价格为符号常量*/*输入输出包含的头文件*/*程序的主函数并从此处执行*/*定义两个变量*/*给变量num赋初值20*/*计算总金额*/*打印输出*/,2023年8月4日星期五,10,2 变量,2023年8月4

6、日星期五,11,3.标识符,在计算机高级语言中,用来对变量、符号常量名、函数、数组及类型等命名的有效字符序列统称为标识符。,标识符命名规则:,只能由字母、数字和下划线3种字符组成,且第一个字符必须是字母或下划线。,判断下列标识符是否合法:,¥123;price;_define;int;array;M.D.Jonh,2023年8月4日星期五,12,3.2.2 数据类型,数学研究的数与计算机中的数的区别:,数学研究的数是抽象的,数值运算是绝对准确的。计算机研究的数是具体的,受存储单元字节的限制。如:1/3 对数学而言是循环小数;对计算机而言只能是0.333333即近似值。,数据类型:,是对数据分配

7、单元的安排,包括存储单元的长度及数据存储形式。不同的类型分配不同的长度和存储形式。,2023年8月4日星期五,13,C语言允许的数据类型,2023年8月4日星期五,14,3.2.3 整型数据,在内存中所占字节数,TC为2B,VC为4B。且以补码表示,2023年8月4日星期五,15,数在计算机中的存放形式,整型数据在计算机中的存放是指在存储单元中的存储形式用补码形式存放。,正数的补码同其原码相同。负数的补码是求其正数的原码,然后按位取反,末位加1。如:+5和-5在计算机内存单元的存储形式如下:,2023年8月4日星期五,16,【例3.4】十进制整数123的二进制数、八进制数、十六进制数分别是多少

8、?,123=1111011B 二进制数=173 O 八进制数=7B X 十六进制数,在程序中定义以下三个变量 int i=0173;int j=0 x7b;int k=123;,0173、0 x7b和123表示的是同一个数,只是用的数制不同。,2023年8月4日星期五,17,【例3.5】分析下列程序的输出结果#include int main()printf(“%d,%o,%xn”,10,10,10);printf(“%d,%d,%dn”,10,010,0 x10);printf(“%d,%xn”,012,012);return 0;,对于%是输出格式控制符。且其后跟的d、o和x分别代表的是十

9、进制数、八进制数和十六进制数。即:%d:以十进制形式输入输出。%o:以八进制形式输入输出。%x:以十六进制形式输入输出。,2023年8月4日星期五,18,【例3.6】分析下列程序的输出结果#include int main()int a,b;scanf(“%o%d”,输入的两个17中前一个17计算机认定为八进制数,与在输入时前是否加0无关。后一个17是十进制数。原因是由格式控制符决定的。思考%5d的含义?,2023年8月4日星期五,19,3.2.4 字符型数据,A的ASCII值是65,2023年8月4日星期五,20,#include void main()char c1,c2;c1=97;c2

10、=a;printf(“%c%cn”,c1,c2);printf(“%d%dn”,c1,c2);,【例3.7】分析下列程序的输出结果,/*定义两个字符型变量c1,c2*/*对c1赋以整型数据97*/*对c2赋以字符常量a的ASCII值*/,在0-255范围内的整型数据可以和字符型相互转换。%C:按字符型数据格式输出;%d:按整型数据格式输出,2023年8月4日星期五,21,3.2.5 浮点型数据,2023年8月4日星期五,22,【例3.8】分析下列程序的执行结果,#include int main()float f=123.45;double d=3.1415926;printf(“%f,%en

11、”,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+0023.141593,3.14159e+0003.142,3.14,2023年8月4日星期五,23,3.2.7 运算符和表达式,算术运算符:+-*/%关系运算符:=|&求字节运算符:sizeof分量运算符:.-赋值运算符:=条件运算符:?:逗号运算符:,指针运算符:*&下标运算符:强制类型转换运算

12、符:(类型),因而体现了C语言运算符丰富的特点之一,2023年8月4日星期五,24,1.基本的算术运算符 运算符 C语言基本算术运算符共有5种。+-*/%。都是双目运算即要求有两个操作数。%运算要求左右两边必须为整型数据。7%4 的值为3。两个整数相除,结果为整数,舍去小数部分,即取整且向零靠拢。5/3=1;-5/3=-1。参加运算的两个数中有一个数为实数,则结果为double.字符型数据可以和数值型数据混合运算。算术表达式 如:10+a+i*f-d/e 是算术表达式。运算的优先级是:先*/%后+-,其运算的结合性自左至右。,2023年8月4日星期五,25,C语言的自增运算符:+,自减运算符:

13、-。其操作对象只能是变量。作用使变量的值增1或减1。其形式:+i,-i与i+,i-+i,-i 在使用i之前,使i的值加1(减1)i+,i 在使用i之后,使i的值加1(减1)如:int i;i=3;j=+i;k=i+;其优先级高于算术运算符优先级,按从右至左结合方向。如:-i+相当于-(i+),2.自增与自减运算符,/*先计算表达式+i的值赋给j即j=4*/*变量i的值赋给k即k=3后再执行表达式i+*/,2023年8月4日星期五,26,(double)a 则是将a的类型转换为double类型。(int)(x+y)则是将x+y的值转换为int类型。(float)(5%3)则是将5%3的值转换为f

14、loat类型。,【例3.9】分析下列程序运行的结果#includeint main()float x;int i;x=3.6;i=(int)x;printf(“x=%f,i=%dn”,x,i);return 0;,/*定义一个单精度型变量x*/*定义一个整型变量i*/*对x赋一实型数据3.6*/*将实型数据x的类型转换为int即整型*/,3.强制类型转换,2023年8月4日星期五,27,#includeint main()int i,j;i=2;j=-i+;printf(“j=%d,i=%dn”,j,i);return 0;,【例3.10】分析下列程序运行的结果,2023年8月4日星期五,28

15、,3.3 C语句,goto语句,2023年8月4日星期五,29,3.3.2 最基本的语句-赋值语句,【例题3.11】给出三角形的三条边,求三角形面积。,解题思路:,三角形的三条边要符合构成三角形的条件 有三条边如何求三角形面积(数学计算公式)C语言调用数学公式要用到数学头文件 程序中用到的量:a b c s area 数据类型 三条边的值如何获取是赋值还是键盘输入,2023年8月4日星期五,30,#include#include int main()float a,b,c,s,area;printf(input Triangular three sides:n);scanf(%f%f%f,参考

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

17、变量赋初值,在定义变量的同时初始化变量 int a=56;float 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”,2023年8月4日星期五,34,3.4 数据输入输出,2023年8月4日星期五,35,【例题3.12】通过键盘输入a,b,c三个数,输出这三个数的和,#includevoid main()int a,b,c;int sum;scanf(“%d%d%d”,2023年8月4日星期五,36,3.4.字符

18、数据的输入输出,注:也可用格式输出来实现字符的输出即printf(“%cn”,getchar();,2023年8月4日星期五,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的值,2023年8月4日星期五,38,【例题4.14】输入三角形的边长a,b,c且能构成三角形,求其面积,算法分析:输入a,b,c说明是动态不是静态 实现输入采用C提供的scnaf()不考虑输入a,b,c能否构

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

20、量a,b,c 由数学计算方程公式进行求解 输出方程的两个根,求根公式如下,如何将数学表达式写成C语言表达式?,2023年8月4日星期五,41,#include#includevoid 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+新建项目 新建文件 保存编译 连接 运行查看结果,2023年8月4日星期五,42,顺序结构程序设计练习,所用格式符不对应将%d改为%f,|1234 1234|即默认为右对齐输出,若“-”则是左对齐,ff,10,2

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

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

当前位置:首页 > 建筑/施工/环境 > 农业报告


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号