第04章-顺序结构程序设计_第1页
第04章-顺序结构程序设计_第2页
第04章-顺序结构程序设计_第3页
第04章-顺序结构程序设计_第4页
第04章-顺序结构程序设计_第5页
已阅读5页,还剩56页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第04章顺序结构程序设计第04章顺序结构程序设计4.1引例4.2C语句概述4.3数据输入/输出4.4顺序结构程序设计4.5使用scanf函数常见的问题4.6案例—“学生成绩管理系统”的菜单实现本单元内容引言

顺序结构是程序中最基本的结构,是程序设计的基础。

顺序结构的程序,其代码自上而下无条件执行,且只执行一次。4.1引例编写程序计算某人的身体质量指数(BMI)。BMI是BodyMassIndex的缩写,中文常翻译为“体质指数”。BMI是国际上常用的衡量人体胖瘦程度以及健康与否的一个标准,主要用于统计用途。

BMI计算公式如下:

体质指数(BMI)=体重(kg)÷身高2(m)4.1引例

首先分析公式,定义程序中要处理的对象,一般就是公式中涉及的各个运算对象。对应的标识符分别定义为:BMI(体质指数)、weight(体重)、height(身高)。由于这三个对象的取值都可能包含小数,因此其对应的数据类型都设计成double或float。4.1引例

算法设计如下:4.1引例

程序编写如下:程序执行如下:4.2C语句概述C语言中,语句是函数的基本单位,用分号作为其结束标志通常,一条可执行的C语句,对应多条机器语言指令C语句根据其功能,共分为6类4.2C语句概述变量定义和函数声明语句

inta,b;

intmax(inta,intb);表达式语句sum=a+b;控制语句

return

0; if(a>b)c=a;4.2C语句概述函数语句

printf(“Helloworld!\n”);复合语句if(a>b)

{

temp=a;

a=b;

b=temp;

}4.2C语句概述空语句if(a>b)

;

else

printf(“b>=a\n”);4.3数据输入/输出4.3.1字符数据的输入输出4.3.2格式输入输出函数本节内容C语言中数据的输入和输出都用系统函数实现,本节介绍的函数对应的头文件为:stdio.h字符输入输出函数

输出:putchar函数

输入:getchar函数格式输入输出函数

输出:printf函数

输入:scanf函数

4.3数据输入/输出4.3.1字符数据的输入输出字符输出函数putchar(ch)输出一个字符(ch的值)字符输入函数getchar()无参数从输入设备接收一个字符4.3.1字符数据的输入输出例:从键盘输入一个字符,然后在显示器上输出该字符。4.3.2格式输入/输出函数格式输出函数printf(格式控制字符串,输出项表列);输出若干个、任意类型的数据格式输入函数scanf(格式控制字符串,地址表列);输入若干个、任意类型的数据

格式输出函数:printf格式:printf(格式控制字符串,输出表列)被输出的数据,可以是常量、变量、表达式用双引号括起的格式控制字符串,它包括两种信息:格式字符,由%引导。如:%d,%f,%c非格式字符,原样输出的字符printf(“a=%d

b=%d”,a,b);

格式说明输出表列printf(“%d

%d”,a,b)格式说明输出表列常见的格式字符d:输出一个有符号的十进制整数f:输出单、双或长双精度浮点数c:输出一个字符s:输出一个字符串e:以指数形式输出实数允许在%和格式字符中间加附加格式说明即:%附加字符格式字符如:%ld:输出长整型整数

