《顺序结构1.ppt》由会员分享,可在线阅读,更多相关《顺序结构1.ppt(18页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第三章 顺序结构第一节 复合语句语句是构成C语言函数的基本成份,通常由表达式加分号(;)构成,仅有分号无其他内容的为空语句。复合语句复合语句“”用作复合语句的开头和结尾,称为“语句块”,语句1;语句2;语句n一个复合语句在语法上视为一条语句,复合语句之后不必再用分号结束。a+;b*=a;printf(“b=%dn”,b);复合语句主要包含在复杂的程序结构中,如选择结构、循环结构。例例 以下选项中不是C语句的是()A)int i;i+;printf(“%dn”,i);B);C)a=5,c=10 D);答案答案:C:C 例例 以下4个选项中,不能看作一条语句的是()A);B)x=0,y=0,z=0
2、;C)while(a0);D)if(b!=0)m=1;n=2;答案答案:D:D 例例 以下程序的输出结果是()#include void main()int a=2,b=3,c=4;if(ac)b=a;a=c;c=b;printf(“a=%d,b=%d,c=%dn”,a,b,c);答案答案:a=4,b=3,c=3:a=4,b=3,c=3第二节 数据的输出C语言本身不提供输入输出语句,但可以通过调用标准库函数提供的输入和输出函数来实现。一般来说,程序中所用到的库函数都包含在相应的头文件中。输入输出函数的声明包含在文件stdio.h中,因此在使用这些库函数时,应在程序的开头写上如下代码:#incl
3、ude。这样,系统会自动将文件stdio.h的全部内容嵌入到该程序中,完成对函数的声明。printf:标准输出函数,作用是在终端设备上按指定格式进行输出。格式:printf(格式控制,输出项表);printf(“a=%d,b=%d”,a,b);格式控制的作用:a、为各输出项提供格式转换说明 作用是将要输出的数据转换为指定的格式输出b、提供需要原样输出的文字或字符 输出项要用逗号隔开,格式描述符要与它们一一对应且匹配#include void main()int I=2518;double a=3.1415;printf(“I=%d,a=%f,a*10=%en”,I,a,a*10);上例中,I=
4、,a=,a*10=都是要原样输出的字符,各输出项以逗号隔开,输出项可以是常量,变量或表达式,格式转换说明的个数必须与输出项个数相同,使用的格式描述符也要与它们对应的输出项类型匹配,在上例中格式转换以%开始,紧跟其后的是格式描述符,int是d,float与double是f或e。n是C语言中的转义字符,相当于一个换行符使得屏幕光标或打印机移到其下一行开头。格式说明以“%”开头,以一个格式字符作为结束,中间可以插入“宽度说明,左对齐符号“-”前导零符号“0”等。A A、格式字符、格式字符c:输出一个字符 X或x:十六制无符号整型d或i:十进制整型数 E或e:指数形式单双精度o:八进制无符号整型 s:
5、输出字符串,直到“0”f:单双精度 u:无符号十进制整型%:打印一个%p:输出变量的内存地址g或G:系统以最小宽度(6位)自动选用%f或%e格式B、长度修饰符长整型加l即%ld,短整型加h即%hd。C、输出数据所占的宽度使用%d、%c时系统决定宽度,按数据实际宽度输出,前后不加空格,采用右对齐形式。可采用三种形式控制输出宽度:%与格式字符间插入一个整数 如果宽度不够,不影响输出,系统以默认宽度输出;如果宽度太多,数据右对齐,左边补以空格。对于float,duoble可以用“整数1.整数2”的形式。“整数1”指定输出数据总的宽度“整数2”称为精度。对于float,double指定小数位的位数,若
6、指定%.0则不输出小数点和小数部分对于g或G,用于指定输出的有效数字对于整数,用来指定必须输出的数字个数对于字符串,用来指定最多输出的字符个数 D、输出数据左对齐在指定输出宽度的同时,指定数据左对齐,在宽度前加一个“-”号。E、使输出的数字总是带有+号或-号可以在%和格式字符间加一个“+”号来实现。printf(“%+d,%+dn”,10,-10);结果为:+10,-10F、在输出数据前加前导0printf(“%06dn”,15);结果为:000015G、输出的八进制前加0,十六制加0X可在%号和格式字符o和x之间加一个#号printf(“%#o,%#xn”,10,10);结果为:012,0
7、xa调用printf注意事项(1)在格式控制串中,格式说明与输出项从左到右在类型上必须一一匹配。如不匹配,将导致不能正确输出。在输出long整型数据时,一定要使用%ld,如果遗漏l,将输出错误数据。(2)格式说明与输出项个数应该相同,如果格式说明个数少于输出项个数,多余的输出项不予输出,如果格式说明个数多于输出项个数,则对于多余的格式将输出不定值(或0值)。(3)在格式控制串中,除合法格式说明外,可以包含任意合法字符(包括转义字符),这些字符在输出时将“原样输出”。(4)如需输出百分号%,则应该在格式控制串中用两个连续的百分号%来表示。(5)在输出语句中改变输出变量的值,如:i=5;print
8、f(“%d%dn”,i,+i);则不能保证先输出i的值,然后再求+i,并输出。因为调用printf时,其参数是从右至左进行处理的,将行进行+i的运算。所以输出结果不是5,6,而是6,6。(6)printf 返回值是本次调用中输出字符的个数。#include /*示例 3-3-1.c*/void main()char zf=A;int zx=65;float fd=65.123456789f;double sjd=65.987654321;printf(%u,%c,%d,%x,%on,zf,zf,zf,zf,zf);printf(%u,%c,%d,%x,%on,zx,zx,zx,zx,zx);p
9、rintf(%s,%d%n,abcedf0uiw,zx);printf(%e,%f,%g,%e,%f,%gn,fd,fd,fd,sjd,sjd,sjd);#include /*示例 3-3-2.c*/void main()printf(%dn,42);printf(%5dn,42);printf(%fn,123.54);printf(%12fn,123.54);printf(%en,123.54);printf(%13en,123.54);printf(%15en,123.54);printf(%gn,123.5);printf(%8gn,123.5);#include /*示例 3-3-3.
10、c*/void main()printf(%.5dn,42);printf(%.0dn,42);printf(%8.3fn,123.55);printf(%8.1fn,123.55);printf(%8.0fn,123.55);printf(%gn,123.56789);printf(%.7gn,123.56789);printf(%.8gn,123.56789);printf(%.9gn,123.56789);printf(%.5sn,abcdefg);#include /*示例 3-3-4.c*/void main()printf(%6d#n,123);printf(%-6d#n,123)
11、;printf(%14.8lf#n,1.3455);printf(%-14.8lf#n,1.3455);printf(%+d,%+dn,10,-10);printf(%6dn,12);printf(%06dn,12);printf(%10.5fn,3.1415);printf(%014.5fn,3.1415);printf(%o,%#o,%x,%#xn,10,10,10,10);putchar()函数:作用是向终端(屏幕)输出一个字符。一般使用格式为:putchar(x)。使用putchar()时,必须包含头文件stdio.hputchar函数的调用形式:putchar(ch)ch是字符变量,或字符常量putchar(y);输出字符y 例例#include void main()char x=a;putchar(x);printf(n);输出结果 a 例例 设有定义:long x=-2345678L;,则以下能够正确输出变量x值的语句是()A)printf(“x=%dn”,x);B)printf(“x=%ldn”,x);C)printf(“x=%8dln,x);D)printf(“x=%LDn”,x);答案答案:B:B
限制150内