《顺序结构程序设计.pptx》由会员分享,可在线阅读,更多相关《顺序结构程序设计.pptx(38页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、5.1 5.1 语语 句句5.2 5.2 库函数的使用库函数的使用5.3 5.3 顺序结构程序设计顺序结构程序设计第1页/共38页5.1语语句句5.1.1语句的概念语句的概念 语句是是算法实现的程序表示,是算法实现的最小单位。语句说明了一种行为,它是用计算语言编写的控制计算机完成确定操作的句子。第2页/共38页5.1.2C语句的分类语句的分类C语言将语句分为以下几类:(1)表达式语句;(2)流程控制语句;(3)函数调用语句;(4)跳转语句;(5)标号语句;(6)复合语句;(7)空语句。第3页/共38页5.1.3语句和表达式的区别语句和表达式的区别任意类型的表达式都是有值的,而语句是向计算机发出
2、的完成表达式运算的一个动作,语句是没有值的。表达式可以作为运算对象参与其他表达式的运算,而语句则不能。例如,x=3*(a=4)是合法的表达式,而x=3*(a=3;)则不是合法的表达式。第4页/共38页5.2 5.2 库函数的使用库函数的使用 在C语言中函数占有及其重要的地位,这里首先来简单介绍一下函数的概念。函数是事先编写好的完成一定功能的程序段。下面以TurboC为例,讲述部分输入输出和数学库函数的使用。第5页/共38页5.2.1库函数的使用库函数的使用 标准的库函数使用方法较为简单,但是由于库函数是存放在函数库中的,因此在使用时必须告诉计算机该库函数属于哪一个库,以便计算机及时查找并执行其
3、程序体,这一过程一般称为函数的声明。第6页/共38页#includemath.hmain()floatx,y;y=sin(x);其中#includemath.h就是对函数的声明过程。include是C语言的特定字,是包含的意思,在使用前要加符号“#”。被包含的文件又称为头文件。函数的使用称为调用,在函数调用后加“;”就构成了函数调用语句,函数也可以作为运算的运算对象。函数名括号里面的量值称之为参数,当给定这些参数的量值时,编译系统就可通过给定的量值计算出所需的结果第7页/共38页5.2.2常用的输出函数常用的输出函数1多种类型数据输出函数多种类型数据输出函数printf()printf(格式控
4、制,输出表列)该函数的功能是将输出表列中的数据按照格式控制的格式输出到标准输出设备。第8页/共38页 第一部分称为格式控制,是用双引号括起来的字符串,包含普通字符和以“%”开头的格式控制字符两类成份构成;第二部分是需要输出的数据,可以任意多个,每个数据之间用逗号隔开。格式字符和输出表列中的数据项具备一一对应关系,其作用是控制对应的输出项按照指定的格式输出;普通字符指的是除格式字符外的任意字符,可以用字符的各种表示形式去描述,其作用是按照该字符的含义输出。第9页/共38页格式字符种类较多,下面作较为详细的讲解。(1)%c%c用以输出单个字符。例如:printf(Thecharacteris:%c
5、n,a);表示把字符a以%c的格式输出到计算机的屏幕上。在用户屏幕上看到如下内容:Thecharacteris:a第10页/共38页(2)%d%d按照十进制形式输出整型数据。例如:printf(Thenumberis:%dn,18);屏幕上看到输出的结果为:Thenumberis:18第11页/共38页(3)o o按照八进制格式输出整型数据。以该格式输出数据时,按照八进制的形式输出对应数据项的机器码。(4)%x%x按照十六进制格式输出整型数据。以该格式输出数据时,按照十六进制的形式输出对应数据项的机器码。第12页/共38页(5)%u%u按照无符号形式输出整型数据,把对应内存中的数据以无符号数的
6、形式输出。以上的5种格式字符既可用于输出字符型数据,也可用于输出整型数据。看下列的程序及运行结果。第13页/共38页例例5.4main()inta=65;charc=A;printf(%c,%dn,a,a);printf(%c,%dn,c,c);第14页/共38页运行结果:A,65A,65以上的4种整型数据的格式字符前加上类型修饰符后可用于输出长整型数据,有%ld,%lo,%lx,%lu4种格式。看下列的程序及运行结果。第15页/共38页例例5.5main()longinta=8,b=-1;printf(%ld,%lo,%lx,%lun,a,a,a,a);printf(%ld,%lo,%lx,
7、%lun,b,b,b,b);程序运行结果为:8,10,8,8-1,37777777777,ffffffff,4294967295第16页/共38页若将上述程序改为:main()longinta=8,b=-1;printf(%d,%o,%x,%un,a,a,a,a);printf(%d,%o,%x,%un,b,b,b,b);将不能正确的输出结果,因为a和b是长整型变量,不能以整型格式输出。第17页/共38页以上5种格式均有含有域宽修饰的扩展形式。如:%mc、%md、%mo、%mx、%mu、%mld、%mlo、%mlx、%mlu等,其中m是一个直接形式的整型常量,是域宽修饰符,表示输出数据应当占用
8、的列宽。如果数据实际输出所占列宽小于m,m表示左端补足空格,m前有负号时右端补足空格,如果数据实际输出所占列宽大于m,m不起作用。第18页/共38页例例5.6main()inta=-1;printf(%5d,%-10o,%8xn,a,a,a);程序运行后,输出如下结果:-1,177777,ffff第19页/共38页(6)%s%s输出字符串。%m.ns格式为其扩展格式,+,m的含义和上述相同。n也是一个直接形式的常量,表示取字符串中的左起n个字符,n修饰符必须和“.”结合使用才是有意义的。字符串结束标志“0”是%s格式判断输出是否结束的标志。例如:printf(China%10s,%-8.3s,
9、China,China);其输出结果为:ChinaChina,Chi第20页/共38页(7)%f例例5.7main()floatm=123.4567891;printf(%f,%-8.3fn,m,m);其输出结果为:123.456789,123.457第21页/共38页(8)%e%e以指数形式输出浮点型数据,默认格式下尾数部分输出1位整数和5位小数,阶码部分输出符号及2位或者3位(阶码100时)阶码。%m.ne格式为其扩展格式,n表示取尾数部分n 1位小数,m表示该浮点数输出所占的列宽,表示m大于实际列宽时补空格的方式。例如,以%e格式输出例5.7中的变量m:printf(%e,%-12.3e
10、,m,m*1E100);其输出结果为:1.23457e+02,1.23e+102(9)%g按照输出时所占的列数,自动选取%f或%e格式输出符点型数据,选取的依据是输出所占列数的多少。第22页/共38页2字符格式输出函数字符格式输出函数putchar()putchar()函数的功能是向屏幕输出一个字符。该函数的一般格式为:putchar(参数)一般来说该函数是作为独立的函数调用语句来实现对其的调用。putchar()只有一个参数,此参数可以是常量,可以是变量,也可以是任意整型表达式,参数的值代表的是某字符对应的ASCII码值。调用该函数之前必须加上函数的声明部分:#includestdio.h第
11、23页/共38页例例5.11#includestdio.hmain()charc=A;putchar(c);/*语句*/putchar(t);/*输出转义字符t的功能,转到下一个输出区*/putchar(A);/*语句*/putchar(t);putchar(65);/*语句*/putchar(n);第24页/共38页5.2.3常用的输入函数常用的输入函数1多种类型数据输入函数多种类型数据输入函数scanf()scanf()函数的功能是从标准的输入设备读取各种类型的数据到相应的变量中。首先介绍一个取地址运算符&,该运算符是单目运算符,运算对象一般来讲是变量,其作用是得到参与“&”运算的运算对象
12、的地址,如“&a”则得到变量a的地址。第25页/共38页该函数的一般格式为:scanf(格式控制,地址表列);第一部分为格式控制部分,其构成和printf()一样,scanf()函数可以使用的格式字符可参见表5-3,普通字符是需要原样输入的字符,格式字符和地址表列中对应的变量具备一一对应关系,格式字符控制的不是地址,而是该地址对应的变量的类型;第二部分为对应变量的内存地址,是一个地址表列。例如,我们要把输入的3个整数存储到a、b、c这3个变量中,假设a、b、c为整型变量,具体用法为:scanf(%d%d%d,&a,&b,&c);第26页/共38页使用scanf()应注意以下问题。(1)当格式控
13、制部分中相邻的两个格式字符不含有普通字符时,在输入的时候可以采取scanf()函数默认的分隔方式。(2)当格式控制部分中相邻的两个格式字符包含%c格式时,输入时不能以空格、Tab键或回车键加以区分,因为空格、Tab键或回车键本身也是字符,只能严格按照格式控制规定按数据类型加以区分某项数据是否输入结束。(3)在scanf函数中允许使用域宽m来控制输入,m表示的是输入数据所占的列宽,实际输入不足m位时,可在输入的数据左侧或右侧加空格。第27页/共38页(4)修饰符*。*的含义是“跳过”,表示在地址表列中没有对应的控制项,但在输入时必须输入数据。(5)程序中如果有多个scanf(),系统会将多个sc
14、anf()结合为一个函数来处理,所以读者在使用时要多加练习,灵活掌握。(6)格式控制后最好不要加字符n,否则在输入时容易引起不便。(7)通常为了使程序在输入数据时易于操作,可使用下列的方式来提高程序的可读性。第28页/共38页例例5.14main()inta,b;floatx,y;printf(inputa(int),b(int)x(float)y(float):n);scanf(%d,%d”,&a,&b);scanf(%f%f,&x,&y);在使用scanf()函数时应首先在输入之前书写一个printf()函数,给出应输入的数据个数、类型及分隔方式的提示信息。读者可以使用易于理解的提示,增加
15、程序的可读性。第29页/共38页表5-3scanf()函数使用的格式字符格式字符说明用于输入十进制数用于输入八进制数用于输入十六进制数用于输入单个字符用于输入字符串(非空格开始,空格结束,字符串以0结尾)用于输入实数(小数或指数均可)与f相同(可与f互换)修饰符m域宽控制*跳过l用于长整型数(%ld、%lo、%lx)或double型实数(%lf、%le)第30页/共38页2字符读取函数字符读取函数getchar()字符读取函数为无参函数,其功能是从键盘读入一个字符。调用该函数之前必须加上对于函数的声明部分:#includestdio.h。例例5.15#includestdio.hmain()c
16、harc;c=getchar();putchar(c);putchar(getchar();第31页/共38页5.2.4数学函数数学函数C标准库函数提供了大量的数学函数以供使用,数学函数均为有参有返回值函数,使用时应注意函数的用法和使用环境。1开方函数开方函数开方函数的一般格式为:doublesqrt(doublex)其作用是求参数x的开方值,参数为双精度浮点型数据,返回值为双精度浮点型数据。如对4开方可编写如下程序。第32页/共38页例例5.16#includemath.hmain()floata;a=sqrt(4.0);printf(%fn,a);第33页/共38页5.3 5.3 顺序结构
17、程序设计顺序结构程序设计例例5.18已知三角形的三边长为4,6,7,求三角形的面积。分析:该例题已知三角形的三边长,我们可以通过多种方法求得其面积。第34页/共38页算法三:上例可以做如下处理,定义三个边长分别为a、b、c三个变量,利用scanf()函数从键盘读取三边的具体数值,从而扩展程序的通用性。可得到如图5.4所示的流程图。图5.4例5.18算法三第35页/共38页根据算法三编写程序:#includemath.hmain()floata,b,c,t,s;pritnf(inputabc:n);scanf(%f%f%f,&a,&b,&c);t=(a+b+c)/2;s=sqrt(t*(t-a)*(t-b)*(t-c);printf(%.3fn,s);第36页/共38页例例5.19将任意小写字母,转换为对应的大写字母并输出。小写或大写字母均为字符,字符参与运算时实际是将字符转换为整型数据运算。根据ASCII表规律可知对应大小写字母ASCII值相差32。可得到如图5.5所示的流程图。程序如下:#includestdio.h#includestdio.hmain()main()charc;intc;c=getchar();c=getchar();c=c-32;c=c-32;putchar(c);putchar(c);第37页/共38页感谢您的观看!第38页/共38页
限制150内