C语言程序设计第三章.ppt

上传人:tia****nde 文档编号:11495442 上传时间:2020-04-25 格式:PPT 页数:48 大小:899KB
返回 下载 相关 举报
C语言程序设计第三章.ppt_第1页
第1页 / 共48页
C语言程序设计第三章.ppt_第2页
第2页 / 共48页
C语言程序设计第三章.ppt_第3页
第3页 / 共48页
点击查看更多>>
资源描述
重庆电力高等专科学校,C语言是结构化程序设计语言,提供了功能丰富的控制语句,本章开始陆续介绍C语言的控制语句:顺序结构、选择结构和循环结构。本章主要介绍三种结构化设计的基本概念,格式输入输出函数printf()和scanf(),字符输入输出函数putchar()和getchar()等内容,要求重点掌握顺序结构设计的基本思想及程序编写方法,熟练掌握常见输入、输出库函数的调用。,重庆电力高等专科学校,3.1C语句概述,3.3赋值语句,3.4格式输入与输出,3.2程序的三种基本结构,3.5字符数据的输入输出函数,3.6顺序结构程序设计举例,重庆电力高等专科学校,3.1C语句概述,C语言的语句分为如下五大类:(1)表达式语句:表达式后面加一个分号就构成了一个表达式语句。例如:sum=a+b;/*赋值语句*/i+;/*自加运算表达式语句*/x=1,y=2;/*逗号表达式语句*/(2)函数调用语句:函数调用语句由一个函数加一个分号构成。例如:printf(“ThisisaCstatement.”);,重庆电力高等专科学校,3.1C语句概述,(3)复合语句:用花括号将多个语句组合在一起称为复合语句,又称为语句块(block)。例如:intx,y;z=x+y;printf(“d%”,z);(4)空语句:只有一个分号(;)的语句称为空语句。在程序中空语句经常被用作循环体,比如常见的用于延时的一种循环语句。例如:for(i=0;i0)t=a;此处if语句中a=b是赋值表达式而不是赋值语句。,重庆电力高等专科学校,3.4格式输入与输出,信息从计算机的外部设备流入计算机称为输入。信息从计算机主机流向外部设备称为输出。C语言中没有输入输出语句,而是由输入输出函来实现的输入/输出的。C标准函数库中包含的常用输入输出函数有:格式输出函数printf()格式输入函数scanf()单个字符输出函数putchar()单个字符输入函数getchar()使用标准输入输出库函数时,要用编译命令“#include”将有关头文件“stdio.h”包括到用户的源文件当中。即:#include或#include“stdio.h”,重庆电力高等专科学校,3.4格式输入与输出,3.4.1printf()函数(格式输出函数),一般格式:printf(格式控制”,输出列表);例如:printf(“a=%d,b=%cn”,a,b)功能:向默认输出设备(一般是显示器)输出“输出列表”中各数据项。,1.格式控制格式控制也称“控制字符串”,是由双引号括起来指定输出格式的字符串。他由格式说明、控制字符和普通字符三部分组成。,重庆电力高等专科学校,3.4格式输入与输出,3.4.1printf()函数(格式输出函数),(1)格式说明构成:由“%”字符开始后面跟有各种格式字符。作用:以说明输出数据的类型、形式、长度、小数位等格式。,C语言提供的常用printf()函数格式说明:,重庆电力高等专科学校,3.4格式输入与输出,3.4.1printf()函数(格式输出函数),(2)控制字符控制字符用于控制设备的动作,如下表中制表符“t”、换行符“n”等。,例如:printf(“x=%dn”,x);,重庆电力高等专科学校,3.4格式输入与输出,3.4.1printf()函数(格式输出函数),(3)普通字符除格式说明和控制字符之外,其他字符均属普通字符,打印时按原样输出。例如:printf(“x=%d,%c”,12,6*8);其中“x=”和“,”都是普通字符。输出结果是:x=12,48,重庆电力高等专科学校,3.4格式输入与输出,3.4.1printf()函数(格式输出函数),2.输出列表输出列表:就是需要输出的各数据项表达式,表达式之间用逗号分隔。,注意:(1)表达式可以由变量构成,也可以由常量构成;(2)表达式之间的逗号不是逗号表达式,而是确定计算顺序的分隔符,自右向左进行的计算。,重庆电力高等专科学校,3.4格式输入与输出,3.4.1printf()函数(格式输出函数),3.附加说明符在%与格式字符间插入附加说明符,组成:“%”输出格式来达到更高输出格式要求。,重庆电力高等专科学校,3.4格式输入与输出,3.4.1printf()函数(格式输出函数),重庆电力高等专科学校,3.4格式输入与输出,3.4.1printf()函数(格式输出函数),【例3.1】输出整型、长整型、无符号整型数据#include“stdio.h”voidmain()inty=20;longa=1024;unsignedb=54321;printf(“%d,%ld,%un”,y,a,b);printf(“%+8d,%+8ld,%+8un”,y,a,b);printf(“%08d,%08ld,%08un”,y,a,b);printf(“%-8d,%-8ld,%-8un”,y,a,b);printf(“%o,%lo,%on”,y,a,b);printf(“%#x,%#lx,%#xn”,y,a,b);printf(“%8o,%8lo,%8on”,y,a,b);printf(“%-8x,%-8lx,%-8xn”,y,a,b);,重庆电力高等专科学校,3.4格式输入与输出,3.4.1printf()函数(格式输出函数),运行结果如下:(代表空格)20,1024,54321+20,+1024,5432100000020,00001024,0005432120,1024,5432124,2000,1520610 x14,0 x400,0 xd432124,2000,15206114,400,d4321,重庆电力高等专科学校,3.4格式输入与输出,3.4.1printf()函数(格式输出函数),【例3.2】输出字符和字符串#include“stdio.h”voidmain()charch=a;printf(“%cn”,ch);printf(“%-3cn”,ch);printf(“%3cn”,ch);printf(“%sn”,”programing”);printf(“%15sn”,”programing”);printf(“%-15sn”,”programing”);printf(“%10.5sn”,”programing”);printf(“%-10.5sn”,”programing”);,运行结果如下:aaaprogramingprogramingprogramingprogrprogr,重庆电力高等专科学校,3.4格式输入与输出,3.4.1printf()函数(格式输出函数),【例3.3】输出实型数据#include“stdio.h”voidmain()floatx,y;doublea;x=111111.111;y=123.468;a=333333333.33333;clrscr();printf(“%fn”,x);printf(“%fn”,a);printf(“%10f,%10.2f,%.2f,%-10.2fn”,x,x,x,x);printf(“%en”,x);printf(“%en”,a);printf(“%10e,%10.2e,%.2e.%-10.2en”,a,a,a,a);printf(“%f,%e,%g”,y,y,y);,重庆电力高等专科学校,3.4格式输入与输出,3.4.1printf()函数(格式输出函数),程序运行结果如下:111111.109375333333333.333330111111.109375,111111.11,111111.11,111111.111.11111e+053.33333e+083.33333e+08,3.3e+08,3.3e+08.3.3e+08123.468002,1.23468e+02,123.468,重庆电力高等专科学校,3.4格式输入与输出,3.4.1printf()函数(格式输出函数),4.使用printf()函数时应注意的问题,(1)调用printf()函数时,格式式转换说明符与输出项必须顺序和数据类型上一一对应一致。(2)VC6.0+规定:当格式说明符明个数少于输出项个数时,多余的输出项不予输出。当格式说符明个数多于输出项个数时,而输出不定值。(3)当printf()函数中多个输出项为表达式时,VC6.0+规定先从右到左的顺序计算各表达式的值,然后再从左到右的顺序输出结果。(4)在使用“f”格式符输出实数时,并非全部数字都是有效数字,单精度实数的有效位数一般为7位,双精度数的有效位数一般为16位。,重庆电力高等专科学校,3.4格式输入与输出,3.4.1printf()函数(格式输出函数),例如:#include“stdio.h”voidmain()floatx=111111.111,y=222222.222;printf(%f,x+y);输出结果为:333333.328125/*前7位是有效数字,后面数字无意义*/,重庆电力高等专科学校,3.4格式输入与输出,3.4.1printf()函数(格式输出函数),#include“stdio.h”voidmain()doublex=111111.11111,y=222222.22222;printf(%lf,x+y);输出结果为:333333.333330/*可达16位是有效数字,小数点保留6位*/,重庆电力高等专科学校,3.4格式输入与输出,3.4.2scanf()函数(格式输入函数),一般形式:scanf(格式控制,地址列表);功能:从键盘向程序中的变量输入一个或若干个任意类型的数据。例如:scanf(%d,%d,scanf(“%d%d%d”,输入数据的格式表示什么意思?,重庆电力高等专科学校,3.4格式输入与输出,3.4.2scanf()函数(格式输入函数),运行时按以下方式输入a,b,c的值:345(输入a,b,c的值,用空格间隔)a=3,b=4,c=5(输出a,b,c的值)注:输入数据时,在两个数据之间以一个或多个空格间隔,也可以用Enter键、Tab键分隔,不能用逗号作为两个数据的分隔符。下面输入均为合法:3453453(按Tab键)45如下面的输入不合法:3,4,5,重庆电力高等专科学校,3.4格式输入与输出,3.4.2scanf()函数(格式输入函数),3.使用scanf()函数时应注意的问题,(1)地址列表中的各个参量都是变量地址,而不是变量名。例如:设a、b分别为整型变量和浮点型变量,则scanf(“%d%f”,scanf(“%c”,重庆电力高等专科学校,3.4格式输入与输出,3.4.2scanf()函数(格式输入函数),运行该程序时如果输入:A输出结果为:c1isA,c2is(即C2接收了一个回车符,而没有被赋值)如果输入:AB输出结果为:c1isA,c2isB。,(7)对于unsigned型变量所需的数据,可以用%u,%d或%o,%x格式输入。,重庆电力高等专科学校,3.5字符数据的输入输出函数,3.5.1putchar函数(字符输出函数),格式:putchar(c);c为字符型或整型常量、变量或表达式。功能:向终端(显示器)输出一个字符,如果c为整型,则输出ASCII码值等于参数c的字符。例如:putchar(“a”)/*输出结果为:a*/putchar(97)/*输出结果为:a*/,注意:使用本函数是必须要用文件包含命令:#include,重庆电力高等专科学校,3.5字符数据的输入输出函数,3.5.1putchar函数(字符输出函数),例如:#includevoidmain()charx,y,z;x=B;y=Y;z=E;putchar(x);putchar(y);putchar(z);运行结果为:BYE,重庆电力高等专科学校,3.5字符数据的输入输出函数,3.5.1putchar函数(字符输出函数),用putchar()函数可以输出也可以输出屏幕控制字符,如果将上面例题的最后一行改为:putchar(x);putchar(n);putchar(y);putchar(n);putchar(z);运行结果为:BYE,重庆电力高等专科学校,3.5字符数据的输入输出函数,3.5.1putchar函数(字符输出函数),其次putchar()函数还可输出转义字符。,putchar(101);/*输出结果为字母:A*/putchar();/*输出结果为单引号:*/putchar(”);/*输出结果为双引号:”*/putchar(255);/*输出结果为图形符号:!*/,重庆电力高等专科学校,3.5字符数据的输入输出函数,3.5.2getchar()函数(字符输入函数),格式:getchar();功能:从键盘(或系统默认的输入设备)输入一个字符。例如:charx;x=getchar();putchar(x);运行结果:A(通过键盘输入A,按回车键)A(输出变量x的值A),注意:(1)getchar()函数没有参数。(2)该函数只能接收一个字符。(3)使用函数前需加上文件包含命令:#include。,重庆电力高等专科学校,3.5字符数据的输入输出函数,3.5.2getchar()函数(字符输入函数),【例3.4】字符输入输出函数的使用#includevoidmain()charc1,c2;charc3=X;c1=getchar();c2=getchar();putchar(c1);putchar(c2);putchar(c3);运行时若输入A输出结果为:AX,重庆电力高等专科学校,3.6顺序结构程序设计举例,【例3.5】从键盘输入一个小写字母,输出其对应的大些字母及其相应的ASCII码值。,分析:从ASCII码表中得知:小写字母的ASCII码-32=大写字母ASCII码,程序如下:#includevoidmain()charch1,ch2;ch1=getchar();ch2=ch1-32;printf(nletter:%c,ASCII=%d,ch1,ch1);printf(nletter:%c,ASCII=%d,ch2,ch2);,重庆电力高等专科学校,3.6顺序结构程序设计举例,【例3.6】输入三角形的三边长,求三角形的面积。分析:根据数学知识可知求三角形的面积公式为:,area=,(注:s=(a+b+c)/2),程序如下:#include#includevoidmain()floata,b,c,s,area;scanf(%f,%f,%f,重庆电力高等专科学校,3.6顺序结构程序设计举例,【例3.7】求方程的根。a,b,c由键盘输入,设。,分析:根据数学知识可得一元二次方程的根为:,可以将上面的分式分为两项:,则x1=p+q,x2=p-q,重庆电力高等专科学校,3.6顺序结构程序设计举例,程序如下:#include#includevoidmain()floata,b,c,disc,x1,x2,p,q;scanf(a=%f,b=%f,c=%f,
展开阅读全文
相关资源
相关搜索

当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!