《C语言程序设计教程》课件第3章 顺序结构程序设计_第1页
《C语言程序设计教程》课件第3章 顺序结构程序设计_第2页
《C语言程序设计教程》课件第3章 顺序结构程序设计_第3页
《C语言程序设计教程》课件第3章 顺序结构程序设计_第4页
《C语言程序设计教程》课件第3章 顺序结构程序设计_第5页
已阅读5页,还剩33页未读 继续免费阅读

下载本文档

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

文档简介

第三章顺序结构程序设计2第三章

顺序结构程序设计教学目标:了解程序控制的三种结构掌握赋值语句的使用熟悉格式输入输出函数的用法教学重点与难点:掌握格式输入输出函数的用法33.1程序控制的三种基本结构

C语言是结构化程序设计语言,主要有:顺序结构、选择结构和循环结构三种。3.1.1结构化算法1.程序程序是由软件开发人员根据用户需求设计的、用程序设计语言描述的指示计算机执行操作的一组指令序列。程序一般包括两个方面:数据结构(对数据的描述)和算法(对操作的描述)。其中,算法是程序设计的核心部分。43.1.1结构化算法2.算法为解决一个特定的问题而采取的方法和步骤称为算法。可以把某个相对复杂的活动分解成为若干个相对简单的部分。3.算法的描述描述算法的方法有多种,常用的有自然语言、传统流程图、N-S结构图等。

(1)自然语言:人们日常使用的语言,通俗易懂,通常是指一种自然地随文化演化的语言。

(2)传统流程图:传统流程图由一些图形框和流程线组成,如图3.1所示。5图3.1传统流程图符号3.1.1结构化算法6起止框:表示程序的开始或结束。输入输出框:表示输入或输出数据。判断框:表示按照给定的条件进行判断,根据条件是否成立来决定后续操作。判断框中写出判断条件,并引出两条或多条流程线表示进行不同的处理。处理框:表示基本处理操作。流程线:表示程序的执行流向,用于连接各流程图符号。3.1.1结构化算法7【例3.1】用传统流程图描述输入的数据是否大于0。3.1.1结构化算法8(3)N-S结构图3.1.1结构化算法91.顺序结构顺序结构是最简单的程序结构,按照语句出现的先后顺序由上向下依次执行。如图3.5所示,先执行语句块A,再执行语句块B。

3.1.2程序的三种基本结构102.选择结构选择结构又称为分支结构,即根据给定的条件选择执行其中一个分支。选择结构有三种,单分支、双分支和多分支结构,如图3.6、图3.7、图3.8所示

3.1.2程序的三种基本结构11图3.8多分支选择结构

3.1.2程序的三种基本结构123.循环结构循环结构是根据条件来决定循环体是否反复执行。按照循环控制条件出现的位置,可分为当型循环和直到型循环两种循环结构。

当型循环:首先判断条件,当条件表达式为真时,反复执行循环语句,直到条件为假时终止循环,如图3.9所示。

直到型循环:先执行循环语句,然后再判断条件是否成立。如果条件表达式为真,则继续执行循环语句,直到条件为假时,跳出循环,如图3.10所示。

3.1.2程序的三种基本结构133.1.2程序的三种基本结构143.2赋值语句顺序结构中常见的是赋值语句,由赋值表达式加分号构成。其一般形式为:

变量=表达式;例如:a=8;/*将变量a赋值为8*/c=a+b;/*将表达式a+b的值赋给变量c*/15注意:赋值语句左侧只能是变量,右侧的表达式可以是常量、变量、数组元素、函数或其他表达式。(2)赋值号“=”与关系运算符“==”是有区别的,后者用于判断运算符左右两边是否相等。(3)赋值运算符“=”右边的表达式可以是其他表达式,从而构成嵌套形式,即:变量=(变量=表达式);(4)赋值语句允许连续赋值,而在变量声明中,不允许连续给多个变量赋初值。3.2赋值语句163.3格式输入输出函数

