《c语言第3章顺序结构程序设计.ppt》由会员分享,可在线阅读,更多相关《c语言第3章顺序结构程序设计.ppt(35页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、1第三章第三章 顺序结构程序设计顺序结构程序设计第3章 顺序结构程序设计本章要求:本章要求:了解结构化程序的算法描述了解结构化程序的算法描述掌握掌握C语言中数据的输入语言中数据的输入/输出方法输出方法顺序结构程序设计顺序结构程序设计本章重点:本章重点:C程序中数据的输入程序中数据的输入/输出方法输出方法顺序、选择、循环顺序、选择、循环(分支分支)2第三章第三章 顺序结构程序设计顺序结构程序设计第3章 顺序结构程序设计一、什么是算法一、什么是算法 算法是解决一个问题采取的方法和步骤的描述算法是解决一个问题采取的方法和步骤的描述。1有穷性:有穷性:算法须在执行有穷多个计算步骤后终止算法须在执行有穷
2、多个计算步骤后终止2确确定定性性:算算法法的的每每个个步步骤骤必必须须都都是是精精确确定定义义的的、无无二义性的;二义性的;3有有效效性性:算算法法中中的的每每一一个个步步骤骤必必须须有有效效地地执执行行,并并能得到确定结果;能得到确定结果;4输输入入:一一个个算算法法中中可可以以没没有有输输入入,也也可可以以有有一一个个或或多个输入信息多个输入信息5输出:输出:一个算法应有一个或多个输出一个算法应有一个或多个输出算法的特性:算法的特性:3第三章第三章 顺序结构程序设计顺序结构程序设计第3章 顺序结构程序设计(一)自然语言与伪代码表示算法(一)自然语言与伪代码表示算法自然语言就是指人们日常使用
3、的语言,可以是汉语、英语自然语言就是指人们日常使用的语言,可以是汉语、英语或其它语言。或其它语言。伪代码是用介于自然语言和计算机语言之间的文字和符号伪代码是用介于自然语言和计算机语言之间的文字和符号(包括数学符号)来描述算法。(包括数学符号)来描述算法。二、算法的表示二、算法的表示4第三章第三章 顺序结构程序设计顺序结构程序设计第3章 顺序结构程序设计例的伪代码表示如下:例的伪代码表示如下:Begin(算法开始)(算法开始)输入输入 A,B,C IF AB 则则 AMax 否则否则 BMax IF CMax 则则 CMaxPrint MaxEnd(算法结束算法结束)例:例:输入三个数,然后输输
4、入三个数,然后输出其中最大的数。出其中最大的数。算法可以写成:算法可以写成:(1)(1)输入输入A A,B B,C C。(2)(2)若若ABAB,则,则MAX AMAX A;否则否则MAXBMAXB。(3)(3)若若CMAXCMAX,则,则MAX CMAX C。(4)(4)输出输出MAXMAX,MAXMAX即为最大即为最大数。数。结构化程序的算法描述:构化程序的算法描述:5第三章第三章 顺序结构程序设计顺序结构程序设计第3章 顺序结构程序设计1常用的流程符号常用的流程符号l l起止框:表示算法的开始和结束。起止框:表示算法的开始和结束。l l处理框:表示初始化或运算赋值等操作。处理框:表示初始
5、化或运算赋值等操作。l l输入输出框:表示数据的输入输出操作。输入输出框:表示数据的输入输出操作。l l判判断断框框:表表示示根根据据一一个个条条件件成成立立与与否否,决决定执行两种不同操作中的其中一个。定执行两种不同操作中的其中一个。l l流程线:表示流程的方向。流程线:表示流程的方向。(二)用流程图表示算法(二)用流程图表示算法6第三章第三章 顺序结构程序设计顺序结构程序设计第3章 顺序结构程序设计用流程图表示如下图所示:用流程图表示如下图所示:例:例:输入三个数,然后输出其中最大的数。输入三个数,然后输出其中最大的数。7第三章第三章 顺序结构程序设计顺序结构程序设计第3章 顺序结构程序设
6、计(三)用(三)用NSNS流程图表示算法流程图表示算法8第三章第三章 顺序结构程序设计顺序结构程序设计第3章 顺序结构程序设计C语言语言中实现顺序结构的语句:赋值语句、变量声中实现顺序结构的语句:赋值语句、变量声明语句、符号常量声明语句等。明语句、符号常量声明语句等。三、赋值语句三、赋值语句 赋值语句是由赋值表达式再加分号构成的表达式语句。赋值语句是由赋值表达式再加分号构成的表达式语句。其一般形式为:其一般形式为:变量变量=表达式表达式;1 1赋值符赋值符“=”“=”右边的表达式可以又是一个赋值表达式右边的表达式可以又是一个赋值表达式因此,下述形式是正确的:变量因此,下述形式是正确的:变量=(
7、=(变量变量=表达式表达式););其展开之后的一般形式为:变量其展开之后的一般形式为:变量=变量变量=表达式表达式;例例如如:a=b=c=d=e=5;a=b=c=d=e=5;按按照照赋赋值值运运算算符符的的右右结结合合性性,因此实际上等效于:因此实际上等效于:e=5;d=e;c=d;b=c;a=b;e=5;d=e;c=d;b=c;a=b;9第三章第三章 顺序结构程序设计顺序结构程序设计第3章 顺序结构程序设计2.2.注意变量说明中给变量赋初值和赋值语句的区别注意变量说明中给变量赋初值和赋值语句的区别。给给变变量量赋赋初初值值是是变变量量说说明明的的一一部部分分,赋赋初初值值后后的的变变量量与与
8、其其后后的的其其它同类变量之间仍必须用它同类变量之间仍必须用逗号逗号间隔,而赋值语句则必须用间隔,而赋值语句则必须用分号分号结尾。结尾。3.3.在在变量说明变量说明中,不允许连续给多个变量赋初值。中,不允许连续给多个变量赋初值。如下述说明是错误的:如下述说明是错误的:inta=b=c=5;必须写为必须写为inta=5,b=5,c=5;而赋值语句允许连续赋值。而赋值语句允许连续赋值。4.4.注注意意赋赋值值表表达达式式和和赋赋值值语语句句的的区区别别。赋赋值值表表达达式式是是一一种种表表达达式式,它它可可以以出出现现在在任任何何允允许许表表达达式式出出现现的的地地方方,而而赋赋值值语语句句则则不
9、能。不能。下述语句是合法的:下述语句是合法的:if(x=y+5)0)z=x;下述语句是非法的:下述语句是非法的:if(x=y+5;)0)z=x;说明:右边的表达式可以是变量、常量、函数调用等表达式。说明:右边的表达式可以是变量、常量、函数调用等表达式。10第三章第三章 顺序结构程序设计顺序结构程序设计第3章 顺序结构程序设计5语句中的语句中的“=”称为称为赋值号赋值号,它不同于数学中的等号,它不同于数学中的等号,如,如A=A+1在数学中是不成立的,但在程序设计中表示取变量在数学中是不成立的,但在程序设计中表示取变量A单单元中的值,将其加元中的值,将其加1后,仍然放回到后,仍然放回到A变量的存储
10、单元变量的存储单元。6、赋值符号赋值符号“=”左边一定只能是变量名左边一定只能是变量名,不能是常量、符号,不能是常量、符号常量、表达式。常量、表达式。例如:例如:z=x+y;是合法的。是合法的。下面的赋值语句都是错的:下面的赋值语句都是错的:5=x;/*左边是常量左边是常量*/sin(x)=20;/*左边是函数调用,即是表达式左边是函数调用,即是表达式*/11第三章第三章 顺序结构程序设计顺序结构程序设计第3章 顺序结构程序设计7赋值符号赋值符号“=”两边的数据类型一般要求应一致两边的数据类型一般要求应一致。如如果果两两边边的的类类型型不不同同,则则以以左左边边变变量量或或对对象象属属性性的的
11、数数据据类类型型为为基基准准,如如果果右右边边表表达达式式结结果果的的数数据据类类型型能能够够转转换换成成左左边边变变量量或或对对象象属属性性的的数数据据类类型型,则则先先强强制制转转换换后后,赋赋值值给给左左边边的的变变量量。若若都都是是数数值值型型,但但精精度度不不同同,强强制制转转换换成成左左边边变变量量的的数数据据精度。精度。例如,有定义例如,有定义intx;floaty;x=3.5415926;/*取其整数取其整数赋值给赋值给x,x的值为的值为3*/y=123;/*将整数将整数123转换实数转换实数123.0,赋值给,赋值给y,执行,执行后,后,y的值是的值是123.0(小数点补六个
12、(小数点补六个0)*/12第三章第三章 顺序结构程序设计顺序结构程序设计第3章 顺序结构程序设计数据输入数据输入/输出的概念输出的概念内内存存RAM从键盘将数据输入从键盘将数据输入从数据文件读入从数据文件读入将数据输出到屏幕将数据输出到屏幕将数据输出到文件将数据输出到文件数据输入数据输入/输出是相对计算机内存输出是相对计算机内存13第三章第三章 顺序结构程序设计顺序结构程序设计第3章 顺序结构程序设计在在语语言言中中所所有有的的数数据据输输入入输输出出都都是是由由库库函函数数完完成成的的。因因此此都都是是函函数数语语句句。在在C语语言言中中使使用用库库函函数数时时,要要使使用用预预编编译译命令
13、命令#include将相关的头文件(将相关的头文件(*.h)包含到用户源文件中。)包含到用户源文件中。使使用用形形式式:#include“头头文文件件”或或#include说明:说明:1.标准输入标准输入/输出头文件是:输出头文件是:stdio.h2.printf()和和scanf()函数不需要头包含文件函数不需要头包含文件3.常用的输入输出函数有:常用的输入输出函数有:printf()scanf()putchar()getchar()14第三章第三章 顺序结构程序设计顺序结构程序设计第3章 顺序结构程序设计四、数四、数据格式输入据格式输入scanf()scanf()函数函数 scanf()的
14、的功功能能:从从键键盘盘上上输输入入数数据据,该该输输入入数数据据按按指指定定的的输输入入格式被赋给相应的输入项。格式被赋给相应的输入项。函数一般函数一般格式格式为:为:scanf(控制字符串控制字符串,输入项地址列表,输入项地址列表);控控制制字字符符串串规规定定数数据据的的输输入入格格式式,其其内内容容由由格格式式说说明明和和普普通通字符字符两部分组成。两部分组成。输输入入项项地地址址列列表表由由一一个个或或多多个个变变量量地地址址组组成成,各各变变量量地地址址之之间用逗号间用逗号“,”分隔。分隔。scanf()中各变量要加地址操作符,表示如下:中各变量要加地址操作符,表示如下:&变量名变
15、量名scanf(%d,%d,%c,&a,&b,&ch);15第三章第三章 顺序结构程序设计顺序结构程序设计第3章 顺序结构程序设计控制字符串的两个组成部分:控制字符串的两个组成部分:格式说明和普通字符格式说明和普通字符。1.1.格式说明格式说明格式说明规定输入项中的变量以何种类型的数据格式被输入,格式说明规定输入项中的变量以何种类型的数据格式被输入,形式是:形式是:%各个格式字符及其意义见表各个格式字符及其意义见表3-3。表3-3输入格式字符格式字符格式字符意义意义举例举例输入形式输入形式d,i输入一个十进制整数输入一个十进制整数scanf(%d,&a)15o输入一个八进制整数输入一个八进制整
16、数scanf(%o,&a)015X(x)输入一个十六进制整数输入一个十六进制整数scanf(%x,&a)0 x15f输入一个小数形式的浮点数输入一个小数形式的浮点数scanf(%f,&x)35680E(e)输入一个指数形式的浮点数输入一个指数形式的浮点数scanf(%e,&x)3.568e+3c输入一个字符输入一个字符scanf(%c,&ch)As输入一个字符串输入一个字符串scanf(%s,ps)ABCD16第三章第三章 顺序结构程序设计顺序结构程序设计第3章 顺序结构程序设计各修饰符是可选的,这些修饰符是:各修饰符是可选的,这些修饰符是:(1 1)字段宽度)字段宽度(2 2)l l和和h
17、h:可与可与d d、o o、x x一起使用,一起使用,l l表示输入数据为长整数,表示输入数据为长整数,h h表示输入数据为短整数。表示输入数据为短整数。(3 3)字符)字符*:表示按规定格式输入但不赋予相应变量,作用是表示按规定格式输入但不赋予相应变量,作用是跳过相应的数据。跳过相应的数据。例:例:scanf(“%3d”scanf(“%3d”,&a)&a);输入;输入123456123456,按宽度输入,按宽度输入一个整数一个整数123123赋给变量赋给变量a a。例:例:scanf(%ld%hd,&x,&i)scanf(%ld%hd,&x,&i);x x按长整型读入,按长整型读入,i i按
18、短按短整数读入。整数读入。例如:例如:scanf(“%d%*d%d”,&x,&y,&z)scanf(“%d%*d%d”,&x,&y,&z);执行该语句,若输入;执行该语句,若输入为为“”结果为结果为x=1x=1,y=3y=3,z z未赋值,被跳过。未赋值,被跳过。17第三章第三章 顺序结构程序设计顺序结构程序设计第3章 顺序结构程序设计/*EX3-11.C*/#includemain()intx,y;scanf(%2d%*3d%4d,&x,&y);/*注意注意%*3d的作用的作用*/printf(nx=%d,y=%dn,x,y);18第三章第三章 顺序结构程序设计顺序结构程序设计第3章 顺序结
19、构程序设计2.2.普通字符普通字符普通字符包括空格、转义字符和可打印字符。普通字符包括空格、转义字符和可打印字符。(1)(1)空格空格在有多个输入项时,一般用在有多个输入项时,一般用空格空格或或回车回车作为分隔符,若以空格作分隔符,作为分隔符,若以空格作分隔符,则当输入项中包含字符类型时,可能产生非预期的结果,则当输入项中包含字符类型时,可能产生非预期的结果,(2)(2)可打印字符可打印字符例如:例如:scanf(%d%c,&a,&ch)scanf(%d%c,&a,&ch);输入输入32 q32 q期望期望a=32a=32,ch=qch=q,但实际上,分隔符空格被读入并赋给,但实际上,分隔符空
20、格被读入并赋给chch。例如:例如:scanf(%dscanf(%d,%d%d,%c%c,&a&a,&b&b,&ch);&ch);当输入为:当输入为:1,2,q 1,2,q 即:即:a=1a=1,b=2b=2,ch=qch=q若输入为若输入为1 2 q 1 2 q 除除a=1a=1正确赋值外,对正确赋值外,对b b与与chch的赋值都不能正确赋的赋值都不能正确赋值。这些不打印字符应是输入数据分隔符,值。这些不打印字符应是输入数据分隔符,scanfscanf在读入时自动去除在读入时自动去除与可打印字符相同的字符。与可打印字符相同的字符。19第三章第三章 顺序结构程序设计顺序结构程序设计第3章 顺
21、序结构程序设计使用使用scanf函数还必须注意以下几点:函数还必须注意以下几点:(1)scanf函数中没有精度控制函数中没有精度控制。如:如:scanf(“%5.2f”,&a);是非法的。是非法的。(2)在在输输入入多多个个数数值值数数据据时时,若若格格式式控控制制串串中中没没有有非非格格式式字字符作输入数据之间的间隔则符作输入数据之间的间隔则可用空格或回车作间隔可用空格或回车作间隔.(3)如如果果格格式式控控制制串串中中有有非非格格式式字字符符则则输输入入时时也也要要输输入入该该非非格式字符。格式字符。例如:例如:scanf(%d,%d,%d,&a,&b,&c);其中用非格式符其中用非格式符
22、“,”作间隔符,故输入时应为:作间隔符,故输入时应为:5,6,7又如:又如:scanf(a=%d,b=%d,c=%d,&a,&b,&c);则输入应为则输入应为a=5,b=6,c=720第三章第三章 顺序结构程序设计顺序结构程序设计第3章 顺序结构程序设计五、五、数据格式输出数据格式输出printf()printf()函数函数 格格式式化化输输出出函函数数printf()功功能能:按按控控制制字字符符串串规规定定的的格格式式,向向输输出设备输出各输出项出设备输出各输出项其基本其基本格式格式为:为:printf(“控制字符串控制字符串”,输出项列表),输出项列表)输输出出项项可可以以是是常常量量、
23、变变量量、表表达达式式,其其类类型型与与个个数数必必须须与与控控制制字字符符串串中中格格式式字字符符的的类类型型、个个数数一一致致、当当有有多多个个输输出出项项时时,各各项之间用逗号分隔。项之间用逗号分隔。控制字符串控制字符串由格式说明和普通字符两部分组成。由格式说明和普通字符两部分组成。21第三章第三章 顺序结构程序设计顺序结构程序设计第3章 顺序结构程序设计1格式说明格式说明一般格式为:一般格式为:%格式字符规定了输出项的输出格式,常用格式字符见表格式字符规定了输出项的输出格式,常用格式字符见表3-2格式字符格式字符意义意义举举 例例输出结果输出结果d d按十进制整数输出按十进制整数输出p
24、rintf(%d,a)printf(%d,a)6565o o按八进制整数输出按八进制整数输出printf(%o,a)printf(%o,a)101101x x 或或X X按十六进制整数输出按十六进制整数输出printf(%x,a)printf(%x,a)4141u u按无符号整数输出按无符号整数输出printf(%u,a)printf(%u,a)6565c c按字符型输出按字符型输出printf(%c,a)printf(%c,a)A As s按字符串输出按字符串输出printf(%s,abc)printf(%s,abc)abcabcf f按浮点型小数输出按浮点型小数输出printf(%f,x)
25、printf(%f,x)3.1415933.141593E(E(或或e)e)按科学计数法输出按科学计数法输出printf(%e,x)printf(%e,x)3.141593e+003.141593e+00g g按按e e和和f f格式中较短的一格式中较短的一种输出种输出printf(%g,x)printf(%g,x)3.1415933.141593表表3-2输出格式字符输出格式字符22第三章第三章 顺序结构程序设计顺序结构程序设计第3章 顺序结构程序设计(1)字段宽度修饰符字段宽度修饰符该该修修饰饰符符用用于于确确定定数数据据输输出出的的宽宽度度、精精度度、小小数数位位数数、对对齐齐方方式式等
26、,用于产生更规范整齐的输出,下表列出了字段宽度修饰符。等,用于产生更规范整齐的输出,下表列出了字段宽度修饰符。修饰符修饰符格式格式说明意义说明意义m%md以以宽宽度度m输输出出整整型型数数,不不足足m时时,左补空格左补空格0m%0md以以宽宽度度m输输出出整整型型数数,不不足足m时时,左补零左补零m.n%m.nf以以宽宽度度m输输出出实实型型小小数数,小小数数位位为为n位位字段宽度修饰符字段宽度修饰符23第三章第三章 顺序结构程序设计顺序结构程序设计第3章 顺序结构程序设计例如:例如:voidvoid main()main()int a=123;int a=123;float x=12.345
27、678;float x=12.345678;printf(%5d,%5.2fn,a,x);printf(%5d,%5.2fn,a,x);printf(%2d,%2.1fn,a,x);printf(%2d,%2.1fn,a,x);程序的运行结果如下:程序的运行结果如下:说明:说明:当当指指定定宽宽度度小小于于数数据据的的实实际际宽宽度度时时,对对整整数数,按按该该数数的的实实际际宽宽度输出。度输出。对对浮浮点点数数,相相应应小小数数位位的的数数四四舍舍五五入入。若若度度宽宽小小于于等等于于浮浮点点数数整整数数部部分分的的宽宽度度,则则该该浮浮点点数数按按实实际际位位数数输输出出,但但小小数数位位
28、数数仍仍遵遵守守宽宽度度修修饰饰符符给给出出的值。的值。24第三章第三章 顺序结构程序设计顺序结构程序设计第3章 顺序结构程序设计(2 2)对齐方式修饰符)对齐方式修饰符一一般般的的输输出出数数据据为为右右对对齐齐格格式式,加加“-”“-”号号,变变为为“左左对对齐齐”方方式。式。例如:例如:voidmain()inti=123;floata=12.34567;printf(%6d%10.4fn,i,a);printf(%-6d%10.4fn,i,a);printf(%6d%-10.4fn,i,a);程序运行结果如图所示:程序运行结果如图所示:25第三章第三章 顺序结构程序设计顺序结构程序设计
29、第3章 顺序结构程序设计(3 3)l l和和h h可可以以与与输输出出格格式式字字符符d d、f f、u u等等连连用用,以以说说明明是是用用longlong型型或或shortshort型型格格式式输输出出数数据,如:据,如:hd hd 短整型短整型lf lf 双精度型双精度型ld ld 长整型长整型hu hu 无符号短整型无符号短整型2 2普通字符普通字符普通字符包括普通字符包括可打印字符可打印字符和和转义字符。转义字符。v可可打打印印字字符符是是一一些些说说明明字字符符,这这些些字符按原样显示在屏幕上字符按原样显示在屏幕上v转转义义字字符符是是不不可可打打印印的的字字符符,它它们们其其实实
30、是是一一些些控控制制字字符符,控控制制产产生生特特殊殊的的输输出出效效果果。常常用用的的有有“t”,“nt”,“n”,其其中中t为为水水平平制制表表符符,作作用用是是跳跳到到下下一一个个水水平平制制表表位位,“n”为为回回车车换换行行符符,遇遇到到“n”,显显示示自自动动换换到到新新的的一行。一行。26第三章第三章 顺序结构程序设计顺序结构程序设计第3章 顺序结构程序设计例如:例如:voidmain()inti=123;longn=456;floata=12.34567,y=20.5;printf(%d=4dta=%7.4fntn=%ldn,i,a,n);printf(y=%5.2f%n,y)
31、;程序运行的输出结果:程序运行的输出结果:27第三章第三章 顺序结构程序设计顺序结构程序设计第3章 顺序结构程序设计【注意注意】(1)输出项)输出项从右向左计算从右向左计算后,按格式说明的顺序、类型和要后,按格式说明的顺序、类型和要求对应输出。格式说明和输出项的个数类型应相同,如不匹配求对应输出。格式说明和输出项的个数类型应相同,如不匹配系统不能正确输出系统不能正确输出格式说明的个数少于输出项个数,多余的输出项将不输格式说明的个数少于输出项个数,多余的输出项将不输出;出;格式说明的个数多于输出项个数,多余的格式说明将输格式说明的个数多于输出项个数,多余的格式说明将输出随机的值。出随机的值。整型
32、数据按整型数据按%f输出或者实型数据按输出或者实型数据按%d输出,均出现输输出,均出现输出错误结果。出错误结果。28第三章第三章 顺序结构程序设计顺序结构程序设计第3章 顺序结构程序设计(2 2)格式字符除)格式字符除X X(表示输出的十六进制数用大写字母输出)(表示输出的十六进制数用大写字母输出)、E E(表示输出的指数(表示输出的指数e e用大写字母用大写字母E E输出)、输出)、G G(表示若选用(表示若选用指数形式输出,则用大写字母指数形式输出,则用大写字母E E输出)外,必须是小写字母。输出)外,必须是小写字母。如如%d%d不能写成不能写成%D%D。(3)若想输出字符)若想输出字符“
33、%”,则在格式字符串中用连续两个,则在格式字符串中用连续两个%表示。如:表示。如:printf(“%f%”,1.0/4);则输出:则输出:0.250000%【注意注意】29第三章第三章 顺序结构程序设计顺序结构程序设计第3章 顺序结构程序设计试编写求梯形面积的程序,数据由键盘输入。试编写求梯形面积的程序,数据由键盘输入。分析:设梯形上底为分析:设梯形上底为A A,下底为,下底为B B,高为面职为,则,高为面职为,则S=(AS=(AB)*B)*22程序如下:程序如下:voidmain()floata,b,h,s;printf(pleaseinputa,b,h:);scanf(%f%f%f,&a,
34、&b,&h);s=0.5*(a+b)*h;printf(a=%6.3fb=%6.3fh=%6.3fn,a,b,h);printf(s=%8.4fn,s);30第三章第三章 顺序结构程序设计顺序结构程序设计第3章 顺序结构程序设计六、字符数据非格式输入六、字符数据非格式输入/输出函数输出函数 1字符输入函数字符输入函数getchar()getchar()函数的函数的格式格式:getchar();getchar()函函数数的的作作用用:从从系系统统的的输输入入设设备备键键盘盘输输入入一一个个字字符符。从功能角度来看,从功能角度来看,scanf()函数可以完全代替函数可以完全代替getchar()函
35、数。函数。例:例:char c1;char c1;则则c1=getchar();c1=getchar();可使用等价语句:可使用等价语句:scanf(%c,&c1);scanf(%c,&c1);31第三章第三章 顺序结构程序设计顺序结构程序设计第3章 顺序结构程序设计说明:说明:(1)getchar()函函数数一一次次只只能能返返回回一一个个字字符符,即即调调用用一一次次只只能能输入一个字符。输入一个字符。(2 2)程程序序第第一一次次执执行行getchar()函函数数时时,系系统统暂暂停停等等待待用用户户输输入入,直直到到按按回回车车键键结结束束,如如果果用用户户输输入入了了多多个个字字符符
36、,则则该该函函数数只只取取第第一一个个字字符符,多多余余的的字字符符(包包括括换换行行符符nn)存存放放在在键键盘盘缓缓冲冲区区中中,如如果果程程序序再再一一次次执执行行getchar()函函数数,则则程程序序就就直直接接从从键键盘盘缓缓冲冲区区读读入入,直直到到读读完完后后,如如果果还还有有getchar()函数才会暂停,再次等待用户输入。函数才会暂停,再次等待用户输入。32第三章第三章 顺序结构程序设计顺序结构程序设计第3章 顺序结构程序设计2字符输出函数字符输出函数putchar()putchar()函数的格式:函数的格式:putchar(ch);该该函函数数的的功功能能是是向向显显示示
37、器器终终端端输输出出一一个个字字符符。其其中中,ch可可以是一个字符变量或常量,也可以是一个转义字符。以是一个字符变量或常量,也可以是一个转义字符。说明:说明:(1)putchar()函函数数只只能能用用于于单单个个字字符符的的输输出出,且且一一次次只只能能输出一个字符。输出一个字符。(2)从从功功能能角角度度printf()函函数数可可以以完完全全代代替替putchar()函函数数,其等价形式:其等价形式:printf(%c,ch)。33第三章第三章 顺序结构程序设计顺序结构程序设计第3章 顺序结构程序设计例输入一个字符,回显该字符并输出其例输入一个字符,回显该字符并输出其ASCII码值。码
38、值。#includevoidmain()charch1,ch2;ch1=getchar();ch2=getchar();putchar(ch1);putchar(ch2);printf(%cn%c,ch1,ch2);程序运行后,若程序运行后,若ch1、ch2分别分别得到字符得到字符A、B,应输入,应输入AB,如果输入,如果输入A,则实,则实际上际上ch1被赋值为字符被赋值为字符A,ch2被赋值为字符换行符被赋值为字符换行符n34第三章第三章 顺序结构程序设计顺序结构程序设计第3章 顺序结构程序设计【例【例3-163-16】从键盘上输入一个英文小写字母,编程输出该从键盘上输入一个英文小写字母,编
39、程输出该字母所对应的字母所对应的ASCIIASCII码和所对应的大写字母码和所对应的大写字母【分析分析】在】在ASCIIASCII字符集中,大写字母字符集中,大写字母AZAZ是连续的(是连续的(ASCIIASCII值值从从65906590),小写字母),小写字母azaz也是连续的(也是连续的(ASCIIASCII值从值从9712297122)。)。因此每对字母的因此每对字母的ASCIIASCII码值差是相同的,都是码值差是相同的,都是3232,即,即a-Aa-A、b-b-BB、c-Cc-C、z-Zz-Z都是都是3232。所以将小写字母的。所以将小写字母的ASCIIASCII码值减码值减去去3232,则得到的是所对应的大写字母,则得到的是所对应的大写字母ASCIIASCII码值。同理,将大码值。同理,将大写字母的写字母的ASCIIASCII码值加上码值加上3232,则得到的是所对应的小写字母,则得到的是所对应的小写字母ASCIIASCII码值。码值。35第三章第三章 顺序结构程序设计顺序结构程序设计第3章 顺序结构程序设计上机内容:上机内容:第第2 2章课后习题章课后习题(其中读程序写运行结果题要上机验证)(其中读程序写运行结果题要上机验证)P44 P44 例例3-153-15,例,例3-173-17,例,例3-183-18,例例3-19 3-19,例例3-203-20
限制150内