《谢丽聪老师C语言课件-4顺序程序设计.ppt》由会员分享,可在线阅读,更多相关《谢丽聪老师C语言课件-4顺序程序设计.ppt(46页珍藏版)》请在金锄头文库上搜索。
1、第四章顺序程序设计 4.1 4.1 语句概述语句概述4.24.2 赋值语句赋值语句4.34.3 数据输入输出概念数据输入输出概念4.44.4 格式输出函数格式输出函数4.54.5 字符输出函数字符输出函数4.64.6 格式输入函数格式输入函数4.74.7 字符输入函数字符输入函数4.1 4.1 语句概述语句概述 程序的结构:程序的结构: C语语句可分句可分为为以下五以下五类类:1)表达式)表达式语语句句2)函数)函数调调用用语语句句3)控制)控制语语句句4)复合)复合语语句句5)空语句)空语句 程序的程序的执行部分执行部分是由语句组成是由语句组成的。的。程序的功能也是程序的功能也是由执行语句实
2、现由执行语句实现的。的。4.1.1表达式语句表达式语句表表达达式式语语句句由由表表达达式式加加上上分分号号“;”组组成成。执执行行表达式表达式语语句就是句就是计计算表达式的算表达式的值值。其一般形式其一般形式为为:表达式表达式;例如:例如:x=y+z;y+z;i+;赋值语句赋值语句赋值语句赋值语句加加加加法法法法运运运运算算算算语语语语句句句句,但但但但计计计计算算算算结结结结果果果果不不不不能能能能保保保保留留留留,无实际意义无实际意义无实际意义无实际意义自增自增自增自增1 1语句,语句,语句,语句,i i值增值增值增值增1 14.1.2函数调用语句函数调用语句函函数数调调用用语语句句由由函
3、函数数名名、实实际际参参数数加加上上分分号号“;”组组成成。执执行行函函数数语语句句就就是是调调用用函函数数体体(在后面函数中再在后面函数中再详细详细介介绍绍)。其一般形式其一般形式为为:函数名函数名(实际实际参数表参数表);例如:例如:printf(CProgram);调用库函数,输出字符串。调用库函数,输出字符串。 4.1.3控制语句控制语句 控控制制语语句句用用于于控控制制程程序序的的流流程程,以以实实现现程序的各种程序的各种结结构方式。可分成以下三构方式。可分成以下三类类:1)条条件件判判断断语语句句:ifelse语语句句、switch语语句;句;2)循循环环执执行行语语句句:do w
4、hile语语句句、while语语句、句、for语语句;句;3)转向语句:转向语句:break语句、语句、goto语句、语句、continue语句、语句、return语句。语句。 4.1.4复合语句复合语句复复合合语语句句把把多多个个语语句句用用括括号号括括起起来来组组成成的的一一个个语语句句称称复复合合语语句句。在在程程序序中中应应把把复复合合语语句句看成是看成是单单条条语语句,而不是多条句,而不是多条语语句句。例如:例如:x=y+z;a=b+c;printf(“%d%d”,x,a);是是是是一一一一条条条条复复复复合合合合语语语语句。句。句。句。复合语句内的各条语句都必须以分复合语句内的各条
5、语句都必须以分复合语句内的各条语句都必须以分复合语句内的各条语句都必须以分号号号号“ “;” ”结尾,在括号结尾,在括号结尾,在括号结尾,在括号“ “”外外外外不能加分号。不能加分号。不能加分号。不能加分号。4.1.5空语句空语句空空语语句句只只有有分分号号“;”组组成成的的语语句句称称为为空空语语句句。空空语语句是什么也不句是什么也不执执行的行的语语句。句。例如例如while(getchar()!=n);空语句空语句本语句的功能是,只要从键本语句的功能是,只要从键盘输入的字符不是回车则盘输入的字符不是回车则重新输入。重新输入。4.24.2 赋值语句赋值语句赋赋值值语语句句是是由由赋赋值值表表
6、达达式式再再加加上上分分号号构构成成的表达式的表达式语语句。句。其一般形式其一般形式为为:变变量量=表达式;表达式;赋值语句的功能和特点与赋赋值语句的功能和特点与赋值表达式相同。是程序中值表达式相同。是程序中使用最多的语句之一。使用最多的语句之一。在赋值语句的使用中需要注意以下几点:在赋值语句的使用中需要注意以下几点:1、赋值表达式的嵌套:赋值表达式的嵌套:赋赋 值值 符符 右右 边边 的的 表表 达达 式式 又又 是是 一一 个个 赋赋 值值 表表 达达 式式 : 变量变量=(变量变量=表达式表达式);展开之后的一般形式展开之后的一般形式为为:变量变量=变量变量=表达式表达式;例如:例如:a
7、=b=c=d=e=5;按照按照赋值赋值运算符的右接合性,等效于:运算符的右接合性,等效于:e=5;d=e;c=d;b=c;a=b;2 2、变变变变量量量量说说说说明中明中明中明中给变给变给变给变量量量量赋赋赋赋初初初初值值值值和和和和赋值语赋值语赋值语赋值语句的区句的区句的区句的区别别别别: :给给变变量量赋赋初初值值是是变变量量说说明明的的一一部部分分,赋赋初初值值后后的的变变量量与与其其后后的的其其它它同同类类变变量量之之间间仍仍必必须须用用逗逗号号间间隔隔,而而赋值语赋值语句句则则必必须须用分号用分号结结尾。尾。例如:例如:inta=5,b,c;3 3、在在在在变变变变量量量量说说说说明
8、中,不允明中,不允明中,不允明中,不允许连续给许连续给许连续给许连续给多个多个多个多个变变变变量量量量赋赋赋赋初初初初值值值值: :如下述如下述说说明是明是错误错误的:的:inta=b=c=5;而赋值语句允许连续赋值:而赋值语句允许连续赋值:a=b=c=5;4、赋值赋值表达式和表达式和赋值语赋值语句的区句的区别别:赋值赋值表达式是一种表达式,它可以出表达式是一种表达式,它可以出现现在任何允在任何允许许表达式出表达式出现现的地方,而的地方,而赋值语赋值语句句则则不能。不能。if(x=y+5)0)z=x;语语句的功能是,若表达式句的功能是,若表达式x=y+5大于大于0则则z=x。if(x=y+5;
9、)0)z=x;因因为为x=y+5;是是语语句,不能出句,不能出现现在表达式中。在表达式中。合法合法非法非法4.3 4.3 数据输入输出概念数据输入输出概念1)输输入入输输出出是是从从标标准准输输入入设设备备输输入入或或向向标标准准输输出出设备输设备输出数据。出数据。2)在在语语言言中中,所所有有的的数数据据输输入入输输出出都都是是由由库库函数完成的,都是函数完成的,都是函数函数语语句句。3)使用)使用语语言言库库函数函数时时,要用,要用预编译预编译命令命令:#include或或#include”stdio.h”4)考考虑虑到到printf和和scanf函函数数使使用用频频繁繁,系系统统允允许许
10、在使用在使用这这两个函数两个函数时时可不加可不加#include或或#include”stdio.h”4.4 4.4 printfprintf 函数(格式输出函数)函数(格式输出函数)4.4.1printf()功能:功能:按按格格式式控控制制所所指指定定的的形形式式(向向用用户户屏屏)输输出出输出项的值。输出项的值。C不提供输入输出语句,不提供输入输出语句,只调用只调用printf()函数函数例:例:voidmain()inta,b,sum;a=123;b=456;sum=a+b;printf(”a=%d,b=%d,c=%dn”,a,b,sum);结果结果:a=123,b=456,c=579原
11、样原样原样原样输出输出输出输出格式控制符与输出格式控制符与输出格式控制符与输出格式控制符与输出项表列一一对应项表列一一对应项表列一一对应项表列一一对应4.4.2格式:格式:printfprintf(格式控制,输出项表列格式控制,输出项表列格式控制,输出项表列格式控制,输出项表列) )一、输出项表列:一、输出项表列:由由一一个个或或多多个个输输出出项项组组成成(若若多多个个、它它们们之之间间用用逗逗号号隔隔开开),常常量量、变变量量、函函数数、表表达达式式、字字符符数数组组名等均可做输出项。名等均可做输出项。二、格式控制:二、格式控制:字字符符串串常常量量或或字字符符数数组组名名。其其中中字字符
12、符可可由由下下面面3类类组成组成:l l普通字符(原样输出)普通字符(原样输出)普通字符(原样输出)普通字符(原样输出)l l转义字符(输出所表示的字符或实现其功能)转义字符(输出所表示的字符或实现其功能)转义字符(输出所表示的字符或实现其功能)转义字符(输出所表示的字符或实现其功能)l l格式说明:控制对应输出项的输出形式格式说明:控制对应输出项的输出形式格式说明:控制对应输出项的输出形式格式说明:控制对应输出项的输出形式a=%dn#includevoidmain()intk=68;floatt=56.3;printf(”%dt%dt%fn”,k,k+123,sqrt(t);结果:结果:68
13、1917.503333转义字符转义字符转义字符转义字符, ,跳到下一跳到下一跳到下一跳到下一区区区区9 91 17 7转义字符转义字符转义字符转义字符, ,回车回车回车回车格式控制格式控制格式控制格式控制符符符符, ,对应对应对应对应输输输输出格式出格式出格式出格式4.4.3格式说明:格式说明:控控制制对对应应输输出出项项的的输输出出形形式式(每每个个格格式式说说明明按按先先后后顺顺序序与与输输出出项项一一一一对对应应),输输出出结结果果中格式说明被对应的输出项值取代。中格式说明被对应的输出项值取代。(1)格式说明基本形式:格式说明基本形式:%d(或或%i)、%o、%x(或或%X)、%u、%c
14、对应的输出项类型为对应的输出项类型为字符型字符型字符型字符型和和整型整型整型整型。带符号带符号带符号带符号十进制十进制十进制十进制带符号带符号带符号带符号八进制八进制八进制八进制带符号带符号带符号带符号十六进十六进十六进十六进制制制制无符号无符号无符号无符号十进制十进制十进制十进制字字字字符符符符例例:voidmain()inta=65;charc=!;printf(”%d,%cn”,a,a);printf(”c=%c,ItsASCIIcode=%dn”,c,c);结果:结果:65,Ac=!,ItsASCIIcode=33例例:voidmain()inta=3,m=0x15a,k=346;pr
15、intf(”%d,%u,%x,%o”,a,a,a,a);printf(”%d,%xn”,m,k);结果:结果:3,65533,fffd,1777753,65533,fffd,177775346,fea6346,fea6(65536-3)(65536-3)1010 十进制无符号十进制无符号十进制无符号十进制无符号( (fffdfffd) )1616 十六进制十六进制十六进制十六进制(177775)(177775)8 8 八进制八进制八进制八进制 (-15a)(-15a)1616 (-346)(-346)1010 与与与与a a转转转转换相同换相同换相同换相同%o%o、%x(%x(或或或或%X)%
16、X)、%u%u按按按按unsignedunsigned型输出,且不带型输出,且不带型输出,且不带型输出,且不带前导符号前导符号前导符号前导符号“ “o”o”和和和和“ “x”x”%s对应的输出项为对应的输出项为字符串字符串或或字符数组字符数组例:例:voidmain()charname=”Jone”;printf(”%s%s%cn”,”Whois”,name,?);结果:结果:WhoisJone?字符串字符串字符串字符串字符字符字符字符%f、%e(或或%E)、%g(或或%G)对应对应floatfloat型输出项型输出项型输出项型输出项%lf、%le(或或%E)、%lg(或或%G)对应对应dou
17、bledouble型输出项型输出项型输出项型输出项%f小数形式(小数形式(6 6位小数位小数位小数位小数)%e(或或%E)标标准准化化指指数数形形式式(尾尾尾尾数数数数的的的的小小小小数数数数点点点点前前前前有有有有一一一一位且只有一位非零、位且只有一位非零、位且只有一位非零、位且只有一位非零、5 5位小数位小数位小数位小数)%g(或或%G)让让系系统统自自动动选选取取%f(去去掉掉小小数数点点后后多多余余的零的零)或或%e中较短者中较短者6 6位有效位有效位有效位有效例:例:main()floatf;f=123.46;printf(”%f,%e,%gn”,f,f,f)结果:结果: 123.4
18、59999,1.23460e+02,123.46123.459999,1.23460e+02,123.46数字数字数字数字(2)在格式说明基本形式中加附加格式说明符在格式说明基本形式中加附加格式说明符若若输输出出项项为为longlong型型或或unsignedunsignedlonglong型型,则则用用下下面格式说明控制:面格式说明控制:%ld、%lx、%lo、%lu若若输输出出项项为为shortshort型型或或shortshort型型,则则用用下下面面格格式式说说明明控制:控制:%hd、%hx、%ho、%hu在在格格式式说说明明%后后加加一一个个整整数数m指指定定宽宽度度为为|m|m|位
19、位:若实际需要的若实际需要的位数位数位数位数|m|m|位位位位、则此、则此mm失效失效失效失效若若mm为无符号整数为无符号整数为无符号整数为无符号整数,则,则左边填空格左边填空格左边填空格左边填空格若若mm为负整数为负整数为负整数为负整数,则,则右边填空格右边填空格右边填空格右边填空格若若mm为为为为带带带带正正正正号号号号整整整整数数数数,则则左左左左边边边边填填填填空空空空格格格格且且且且所所所所输输输输出出出出的的的的数数数数据据据据前有正负号前有正负号前有正负号前有正负号例:例:voidmain()inta=12;longb=12345678;printf(”%6dn”,a);prin
20、tf(”%-6dn”,a);printf(”%+6dn”,a);printf(”%12ldn”,b);printf(”%+8sn”,”book”);1 1 2 21 1 2 2+ 1 1 2 21 2 3 4 5 6 7 8b o o k字符串字符串字符串字符串负数本身肯定带负符号负数本身肯定带负符号负数本身肯定带负符号负数本身肯定带负符号, ,带正号必须这样写带正号必须这样写带正号必须这样写带正号必须这样写在在%s中中间间插插入入m.n:m含含义义同同,此此m可可省省略略、若若省省略略则则m=n。n为为无无符符号号整整数数、表表示示只输出对应字符串中左边只输出对应字符串中左边n个字符。个字符
21、。例:例:voidmain()()printf(”%8.3sn”,”book”);printf(”%.3sn”,”book”); 输出:输出:b o ob o o宽度就是宽度就是宽度就是宽度就是3 3在在%f、%e(或或%E) 、%g (或或%G) 中中间间插插入入m.n:m含含义同义同,此,此m可省略、若省略则可省略、若省略则m=n。n为无符号整数、表示为无符号整数、表示n位小数,其余四舍五位小数,其余四舍五例例8:printf(”a=%+10.3lfn”,123.45678); 输出:输出:输出:输出:注:注:注:注:若若若若与与与与中中中中mm为正整数且为正整数且为正整数且为正整数且mm
22、前加前加前加前加0 0,则输出,则输出,则输出,则输出的左边空位填的左边空位填的左边空位填的左边空位填0 0例例9:printf(”a=%+010.3lfn”,123.45678); 输出:输出:输出:输出:a =+ 1 2 3 .4 5 7a = + 0 0 1 2 3 .4 5 7四舍五入四舍五入四舍五入四舍五入在在 %x、 %o、 %lx、 %lo 的的 %后后 加加#输输 出出 带带 前前 导导 的的八进制或十六进制数据八进制或十六进制数据例例10:voidmain()intx=7281;printf(”%o,%#on”,x,x);printf(”%x,%#xn”,x,x);输出:输出
23、:16161,0161611c71,0x1c71注注:格格式式控控制制中中,连连续续的的两两个个%表表示示一一个个%(不不是格式说明符)是格式说明符)(16161)(16161)8 8(1c71)(1c71)16164.54.5putcharputchar 函数(字符输出函数)函数(字符输出函数) 格式格式格式格式: : : : putcharputchar ( ( 一个整形或字符型输出项一个整形或字符型输出项 ) ) 功功功功能能能能: : : : 同同 printfprintf ( ( ”%c”, ”%c”, 输输出出项项 ),),在在显显示示器器上上 输出单个字符输出单个字符输出单个字符
24、输出单个字符。例如:例如:例如:例如:putchar(Aputchar(A); ); (输出大写字母输出大写字母A A) putchar(xputchar(x); ); (输出字符变量输出字符变量x x的值)的值) putchar(putchar(101101); ); (也是输出字符也是输出字符A A) putchar(nputchar(n); ); (换行)换行)对对对对控控控控制制制制字字字字符符符符则则则则执执执执行行行行控控控控制制制制功功功功能能能能,不不不不在在在在屏屏屏屏幕幕幕幕上上上上显显显显示示示示。使使使使用用用用本本本本函函函函数数数数前前前前必必必必须须须须要要要要用
25、用用用文文文文件件件件包包包包含含含含命命命命令令令令:#include#include或或或或 #include“#include“stdio.hstdio.h” ”例:例:#include#include voidmain()charc=A;putchar(66);putchar(53);putchar(c+2);putchar(n);putchar(7);putchar(n);结果:结果:B+C7B B+C C7 7换行换行换行换行换行换行换行换行4.64.6scanfscanf 函数(格式输入函数)函数(格式输入函数)4.6.1格格式式scanf(格格式式控控制制,输输入入项项地地址址
26、表表列列)地址:地址:1)变量名前加)变量名前加&变量在内存中的地址;变量在内存中的地址;2)数组名)数组名数组在内存中的首地址。数组在内存中的首地址。例如:例如:&a,&b分分别别表示表示变变量量a和和变变量量b的地址。的地址。这这个地址就是个地址就是编译编译系系统统在内存中在内存中给给a,b变变量分配的地址。量分配的地址。一一个个或或多多个个地地址址组组成成(若若多多个个之之间间用逗号隔开用逗号隔开)变变量的地址和量的地址和变变量量值值的关系如下:的关系如下:1、在在赋值赋值表达式中表达式中给变给变量量赋值赋值:如:如:a=5672、scanf函函数数在在本本质质上上也也是是给给变变量量赋
27、赋值值,但但要求写要求写变变量的地址量的地址:如如:scanf(”%d”,&a);3、这这两两者者在在形形式式上上是是不不同同的的。&是是一一个个取取地地址址运运算算符符,&a是是一一个个表表达达式式,其其功功能能是是求求变变量的地址。量的地址。变变量名量名,不不能写地址能写地址变变量量的的值值变变量量a的地址的地址4.6.2功功能能:系系统统切切换换到到用用户户屏屏、要要求求并并等等待待用用户户按按格格格格式式式式控控控控制制制制形形形形式式式式和和和和顺顺顺顺序序序序输输入入要要赋赋给给输输入入项项的的常常常常量量量量,按按回车键结束,系统立即把所输入的赋给相应输入项。回车键结束,系统立即
28、把所输入的赋给相应输入项。它它是是一一个个标标准准库库函函数数,与与printf函函数数相相同同,使使用用scanf函数之前不必包含函数之前不必包含stdio.h文件。文件。4.6.3注注意意:格格式式控控制制字字符符串串的的作作用用与与printf函函数数相相同同,但但不不不不能能能能显显显显示示示示非非非非格格格格式式式式字字字字符符符符串串串串,也也就就是是不不不不能能能能显显显显示示示示提提提提示示示示字字字字符符符符串串串串。地地地地址址址址表表表表列列列列中中中中给给给给出出出出各各各各变变变变量量量量的的的的地地地地址址址址。地地地地址址址址是是是是由地址运算符由地址运算符由地址
29、运算符由地址运算符“ “&”&”后跟后跟后跟后跟变变变变量名量名量名量名组组组组成的。成的。成的。成的。不能是符号常量,不加单不能是符号常量,不加单撇号或双撇号,撇号或双撇号,直接输入直接输入一定一定要有要有例:例:voidmain()inta,b,sum;scanf(”%d,%d”,&a,&b);sum=a+b;printf(“sum=%dn”,sum);执行程序时应输入执行程序时应输入123,456 如果要输入如果要输入a=123;b=456;没有输入任何数据直接回车,结果出没有输入任何数据直接回车,结果出不来,上机要带作业及数据来不来,上机要带作业及数据来4.6.4使用使用scanf函数
30、还必须注意以下几点:函数还必须注意以下几点:1) scanf函函 数数 中中 没没 有有 精精 度度 控控 制制 , 如如 :scanf(%5.2f,&a);是是非非法法的的。不不能能用用此此语语句句输输入小数入小数为为2位的位的实实数。数。2)scanf中中要要求求给给出出变变量量地地址址,如如给给出出变变量量名名则则会会出出错错。如如scanf(%d,a);是是非非法法的,的,应应改改为为scnaf(%d,&a)。3)在在输输入入多多个个数数值值数数据据时时,若若格格式式控控制制串串中中没没有有非非格格式式字字符符作作输输入入数数据据之之间间的的间间隔隔则则可可用用空空格格,TAB或或回回
31、车车作作间间隔隔。C编编译译在在碰碰到到这些符号这些符号即即认为该认为该数据数据结结束。束。4)在在输输入入字字符符数数据据时时,若若格格式式控控制制串串中中无无非非格格式式字字符符,则则认认为为所所有有输输入入的的字字符符均均为为有有效字符。如:效字符。如:scanf(%c%c%c,&a,&b,&c);输输入入为为:则赋值则赋值:如果在格式控制中加入空格作如果在格式控制中加入空格作为间为间隔,如隔,如:scanf(%c%c%c,&a,&b,&c);输输入入时时数据之数据之间间可加空格。可加空格。def bcabcad ef bca空格,输入多少个无关空格,输入多少个无关空格,输入多少个无关空
32、格,输入多少个无关def 5)如如果果格格式式控控制制串串中中有有非非格格式式字字符符则则输输入入时时也要也要输输入入该该非格式字符。非格式字符。scanf(%d,%d,%d,&a,&b,&c);输输入入时应为时应为:scanf(a=%d,b=%d,c=%d,&a,&b,&c);则输则输入入应为应为:非格式符非格式符“,”作作间间隔符隔符5 , 6,7 a=5,b=6,c=7 “a=a=a=a=“、” ” , ,” ”、“ “b=“b=“、 ”c=c=c=c=“为为为为间间间间隔隔隔隔符符符符6)如如输输入的数据与入的数据与输输出的出的类类型不一致,型不一致,scanf(a=%d,b=%d,c
33、=%d,&a,&b,&c);输输入:入:虽虽然然编译编译能能够够通通过过,但,但结结果将不正确。果将不正确。scanf(”%d:%d”,&a,&b);应输入:应输入:a=5;b=6;c=7 123 : 456 scanf(”%d,%dn”,&a,&b);应输入:应输入:scanf(”%d%d”,&a,&b);应输入:应输入:123,456 1 按格式控制按格式控制按格式控制按格式控制符输入符输入符输入符输入123456 数据分割,多少数据分割,多少数据分割,多少数据分割,多少个无关个无关个无关个无关scanf(”%d”,&a);scanf(”%d”,&b);应输入:应输入:或输入:或输入:sc
34、anf(”%dn”,&a);scanf(”%d”,&b);应输入:应输入:或输入:或输入:123 456 123456 多少个无关多少个无关多少个无关多少个无关123 456 123456 多少个无关多少个无关多少个无关多少个无关voidmain()chara,b;scanf(%c%c,&a,&b);printf(%c%cn,a,b); scanf(%c%c,&a,&b);printf(n%c%cn,a,b); 输输入:入: 显显示:示: 输输入:入:显显示:示:MN MMN M N4.6.5说明说明1.格格式式控控制制中中不不包包含含附附加加格格式式说说明明符符m.n,一一般般不不包包含转义
35、字符(含转义字符(nn可以可以可以可以)。)。2.double型型输输入入项项必必须须使使用用如如下下格格式式说说明明:%lf、%le、%lg(输出一样输出一样输出一样输出一样)3.* *在在格格式式说说明明%后后插插入入* *表表示示跳跳过过它它所所指指定定的的列列数,如:数,如: scanf(”%dscanf(”%d%*5%dn”,&a,&b);%*5%dn”,&a,&b);输入输入:结果结果:用用用用%f只能输出只能输出只能输出只能输出6 6位小数,输出位小数,输出位小数,输出位小数,输出1010位用位用位用位用%20.10lf%20.10lf1 2 39 98 87 76 65 54
36、5 6 a值:值:123b值:值:456如果只有如果只有如果只有如果只有%*d%*d则表示本输入项再度入后不赋给相应的变量则表示本输入项再度入后不赋给相应的变量则表示本输入项再度入后不赋给相应的变量则表示本输入项再度入后不赋给相应的变量voidmain()inta;scanf(%d,&a);printf(%ld,a); 输输输输入:入:入:入:123123 显显显显示:示:示:示:80610518061051main()longa;scanf(%ld,&a);printf(%ld,a); 输输输输入:入:入:入:12345678901234567890 显显显显示:示:示:示:12345678
37、9012345678904、在格式说明基本形式中加附加格式说明符在格式说明基本形式中加附加格式说明符l若若输输出出项项为为long型型或或unsignedlong型,则型,则必须必须用下面格式说明控制:用下面格式说明控制:%ld、%lx、%lo、%lu h若若输输出出项项为为short 型型或或unsigned short型,型,则则可用可用下面格式说明控制:下面格式说明控制:%hd、%hx、%ho、%hu 。4.74.7getchargetchar 函数(字符输入函数)函数(字符输入函数)形式形式:getchar()功功能能:c=getchar();同同scanf(”%c”,&c);注注 意
38、意 : 需需 在在 文文 件件 开开 头头 加加 #include”stdio.h”输入一个字符,赋给变量输入一个字符,赋给变量输入一个字符,赋给变量输入一个字符,赋给变量c c例例:#include#include voidmain()chara,b,c;a=getchar();b=getchar();c=getchar();putchar(a);putchar(b);putchar(c);输入:输入:$ $# a ab bc c结果:结果:$ $#输入:输入:$ $ # a ab bc c结果:结果: $ $#换行换行使用使用getchar函数函数还应还应注意几个注意几个问题问题:1)getchar函函数数只只能能接接受受单单个个字字符符,输输入入数数字字也也按按字字符符处处理理。输输入入多多于于一一个个字字符符时时,只只接收第一个字符。接收第一个字符。2)使用本函数前必)使用本函数前必须须包含文件包含文件“stdio.h”。3)在在TC屏屏幕幕下下运运行行含含本本函函数数程程序序时时,将将退退出出TC屏屏幕幕进进入入用用户户屏屏幕幕等等待待用用户户输输入入。输输入完入完毕毕再返回再返回TC屏幕。屏幕。