C语言本身并不提供输入输出语句,输入输出是由函数实现的。在C标准函数库中常用的输入输出函数有:printf()、scanf()、putchar()和getchar()等。在使用C语言库函数时,要用“#include”命令将有关的“头文件”包括到用户源文件中,这些头文件包含了程序中调用函数的有关信息。因此,在调用输入输出库函数时,文件开头应包含以下命令:#include<stdio.h>或#include“stdio.h”17常用的头文件及功能说明如表3.1所示3.3格式输入输出函数头文件功能说明stdio.h标准输入输出函数math.h数学函数ctype.h字符处理函数string.h字符串处理函数conio.h屏幕处理函数time.h日期与时间函数stdlib.h动态存储分配函数18格式化输出函数printf()的功能是按照指定的格式向计算机的终端(一般是显示器)输出若干任意类型的数据。语法格式为:printf("格式控制字符串",输出列表);例如:printf(“Howareyou?”); printf("%d",a);1.格式控制字符串格式控制字符串是由双引号括起来的字符串,用于指定输出的格式。它由格式转换说明符、控制字符和普通字符组成。3.3.1格式输出函数printf()19

(1)格式转换说明符

格式转换说明符是以“%”开头,在“%”后面跟有各种格式字符,以说明输出数据的类型、形式、长度和小数位数等。常用的printf函数的格式说明符如表3.2所示。

3.3.1格式输出函数printf()格式符功能说明%d,%i以带符号的十进制形式输出整数%u以无符号的十进制形式输出整数%o以无符号的八进制形式输出整数%x,%X以无符号的十六进制形式输出整数%c输出一个字符%s输出字符串%f输出小数形式的实数,默认为6位小数%e,%E输出指数形式的实数20另外,在格式转换说明符中,还可在“%”符号与格式字符间插入附加格式说明符,如表3.3所示。3.3.1格式输出函数printf()附加字符功能说明l用于长整型,可加在格式符d、o、x、u的前面m(代表一个正整数)数据最小宽度,若数据实际宽度大于m,则按实际宽度输出;若实际宽度小于m,则在前面补0或空格.n(代表一个正整数)若为实数,则表示输出n位小数;若为字符串,则表示从左截取的字符个数+输出的数字前带有正负号-输出的数据左对齐,默认为右对齐21

(2)控制字符控制字符即转义字符,用于控制键盘上的动作。以反斜杠“\”开头,后面跟一个或多个字符,如回车换行符“\n”等

(3)普通字符普通字符是需要照原样输出的字符,一般用来描述输出结果。其中包括双引号内的逗号,等号、空格、普通字母、汉字等。3.3.1格式输出函数printf()222.输出列表输出列表中列出的是需要输出的数据项,各数据项之间以“,”分隔,可以是变量、常量或表达式。3.使用printf函数的几点说明(1)输出列表中的各个输出项要求和格式转换说明符在数量、顺序和类型上保持一一对应和匹配。(2)当多个输出项为表达式时,一般先按从右到左的顺序计算各表达式的值,然后再按从左到右的顺序输出结果。(3)格式转换说明符与输出列表中参数不一致时可能产生错误。3.3.1格式输出函数printf()23【例3.3】printf()函数的简单应用。程序如下:#include<stdio.h>main(){inta=97,b=98;printf("%d,%d\n",a,b);/*以十进制形式输出a,b*/printf("%c,%c\n",a,b);/*以字符形式输出a,b*/printf("a=%d,b=%d\n",a,b);}程序运行结果:97,98a,ba=97,b=98

3.3.1格式输出函数printf()24【例3.4】使用printf()函数输出数值型数据。程序如下:#include<stdio.h>main(){inta=10,b=256,c=1024;floate=1234.567;

printf("%d,%d,%d\n",a,b,c);printf("%6d,%6d,%6d\n",a,b,c);/*数据的最小宽度为6*/printf("%o,%o,%o\n",a,b,c);/*以八进制形式输出a,b*/printf("%f,%8.2f,%-8.2f\n",e,e,e);}程序运行结果:10,256,1024ㄩㄩㄩㄩ10,ㄩㄩㄩ256,ㄩㄩ102412,400,20001234.567017,ㄩ1234.57,1234.573.3.1格式输出函数printf()25格式输入函数scanf()的功能是按照指定的格式从键盘上输入任意类型的数据。其语法的一般格式为:

scanf("格式控制字符串",地址列表);例如:scanf("%d,%d,%d",&a,&b,&c);

