《C语言》讲课用_第1页
《C语言》讲课用_第2页
《C语言》讲课用_第3页
《C语言》讲课用_第4页
《C语言》讲课用_第5页
已阅读5页,还剩26页未读 继续免费阅读

下载本文档

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

文档简介

1、(1)字符输出函数:putchar作用向终端输出一个字符。例:a= Y ;b= E ;c= S ; putchar(a);putchar(b);putchar(c);运行结果: YES也可以输出控制符,如:putchar(a);putchar( n );putchar(b);putchar( n ) ;putchar(c);putchar( n );则输出结果为:YES也可以输出其他转义字符例:putchar(101) /*输出字符A*/ (2)字符输入函数:getchar()作用是从终端输入一个字符。例:输入单个字符#include main()char c; /*定义字符变量c*/c=ge

2、tchar();putchar(c);在运行时,如果从键盘上输入字符“a”,并按回车键,就会在屏幕上看到输出的字符“a”getchar()函数得到的字符可以赋给一个字符变量或整型变量,也可以不赋给任何变量,作为表达式的一部分。上例可改为:putchar(getchar();因为getchar()的值为a,因此putchar()函数输出a。也可以用printf()函数输出:printf(“%c”,getchar();注意:注意:在一个函数中(现为main()函数)要调用字符输入输出函数,应该在该函数前(或本文件开头)加上“包含命令”#include 1.一般格式为:printfprintf(格式

3、控制,输出表列)(格式控制,输出表列) 也可表示为:printf(参数1,参数2,参数 n)说明:“格式控制”是用双引号括起来的字符串,也称“转换控制字符串”,包括格式说明,由“%”和格式字符组成,如%d,%f等,它的作用是将输出的数据转换为指定的格式输出。格式说明总是由“%”字符开始的。普通字符,即需要原样输出的字符,用双引号引起部分。如逗号,空格和换行符。“输出表列”是需要输出的一些数据,可以是表达式、变量。2.格式字符:对不同类型的数据用不同的格式字符。(1)d格式符。用来输出十进制整数。d,按整型数据的实际长度输出。md,m为指定的输出字段的宽度,如果数据的位数小于m,则左端补以空格,

4、若大于m,则按实际位数输出。如:printf(4d, 4d,a,b)若a=123,b=12345,则输出结果为123,12345 /*代表空格*/ld,输出长整型数据。(2)o格式符,以八进制数形式输出整数。不会出现带负号的八进制整数,对长整型数可以用“lo”格式输出。同样也可以指定字段的宽度,如:printf(8o,a),输出的是8个字符。(3)x格式符,以十六进制数形式输出整数,不会出现带负号的十六进制数。对长整型数可以用“lx”格式输出。同样也可以指定字段的宽度,用“12x”。(4)u格式符,用来输出unsigned型数据,即无符号数,以十进制形式输出。(5)c格式符,用来输出一个字符。

5、一个整数,只要它的值在0255范围内,马可以用字符形式输出,在输出前,系统会将该整数作为ASCII码转换成相应的字符,反之,同理。 也可以用“3c”指定输出字符的宽度。如:main()char c=a;int i=97;printf(c, dn,c,c);printf(c, dn,i,i);运行结果:a,97a,97(6)s格式符,用来输出一个字符串。s,如:printf(%s, CHINA);结果:CHINAms,输出的字符串占m列,如字符串本身长度大于m,则原样输出字符串,若字符串长度小于m,则左补空格。-ms,如果字符串长度小于是m,则在m列范围内,字符串向左靠,右补空格。m.ns,输出

6、占m列,但只取字符串左端n个字符。这n个字符输出在m列的右侧,左补空格。-m.ns,其中m、n含义同上,n个字符输出在m列范围的左侧,右补空格。如果nm,则m自动取n值,即保证n个字符正常输出。(7)f格式符,用来输出实数(包括单、双精度),以小数形式输出。f,不指定字段宽度,使整数部分全部如数输出,并输出6位小数。注意,单精度实数只有前7位(包括整数、小数部分)是有效位。双精度实数有效位数是16位,给出小数6位。m.nf,指定输出的数据共占m列,其中有n位小数。若数值长度小于m则左端补空格。-m.nf,与%m.nf基本相同,只是使输出的数值向左端靠,右端补空格。(8)e格式符,以指数形式输出

7、实数。e 不指定输出数据所占的宽度和数字部分的小数位数,一般系统自动指定给出6位小数,指数部分占5位(如e+002)其中“e”占1位,指数符号占1位,指数占3位。m.ne和-m.ne m、n和“-”字符含义与前相同。此处n指拟输出的数据的小数部分的小数位数。(9)g格式符,用来输出实数,它根据数值的大小,自动选f格式或e格式(选择输出时占宽度较小的一种),且不输出无意义的零。printf格式字符格式字符说明d i以带符号的十进制形式输出整数(正整数不输出符号)o以八进制无符号形式输出整数(不输出前导符0)x X以十六进制无符号形式输出整数(不输出前导符0 x),用x,则输出十六进制数的a-f时

8、以小写形式输出,用X则以大写形式输出。u以无符号十进制形式输出整数c以字符形式输出,只输出一个字符s输出字符串f以小数形式输出单、双精度数,隐含输出6位小数。用e时指数符以e表示,用E时指数符以E表示e E以指数形式输出实数,如用E,则输出时指数符以大写E表示g G选用%f或%e格式中输出宽度较小的一种格式,不输出无意义的0,用G时,若以指数形式输出,则指数符以大写表示。在格式说明中,在%和上述格式字符间可以插入以下几种附加符号(双称修饰符)printf的附加格式说明字符字 符说明小写字母l用地长整型,可加在格式符d o x u前面m(代表一个正整数)数据最小宽度n(代表一个正整数)对实数,表

9、示输出n位小数,对字符串,表示截取的字符个数输出的数字或字符在范围内向左靠几点说明:除了X、E、G,其他格式字符必须用小写字母。可以在printf函数中的“格式控制”字符串内包含前面学的“转义字符”如“n”等。以上“d o x u c s f e g”字用在%后面,就用作为格式符号。如果想输出字符%,则应该在“格式控制”字符串中用连续两个%表示。分析下面语句运行结果float f=123.456;printf(%f%10f%10.2f%.2f%-10.2fn,f,f,f,f,f); /*代表空格*/结果:(在一行中显示)123.456001123.456001123.46123.46123.4

10、6输出函数printf()练习,分析下列输出语句的结果:int a=5,b=7;float x=67.8564,y=-789.124;char c=A;long n=1234567;unsigned u=65535;printf(%d%dn,a,b);printf(%3d%3dn,a,b);printf(%f,%fn,x,y);printf(%-10f,%-10fn,x,y);printf(%8.2f,%8.2f,%.4f,%.4f,%3f,%3fn,x,y,x,y,x,y);输出函数printf()练习,分析下列输出语句的结果:int a=5,b=7;float x=67.8564,y=-7

11、89.124;char c=A;long n=1234567;unsigned u=65535;printf(%e,%10.2en,x,y);printf(%c,%d.%o,%xn,c,c,c,c);printf(%ld,%lo,%xn,n,n,n);printf(%u,%o,%x,%dn,u,u,u,u);printf(%s,%5.3sn,COMPUTER,COMPUTER);scanf函数(格式输入函数)1.一般形式 scanfscanf( (格式控制,地址表列格式控制,地址表列) )“格式控制”含义同printf函数;“地址表列”是由若干个地址组成的表列,可以是变量的地址,或字符串的首地

12、址。运行时按以下方式输入a,b,c 的值:345 (输入时“”代表空格, 代表按回车键)3,4,5 (输出a,b,c的值)例:用scanf函数输入数据main()int a,b,c;scanf(ddd, a,b,c) ;printf(d, d, dn,a,b,c) ;a, b, c中的“”是“地址运算符”,a指a在内存中的地址。“%d%d%d”表示按十进制整数形式输入数据,输入数据时,在两个数据之间以一个或多个空格间隔,也可以输入一个值,按一次回车键。用“%d%d%d”格式输入数据时,不能用逗号作两个数据间的分隔符。2.格式说明和printf函数中的格式说明相似,以开始,以一个格式字符结束,中

13、间可插入附加的字符。scanf函数的格式字符格式字符说明d i用来输入有符号的十进制整数u用来输入无符号的十进制整数o用来输入无符号的八进制整数x X用来输入无符号的十六进制整数(大小写作用相同)c用来输入单个字符s用来输入字符串,将字符串送到一个字符数组中,在输入时以非空白字符开始,以第一个空白字符结束。字符串结束标志“0”作为最后一个字符。f用来输入实数,可以用小数形式或指数形式输入e E g G与f作用相同,e与g,f可以互相替换(大小写作用相同)scanf的附加格式说明字符字符说明字母l用于输入长整型数据(可用ld, lo, lx),以及double型数据(用lf或le)h用于输入短整

14、型数据(可用hd,ho,hx)域宽指定输入数据所占宽度(列数),域宽应为正整数*表示输入项在读入后不赋给相应的变量说明:(以下说明中 “”代表空格)(1)对unsigned型变量所需的数据,可以用u,d或o,x格式输入。(2)可以指定输入数据所占列数,系统自动按它截取所需数据。如: scanf(3d3d, a,b);输入:123456 系统自动将123赋给a ,456赋给b。此方法也可以用于字符型。 scanf(3c, ch);如果从键盘上连续输入3个字符abc,由于ch只能容纳一个字符,系统就把第一个字符a赋给ch。(3)如果在后有一个“*”附加说明符,表示跳过它指定的列数。如:scanf(

15、2d*3d2d, a,b); 如果输入如下信息:1234567 将12赋给a,“*3d”表示读入3位整数但不赋给任何变量。然后再读入2位整数67赋给b 。也就是说第2个数据“345”被跳过。(4)输入数据时不能规定精度,如:scanf(7.2f, a);这是错误的,不能企图用这样的scanf函数并输入下面数据而使a的值为12345.67输入: 12345673.使用scanf函数时应注意的问题(1)scanf函数中的“格式控制”后面应当是变量地址,而不应是变量名,变量地址表示的方法是在变量名前加“”。(2)如果在“格式控制”字符串中除了格式说明以处还有其他字符,则在输入数据时应输入与这些字符相

16、同的字符。如:scanf(d,d, a,b) ;输入时应用的形式: 3,4 注意3后面是逗号,它与scanf函数中的“格式控制”中的逗号对应。如果是: scanf(dd, a,b) ; 输入时两个数据间就空2个或更多的空格字符。如果是: scanf(d:d, a,b) ;输入形式应该是: 12:33(3)在用“c”格式输入字符时,空格字符和“转义字符”都作为有效字符输入。如: scanf(ccc, a,b,c);如输入 xyz字符“x”赋给a,字符“”(空格符)赋给b, 字符“y”赋给c,因为c只要求读入一个字符,后面不需要用空格作为两个字符的间隔,因此“空格符”作为下一个字符赋给b(4)在输

17、入数据时,遇以下情况时该数据认为结束。遇空格,或按“回车”或“Tab键”。按指定的宽度结束。如“3d”,只取3列。遇非法输入。关系运算符和关系表达式C语言提供六种关系运算符: 小于 大于= 大于或等于 = 等于!= 不等于关系运算也就是比较运算,其结果是逻辑值“真”或“假”,在C语言中用“1”代表“真”,用“0”代表“假”。运算的优先次序是: ,= 这是四种优先级相同,按从左至右依次运算,=,!=这两种优先相同,但低于前四种。算术运算符-关系运算符-赋值运算符。 例1:ca+b 等效于 c(a+b) ab=c 等效于 (ab)=c a=bc 等效于 a=(bc 等效于 a=(bc)例2:a=3

18、;b=2;c=1;d=ab ab结果是“真”,值为“1”, 因此d=1f=abc 自左向右,ab结果是“真”,值为“1”,再执行“1c”结果是“假”,值为“0”,因此f=0逻辑运算符和逻辑表达式(1)逻辑运算符及优先次序 & 逻辑与(并且的意思) | 逻辑或(或者,二选一) ! 逻辑非(取反)逻辑运算举例:a&b 若a、b为真,则a&b为真,若a、b有一个为假,则a&b为假a|b 若a、b之一为真,则a|b为真!a 若a为真,则!a为假。逻辑运算的真值表ab!a!ba&ba|b真1(非0)真1(非0)假0假0真1真1真1(非0)假0假0真1假0真1假0真1(非0)真1假0假0真1假0假0真1真1假0假0优先次序: !(非)- &(与)- |(或) !(

温馨提示

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

评论

0/150

提交评论