第3章最简单的C程序设计顺序程序设计课件

上传人:沈*** 文档编号:241639092 上传时间:2024-07-12 格式:PPT 页数:45 大小:1.05MB
返回 下载 相关 举报
第3章最简单的C程序设计顺序程序设计课件_第1页
第1页 / 共45页
第3章最简单的C程序设计顺序程序设计课件_第2页
第2页 / 共45页
第3章最简单的C程序设计顺序程序设计课件_第3页
第3页 / 共45页
点击查看更多>>
资源描述
C C程序设计程序设计 第第3 3章顺序程序设计章顺序程序设计第第3 3章章 最简单的最简单的C C程序设计程序设计-顺序程序设计顺序程序设计教学目标:教学目标:通过本章的学习要求学生了解通过本章的学习要求学生了解C C顺序程序设计的基本方顺序程序设计的基本方法;掌握法;掌握C C语言的基本数据类型;掌握常量和变量;掌握语言的基本数据类型;掌握常量和变量;掌握C C语语言的常用运算符和常用的表达式的应用方法;掌握函数输入言的常用运算符和常用的表达式的应用方法;掌握函数输入输出语句的基本用法。输出语句的基本用法。教学内容:教学内容:3.1 3.1 顺序程序设计顺序程序设计 3.2 3.2 数的表现形式及其运算数的表现形式及其运算 3.3 C 3.3 C语句语句 3.4 3.4 数据的输入输出数据的输入输出7/12/20241C C程序设计程序设计 第第3 3章顺序程序设计章顺序程序设计3.1 3.1 顺序程序设计举例顺序程序设计举例【例题【例题3.13.1】有人用温度计测量出用华氏法表示的温度(如有人用温度计测量出用华氏法表示的温度(如69690 0F F)现要求将其转换为以摄氏法表示的温度(如)现要求将其转换为以摄氏法表示的温度(如20200 0C C)。)。解题思路:解题思路:华氏温度华氏温度摄氏温度摄氏温度有何关系有何关系根据物理学知识知:根据物理学知识知:摄氏温度摄氏温度C=C=5 59 9(华氏温度(华氏温度f-32)f-32)因此:因此:通过键盘输入一个华氏温度值通过键盘输入一个华氏温度值 根据转换关系进行运算(解决问题的方法即算法)根据转换关系进行运算(解决问题的方法即算法)在显示器上输出摄氏温度值在显示器上输出摄氏温度值7/12/20242C C程序设计程序设计 第第3 3章顺序程序设计章顺序程序设计 算法算法 算法是解决算法是解决“做什么做什么”和和“怎么做怎么做”的问题,不要认为的问题,不要认为只有只有“计算计算”的问题才有算法,广义地说为解决某一问题而的问题才有算法,广义地说为解决某一问题而采用的方法和步骤。采用的方法和步骤。算法的特性算法的特性 有穷性:一个算法应有限的操作步骤而不能是无限的。有穷性:一个算法应有限的操作步骤而不能是无限的。确定性:算法中的每一个步骤都应当是确定的。确定性:算法中的每一个步骤都应当是确定的。有零个或多个输入:执行算法需要从外界取得必要信息。有零个或多个输入:执行算法需要从外界取得必要信息。有一个或多个输出:将算法的结果打印在屏幕上。有一个或多个输出:将算法的结果打印在屏幕上。有效性:每一个步骤应当有效地执行。有效性:每一个步骤应当有效地执行。7/12/20243C C程序设计程序设计 第第3 3章顺序程序设计章顺序程序设计 算法表示算法表示 用自然语言表示算法用自然语言表示算法 用流程图表示算法用流程图表示算法 用用N-SN-S图表示算法图表示算法 用伪代码表示算法用伪代码表示算法 用计算机语言表示算法用计算机语言表示算法开始结束框开始结束框输入输出框输入输出框判断框判断框处理框处理框流程线流程线连接点连接点注释框注释框7/12/20244C C程序设计程序设计 第第3 3章顺序程序设计章顺序程序设计 例题例题3.13.1流程图及源程序流程图及源程序#include#includeint main()int main()float f,c;float f,c;f=64.0;f=64.0;c=(5.0/9)*(f-32);c=(5.0/9)*(f-32);printf(“f=%fnc=%fn”,f,c);printf(“f=%fnc=%fn”,f,c);return 0;return 0;7/12/20245C C程序设计程序设计 第第3 3章顺序程序设计章顺序程序设计【例题【例题3.23.2】计算存款利息。有计算存款利息。有10001000元,想存一年。有三种元,想存一年。有三种方法可选:方法可选:活期,年利率为活期,年利率为r1r1;一年期定期,年利率一年期定期,年利率为为r2r2;存两次半年定期,年利率存两次半年定期,年利率r3r3。请分别计算出一年后。请分别计算出一年后按按3 3种方法所得到的本息和。种方法所得到的本息和。解题思路:解题思路:关键是本息和的计算公式。关键是本息和的计算公式。本息和本息和=本金本金*(1+1+利率)利率)一年活期本息和一年活期本息和=1000*(1+r1)=1000*(1+r1)一年定期本息和一年定期本息和=1000*(1+r2)=1000*(1+r2)一年两次本息和一年两次本息和=1000*(1+r3/2)*(1+r3/2)=1000*(1+r3/2)*(1+r3/2)具体的具体的10001000元元一般一般P0P0元元抽象为抽象为7/12/20246C C程序设计程序设计 第第3 3章顺序程序设计章顺序程序设计因此:因此:通过键盘输入本金值通过键盘输入本金值 根据本息和公式计算(解决问题的方法即算法)根据本息和公式计算(解决问题的方法即算法)在显示器上输出在显示器上输出3 3种方法的本息和种方法的本息和算法算法N-SN-S图:图:依据依据N-SN-S图编写源程序:图编写源程序:7/12/20247C C程序设计程序设计 第第3 3章顺序程序设计章顺序程序设计3.2 3.2 数据的表现形式及其运算数据的表现形式及其运算3.2.1 3.2.1 常量和变量常量和变量在程序运行过程中,其值不能被改变的量称为常量。在程序运行过程中,其值不能被改变的量称为常量。常常量量 整型常量:程序中用到整型常量:程序中用到10001000。实型常量:程序中用到利率。有十进制和指数两种。实型常量:程序中用到利率。有十进制和指数两种。字符常量:普通字符用单撇括起来的单个字符;以字符常量:普通字符用单撇括起来的单个字符;以 开头的字符序列。如开头的字符序列。如:a:a;nn。字符串常量:用双撇括起来的字符序列如字符串常量:用双撇括起来的字符序列如123123。符号常量:用符号常量:用#define#define命令来定义的符号所代表的一命令来定义的符号所代表的一个常量。如个常量。如:#define pi 3.1415926:#define pi 3.1415926。7/12/20248C C程序设计程序设计 第第3 3章顺序程序设计章顺序程序设计【例【例3.33.3】符号常量的使用。符号常量的使用。依据某商品的价格计算顾客购依据某商品的价格计算顾客购买商品的件数应付的金额。买商品的件数应付的金额。#define PRICE 30#define PRICE 30#include#include int main()int main()int num,total;int num,total;num=20;num=20;total=num*PRICE total=num*PRICE;printf(“total=%dn”,total);printf(“total=%dn”,total);return 0;return 0;/*/*定义价格为符号常量定义价格为符号常量*/*/*/*输入输出包含的头文件输入输出包含的头文件*/*/*/*程序的主函数并从此处执行程序的主函数并从此处执行*/*/*/*定义两个变量定义两个变量*/*/*/*给变量给变量numnum赋初值赋初值20*/20*/*/*计算总金额计算总金额*/*/*/*打印输出打印输出*/*/7/12/20249C C程序设计程序设计 第第3 3章顺序程序设计章顺序程序设计2 2 变量变量变变量量在程序中其值可改变的量,其属性是用一个或几个在程序中其值可改变的量,其属性是用一个或几个存储单元来存储数据,变量名代表存储单元地址。存储单元来存储数据,变量名代表存储单元地址。变变量量类类型型变变量量使使用用整型变量整型变量 用用intint关键字来定义关键字来定义实型变量实型变量 用用floatfloat和和doubledouble关键字来定义关键字来定义字符型变量字符型变量 用用charchar关键字来定义关键字来定义先定义,后使用;先赋值,后引用,变量先定义,后使用;先赋值,后引用,变量定义只能定义一次一般在程序的开头定义只能定义一次一般在程序的开头变量名用变量名用C C语言规定的标识符来表示语言规定的标识符来表示对变量赋值方式有:在定义时赋值即初始对变量赋值方式有:在定义时赋值即初始化;用赋值语句赋值;用输入函数赋值化;用赋值语句赋值;用输入函数赋值7/12/202410C C程序设计程序设计 第第3 3章顺序程序设计章顺序程序设计3.3.标识符标识符在计算机高级语言中,用来对变量、符号常量名、函数、数在计算机高级语言中,用来对变量、符号常量名、函数、数组及类型等命名的有效字符序列统称为组及类型等命名的有效字符序列统称为标识符。标识符。标识符命名规则:标识符命名规则:只能由字母、数字和下划线只能由字母、数字和下划线3 3种字符组成,且第一个字种字符组成,且第一个字符必须是字母或下划线。符必须是字母或下划线。判断下列标识符是否合法:判断下列标识符是否合法:¥123123;priceprice;_define_define;intint;arrayarray;M.D.JonhM.D.Jonh7/12/202411C C程序设计程序设计 第第3 3章顺序程序设计章顺序程序设计3.2.2 3.2.2 数据类型数据类型 数学研究的数与计算机中的数的区别:数学研究的数与计算机中的数的区别:数学研究的数是抽象的,数值运算是绝对准确的。数学研究的数是抽象的,数值运算是绝对准确的。计算机研究的数是具体的,受存储单元字节的限制。计算机研究的数是具体的,受存储单元字节的限制。如:如:1/3 1/3 对数学而言是循环小数;对计算机而言只能对数学而言是循环小数;对计算机而言只能是是0.3333330.333333即近似值。即近似值。数据类型:数据类型:是对数据分配单元的安排,包括存储单元的长度及数据是对数据分配单元的安排,包括存储单元的长度及数据存储形式。不同的类型分配不同的长度和存储形式。存储形式。不同的类型分配不同的长度和存储形式。7/12/202412C C程序设计程序设计 第第3 3章顺序程序设计章顺序程序设计 C C语言允许的数据类型语言允许的数据类型C C语语言言的的数数据据类类型型基本类型基本类型枚枚举举类类型型空空 类类 型型enumenumvoidvoid派生类型派生类型整型类型整型类型浮点类型浮点类型基本类型基本类型 int int长整型长整型long intlong int短整型短整型 short int short int字符型字符型 char char单精度浮点型单精度浮点型 float float双精度浮点型双精度浮点型 double double复数浮点型复数浮点型指针类型指针类型*数组类型数组类型 结构体结构体 struct struct共用体共用体 union union函数类型函数类型特特点点之之一一是是数数据据类类型型丰丰富富7/12/202413C C程序设计程序设计 第第3 3章顺序程序设计章顺序程序设计3.2.3 3.2.3 整型数据整型数据整整型型数数据据整型常量整型常量整型变量整型变量十进制整数:如:十进制整数:如:123123、-456-456、6 6八进制整数:以八进制整数:以0 0开头如:开头如:01230123、-011-011十六进制整数:以十六进制整数:以0 x0 x开头如:开头如:0 x1230 x123、0 x470 x47数据在内存中均以二进制数补码形式存放。数据在内存中均以二进制数补码形式存放。基本整型,以基本整型,以intint表示表示短整型,以短整型,以short intshort int表示表示长整型,以长整型,以long intlong int表示表示双长整型,以双长整型,以long long intlong long int表示表示有符号有符号signedsigned和无符号和无符号unsignedunsigned在内存中所占字节数,在内存中所占字节数,TCTC为为2B2B,VCVC为为4B4B。且以补码表示。且以补码表示7/12/202414C C程序设计程序设计 第第3 3章顺序程序设计章顺序程序设计 数在计算机中的存放形式数在计算机中的存放形式 整型数据在计算机中的存放是指在存储单元中的整型数据在计算机中的存放是指在存储单元中的存储存储形式形式用补码形式存放。用补码形式存放。正数的补码同其原码相同。正数的补码同其原码相同。负数的补码是求其正数的原码,然后按位取反,末位加负数的补码是求其正数的原码,然后按位取反,末位加1 1。如:如:+5+5和和-5-5在计算机内存单元的存储形式如下:在计算机内存单元的存储形式如下:0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 10 0 0 0 0 0 0 0 0 0 0 0 0 1 0 11 1 1 1 1 1 1 1 1 1 1 1 1 0 1 01 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1符号位符号位0 0:正;:正;1 1:负:负7/12/202415C C程序设计程序设计 第第3 3章顺序程序设计章顺序程序设计【例【例3.43.4】十进制整数十进制整数123123的二进制数、八进制数、十六进制的二进制数、八进制数、十六进制数分别是多少?数分别是多少?123=1111011B 123=1111011B 二进制数二进制数 =173 O =173 O 八进制数八进制数 =7B X =7B X 十六进制数十六进制数在程序中定义以下三个变量在程序中定义以下三个变量 int i=0173;int i=0173;int j=0 x7b;int j=0 x7b;int k=123;int k=123;在计算机的内存中的存放形式如何?在计算机的内存中的存放形式如何?0 0 0 0 0 0 0 0 0 1 1 1 1 0 1 101730173、0 x7b0 x7b和和123123表示的是同一个数,只是用的数制不同。表示的是同一个数,只是用的数制不同。7/12/202416C C程序设计程序设计 第第3 3章顺序程序设计章顺序程序设计【例【例3.53.5】分析下列程序的输出结果】分析下列程序的输出结果#include#include int main()int main()printf(“%printf(“%d d,%,%o o,%,%x xn”,10,10,10);n”,10,10,10);printf(“%d,%d,%dn”,10,010,0 x10);printf(“%d,%d,%dn”,10,010,0 x10);printf(“%d,%xn”,012,012);printf(“%d,%xn”,012,012);return 0;return 0;10,12,a 10,12,a 10,8,16 10,8,16 10,a10,a 对于对于%是输出格式控制符。且其后跟的是输出格式控制符。且其后跟的d d、o o和和x x分别代表的分别代表的是十进制数、八进制数和十六进制数。即:是十进制数、八进制数和十六进制数。即:%d%d:以十进制形式输入输出。以十进制形式输入输出。%o%o:以八进制形式输入输出。以八进制形式输入输出。%x%x:以十六进制形式输入输出。以十六进制形式输入输出。7/12/202417C C程序设计程序设计 第第3 3章顺序程序设计章顺序程序设计【例【例3.63.6】分析下列程序的输出结果】分析下列程序的输出结果#include#include int main()int main()int a,b;int a,b;scanf(“%o%d”,&a,&b);scanf(“%o%d”,&a,&b);printf(“%d%5dn”,a,b);printf(“%d%5dn”,a,b);printf(“%x,%dn”,a,b);printf(“%x,%dn”,a,b);return 0;return 0;通过键盘输入通过键盘输入17 1717 1715 1715 17f,17f,17 输入的两个输入的两个1717中前一个中前一个1717计算机认定为八进制数计算机认定为八进制数,与在与在输入时前是否加输入时前是否加0 0无关。后一个无关。后一个1717是十进制数。原因是由是十进制数。原因是由格格式控制符式控制符决定的。决定的。思考思考%5d%5d的含义?的含义?空空5 5字符字符0 0 0 0 0 0 10 0 1 1 1 11 1 10 0 0 0 0 0 0 00 0 0 0 0 0 0 00 0 0 10 0 0 1 0 0 0 10 0 0 10 0 0 0 0 0 0 00 0 0 0 0 0 0 07/12/202418C C程序设计程序设计 第第3 3章顺序程序设计章顺序程序设计3.2.4 3.2.4 字符型数据字符型数据字字符符型型数数据据C C语言中的字符常量是用单撇括起来的一个字符,字符语言中的字符常量是用单撇括起来的一个字符,字符型变量是用来存放字符常量且只能存放一个字符常量。型变量是用来存放字符常量且只能存放一个字符常量。字符常量字符常量 如如AA,aa且它们是不同的两个字符且它们是不同的两个字符字符串常量是用一对双撇括起来的字符序列且以字符串常量是用一对双撇括起来的字符序列且以00作结束标志。如作结束标志。如“How do you do”“How do you do”的存放如下:的存放如下:常常量量变变量量用关键字用关键字charchar来定义来定义 如:如:char c1;char c1;占用内存空间为占用内存空间为1B1B以字符的以字符的ASCIIASCII进行存储进行存储 如如A A字符字符用格式符用格式符%c%c来输入输出来输入输出 在在ASCIIASCII范围内与整型数据互换范围内与整型数据互换 如如c1=65;c1=A;c1=65;c1=A;01000001A A的的ASCIIASCII值是值是6565H Ho ow wd do o y yo ou ud do o007/12/202419C C程序设计程序设计 第第3 3章顺序程序设计章顺序程序设计#include#include void main()void main()char c1,c2;char c1,c2;c1=97;c1=97;c2=a;c2=a;printf(“%c%cn”,c1,c2);printf(“%c%cn”,c1,c2);printf(“%d%dn”,c1,c2);printf(“%d%dn”,c1,c2);【例【例3.73.7】分析下列程序的输出结果分析下列程序的输出结果/*/*定义两个字符型变量定义两个字符型变量c1,c2*/c1,c2*/*/*对对c1c1赋以整型数据赋以整型数据97*/97*/*/*对对c2c2赋以字符常量赋以字符常量aa的的ASCIIASCII值值*/*/%c%c指按字符指按字符型格式输出型格式输出a aa a97 9797 97在在0-2550-255范围内的整型数据可以和字符型相互转换。范围内的整型数据可以和字符型相互转换。%C%C:按字符型数据格式输出;:按字符型数据格式输出;%d%d:按整型数据格式输出:按整型数据格式输出7/12/202420C C程序设计程序设计 第第3 3章顺序程序设计章顺序程序设计3.2.5 3.2.5 浮点型数据浮点型数据浮浮点点型型数数据据C C语言中的浮点数就是平时所说的实数。如:语言中的浮点数就是平时所说的实数。如:123.456123.456浮浮点点型型常常量量浮浮点点型型变变量量十进制小数形式表示。必须有小数点。如:十进制小数形式表示。必须有小数点。如:123.00123.00规范化指数形式表示。以规范化指数形式表示。以e e或或E E为底且前必有数字。为底且前必有数字。如:如:123.00123.00表示为表示为0.123E30.123E3。在内存占用空间:在内存占用空间:TCTC中中4B4B,VCVC中占更大且按指数形式存储。中占更大且按指数形式存储。数符数符 小数小数 指数指数+.314159 1+.314159 1单精度型单精度型float float 有效数字有效数字6-76-7位。位。双精度型双精度型double double 有效数字有效数字15-1615-16位位长双精度型长双精度型long double long double 有效数字有效数字18-1918-19位位 种种 类类定定义义用关键字用关键字float doublefloat double来定义来定义定义多个变量时用逗号分隔不得用分号定义多个变量时用逗号分隔不得用分号7/12/202421C C程序设计程序设计 第第3 3章顺序程序设计章顺序程序设计【例【例3.83.8】分析下列程序的执行结果分析下列程序的执行结果#include#include int main()int main()float f=123.45;float f=123.45;double d=3.1415926;double d=3.1415926;printf(“%printf(“%f f,%,%e en”,f,f);n”,f,f);printf(“%f,%en”,d,d);printf(“%f,%en”,d,d);printf(“%printf(“%5.3f5.3f,%,%5.25.2f”,d,d);f”,d,d);return 0;return 0;/*/*定义单精度型变量定义单精度型变量f f并赋初值并赋初值123.45*/123.45*/*/*定义双精度型变量定义双精度型变量d d并赋初值并赋初值3.141592*/3.141592*/*f /*f为单精度为单精度 e e为指数形式输出为指数形式输出*/*/123.450000,1.234500e+002123.450000,1.234500e+0023.141593,3.14159e+0003.141593,3.14159e+0003.142,3.143.142,3.14单精度输出单精度输出且且6 6个有效位个有效位以指数形式输出且小数点以指数形式输出且小数点后后6 6个有效位并四舍五入个有效位并四舍五入输出的整数前空输出的整数前空5 5个字符个字符小数点保留小数点保留3 3位有效数字位有效数字7/12/202422C C程序设计程序设计 第第3 3章顺序程序设计章顺序程序设计3.2.7 3.2.7 运算符和表达式运算符和表达式C C的的运运算算符符种种类类算术运算符:算术运算符:+-*/%+-*/%关系运算符:关系运算符:=!=逻辑运算符:逻辑运算符:!&|&|位运算符:位运算符:|&求字节运算符:求字节运算符:sizeofsizeof分量运算符:分量运算符:.-.-赋值运算符:赋值运算符:=条件运算符:条件运算符:?:?:逗号运算符:逗号运算符:,指针运算符:指针运算符:*&*&下标运算符:下标运算符:强制类型转换运算符:强制类型转换运算符:(类型)(类型)因因而而体体现现了了C C语语言言运运算算符符丰丰富富的的特特点点之之一一7/12/202423C C程序设计程序设计 第第3 3章顺序程序设计章顺序程序设计1.1.基本的算术运算符基本的算术运算符 运算符运算符 C C语言基本算术运算符共有语言基本算术运算符共有5 5种。种。+-*/%+-*/%。都是。都是双目双目运算运算即要求有两个操作数。即要求有两个操作数。%运算要求左右两边必须为运算要求左右两边必须为整型整型数据。数据。7%4 7%4 的值为的值为3 3。两个整数相除,结果为整数,舍去小数部分,即取整且向零两个整数相除,结果为整数,舍去小数部分,即取整且向零靠拢。靠拢。5/3=1 5/3=1;-5/3=-1-5/3=-1。参加运算的两个数中有一个数为实数,则结果为参加运算的两个数中有一个数为实数,则结果为double.double.字符型数据可以和数值型数据混合运算。字符型数据可以和数值型数据混合运算。算术表达式算术表达式 如:如:10+a+i*f-d/e 10+a+i*f-d/e 是算术表达式。是算术表达式。运算的运算的优先级优先级是:先是:先*/%*/%后后+-+-,其运算的,其运算的结合性结合性自左自左至右。至右。7/12/202424C C程序设计程序设计 第第3 3章顺序程序设计章顺序程序设计 C C语言的自增运算符:语言的自增运算符:+,自减运算符:,自减运算符:-。其操作对象。其操作对象只能是变量。作用使变量的值增只能是变量。作用使变量的值增1 1或减或减1 1。其形式:其形式:+i,-i+i,-i与与i+,i-i+,i-+i,-i +i,-i 在使用在使用i i之前,使之前,使i i的值加的值加1 1(减(减1 1)i+,i i+,i 在使用在使用i i之后,使之后,使i i的值加的值加1 1(减(减1 1)如:如:int i;int i;i=3;i=3;j=+i;j=+i;k=i+;k=i+;其优先级高于算术运算符优先级,按从右至左结合方向。其优先级高于算术运算符优先级,按从右至左结合方向。如:如:-i+-i+相当于相当于-(i+)i+)2.2.自增与自减运算符自增与自减运算符/*/*先计算表达式先计算表达式+i+i的值赋给的值赋给j j即即j=4*/j=4*/*/*变量变量i i的值赋给的值赋给k k即即k=3k=3后再执行表达式后再执行表达式i+*/i+*/7/12/202425C C程序设计程序设计 第第3 3章顺序程序设计章顺序程序设计 (double)a (double)a 则是将则是将a a的类型转换为的类型转换为doubledouble类型。类型。(int)(x+y)int)(x+y)则是将则是将x+yx+y的值转换为的值转换为intint类型。类型。(float)(5%3)float)(5%3)则是将则是将5%35%3的值转换为的值转换为floatfloat类型。类型。【例【例3.93.9】分析下列程序运行的结果分析下列程序运行的结果#include#includeint main()int main()float x;float x;int i;int i;x=3.6;x=3.6;i=i=(int)x(int)x;printf(“x=%f,i=%dn”,x,i);printf(“x=%f,i=%dn”,x,i);return 0;return 0;/*/*定义一个单精度型变量定义一个单精度型变量x*/x*/*/*定义一个整型变量定义一个整型变量i*/i*/*/*对对x x赋一实型数据赋一实型数据3.6*/3.6*/*/*将实型数据将实型数据x x的类型转换为的类型转换为intint即整型即整型*/*/x=3.6 00000,i=3x=3.6 00000,i=3x=,i=x=,i=是普通字符原样输出是普通字符原样输出%f%d%f%d是格式符位置上输出是格式符位置上输出后对应项后对应项x,ix,i的值的值3.3.强制类型转换强制类型转换7/12/202426C C程序设计程序设计 第第3 3章顺序程序设计章顺序程序设计#include#includeint main()int main()int i,j;int i,j;i=2;i=2;j=-i+;j=-i+;printf(“j=%d,i=%dn”,j,i);printf(“j=%d,i=%dn”,j,i);return 0;return 0;【例【例3.103.10】分析下列程序运行的结果分析下列程序运行的结果j=-i+j=-i+的执行过程:的执行过程:将将-i-i的值赋给变量的值赋给变量j jjj的值为的值为-2-2自增运算自增运算,i+1,i+1后赋给后赋给i i即其值为即其值为3 3j=-2,i=3j=-2,i=3i=2;i=2;j=-i;j=-i;i=i+1;i=i+1;将其修改为如下将其修改为如下7/12/202427C C程序设计程序设计 第第3 3章顺序程序设计章顺序程序设计3.3 C3.3 C语句语句条件语句:条件语句:ifif语句,语句,if-elseif-else语句语句循环语句:循环语句:whilewhile语句,语句,forfor语句语句breakbreak语句语句continuecontinue语句语句returnreturn语句语句C C语语言言数数据据操操作作语语句句1 1、函数调用语句、函数调用语句 printf()printf();、;、scanf()scanf();2 2、表达式语句、表达式语句 a=a+b a=a+b;3 3、空语句、空语句 ;4 4、复合语句、复合语句 用用 括起来的语句。括起来的语句。5 5流流程程控控制制语语句句结构化语句结构化语句非结构化语句非结构化语句非限定转向语句非限定转向语句gotogoto语句语句7/12/202428C C程序设计程序设计 第第3 3章顺序程序设计章顺序程序设计3.3.2 3.3.2 最基本的语句最基本的语句-赋值语句赋值语句【例题【例题3.113.11】给出三角形的三条边,求三角形面积。给出三角形的三条边,求三角形面积。解题思路:解题思路:三角形的三条边要符合构成三角形的条件三角形的三条边要符合构成三角形的条件 有三条边如何求三角形面积(有三条边如何求三角形面积(数学计算公式数学计算公式)C C语言调用数学公式要用到语言调用数学公式要用到数学头文件数学头文件 程序中用到的量:程序中用到的量:a b c s area a b c s area 数据类型数据类型 三条边的值如何获取是赋值还是键盘输入三条边的值如何获取是赋值还是键盘输入s(s-a)(s-b)(s-s(s-a)(s-b)(s-c)c)area=area=s=(a+b+c)/2s=(a+b+c)/27/12/202429C C程序设计程序设计 第第3 3章顺序程序设计章顺序程序设计#include#include#include#include int main()int main()float a,b,c,s,area;float a,b,c,s,area;printf(input Triangular three sides:n);printf(input Triangular three sides:n);scanf(%f%f%f,&a,&b,&c);scanf(%f%f%f,&a,&b,&c);s=(a+b+c)/2;s=(a+b+c)/2;area=sqrt(s*(s-a)*(s-b)*(s-c);area=sqrt(s*(s-a)*(s-b)*(s-c);printf(a=%ftb=%ftc=%ftn,a,b,c);printf(a=%ftb=%ftc=%ftn,a,b,c);printf(area=%fn,area);printf(area=%fn,area);return 0;return 0;参考程序:参考程序:7/12/202430C C程序设计程序设计 第第3 3章顺序程序设计章顺序程序设计赋值语句:赋值语句:是由赋值表达式加上一个分号构成。其应用十分是由赋值表达式加上一个分号构成。其应用十分普遍。普遍。C C语言中的赋值号是等号语言中的赋值号是等号“=”“=”且是一个运算符,若在其且是一个运算符,若在其构成的表达式后面加上分号构成的表达式后面加上分号“;”即构成赋值语句。即构成赋值语句。C C语言中的赋值表达与赋值语句是两个不同的概念。语言中的赋值表达与赋值语句是两个不同的概念。如:如:x=8x=8 x=8 x=8;分析分析ifif(a=b)0(a=b)0)t=a t=a;的含义;的含义x=8x=8是赋值表达式是赋值表达式x=8x=8;是赋值语句;是赋值语句赋值表达式赋值表达式赋值语句赋值语句 if if括号内是条件括号内是条件 先进行赋值运算先进行赋值运算 再判断赋值表达式的再判断赋值表达式的值是否大于值是否大于0 0若是则执行若是则执行赋值语句后赋值语句后t t的值是的值是a a7/12/202431C C程序设计程序设计 第第3 3章顺序程序设计章顺序程序设计 复合的赋值运算符复合的赋值运算符复合的赋值运算符是指在赋值符复合的赋值运算符是指在赋值符=之前加上其它的运算符。之前加上其它的运算符。例如:例如:a+=3 a+=3 等价于等价于 a=a+3 a=a+3 x*=y+8 x*=y+8 等价于等价于 x=x*(y+8)x=x*(y+8)x%=3 x%=3 等价于等价于 x=x%3 x=x%3 赋值过程中的类型转换赋值过程中的类型转换系系统统转转换换规规则则浮点型数据赋给整型变量舍弃小数部分。浮点型数据赋给整型变量舍弃小数部分。整型数据赋给浮点型变量数值不变转为实型以指数存放整型数据赋给浮点型变量数值不变转为实型以指数存放双精度赋给单精度只取双精度赋给单精度只取6-76-7有效位并按有效位并按4 4字节存放字节存放字符型数据赋给整型变量是其字符型数据赋给整型变量是其ASCIIASCII值值占字节多的赋给占字节少整型变量是取其低字节内容占字节多的赋给占字节少整型变量是取其低字节内容7/12/202432C C程序设计程序设计 第第3 3章顺序程序设计章顺序程序设计变量赋初值变量赋初值在定义变量的同时初始化变量在定义变量的同时初始化变量 int a=56;int a=56;float b=32.56;float b=32.56;double x,y=45.6789;double x,y=45.6789;char c=a;char c=a;先定义变量后再对变量赋值先定义变量后再对变量赋值 int a,b;int a,b;char c;char c;a=48;a=48;b=a+56;b=a+56;c=b;c=b;使用使用scanfscanf函数对变量赋值函数对变量赋值 int a,b;int a,b;scanf(“%d%d”,&a,&b);scanf(“%d%d”,&a,&b);说明:初始化不是在编译说明:初始化不是在编译阶段完成的,而是程序运阶段完成的,而是程序运行时执行本函数时赋初值行时执行本函数时赋初值的。的。注意:注意:同时对几个变量同时对几个变量赋同一个值不能写成以赋同一个值不能写成以下形式:下形式:int a=b=c=12;int a=b=c=12;用用scanf()scanf()输入函数要注意输入函数要注意格式符的分隔符如格式符的分隔符如%d%d%d%d表表明在输入时用空格分隔。明在输入时用空格分隔。7/12/202433C C程序设计程序设计 第第3 3章顺序程序设计章顺序程序设计3.4 3.4 数据输入输出数据输入输出数数据据格格式式输输入入输输出出格式输入输出由格式输入输出由C C标准库函数提供的标准库函数提供的printf()printf()和和scanf()scanf()且在使用库函数时要用预命令且在使用库函数时要用预命令“#include”“#include”将相关的将相关的“头文件头文件”包括到用户的源程序中。在用格式输入输出时包括到用户的源程序中。在用格式输入输出时要用到要用到“stdio.h”“stdio.h”输输出出函函数数输输入入函函数数格式:格式:printf(printf(格式控制,参数格式控制,参数1 1,参数,参数2 2,)格式控制:是双撇号括起来的字符串分格式说明和普通字符格式控制:是双撇号括起来的字符串分格式说明和普通字符格式说明:由格式说明:由%和格式符和格式符d,o,x,f,e,cd,o,x,f,e,c等构成。如:等构成。如:%d%d。普通字符:原样输出的字符。如双撇中逗号、等号、空格。普通字符:原样输出的字符。如双撇中逗号、等号、空格。格式:格式:scanf(scanf(格式控制,地址格式控制,地址1 1,地址,地址2 2,)格式控制:同格式控制:同printf()printf()函数。各个格式说明之间可用逗号分函数。各个格式说明之间可用逗号分号空格等分隔符隔开,但要求在输入数据时与之对应。号空格等分隔符隔开,但要求在输入数据时与之对应。地址表示:由地址表示:由&和变量名构成。如:和变量名构成。如:&a,&b&a,&b表示变量表示变量a,ba,b地址地址7/12/202434C C程序设计程序设计 第第3 3章顺序程序设计章顺序程序设计【例题【例题3.123.12】通过键盘输入通过键盘输入a,b,ca,b,c三个数,输出这三个数的和三个数,输出这三个数的和#include#includevoid main()void main()int a,b,c;int a,b,c;int sum;int sum;scanf(“%d%d%d”,&a,&b,%c);scanf(“%d%d%d”,&a,&b,%c);sum=a+b+c;sum=a+b+c;printf(“sum=%dn”,sum);printf(“sum=%dn”,sum);格式说明格式说明%d%d是由所定义的变量是由所定义的变量类型而定且中间没有分隔符默类型而定且中间没有分隔符默认是空格或回车即输入时输入认是空格或回车即输入时输入一个数空格后再输入一个数。一个数空格后再输入一个数。若修改为若修改为%f,%f,%f%f,%f,%f的格式程序的格式程序应如何修改及输入数据时怎样应如何修改及输入数据时怎样输入?输入?是转义字符表示输出后换是转义字符表示输出后换行。行。7/12/202435C C程序设计程序设计 第第3 3章顺序程序设计章顺序程序设计3.4.3.4.字符数据的输入输出字符数据的输入输出功能:向终端输出一个字符。功能:向终端输出一个字符。格式:格式:putchar(cputchar(c),),c c变量值可字符型或整型。变量值可字符型或整型。如:如:char a=d,b=Ochar a=d,b=O;putchar(a);putchar(b);putchar(n);putchar(a);putchar(b);putchar(n);在屏幕上输出在屏幕上输出 do do后换行后换行字字符符输输入入输输出出字符输出字符输出putchar()putchar()字符输出字符输出getchar()getchar()功能:从输入设备输入一个字符。功能:从输入设备输入一个字符。格式:格式:getchar(),getchar(),无参数其值是输入的字符。无参数其值是输入的字符。如:如:char c;char c;c=getchar();putchar(c);c=getchar();putchar(c);输出的是从键盘上输入的字符输出的是从键盘上输入的字符输入一个字符后按回车健字符才送入内存输入一个字符后按回车健字符才送入内存注:也可用格式输出来实现字符的输出即注:也可用格式输出来实现字符的输出即printf(“%cn”,getchar();printf(“%cn”,getchar();7/12/202436C C程序设计程序设计 第第3 3章顺序程序设计章顺序程序设计3.6 3.6 顺序结构程序设计顺序结构程序设计【例题【例题4.134.13】求求1234512345的乘积。的乘积。算法分析:算法分析:定义一变量定义一变量t t并赋初值并赋初值1 1即即t=1t=1运用赋值表达运用赋值表达t=t2t=t2即即t=12t=12的积的积运用赋值表达运用赋值表达t=t3t=t3即即t=123t=123的积的积运用赋值表达运用赋值表达t=t4t=t4即即t=1234t=1234的积的积运用赋值表达运用赋值表达t=t5t=t5即即t=12345t=12345的积的积输出输出t t的值的值开始开始t=1t=1t=t*2t=t*2t=t*3t=t*3t=t*4t=t*4t=t*5t=t*5输出输出t tendend#include#includeint main()int main()int t;int t;t=1;t=1;t=t*2;t=t*2;t=t*3;t=t*3;t=t*4;t=t*4;t=t*5;t=t*5;printf(“t=%dn”,t);printf(“t=%dn”,t);return 0;return 0;7/12/202437C C程序设计程序设计 第第3 3章顺序程序设计章顺序程序设计【例题【例题4.144.14】输入三角形的边长输入三角形的边长a,b,ca,b,c且能构成三角形,求其且能构成三角形,求其面积面积算法分析:算法分析:输入输入a,b,ca,b,c说明是动态不是静态说明是动态不是静态 实现输入采用实现输入采用C C提供的提供的scnaf()scnaf()不考虑输入不考虑输入a,b,ca,b,c能否构三角形能否构三角形 定义三个实型变量定义三个实型变量a,b,ca,b,c 用给三边求三角形公式计算面积用给三边求三角形公式计算面积 输出三角形面积输出三角形面积开始开始输入输入a,b,ca,b,c用公式计算面积用公式计算面积输出面积输出面积结束结束已知三角形的三边已知三角形的三边a,b,ca,b,c求面积,可由数学知识知面积公式为求面积,可由数学知识知面积公式为面积面积=s(s-a)(s-b)(s-c)s(s-a)(s-b)(s-c)其中:其中:s=(a+b+c)/2s=(a+b+c)/2因此数学表达式在因此数学表达式在C C语言中的如何表示?语言中的如何表示?7/12/202438C C程序设计程序设计 第第3 3章顺序程序设计章顺序程序设计开始开始输入输入a,b,ca,b,c用公式计算面积用公式计算面积输出面积输出面积结束结束 程序中用到数学平方程序中用到数学平方根函数而其包含在头文根函数而其包含在头文件件math.hmath.h中中#include#include#include#includevoid main()void main()float a,b,c;float a,b,c;double s,area;double s,area;printf(input three number a,b,cn);printf(input three number a,b,cn);scanf(%f%f%f,&a,&b,&c);scanf(%f%f%f,&a,&b,&c);s=s=1.01.0/2*(a+b+c);/2*(a+b+c);area=sqrt(s*(s-a)*(s-b)*(s-c);area=sqrt(s*(s-a)*(s-b)*(s-c);printf(a=%f,b=%f,c=%fn,a,b,c);printf(a=%f,b=%f,c=%fn,a,b,c);printf(area=%fn,area);printf(area=%fn,area);提示输入提示输入精度转换精度转换数学平方根函数数学平方根函数7/12/202439C C程序设计程序设计 第第3 3章顺序程序设计章顺序程序设计【例题【例题4.154.15】假设由键盘输入的一元二次方程系数假设由键盘输入的一元二次方程系数a,b,ca,b,c,且,且在实数范围内有解,试编写求在实数范围内有解,试编写求axax2 2+bx+c=0+bx+c=0方程的根的程序。方程的根的程序。算法分析算法分析 输入输入a,b,ca,b,c说明是动态不是静态说明是动态不是静态 实现输入采用实现输入采用C C提供的提供的scnaf()scnaf()不考虑输入不考虑输入a,b,ca,b,c能否使方程有解能否使方程有解 定义三个实型变量定义三个实型变量a,b,ca,b,c 由数学计算方程公式进行求解由数学计算方程公式进行求解 输出方程的两个根输出方程的两个根开始开始输入输入a,b,ca,b,c用求根公式计算用求根公式计算输出方程根输出方程根结束结束求根公式如下求根公式如下如何将数学表达式写成如何将数学表达式写成C C语言表达式?语言表达式?p p q qx1=p+qx1=p+qx2=p-qx2=p-q 7/12/202440C C程序设计程序设计 第第3 3章顺序程序设计章顺序程序设计#include#include#include#includevoid main()void main()float a,b,c;float a,b,c;double disc,x1,x2,p,q;double disc,x1,x2,p,q;printf(input a,b,c:n);printf(input a,b,c:n);scanf(a=%f,b=%f,c=%f,&a,&b,&c);scanf(a=%f,b=%f,c=%f,&a,&b,&c);disc=b*b-4*a*c;disc=b*b-4*a*c;p=-b/(2*a);p=-b/(2*a);q=sqrt(disc)/(2*a);q=sqrt(disc)/(2*a);x1=p+q;x1=p+q;x2=p-q;x2=p-q;printf(x1=%fnx2=%fn,x1,x2);printf(x1=%fnx2=%fn,x1,x2);调试时输入函数的运用调试时输入函数的运用a=1,b=3,c=2a=1,b=3,c=2后回车后回车不能不能 1,3,2 1,3,2 后回车后回车C C源程序如右所示源程序如右所示调试步骤:调试步骤:启动启动VC+VC+新建项目新建项目 新建文件新建文件 保存编译保存编译 连接连接 运行查看结果运行查看结果7/12/202441C C程序设计程序设计 第第3 3章顺序程序设计章顺序程序设计顺序结构程序设计练习顺序结构程序设计练习1.1.变量变量k k为为floatfloat型,调用函数型,调用函数scanf(“%d”,&k),scanf(“%d”,&k),不能使变量不能使变量k k得到正确得到正确数值的原因是数值的原因是 。2.a=1234,b=12,c=34,2.a=1234,b=12,c=34,则执行则执行printf(“|%3d%3d%-3d|n”,a.b.c)printf(“|%3d%3d%-3d|n”,a.b.c)后的后的输出是输出是3.3.设有设有int a=255,b=8;int a=255,b=8;则则printf(“%x,%on”,a,b)printf(“%x,%on”,a,b)后的输出是后的输出是4.4.已知定义变量如下:已知定义变量如下:int a1,a2;int a1,a2;char c1,c2;char c1,c2;若要求输入若要求输入a1,a2,c1,c2a1,a2,c1,c2值,正确的输入函数调用语句是值,正确的输入函数调用语句是5.5.输入一个非负数,计算以这个数为半径的园的周长和面积。输入一个非负数,计算以这个数为半径的园的周长和面积。6.6.输入任意大小的输入任意大小的3 3个整数,求它们的平均值。个整数,求它们的平均值。7.7.输入任意的三个字符,将它们反相输出。输入任意的三个字符,将它们反相输出。8.8.输入一个三位整数如输入一个三位整数如456456,则反序输出各位数字即,则反序输出各位数字即654654。所用格式符不对应将所用格式符不对应将%d%d改为改为%f%f|1234 1234|1234 1234|即默认为右对齐输出,若即默认为右对齐输出,若“-”“-”则是左对齐则是左对齐ff,10ff,10scanf(“%d%d”,&a1,&a2);scanf(“%d%d”,&a1,&a2);scanf(“%c%c”,&c1,&c2);scanf(“%c%c”,&c1,&c2);c1=getchar();c1=getchar();c2=getchar();c2=getchar();7/12/202442C C程序设计程序设计 第第3 3章顺序程序设计章顺序程序设计8.8.输入一个三位整数如输入一个三位整数如456456,则反序输出各位数字即,则反序输出各位数字即654654。算法分析算法分析核心是如何将百、十、个位数拆核心是如何将百、十、个位数拆分开来。可采用算术运算中整除分开来。可采用算术运算中整除和求余运算来实现。和求余运算来实现。百位数百位数=三位
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 管理文书 > 施工组织


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!