《学习任务2 顺序结构程序设计——计算体重指数电子课件 C语言学习与应用.pptx》由会员分享,可在线阅读,更多相关《学习任务2 顺序结构程序设计——计算体重指数电子课件 C语言学习与应用.pptx(42页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、C C语言学习与应用语言学习与应用教学课件教学课件 任务说明任务说明 顺序结构就是按照语句的先后顺序一句一句地执行。编写顺序结构的程序离不开输入和输出,程序可以理解为是对数据的加工和处理,即输入的数据经过加工和处理,产生出想要的数据结果进行输出显示。本学习任务是通过编写顺序结构的程序使学习者掌握C语言的数据类型、算术表达式以及输入/输出函数的具体应用,并能依据顺序结构的程序框图编写出程序代码。知识要求知识要求掌握常量和变量的使用。了解转义字符。掌握算术运算、赋值运算、强制类型转换、自增和自减运算。掌握输入和输出函数的使用。掌握顺序结构程序流程图。能够绘制顺序结构程序流程图。能够定义和使用变量。
2、能够通过输入函数为变量赋值并输出变量的值。能够根据运算符的优先级和结合性计算表达式的值。能够编写顺序结构的程序。能力要求能力要求数据类型01数据被传送到计算机后,存储在内存单元中,这个内存单元与程序中的一个变量相对应。我们要为每个变量起个名字,对这个名字的变量进行操作就是对相应的数据进行操作。在C程序设计语言中,需要起名字的还有函数、数组和文件等,这个名字就是标识符。标识符有一定的命名规则,要避开C语言的关键字,要以字母或下划线开头,由字母、数字、下划线组成,一般不超过八个字符,而且区分大小写。1.1.标识符标识符问题问题2-1:判断下列哪些是正确的标识符:判断下列哪些是正确的标识符a、are
3、a、_1234_、Main、2_int_、long、3Dmax、int_1_2、int_2_、_2Test、dat正确的标识符:错误的标识符:微课数据类型数据类型 C语言的常量和用法见表2-1。2.2.常量常量类型类型说明举例说明举例占内存占内存输入输出控制输入输出控制数值型整型十进制56,-874B%d八进制以数字0开头,如056,0234B%o十六进制以数字0 x(X)开头,如0X56,0 x2f4B%x或%X实型小数型必有小数点,如-3.5,0.9,1.08B%lf指数型-3.2e2(表示-320)1.2E-2(表示0.012)E(e)两边必有数,右边必是整数8B%lf或%le字符型单引
4、号括住一个字符,!、A或是反斜杠开头的转义字符n、101、0 1B%c字符串用双引号括住的一串字符,如“abc”字符数+1%s表2-1 C语言的常量和用法3.3.变量变量 每个变量都有一个标识符,变量实质是代表内存中的某个存储单元,对变量的赋值就是将数据存放在变量所代表的存储单元中。变量必须先定义后使用,定义变量一般放在函数体的开始部分,变量有类型之分,不同类型的变量在不同的系统中所占的字节数不同,常用变量的类型和输入/输出格式控制见表2-2。类型类型定义定义所占字节数所占字节数输入格式控制输入格式控制输出格式控制输出格式控制整型int4B%d%d无符号整型unsigned int4B%u%u
5、长整型long4B%ld%ld双精度实型double8B%lf%lf或%f单精度实型float4B%f%f字符型char1B%c%c表2-2 常用变量的类型和输入/输出格式控制 4 4.算数表达式算数表达式算术表达式就是由算术运算符将常量、变量、函数等连接起来的运算式。算术运算符见表2-3。运算符运算符运算功能运算功能运算类型运算类型结合方向结合方向()括号+、-求正、负运算单目运算自右至左*、/、%乘、除、取余运算双目运算自左至右+、-加法、减法运算双目运算自左至右优优先先级级 应用举例应用举例2-12-1 计算表达式的值计算表达式的值1/2 值为0 两个整数的运算结果仍为整数1.0/2 值
6、为0.5 两数据类型不一致,按规则转换为1.0/2.012%5 值为2 12除以5的余数是23%5 值为3 3除以5,除不开,商0余32+7/2 值为5 2+32+7.0/2 值为5.5 2+7.0/2.02+3.52.0+3.55*-2 值为-10 5*(-2)2+sqrt(4)值为4.0 2+2.0,结果是4.0,sqrt(4)是调用库函数计算4的平方根计算算术表达式的值要依据运算符的优先级和结合性进行。不同类型数之间的计算要先转换成相同类型后再运算,一般由精度低的向精度高的转换。应用举例应用举例2-12-1 计算表达式的值计算表达式的值问题问题2-2:已知:已知a=10,b=3,计算下列
7、表达式的值。计算下列表达式的值。a/b+a%b .a-3*a/b%3 1.0/a+b .输入、输出函数021.1.输入函数输入函数 scanf函数的一般调用形式如下。scanf(格式控制,输入项表)输入项表是用逗号断开的各个变量的地址,格式控制是以“%”开始的格式控制符。例如:int a,b;/定义两个整型变量 scanf(%d%d,&a,&b);/输入两个整数赋给a和b 这种写法最好,输入时两个数之间用空格或回车断开均可。除上述写法外,还有下面这种写法。int x,y;scanf(%d,%d,&x,&y);在输入的格式控制中,如出现除格式控制符以外的字符,输入时要原样输入,本例如果想给x赋3
8、,给y赋5,正确的做法是输入“3,5”后按Enter键,否则y得不到正确的数据。022 2.输出函数输出函数 printf函数的一般调用形式如下。printf(格式控制,输出项表)这里的格式控制中有三种情况:一般字符原样输出,以“%”开始的为格式转换说明符,以“”开始的为转义字符。例如:int x=10,y=56;printf(“x=%d,y=%dn”,x,y);输出为“x=10,y=56”,且光标停在下一行起始位置。为了使输出数据整齐,可以指定输出宽度。%nd用于指定输出所占宽度,如“printf(x=%4d,x);”输出为“x=10”,输出共占4个宽度,10前面有两个空格,靠右齐;%nd为
9、靠左齐,“printf(x=%-4d,x);”输出为“x=10”,输出共占4个宽度,10后面有两个空格,靠左齐。问题问题2-3:分析下面语句的功能。:分析下面语句的功能。printf(“%c”,a);.scanf(“%c”,&b);printf(“%-5d”,c);微课输入输出函数输入输出函数 应用举例应用举例2-2 2-2 输入矩形的两边长求面积。输入矩形的两边长求面积。(1)分析。矩形的边长既可以是整数也可以是小数,所以我们要用double型,这样既可以接收整型数,又可以接收实型数。最后的乘积值可以直接输出,也可以存放在一个变量中再输出变量的值,我们用后者。(2)绘制程序流程N-S图,如图
10、2-1所示。图2-1 求矩形面积程序流程N-S图(3)分析。根据流程N-S图写出程序代码。include stdio.hvoid main()double a,b,area;/定义变量printf(请输入矩形的两边长:);/加入一行提示,方便输入scanf(%lf%lf,&a,&b);/double为%lf格式,输入两个数赋给a,barea=a*b;/计算面积值printf(a=%f,b=%f,area=%.2fn,a,b,area);/.2f是保留两位小数getchar();/*两句“getchar();”,在运行可执行文件时,可看到执行结果*/getchar();(4)程序的执行结果。请输
11、入矩形的两边长:1.2 3.6a=1.200000,b=3.600000,area=4.32问题问题2-4:编写程序实现输入三个整数,然后输出它:编写程序实现输入三个整数,然后输出它们的平均数。们的平均数。.相关表达式和运算符031.1.强制类型转换表达式强制类型转换表达式形式:(类型名)表达式功能:将一个表达式的值转换成指定的类型。(double)1/2的值是0.5,强制类型转换的级别优先于除运算,(double)1/2等价于1.0/2,所以值为0.5。2 2.赋值表达式赋值表达式形式:变量名=表达式左边是一个变量名,右边得到一个表达式的值,将表达式的值赋给一个变量,其结合性是自右向左,其优
12、先级只高于逗号运算符。赋值表达式的值就是最左边变量所得到的新值。问题问题2-5:判断下列哪些是正确的赋值表达式。:判断下列哪些是正确的赋值表达式。a=2+7/3.a=b=7+1.a+b=c.a=7+1=b.(1)复合的赋值表达式。n+=1等价于n=n+1。n*=m+3等价于n=n*(m+3)。(2)赋值运算中的类型转换。int x;x=6.5;/x为整数6,这里有一个转换,转换为与变量的类型相一致 double y;y=6;/y为6.0,这里有一个转换,转换为与变量的类型相一致 3 3.自加、自减运算符自加、自减运算符自加、自减运算符为+和-。自加(减)运算符在前面的,先增(减)后用;自加(减
13、)运算符在后面的,则先用后增(减)。运算符结合方向为自右至左,-k+等效于-(k+)。自加(减)运算中往往含两种运算:计算表达式的值和计算变量的值。1.自加(自减)在前面的,先增(减)后用 +k -k2.自加(自减)在后面的,先用后增(减)k+k-3.结合方向为自右至左 -k+等效于-(k+)注意表达式表达式x x的值的值k k的值的值赋值表达式的值赋值表达式的值x=k+x=k+3 34 43 3x=+kx=+k4 44 44 4x=k-x=k-3 32 23 3x=-kx=-k2 22 22 24 4.逗号运算符合逗号表达式逗号运算符合逗号表达式形式:表达式1,表达式2,表达式n 结合方向:
14、自左至右。运算规则:先计算表达式1的值,然后计算表达式2的值,再计算表达式3的值,最后计算表达式n的值,表达式n的值就是整个逗号表达式的值。逗号表达式的优先级最低,低于赋值运算。例如,设y的初值为7,则表达式“x=y,x+4”是逗号表达式,x的值为7,表达式的值为11;表达式“x=(y,+y)”是赋值表达式,表达式的值是8,x的值是8,y的值是8;表达式“x=y,+y”是逗号表达式,表达式的值是8,x的值是7,y的值是8。问题问题2-6:依次执行完下面的语句后,:依次执行完下面的语句后,x,y,z的值分别的值分别是多少?是多少?int x=8,y=12,z=14;x+,y=z+,z=+x;y=
15、x%z-;x,y,z的值分别是:.任务实施任务实施 任务一任务一 计算你的体重指数计算你的体重指数工作内容及要求:工作内容及要求:当今人们在温饱有余的情况下,更注重身心健康,体重就是人们最关心的问题之一。将编写程序与测算自身的体重指数结合起来,可完成测算某人体重指数的程序设计。本任务要求先显示有关体重指数的信息,然后输入身高和体重,最后计算出体重指数。微课顺序结构顺序结构 身体质量指数(body mass index,BMI)简称为体重指数体重指数=体重(千克)除以身高(米)的平方正常体重:体重指数=1825超重:体重指数=2530轻度肥胖:体重指数30中度肥胖:体重指数35重度肥胖:体重指数
16、40编程训练编程训练2-1-1 显示以下关于体重指数的相关资料。显示以下关于体重指数的相关资料。#includestdio.h“void main()编程训练编程训练#include“stdio.h”void main()/定义double型变量height、weight和bmi printf(“请输入身高(米)和体重(千克):”);scanf(“%lf.”,&height,.”);bmi=./计算bmi printf(“身高:%.2f米,体重:%.2f千克,体重指数:%.2fn,height,);getchar();编程训练编程训练2-1-2 输入身高和体重,计算体重指数并输出。输入身高和体
17、重,计算体重指数并输出。#include“stdio.h”void main()double height,weight,bmi;while(1)/提示输入身高和体重 /输入身高和体重 /计算体重指数 /输入身高、体重和体重指数 getchar();编程训练编程训练 2-1-3 可以反复地输入身高和体重没,计算体重指数输出。可以反复地输入身高和体重没,计算体重指数输出。这个程序包含以下内容:先是定义变量,然后是显示体重指数信息,再是输入姓名(字符串)、性别(字符型,男M,女W)、年龄(整型)、身高和体重(实型)信息,最后输出姓名、性别、年龄、体重指数。程序可以反复地输入、计算。编程训练编程训练
18、2-1-4 编写一个相对完整的程序。编写一个相对完整的程序。参照图2-3中的输出信息,将程序代码补充完整,适应较长程序代码的调试。图2-3 编程训练2-1-4的运行结果/包含输入/输出头文件#includestdlib.h void main()charname10,sex;/定义存放姓名和性别的变量 age;/定义存放年龄的整型变量 /定义身高、体重、体重指数变量(double型)./死循环控制 system(cls);/清屏,须包含文件stdlib.h printf(体重质量指数(bodymassindex,简称BMI)n);printf(体重指数=体重(千克)除以身高(米)的平方n);p
19、rintf(正常体重体重指数=1825n);printf(超重体重指数=2530n);printf(轻度肥胖体重指数30n);printf(中度肥胖体重指数35n);printf(重度肥胖体重指数40n);printf(n*以下是输入信息*n);printf(姓名:);gets();/输入姓名printf(性别:);scanf(“,&sex);/输入性别(字符)printf(年龄:);scanf(“,&age);/输入年龄(整型)printf(体重(千克):);scanf(“,&weight);/输入体重printf(身高(米):);scanf(%lf,);/输入身高bmi=weight/;/
20、计算体重指数 printf(n*以下是输出信息*n);printf(*姓名:%6s *n,);printf(*性别:%c *n,sex);printf(*年龄:%d *n,);printf(“*体重:%.2f千克 *n,weight);printf(“*身高:%.2f米 *n,height);printf(*你的体重指数:%.2lf *n,);printf(*n);getchar();/两条语句的作用是看清显示后按Enter键,继续下一个输入 getchar();任务二任务二 数据交换数据交换工作内容及要求:工作内容及要求:对变量中的数据进行交换,在排序等算法中是最基本的操作。掌握数据交换的算法是编程人员的基本技能。本任务要求完成如下程序设计:先输入两个整数存在变量中,再输出这两个数,最后对这两个变量中的数进行交换后输出。根据已给出的程序流程N-S图,写出程序代码并调试通过。执行任务过程如下执行任务过程如下:030201 根据流程图写根据流程图写出程序代码出程序代码将流量数交换的内容将流量数交换的内容写入写入if语句中,可实语句中,可实现输出两个数中较大现输出两个数中较大数的操作数的操作 程序流程图程序流程图N-S图图祝你进步!祝你进步!