《谢丽聪老师C语言顺序程序设计.pptx》由会员分享,可在线阅读,更多相关《谢丽聪老师C语言顺序程序设计.pptx(46页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、会计学1谢丽聪老师谢丽聪老师C语言顺序程序设计语言顺序程序设计4.14.1 语句概述语句概述 程序的结构:程序的结构:第1页/共46页C C语句可分为以下五类:语句可分为以下五类:语句可分为以下五类:语句可分为以下五类:1 1)表达式语句)表达式语句)表达式语句)表达式语句2 2)函数调用语句)函数调用语句)函数调用语句)函数调用语句3 3)控制语句)控制语句)控制语句)控制语句4 4)复合语句)复合语句)复合语句)复合语句5 5)空语句)空语句)空语句)空语句 程序的执行部执行部分是由语句组分是由语句组成成的。程序的程序的功能也是由执功能也是由执行语句实现行语句实现的。第2页/共46页4.1
2、.1 4.1.1 表达式语句表达式语句表达式语句表达式语句表表达达式式语语句句由由表表达达式式加加上上分分号号“;”组组成成。执执行行表表达达式式语语句句就就是是计计算表达式的值。算表达式的值。其一般形式为:其一般形式为:表达式表达式;例如:例如:x=y+z;y+z;i+;赋值语句赋值语句加法运算语句,但计算结果不能保加法运算语句,但计算结果不能保留,无实际意义留,无实际意义自增自增1 1语句,语句,i i值增值增1 1第3页/共46页4.1.2 4.1.2 函数调用语句函数调用语句函数调用语句函数调用语句函函数数调调用用语语句句由由函函数数名名、实实际际参参数数加加上上分分号号“;”组组成成
3、。执执行行函函数数语语句句就就是是调调用用函函数数体体(在在后后面面函数中再详细介绍函数中再详细介绍)。其一般形式为:其一般形式为:函数名函数名(实际参数表实际参数表);例如:例如:printf(C Program);调用库函数,输出字符串。调用库函数,输出字符串。第4页/共46页4.1.3 4.1.3 控制语句控制语句控制语句控制语句 控控控控制制制制语语语语句句句句用用用用于于于于控控控控制制制制程程程程序序序序的的的的流流流流程程程程,以以以以实实实实现现现现程程程程序序序序的的的的各各各各种种种种结结结结构构构构方方方方式式式式。可可可可分分分分成成成成以以以以下下下下三三三三类:类:
4、类:类:1 1)条条条条件件件件判判判判断断断断语语语语句句句句:if if elseelse语语语语句句句句、switchswitch语语语语句;句;句;句;2 2)循循循循环环环环执执执执行行行行语语语语句句句句:do do whilewhile语语语语句句句句、whilewhile语句、语句、语句、语句、forfor语句;语句;语句;语句;3 3)转向语句:转向语句:转向语句:转向语句:breakbreak语句、语句、语句、语句、gotogoto语句、语句、语句、语句、continuecontinue语句、语句、语句、语句、returnreturn语句。语句。语句。语句。第5页/共46页
5、4.1.4 4.1.4 复合语句复合语句复合语句复合语句复复合合语语句句把把多多个个语语句句用用括括号号括括起起来来组组成成的的一一个个语语句句称称复复合合语语句句。在在程程序序中中应应把把复复合合语语句句看看成成是是单单条语句,而不是多条语句条语句,而不是多条语句。例如:例如:x=y+z;a=b+c;printf(“%d%d”,x,a);是一条复合是一条复合语句。语句。复合语句内的各条语句都必须以分复合语句内的各条语句都必须以分号号“;”结尾,在括号结尾,在括号“”外外不能加分号。不能加分号。第6页/共46页4.1.5 4.1.5 空语句空语句空语句空语句空空语语句句只只有有分分号号“;”组
6、组成成的的语语句句称称为为空空语语句句。空空语语句句是是什什么么也也不执行的语句。不执行的语句。例如例如 while(getchar()!=n);空语句空语句本语句的功能是,只要从键本语句的功能是,只要从键盘输入的字符不是回车则盘输入的字符不是回车则重新输入。重新输入。第7页/共46页4.24.2 赋值语句赋值语句 赋赋值值语语句句是是由由赋赋值值表表达达式式再再加加上分号构成的表达式语句。上分号构成的表达式语句。其一般形式为:其一般形式为:变量变量=表达式;表达式;赋值语句的功能和特点与赋赋值语句的功能和特点与赋值表达式相同。是程序中值表达式相同。是程序中使用最多的语句之一。使用最多的语句之
7、一。第8页/共46页在赋值语句的使用中需要注意以下几点:在赋值语句的使用中需要注意以下几点:在赋值语句的使用中需要注意以下几点:在赋值语句的使用中需要注意以下几点:1、赋值表达式的嵌套:赋值表达式的嵌套:赋赋值值符符右右边边的的表表达达式式又又是是一一个个赋赋值值表表达达式式:变变量量=(变变量量=表达式表达式);展开之后的一般形式为:展开之后的一般形式为:变量变量=变量变量=表达式表达式;例如:例如:a=b=c=d=e=5;按按照照赋赋值值运运算算符符的的右右接接合合性性,等等效效于:于:e=5;d=e;c=d;b=c;a=b;第9页/共46页2 2、变量说明中给变量赋初值和赋值语句的区别、
8、变量说明中给变量赋初值和赋值语句的区别、变量说明中给变量赋初值和赋值语句的区别、变量说明中给变量赋初值和赋值语句的区别:给给给给变变变变量量量量赋赋赋赋初初初初值值值值是是是是变变变变量量量量说说说说明明明明的的的的一一一一部部部部分分分分,赋赋赋赋初初初初值值值值后后后后的的的的变变变变量量量量与与与与其其其其后后后后的的的的其其其其它它它它同同同同类类类类变变变变量量量量之之之之间间间间仍仍仍仍必必必必须须须须用用用用逗逗逗逗号号号号间间间间隔隔隔隔,而赋值语句则必须用分号结尾。而赋值语句则必须用分号结尾。而赋值语句则必须用分号结尾。而赋值语句则必须用分号结尾。例如:例如:例如:例如:in
9、t a=5,b,c;int a=5,b,c;3 3、在变量说明中,不允许连续给多个变量赋初值、在变量说明中,不允许连续给多个变量赋初值、在变量说明中,不允许连续给多个变量赋初值、在变量说明中,不允许连续给多个变量赋初值:如下述说明是错误的:如下述说明是错误的:如下述说明是错误的:如下述说明是错误的:int a=b=c=5int a=b=c=5;而赋值语句允许连续赋值:而赋值语句允许连续赋值:而赋值语句允许连续赋值:而赋值语句允许连续赋值:a=b=c=5a=b=c=5;第10页/共46页4、赋值表达式和赋值语句的区别、赋值表达式和赋值语句的区别:赋赋值值表表达达式式是是一一种种表表达达式式,它它
10、可可以以出现在任何允出现在任何允许许表表达达式式出出现现的的地地方方,而而赋赋值值语语句句则不能。则不能。if(x=y+5)0)z=x;语语句句的的功功能能是是,若若表表达达式式x=y+5大大于于0则则z=x。if(x=y+5;)0)z=x;因因为为x=y+5;是是语语句句,不不能能出出现现在在表表达式中。达式中。合法合法非法非法第11页/共46页4.34.3 数据输入输出概念数据输入输出概念1)输输入入输输出出是是从从标标准准输输入入设设备备输输入或向标准输出设备输出数据。入或向标准输出设备输出数据。2)在在语语言言中中,所所有有的的数数据据输输入入输输出出都都是是由由库库函函数数完完成成的
11、的,都都是是函数语句函数语句。3)使使用用语语言言库库函函数数时时,要要用用预预编译命令编译命令:#include 或或或或#include”stdio.h”4)考考虑虑到到printf和和scanf函函数数使使用用频频繁繁,系系统统允允许许在在使使用用这这两两个个函函数时可不加数时可不加#include 或或#include”stdio.h”第12页/共46页4.44.44.44.4 printf printf printf printf 函数(格式输出函数)函数(格式输出函数)函数(格式输出函数)函数(格式输出函数)4.4.1printf()4.4.1printf()功能:功能:功能:功能
12、:按按格格式式控控制制所所指指定定的的形形式式(向向用用户屏)输出输出项的值。户屏)输出输出项的值。C C不提供输入输出语句,不提供输入输出语句,只调用只调用printf()printf()函数函数第13页/共46页例:例:void main()int a,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 原样原样输出输出格式控制符与输出格式控制符与输出项表列一一对应项表列一一对应第14页/共46页 4.4.2格式:格式:printf(printf(格式控制,输出项表列格式控制,
13、输出项表列格式控制,输出项表列格式控制,输出项表列)一、输出项表列:一、输出项表列:一、输出项表列:一、输出项表列:由由由由一一一一个个个个或或或或多多多多个个个个输输输输出出出出项项项项组组组组成成成成(若若若若多多多多个个个个、它它它它们们们们之之之之间间间间用用用用逗逗逗逗号号号号隔隔隔隔开开开开),常常常常量量量量、变变变变量量量量、函函函函数数数数、表表表表达达达达式式式式、字字字字符符符符数数数数组组组组名等均可做输出项。名等均可做输出项。名等均可做输出项。名等均可做输出项。二、格式控制:二、格式控制:二、格式控制:二、格式控制:字字字字符符符符串串串串常常常常量量量量或或或或字字
14、字字符符符符数数数数组组组组名名名名。其其其其中中中中字字字字符符符符可可可可由由由由下下下下面面面面3 3类类类类组成组成组成组成:l l普通字符(原样输出)普通字符(原样输出)普通字符(原样输出)普通字符(原样输出)l l转转转转义义义义字字字字符符符符(输输输输出出出出所所所所表表表表示示示示的的的的字字字字符符符符或或或或实实实实现其功能)现其功能)现其功能)现其功能)l l格格格格式式式式说说说说明明明明:控控控控制制制制对对对对应应应应输输输输出出出出项项项项的的的的输输输输出出出出形式形式形式形式 a=%d n第15页/共46页#includevoid main()int k=6
15、8;float t=56.3;printf(printf(”%dt%dt%fn%dt%dt%fn”,k,k+123,sqrt(t);,k,k+123,sqrt(t);结果:结果:68 191 7.503333转义字符转义字符,跳到下一区跳到下一区9 91 17 7转义字符转义字符,回车回车格式控制格式控制符符,对应输对应输出格式出格式第16页/共46页4.4.3格式说明:格式说明:控控制制对对应应输输出出项项的的输输出出形形式式(每每个个格格式式说说明明按按先先后后顺顺序序与与输输出出项项一一一一对对应应),输输出出结结果果中中格格式式说说明被对应的输出项值取代。明被对应的输出项值取代。(1)
16、格式说明基本形式:格式说明基本形式:%d(%d(或或或或%i)%i)、%o%o、%x(%x(或或或或%X)%X)、%u%u、%c%c 对应的输出项类型为对应的输出项类型为对应的输出项类型为对应的输出项类型为字符型字符型字符型字符型和和和和整型整型整型整型。带符号带符号十进制十进制带符号带符号八进制八进制带符号带符号十六进十六进制制无符号无符号十进制十进制字字符符第17页/共46页例例:void main()int a=65;char c=!;printf(”%d,%cn”,a,a);printf(printf(”c=%c,Its ASCII code=%dnc=%c,Its ASCII cod
17、e=%dn”,c,c);,c,c);结果:结果:65,A c=!,Its ASCII code=33第18页/共46页例例例例:voidvoid main()main()int a=int a=3,m=3,m=0 x15a,k=0 x15a,k=346;346;printf(printf(”%d,%u,%x,%o%d,%u,%x,%o”,a,a,a,a);,a,a,a,a);printf(printf(”%d,%xn%d,%xn”,m,k);,m,k);结果:结果:结果:结果:3,65533,fffd,1777753,65533,fffd,177775 346,fea6346,fea6(655
18、36-3)(65536-3)1010 十进制无符号十进制无符号(fffd)(fffd)1616 十六进制十六进制(177775)(177775)8 8 八进制八进制 (-15a)(-15a)1616 (-346)(-346)1010 与与a a转转换相同换相同%o%o、%x(%x(或或%X)%X)、%u%u按按unsignedunsigned型输出,且不型输出,且不带前导符号带前导符号“o o”和和“x x”第19页/共46页%s对对应应的的输输出出项项为为字字符符串串或或字字符数组符数组 例:例:void main()char name=”Jone ”;printf(”%s%s%cn”,”W
19、ho is ”,name,?);printf(”%s%s%cn”,”Who is ”,name,?);结果:结果:Who is Jone?字符串字符串字符字符第20页/共46页%f%f、%e(%e(或或或或%E)%E)、%g(%g(或或或或%G)%G)对应对应对应对应 float float 型输出项型输出项型输出项型输出项%lf%lf、%le(%le(或或或或%E)%E)、%lg(%lg(或或或或%G)%G)对应对应对应对应 double double 型输出项型输出项型输出项型输出项%f%f小数形式(小数形式(小数形式(小数形式(6 6位小数位小数位小数位小数)%e(%e(或或或或%E)%
20、E)标标标标准准准准化化化化指指指指数数数数形形形形式式式式(尾尾尾尾数数数数的的的的小小小小数数数数点点点点前前前前有有有有一一一一位且只有一位非零、位且只有一位非零、位且只有一位非零、位且只有一位非零、5 5位小数位小数位小数位小数)%g%g(或或或或%G)%G)让让让让系系系系统统统统自自自自动动动动选选选选取取取取%f(%f(去去去去掉掉掉掉小小小小数数数数点点点点后后后后多多多多余的零余的零余的零余的零)或或或或%e%e中较短者中较短者中较短者中较短者6 6位有效位有效位有效位有效例:例:例:例:main()main()float f;f=123.46;float f;f=123.4
21、6;printf(printf(”%f,%e,%gn%f,%e,%gn”,f,f,f),f,f,f)结果:结果:结果:结果:123.459999,1.23460e+02,123.46123.459999,1.23460e+02,123.46数字数字数字数字第21页/共46页(2)(2)在格式说明基本形式中加附加格式说明符在格式说明基本形式中加附加格式说明符在格式说明基本形式中加附加格式说明符在格式说明基本形式中加附加格式说明符 若若若若输输输输出出出出项项项项为为为为longlong型型型型或或或或unsigned unsigned longlong型型型型,则则则则用用用用下下下下面面面面格
22、格格格式说明控制:式说明控制:式说明控制:式说明控制:%ld%ld、%lx%lx、%lo%lo、%lu%lu 若若若若输输输输出出出出项项项项为为为为shortshort型型型型或或或或shortshort型型型型,则则则则用用用用下下下下面面面面格格格格式式式式说说说说明明明明控制:控制:控制:控制:%hd%hd、%hx%hx、%ho%ho、%hu%hu在在在在格格格格式式式式说说说说明明明明%后后后后加加加加一一一一个个个个整整整整数数数数mm指指指指定定定定宽宽宽宽度度度度为为为为|m|m|位位位位:若实际需要的若实际需要的若实际需要的若实际需要的位数位数位数位数|m|m|位位位位、则此
23、、则此、则此、则此mm失效失效失效失效 若若若若mm为无符号整数为无符号整数为无符号整数为无符号整数,则,则,则,则左边填空格左边填空格左边填空格左边填空格 若若若若mm为负整数为负整数为负整数为负整数,则,则,则,则右边填空格右边填空格右边填空格右边填空格 若若若若mm为为为为带带带带正正正正号号号号整整整整数数数数,则则则则左左左左边边边边填填填填空空空空格格格格且且且且所所所所输输输输出出出出的的的的数数数数据据据据前有正负号前有正负号前有正负号前有正负号第22页/共46页 例:例:void main()int a=12;long b=12345678;printf(”%6dn”,a);
24、printf(”%-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字符串字符串负数本身肯定带负符号负数本身肯定带负符号,带正号必须这样写带正号必须这样写第23页/共46页在在%s中中间间插插入入m.n:m含含义义同同,此此m可可省省略略、若若省省略略则则m=n。n为为无无符符号号整整数数、表表示示只只输输出出对对应字符串中左边应字符串中左边n个字符。个字符。例:例:void main()()printf(”%8.3sn
25、”,”book”);printf(”%.3sn”,”book”);输出:输出:b o ob o o宽度就是宽度就是3 3第24页/共46页在在在在%f%f、%e(%e(或或或或%E)%E)、%g%g(或或或或%G)%G)中中中中间间间间插插插插入入入入m.nm.n:mm含义同含义同含义同含义同,此,此,此,此mm可省略、若省略则可省略、若省略则可省略、若省略则可省略、若省略则m=nm=n。n n为无符号整数、表示为无符号整数、表示为无符号整数、表示为无符号整数、表示n n位小数,其余四舍五位小数,其余四舍五位小数,其余四舍五位小数,其余四舍五例例例例8 8:printf(printf(”a=%
26、+10.3lfna=%+10.3lfn”,123.45678);,123.45678);输出:输出:输出:输出:注:注:注:注:若若若若与与与与中中中中mm为正整数且为正整数且为正整数且为正整数且mm前加前加前加前加0 0,则输出,则输出,则输出,则输出 的左边空位填的左边空位填的左边空位填的左边空位填0 0例例例例9 9:printf(printf(”a=%+010.3lfna=%+010.3lfn”,123.45678);,123.45678);输出:输出:输出:输出:a=+1 2 3.4 5 7a=+0 0 1 2 3.4 5 7四舍五入四舍五入第25页/共46页在在%x、%o、%lx、
27、%lo 的的%后后加加#输输出出带带前前导导的的八八进进制制或或十十六六进进制数据制数据例例10:void main()int x=7281;printf(”%o,%#on”,x,x);printf(”%x,%#xn”,x,x);输出:输出:16161,0 016161 1c71,0 x0 x1c71注注:格格式式控控制制中中,连连续续的的两两个个%表表示一个示一个%(不是格式说明符)(不是格式说明符)(16161)(16161)8 8(1c71)(1c71)1616第26页/共46页4.54.54.54.5 putchar putchar putchar putchar 函数(字符输出函数)
28、函数(字符输出函数)函数(字符输出函数)函数(字符输出函数)格式格式格式格式:putchar(putchar(putchar(putchar(一个整形或字符型输出项一个整形或字符型输出项一个整形或字符型输出项一个整形或字符型输出项 )功能功能功能功能:同同同同 printf(printf(printf(printf(”%c%c%c%c”,输出项输出项输出项输出项 ),),),),在显示器上在显示器上在显示器上在显示器上 输出单个字符输出单个字符输出单个字符输出单个字符。例如:例如:例如:例如:putchar(A);putchar(A);putchar(A);putchar(A);(输出大写字母
29、(输出大写字母(输出大写字母(输出大写字母A A A A)putchar(x);putchar(x);putchar(x);putchar(x);(输出字符变量(输出字符变量(输出字符变量(输出字符变量x x x x的值)的值)的值)的值)putchar(putchar(putchar(putchar(101101101101););););(也是输出字符(也是输出字符(也是输出字符(也是输出字符A A A A)putchar(n);putchar(n);putchar(n);putchar(n);(换行)(换行)(换行)(换行)对控制字符则执行控制功能,不在屏幕对控制字符则执行控制功能,不在
30、屏幕上显示。使用本函数前必须要用文件上显示。使用本函数前必须要用文件包含命令:包含命令:#include#include 或或#include#include“stdio.hstdio.h”第27页/共46页例:例:#include#includevoid main()char c=A;putchar(66);putchar(53);putchar(c+2);putchar(n);putchar(7);putchar(n);结果:结果:B+C 7B B+C C7 7换行换行换行换行第28页/共46页4.64.6 scanf scanf 函数(格式输入函数)函数(格式输入函数)4.6.1格格式式
31、 scanf(格格式式控控制制,输输入入项地址表列项地址表列)地址:地址:1)变变量量名名前前加加&变变量量在在内内存存中中的地址;的地址;2)数数组组名名数数组组在在内内存存中中的的首首地址。地址。例如:例如:&a,&b分分别别表表示示变变量量a和和变变量量b 的的地地址址。这这个地址就是个地址就是编编译译系系统统在在内内存存中中给给a,b变变量量分分配配的的地址。地址。一个或多个地址组成(若多个之间用逗号隔开)第29页/共46页变量的地址和变量值的关系如下:变量的地址和变量值的关系如下:1、在赋值表达式中给变量赋值在赋值表达式中给变量赋值:如:如:a=567 2、scanf函函数数在在本本
32、质质上上也也是是给给变变量赋值,但要求写变量的地址量赋值,但要求写变量的地址:如如:scanf(”%d”,&a);3、这这两两者者在在形形式式上上是是不不同同的的。&是是一一个个取取地地址址运运算算符符,&a是是一一个个表表达达式式,其其功功能能是是求求变变量量的的地地址。址。变量名变量名,不不能写地址能写地址变量变量的值的值变量变量a a的地址的地址第30页/共46页4.6.2功功能能:系系系系统统统统切切切切换换换换到到到到用用用用户户户户屏屏屏屏、要要要要求求求求并并并并等等等等待待待待用用用用户户户户按按按按格格格格式式式式控控控控制制制制形形形形式式式式和和和和顺顺顺顺序序序序输输输
33、输入入入入要要要要赋赋赋赋给给给给输输输输入入入入项项项项的的的的常常常常量量量量,按按按按回回回回车车车车键键键键结结结结束束束束,系系系系统统统统立立立立即即即即把把把把所所所所输输输输入入入入的的的的赋赋赋赋给给给给相相相相应应应应输输输输入入入入项。项。项。项。它它它它是是是是一一一一个个个个标标标标准准准准库库库库函函函函数数数数,与与与与printfprintf函函函函数数数数相相相相同同同同,使使使使用用用用scanfscanf函数之前不必包含函数之前不必包含函数之前不必包含函数之前不必包含stdio.hstdio.h文件。文件。文件。文件。4.6.3注注意意:格格格格式式式式控
34、控控控制制制制字字字字符符符符串串串串的的的的作作作作用用用用与与与与printfprintf函函函函数数数数相相相相同同同同,但但但但不不不不能能能能显显显显示示示示非非非非格格格格式式式式字字字字符符符符串串串串,也也也也就就就就是是是是不不不不能能能能显显显显示示示示提提提提示示示示字字字字符符符符串串串串。地地地地址址址址表表表表列列列列中中中中给给给给出出出出各各各各变变变变量量量量的的的的地地地地址址址址。地地地地址是由地址运算符址是由地址运算符址是由地址运算符址是由地址运算符“&”后跟变量名组成的。后跟变量名组成的。后跟变量名组成的。后跟变量名组成的。不能是符号常量,不加单不能是
35、符号常量,不加单撇号或双撇号,撇号或双撇号,直接输入直接输入一一定定要要有有第31页/共46页例:例:void main()int a,b,sum;scanf(”%d,%d”,&a,&b);sum=a+b;printf(“sum=%dn”,sum);执行程序时应输入执行程序时应输入 123,456 如果要输入如果要输入a=123;b=456;a=123;b=456;没有输入任何数据直接回车,结果没有输入任何数据直接回车,结果出不来,上机要带作业及数据来出不来,上机要带作业及数据来第32页/共46页4.6.4使用使用scanf函数还必须注意以函数还必须注意以下几点:下几点:1)scanf函函数数
36、中中没没有有精精度度控控制制,如如:scanf(%5.25.2f,&a);是是非非法法的的。不不能能用用此此语语句句输输入入小小数数为为2位位的的实实数。数。2)scanf中中要要求求给给出出变变量量地地址址,如如给给 出出 变变 量量 名名 则则 会会 出出 错错。如如 scanf(%d,a a);是是非非法法的的,应应改改为为scnaf(%d,&a&a)。3)在在输输入入多多个个数数值值数数据据时时,若若格格式式控控制制串串中中没没有有非非格格式式字字符符作作输输入入数数据据之之间间的的间间隔隔则则可可用用空空格格,TAB或或回回车车作作间间隔隔。C编编译译在在碰碰到到这些符号这些符号即认
37、为该数据结束。即认为该数据结束。第33页/共46页4)在在输输入入字字符符数数据据时时,若若格格式式控控制制串串中中无无非非格格式式字字符符,则则认认为为所所有有输输入入的的字字符符均均为为有有效效字字符符。如:如:scanf(%c%c%c,&a,&b,&c);输入为:输入为:则赋值:则赋值:如如果果在在格格式式控控制制中中加加入入空空格格作作为为间隔,如间隔,如:scanf(%c%c%c,&a,&b,&c);输入时数据之间可加空格。输入时数据之间可加空格。d ef bcabcad ef bca空格,输入多少个无关空格,输入多少个无关de f 第34页/共46页5)如如果果格格式式控控制制串串
38、中中有有非非格格式式字字符符则则输输入入时时也也要要输输入入该该非非格格式式字字符。符。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=“、”,”、“b=b=“、”c=c=“为为间隔间隔符符第35页/共46页6)如输入的数据与输出的类型不)如输入的数据与输出的类型不一致,一致,scanf(a=%d,b=%d,c=%d,&a,&b,&c);输入:输入:虽然编译虽然编译能能够通过,但结果将不正够通过,但结
39、果将不正确。确。scanf(”%d:%d”,&a,&b);应输入:应输入:a=5;b=6;c=7 1 12 23 3:4 45 56 6 第36页/共46页 scanf(”%d,%dn”,&a,&b);应输入:应输入:scanf(”%d%d”,&a,&b);应输入:应输入:123,456 1 按格式控制按格式控制符输入符输入1 12 23 3 4 45 56 6 数据分割,多少数据分割,多少个无关个无关第37页/共46页scanf(”%d”,&a);scanf(”%d”,&b);应输入:应输入:或输入:或输入:scanf(”%dnn”,&a);scanf(”%d”,&b);应输入:应输入:或输
40、入:或输入:123 456 123 456 多少个无关多少个无关123 456 123 456 多少个无关多少个无关第38页/共46页void main()char a,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 N第39页/共46页4.6.54.6.5说明说明说明说明1.1.格格格格式式式式控控控控制制制制中中中中不不不不包包包包含含含含附附附附加加加加格格格格式式式式说说说说明明明明符符符符m.nm.n,一一一一般般般般
41、不不不不包包包包含含含含转义字符(转义字符(转义字符(转义字符(nn可以可以可以可以)。)。)。)。2.double2.double型型型型输输输输入入入入项项项项必必必必须须须须使使使使用用用用如如如如下下下下格格格格式式式式说说说说明明明明:%lf%lf、%le%le、%lg%lg(输出一样输出一样输出一样输出一样)3.3.*在在在在格格格格式式式式说说说说明明明明%后后后后插插插插入入入入*表表表表示示示示跳跳跳跳过过过过它它它它所所所所指指指指定定定定的的的的列列列列数,如:数,如:数,如:数,如:scanf(scanf(”%d%*5%dn%d%*5%dn”,&a,&b);,&a,&b
42、);输入输入输入输入:结果结果结果结果:用用%f只能输出只能输出6 6位小数,输出位小数,输出1010位用位用%20.10lf%20.10lf 1 2 39 98 87 76 65 54 5 6 a值:123 b值:456如果只有如果只有%*d%*d则表示本输入项再度入后不赋给相应的变量则表示本输入项再度入后不赋给相应的变量第40页/共46页void main()void main()int a;int a;scanf(%d,&a);scanf(%d,&a);printf(%ld,a);printf(%ld,a);输入:输入:输入:输入:123123 显示:显示:显示:显示:806105180
43、61051main()main()long a;long a;scanf(%ld,&a);scanf(%ld,&a);printf(%ld,a);printf(%ld,a);输入:输入:输入:输入:12345678901234567890 显示:显示:显示:显示:12345678901234567890第41页/共46页4、在在格格式式说说明明基基本本形形式式中中加加附附加加格式说明符格式说明符 l若若 输输 出出 项项 为为 long 型型 或或unsigned long型型,则则必必须须用用下下面面格式说明控制:格式说明控制:%ld、%lx、%lo、%lu h若若 输输 出出 项项 为为
44、short 型型 或或unsigned short型,型,则则可用可用下面格式说明控制:下面格式说明控制:%hd、%hx、%ho、%hu。第42页/共46页4.74.74.74.7 getchar getchar getchar getchar 函数(字符输入函数)函数(字符输入函数)函数(字符输入函数)函数(字符输入函数)形式形式:getchar()功功能能:c=getchar();同同 scanf(”%c”,&c);注注意意:需需在在文文件件开开头头加加#include”stdio.h”输入一个字符,赋给变量输入一个字符,赋给变量c c第43页/共46页例例:#include#includ
45、e void main()char a,b,c;a=getchar();b=getchar();c=getchar();putchar(a);putchar(b);putchar(c);输入:输入:$#a ab bc c结果:结果:$#输入:输入:$#a ab bc c结果:结果:$#换行第44页/共46页使用使用使用使用getchargetchar函数还应函数还应函数还应函数还应注意几个问题注意几个问题注意几个问题注意几个问题:1)getchar函函数数只只能能接接受受单单个个字字符符,输输入入数数字字也也按按字字符符处处理理。输输入入多多于于一一个个字字符符时时,只只接接收收第第一一个字符。个字符。2)使使用用本本函函数数前前必必须须包包含含文文件件“stdio.h”。3)在在TC屏屏幕幕下下运运行行含含本本函函数数程程序序时时,将将退退出出TC 屏屏幕幕进进入入用用户户屏屏幕幕等等待待用用户户输输入入。输输入入完完毕毕再再返回返回TC屏幕。屏幕。第45页/共46页