1.格式控制字符串格式控制字符串与printf函数中的“格式控制字符串”作用相同,也是由双引号括起来,以“%”字符开始,以一个格式字符结束,中间可以插入附加说明字符。常用的scanf函数的格式说明符如表3.4所示。3.3.2格式输入函数scanf()26格式符功能说明%d,%i以带符号的十进制形式输入整数%u以无符号的十进制形式输入整数%o以无符号的八进制形式输入整数%x,%X以无符号的十六进制形式输入整数%c输入一个字符%s输入字符串%f输入小数形式的实数%e,%E输入指数形式的实数3.3.2格式输入函数scanf()27同样,还可在“%”符号与格式字符间插入附加格式说明符,如表3.5所示。3.3.2格式输入函数scanf()附加字符功能说明L或l输入长整型,可加在格式符d、o、x、u的前面;输入double型,可加在格式符f或e的前面h输入短整型,可加在格式符d、o、x、i的前面m表示输入数据所占宽度(实型数据除外)*表示指定的输入项在读入后不赋值给相应的变量282.地址列表地址列表中的地址是由地址运算符“&”后跟变量名组成的,变量地址之间以逗号“,”分隔。用户不必关心具体的地址是多少,直接使用即可。例如:scanf("%d,%d,%d",&a,&b,&c);3.使用scanf()函数时应注意以下几点:(1)scanf函数地址列表中必须给出变量的地址,如果给出变量名则出错。例如:scanf("%d,%d",a,b);是非法的。应改为:scanf("%d,%d",&a,&b);只有数组例外,具体见第六章数组。3.3.2格式输入函数scanf()29(2)对于实型数据,使用scanf函数输入时不能控制其精度。例如:scanf("%10.2f",&a);是非法的。

(3)如果“格式控制字符串”中有非格式字符,则输入数据时也要在对应的位置输入该非格式字符。例如:scanf("%d,%d,%d",&a,&b,&c);其中使用了非格式字符“,”,因此输入时应为:1,2,3↙又如:scanf("a=%d,b=%d",&a,&b);输入时应为:a=8,b=9↙3.3.2格式输入函数scanf()30

(4)如果“格式控制字符串”中没有非格式字符,则认为输入的字符均为有效字符,包括空格和转义字符。例如:scanf("%c%c%c",&a,&b,&c);如果输入“aㄩbㄩc↙”,则表示把字符‘a’赋给a,空格‘ㄩ’赋给b,字符‘b’赋给c。只有当输入为“abc”时,才能将字符‘a’赋给a,‘b’‘赋给b,‘c’赋给c。(5)输入多个数值型数据时,若“格式控制字符串”中没有非格式字符间隔,则可使用空格键、Tab键或Enter键间隔。C编译系统在遇到空格键、Tab键、Enter键或非法数据(若使用“%d”对应输入“8C”时,C为非法数据)时则认为该数据输入结束。(6)若在格式控制符中出现“%*”,scanf函数读入对应的值后不赋给相应的变量,即跳过该输入值。3.3.2格式输入函数scanf()313.4字符输入输出函数字符输出函数putchar()的功能是向计算机的终端(一般是显示器)输出一个字符。其语法的一般格式为:putchar(c);其中,c可以是字符常量或字符变量。例如:putchar('A');/*输出大写字母A*/putchar(97);/*输出小写字母a,即ASCII码为97对应的字符*/32【例3.6】putchar()函数的应用。程序如下:#include<stdio.h>main(){charx,y,z;intt;x='A';y='B';z='C';t=97;

程序运行结果:ABCaA3.4.1字符输出函数putchar()putchar(x);putchar(y);putchar(z);putchar('\n');putchar(t);putchar(t-32);}33字符输入函数getchar()的功能是从键盘上输入一个字符。其语法的一般格式为:

getchar();例如:charch;ch=getchar();/*将输入的字符赋值给字符变量*/getchar()函数也可与putchar()函数一起使用,又如:putchar(getchar());/*输出从键盘上输入的一个字符*/3.4.2字符输入函数getchar()34【例3.7】getchar()函数的应用。程序如下:#include<stdio.h>main(){charch1,ch2;ch1=getchar();ch2=getchar();putchar(ch1);putchar(ch2);}

程序运行结果:AB↙AB3.4.2字符输入函数getchar()353.5程序综合实例【例3.8】从键盘上输入某名学生三门课(语文、数学、外语)考试成绩,计算出该学生总成绩和平均成绩(保留2位小数)。程序如下:#include<stdio.h>main(){floata,b,c,sum,average;printf("请输入该名学生语文、数学和外语成绩:\n");scanf("%f,%f,%f",&a,&b,&c);sum=a+b+c;average=sum/3;printf("总成绩:%5.2f,平均成绩:%5.2f\n",sum,average);}

程序运行结果:请输入该名学生语文、数学和外语成绩:85.5,97.

温馨提示

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

评论

0/150

提交评论