C语言-第4章-顺序程序设计ppt课件_第1页
C语言-第4章-顺序程序设计ppt课件_第2页
C语言-第4章-顺序程序设计ppt课件_第3页
C语言-第4章-顺序程序设计ppt课件_第4页
C语言-第4章-顺序程序设计ppt课件_第5页
已阅读5页,还剩35页未读 继续免费阅读

下载本文档

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

文档简介

,第4章顺序程序设计,2,第4章顺序程序设计,4.1语句与程序块4.2字符数据的输入/输出4.3格式输入/输出功能语句,3,4.1语句与程序块,C语言中,语句的含义也非常广泛。任何数据成份,只要以分号结尾,就称为语句,甚至只有一个分号也称为语句(空语句)。分号是C语言中语句的标志。一个语句可分写成多行,只要未遇到分号就认为还在同一个语句中;反之,在一行中也可以写多个语句。也就是说C程序的书写是相当自由的。,4,C语言中的语句,4.1语句与程序块,5,4.1语句与程序块,1.空语句空语句在程序中只用一个分号表示:;它什么也不做。它主要用在:转向语句的转向点;循环语句的循环体。若循环体为空,则其循环的动作全在循环头中进行。,6,2.表达式语句表达式是运算符和运算对象构成的式子,本身并不设有执行的功能,但如果在它的后面加上一个分号,则就变成了语句,就可以执行了。虽然表达式的种类很多,但最常见的表达式语句多为赋值语句和函数调用语句。例如:i=3;x=PI*r*r;+i;printf(Hello!);其中前三个为赋值语句,第四个为函数调用语句。x+3;也是个表达式语句,实现x和3相加,但它未改变x的内容,也未引起其他变化,因此这个语句的执行没有实际意义。,4.1语句与程序块,7,例:交换两个变量的值。解题思路:要交换两个变量的值,必须借助第三者。设有两个变量a和b,当把a的数据直接赋给b时就会破坏b中的内容,而通过第三个变量作中间过渡,就可以避免这种情况,如图所示。,4.1语句与程序块,8,程序实现如下:includemain()inta,b,c;a=4,b=8;printf(a=%d,b=%dn,a,b);c=a;a=b;b=c;printf(a=%d,b=%dn,a,b);,4.1语句与程序块,9,运行输出:a=4,b=8;a=8,b=4其中a=4,b=8;是逗号表达式(包含了赋值)语句。在前后两个表达式的运算互不相关的时候,可以用逗号运算符把它们连起来,当然也可以用分号。,4.1语句与程序块,10,3.复合语句把多条语句用花括号括起来即构成所谓的复合语句(也叫程序块),例如:sum=sum+i+j;i+;j-;复合语句对内部来说有多条语句,对外部来说它又是一个整体,算是一个语句。,4.1语句与程序块,11,复合语句通常用作循环语句的循环体或条件语句的分支。例如,在使用辗转相除法求两个数的最大公约数时,要求mn,如果mn时则交换m,n的值。if(mn)t=m;m=n;n=t;,4.1语句与程序块,12,C语言没有提供专门的输入/输出语句,但是却提供了有输入/输出功能的函数,通过函数调用就可以达到输入/输出的目的。函数属于表达式的一部分,因此函数调用语句也是表达式语句的一种。要使用这些输入/输出函数,必须要把有关它们的信息告诉程序。,4.2字符数据的输入/输出,13,C语言提供了两个标准的字符输入/输出函数,它们分别是getchar和putchar。(1)getchar函数该函数形式为:getchar()getchar是函数名,后面圆括号内是空的,说明该函数没有参数。该函数的使用形式是:=getchar();功能是从键盘上敲入一个字符,然后把它赋给字符变量,单独调用getchar()函数没有意义。,4.2字符数据的输入/输出,14,(2)putchar函数该函数形式为:putchar()putchar是函数名,其参数可以是一个字符常量或字符变量。该函数的功能是向终端输出一个字符。因整型和字符型是通用的,所以putchar函数也能够把代表某个字符编码的整数作为一个字符输出。,4.2字符数据的输入/输出,15,例:includemain()charch1,ch2,ch3;ch1=getchar();ch2=getchar();ch3=getchar();putchar(ch1);putchar();putchar(ch2);putchar();putchar(ch3);putchar(n);putchar(101);putchar(66);putchar();putchar(n);,运行程序:输入:abc输出为:abcAB其中101是A的八进制编码,66是B的十进制编码。,4.2字符数据的输入/输出,16,(1)printf函数一般格式是:printf(,)前面已知,输出的对象必须有相应的控制字符限定修饰才能输出,C中的控制字符:d,o,x,u,c,s,f,e,g。不同的控制字符用以输出不同类型的数据。下表给出了要输出的数据类型与其控制格式的对应关系。,4.3格式输入/输出功能语句,17,4.3格式输入/输出功能语句,18,%d,%ld格式%d格式用来输出十进制整数,按数据的实际长度输出。可以对输出数据所占字节位数加以限制,方法是在%和d之间加一整数,整数可正可负。例如:printf(a=%5d,13);输出为:a=13;printf(a=%-5d,13);输出为:a=13;printf(a=%3d,12345);输出为:a=12345;%ld格式当输出的数据大于32767时,不能再用%d格式,这时应该用长格式%ld输出:printf(a=%ld,1234567);输出为:a=1234567;也可以对长格式的位数加以限制。,4.3格式输入/输出功能语句,19,%o格式%o以八进制形式输出整数,其机理是把整数在内存中的ASCII编码由低位向高位三位一组进行分节,每一节用一个八进制数码表示,这样如果原来的数据为负,则符号位的1也被作为八进制数的一部分加以处理了。例如:inta=-1;printf(%d,%on,a,a);的输出为:-1,177777。a=-1的内存形式为,4.3格式输入/输出功能语句,20,%x格式(或%X)以十六进制形式输出整数,其机理和八进制输出一样,只是它是对二进制编码按四位一组进行分节,每节用一个十六进制数码表示,同样也不考虑符号。如:inta=-1;printf(%d,%o,%xn,a,a,a);则输出为:-1,177777,ffff。%u格式%u以十进制形式输出无符号整数。可以用%u格式输出定义为其他整数类型的数据,用其他输出整数的格式也可以输出定义为无符号整数的数据,只是要注意,这两种情况只能在正整数的区间内使用。,4.3格式输入/输出功能语句,21,例:includemain()inti=-2;unsignedintu=65535;printf(u=%d,%o,%x,%un,u,u,u,u);printf(i=%d,%o,%x,%un,i,i,i,i);,运行输出:u=-1,177777,ffff,65535;i=-2,177776,fffe,65534因为在%u格式输出时,是把最高位也作为数值位处理的,而%d格式是把最高位当成符号位。,4.3格式输入/输出功能语句,22,%c格式这种格式输出一个字符,和字符ASCII编码对应的整数也以字符形式输出,并可以为其指定长度。如charc=a;printf(“c=%c,%cn”,c,97);printf(“c=%5cn”,c);则结果为:c=a,ac=a,4.3格式输入/输出功能语句,23,%s格式输出字符串。%s格式按实际大小输出字符串,但若字符串中含有0字符,则输出到0截止,即并不把双引号中的内容全部输出。例如:printf(s=%sn,China);输出为:s=China;printf(s=%sn,China0Japan);输出为:s=China字符0后的内容被舍掉,0本身也不输出。如果字符串中有控制字符,则控制字符也会发挥作用。,4.3格式输入/输出功能语句,24,指定输出字符串的长度,规则如前。如:printf(s=%6s,book);输出:s=book(右对齐)printf(s=%-6s,book);输出:s=book(左对齐)printf(s=%2s,book);输出:s=book(突破限制)输出字符串前端的部分字符格式%.s。这种格式指明:在m列宽度中输出字符串的前n个字符,当mn时,有m=n。如:printf(s=%5.3s,China);输出为:s=Chiprintf(s=%-5.3s,China);输出为:s=Chiprintf(s=%2.3s,China);输出为:s=Chi,4.3格式输入/输出功能语句,25,%f,%lf格式以小数形式输出单精度、双精度类型的浮点数。以%f格式输出浮点数时,整数部分全部输出,小数部分输出6位。对单精度数只有左边7位有效,而对双精度只有前16位有效。也可以指定输出的宽度和小数位数,如:printf(f=%10.2fn,123.456);输出:f=123.46输出宽度中包含小数点位数,小数部分进行四舍五入。,4.3格式输入/输出功能语句,26,%e格式(或%E)这种格式是以指数形式输出浮点数,包括单精度和双精度数。输出时,尾数的整数部分只有1位,系统自动指定尾数的小数部分宽度和指数部分的宽度。对此不同的系统有不同的规定。对TurboC来说,小数部分5位,指数部分4位(包括字母e或E,1位阶符,2位阶码)。,4.3格式输入/输出功能语句,27,%g格式(或%G)这种格式用于输出浮点数,且不输出无意义的0。根据数值的大小,系统以尽可能地少占输出宽度为目的,自动选择f格式或e格式输出。例如:printf(%f-%g,123.4,123.4);输出:123.400000-123.4printf函数的控制字符的进一步说明以上介绍了9种控制字符的一般用法,为了满足特殊的要求,还可以对控制字符加一些特殊的修饰。修饰符或标志共有6种,如下表所示。,4.3格式输入/输出功能语句,28,表:格式控制串中的标志(修饰符),4.3格式输入/输出功能语句,29,例:includemain()printf(%+dt%+dn,786,-786);/*输出:+786-786*/printf(a=%dta=%dn,5,-5);/*输出:a=5a=-5*/printf(%on,1427);/*输出:02623*/printf(%xn,1427);/*输出:0 x593*/printf(%gn,1427.00);/*输出:1427*/printf(%gn,1427.00);/*输出:1427.00*/printf(%+09d,125);/*输出:+00000125*/printf(%*.*f,7,2,87.4573);/*输出:87.46*/,4.3格式输入/输出功能语句,30,程序中易出现的错误把除%X,%G,%E外的控制字符写成大写,如%D等。试图用%c格式输出字符串的第一个字符。如:printf(%c,China);这样输出不了C。试图用%s格式输出字符。如:printf(%sn,a);结果是错误的。,4.3格式输入/输出功能语句,31,(2)scanf函数scanf函数能对各种类型的数据变量进行格式化输入。scanf函数的一般格式为:scanf(,)对比:printf(,)前面我们已知,scanf的输入列表中是以逗号分开的变量的地址,即每个变量名前面须加一个地址运算符c=getchar();pre=c-1;,4.3格式输入/输出功能语句,35,putchar(pre);putchar(,);putchar(c);putchar(n);getchar();/因输入了两个符号,需将回车符读入scanf(“%c”,运行输出:i(输入第一个i,然后按“回车”)h,ii(输入第二个i,也得按“回车”)i,j,4.3格式输入/输出功能语句,36,例:输入一个球的半径,求其体积;输入一个圆柱体的底面半径和高,求圆柱体的表面积。编程思路:找出和问题有关的量,每个量用一个变量表示。本题需要定义5个变量:球半径rg,球体积volume,圆柱底面半径rs,高h,表面积area。写出数学公式:volume=,4.3格式输入/输出功能语句,37,把代数公式转换成C语言的表达形式。volume=4*rg*rg*rg/3;area=2*rs*rs+2*rs*hC语言中没有这个字符,必须用一个常数代换它,因为对它要使用多次,所以可以把它定义为符号常量,方法如下:definePI3.1415

温馨提示

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

最新文档

评论

0/150

提交评论