%7.2f:输出的实数最少占7列,其中小数2位scanf("%d,%f”,&a,&b);

格式输入函数:scanf格式:scanf(格式控制字符串,地址表列)非格式字符格式说明地址表列

&

是取址运算符,表示取变量在内存中的地址

若格式字符间无分隔符,空格、回车和tab键均可作为分隔符

格式输入函数:scanf注:输入数据要与控制格式相符合非格式字符应原样输入如:scanf(“%d,%d”,&a,&b);

正确的输入为:4,5

不正确的输为:4;5等scanf(“a=%d,b=%d”,&a,&b);正确的输入:a=4,b=5

不正确的输入:4_5和4,5等4.3.2格式输入/输出函数例如,输入一个整数和两个实数,然后在显示器上输出它们。4.3.2格式输入/输出函数程序执行结果:注意:在VC++6.0的环境中,double型数据可以用%lf输出,也可以用%f来输出;但输入只能用%lf。请大家课下练习各种格式字符的用法,用如下例所示的方法:4.4顺序结构程序设计顺序结构的流程图表示4.4顺序结构程序设计应用程序举例【例4.1】假设银行定期存款的年利率为2.25%,存款期为n年,编写程序计算一定量的本金,在存款n年后,得到的本息之和是多少?(1)分析任务,可以确定解决该问题对应的数学公式应该是: deposit=capital×(1+rate)n

rate:利率 n:存款期 capital:本金 deposit:本息和4.4顺序结构程序设计(2)设计程序数据描述doublerate;//利率:rate,需要支持小数intn; //存款期:n,都是按年存储doublecapital;//本金:capital,需要支持小数doubledeposit; //本息和:deposit,需要支持小数4.4顺序结构程序设计(2)设计程序算法设计4.4顺序结构程序设计(2)设计程序程序实现4.4顺序结构程序设计(2)设计程序运行结果C语言表达式中的乘号不能省略变量定义必须写在程序的最开始;多个变量的定义顺序可任意格式字符和数据类型一定要严格一致4.4顺序结构程序设计应用程序举例【例4.2】编写程序,从键盘输入一个小写字母,输出该字母及其对应的ASCII码值,然后将该字母转换成大写字母,并输出大写字母及其对应的ASCII码值。(1)分析任务:一个小写字母(c1)和它对应的大写字母(c2)之间的关系是:c2=c1-32

或者c2=c1-’a’+’A’4.4顺序结构程序设计(2)设计程序数据描述 charc1; //c1用于存放从键盘输入的小写字母 charc2; //存放由c1转换来的大写字母4.4顺序结构程序设计(2)设计程序算法设计4.4顺序结构程序设计(2)设计程序程序实现4.4顺序结构程序设计(2)设计程序运行结果4.4顺序结构程序设计应用程序举例【例4.3】编写程序,从键盘输入变量x和y的值,交换其值并输出结果。(1)分析任务:如果要交换两变量内存值,通常借助第3方变量temp,然后用如图所示的顺序赋值,实现交换。4.4顺序结构程序设计(2)设计程序数据描述

intx; //存储题干描述中的x的值 inty; //存储题干描述中的y的值 inttemp; //用于对调x、y值的第三方变量4.4顺序结构程序设计(2)设计程序算法设计4.4顺序结构程序设计(2)设计程序程序实现4.4顺序结构程序设计(2)设计程序运行结果两变量交换值的其他方法除了本例中使用的第三方变量和第3章中使用的异或位运算实现两变量交换值外,请读者自主学习其他交换值的方法。简单程序设计的结构框架intmain(void){

变量声明

可执行语句

}简单程序设计的结构框架#include<stdio.h>/*如果需要用数学函数,这里还要写#include<math.h>*//*如果需要符号常量,则定义在这里,如“#defineRATE0.0225”*/intmain(void)

{ /*若干变量定义语句*/ /*若干赋值和输入语句*/ /*若干计算语句*/ /*若干输出语句*/ return0;}4.5使用scanf函数常见的问题1.输入格式问题输入格式和代码不符合如:scanf(“%d,%d”,&a,&b);

正确的输入为:4,5

不正确的输为:4;5等scanf("%d,%f\n”,&a,&b);scanf("%d,%f”,a,b);scanf("%7.2f",&a);4.5使用scanf函数常见的问题2.字符输入存在的问题及其解决方法#include<stdio.h>intmain(void){

inta;charb;floatc;printf("Pleaseinputaninteger:");

scanf("%d",&a);printf("integer:%d\n",a);printf("Pleaseinputacharacter:");

scanf("%c",&b);printf("character:%c\n",b);printf("Pleaseinputafloatnumber:");

scanf("%f",&c);printf("float:%f\n",c); return0;}执行不正确?4.5使用scanf函数常见的问题2.字符输入存在的问题及其解决方法#include<stdio.h>intmain(void){

inta;

charb;

floatc;printf("Pleaseinputaninteger:");

scanf("%d",&a);printf("integer:%d\n",a);printf("Pleaseinputacharacter:");

scanf("%1s",&b);printf("character:%c\n",b);printf("Pleaseinputafloatnumber:");

scanf("%f",&c);printf("float:%f\n",c);return0; }解决!或者:scanf("\n%c",&b);上述例子中,字符输入存在的问题的解决方法有很多,这个问题值的大家研究和总结各种解决方法。

除了PPT和书上P83-p85提到的方法之外,请大家研究其他解决方法。针对Scanf函数输入字符时存在问题的解决方案4.5使用scanf函数常见的问题3.对于输入非法的检查与错误处理注意:scanf()函数的返回值是已经成功读入的数据项数,或者读入完全失败返回“0”。有可能存在部分变量的数据读入正确的情况,因此,通常不是通过检查scanf()函数的返回值是否是“0”来判断读入的数据是否正确,而是检查scanf()函数的返回值是否为应该读入的数据项数。4.5使用scanf函数常见的问题

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论