第3章 顺序程序设计new.ppt_第1页
第3章 顺序程序设计new.ppt_第2页
第3章 顺序程序设计new.ppt_第3页
第3章 顺序程序设计new.ppt_第4页
第3章 顺序程序设计new.ppt_第5页
已阅读5页,还剩54页未读 继续免费阅读

下载本文档

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

文档简介

1、2020/7/15,1,第3章 顺序程序设计,3.1 C语言的基本语句 3.2 数据输入与输出 3.3 程序举例,C语言程序设计教程,2,顺序结构是程序设计语言最基本的结构,其包含的语句是按照书写的顺序执行的,且每条语句都将被执行。 C语言的语句可分为以下四类:简单语句(包括输入/输出语句)、空语句、复合语句和流程控制语句。,3.1 C语言的基本语句,3,4,顺序结构程序由简单语句组成,程序流程如图3.1 所示,语句按书写顺序执行。先执行A,再执行B。,B,A,图3.1 顺序结构执行流程,5,3.1.1 简单语句,表达式语句就是一个表达式加上一个分号。,A+; x=1;,函数调用语句由函数调用

2、表达式加分号构成 printf(“%d”,a);,3空语句 空语句用一个分号表示,其一般形式为: ;,6,C 语言有丰富的标准函数库, 可提供各类函数供用户调用调用标准库函数可完成预先设定好的操作. 例如调用标准库函数求数学函数值: sin(x) 、cos(x) 、 exp(x) (求ex ) 、fabs(x) (求x的绝对值)、log(x).,7,表达式语句举例,#include #include main() int a = 2 , b = 4; float x , y; x = a / 2 + sqrt( b ); /*x=3.0 */ a+ ; /*a=3 */ y = x * a ;

3、 /*y=9.0 */ printf(“x=%6.2f, y= %6.2f ”, x, y); ,8,程序说明,注意表达式类型转换 注意赋值类型 输出结果: x= 3.00, y= 9.00,9,调用调用标准库函数要注意以下几点,在程序中要包含相应的头文件,例如:#include,#include,10,调用调用标准库函数要注意以下几点,调用规则: 函数名(参数表),有返回值的函数要作为表达式的一部分,Y=sin(1.7);在表达式中调用函数,实际上是转去执行一段 预先设计好的程序,求出结果后返回调用点。 所以函数的值又叫函数的返回值。,11,函数调用举例,Y = sin ( 1.12); Y

4、1 = sin ( x ); Y2 = 3*sin (x+1.12 ) + sqr(x); Y3 = sin ( sqrt(x+1.12) );,12,3.1.2 复合语句, 内部数据说明; 语句1; 语句n; 注意: (1)在复合语句中说明的变量,是局部变量, 仅在 复合语句中有效。 (2)复合语句的 之后,不能有分号。,13,无返回值的函数可作为语句调用。,printf(“%d”,a); 调用它不是为了得到返回值(函数值), 是为了完成某项任务。,用一对花括号将多条语句组合在一起,在语法上相当于一条语句。,14,复合语句(程序块) 示例,main( ) int x=1; int x=2;

5、int x=3; printf(“x=%d”, x); printf(“x=%d”, x); printf(“x=%d”, x);,15,3.2 数据输入与输出,C语言本身不提供输入输出语句,得由标准I/O库函数提供。输入输出库函数很丰富,可以从键盘、显示器、磁盘文件和硬件端口进行输入或输出操作。 本节主要介绍用于键盘输入和显示器输出的函数。,16,语言的输入输出操作是由函数来实现的;这些函数放在标准I/O函数库中。标准I/O函数库中的一些公用信息事先放在头文件stdio.h中。,在程序开始用命令行#include 把要使用的信息包含到用户程序中。,语言的函数库中有一批“标准输入输出函数”,它

6、们以标准的输入输出设备为输入输出对象。,由于printf和scanf函数使用频繁,系统允许使用时不加#include命令。,17,3.2.1 字符输入输出函数,getchar( )/putchar( ),getchar( )和putchar( )是一对用于单个字符输入输出的标准函数。,一、putchar( )函数,功能:在终端的当前位置输出一个字符,格式:putchar(字符变量) 或 putchar(输出字符),18,#include main( ) char a,b; a=B; b=o; putchar(a); putchar(b); putchar(y); ,例:,Eg201.c,运行结

7、果为,Boy,19,putchar( )也可以输出控制字符,如putchar(n)。,可以将上例的最后一行改为:,putchar(a); putchar(n); putchar(b); putchar(n); putchar(y); putchar(n);,也可以输出其它转义字符,如:,putchar(); putchar();,20,二、getchar( )函数,功能:从终端输入一个字符,说明:无参数;程序暂停运行,等待从键盘上输入一个字符,再回车;通过赋值语句将函数的返回值送到某一字符型变量中。,例如: ch=getchar( ),21,#include main( ) char ch;

8、ch=getchar( ); putchar(ch); ,例:,Eg202.c,putchar(getchar( );,22,、getchar( )函数只接收一个字符,而不是一个字符串;,、使用putchar、getchar函数需要加上命令行 #include ,说明:、只有在按“回车”键之后输入才生效;,23,3.2.2 格式化输入输出函数,printf( )/scanf( ),24,一、printf( )函数,功能:向终端输出若干个任意指定类型的数据,格式:printf(格式控制,参数表列),说明:,、由“格式控制”部分控制后面的参数按确定的输出格式在屏幕上输出具体的内容,因此必不可少;,

9、、参数表列可以由0到多个具体参数组成,其中的参数可以是常量、变量或表达式,也可以没有任何参数(0参数)。,如:printf(This is a C program!),25,格式控制可分为三种情况:,1、不含有“%”的普通字符串。此时第二部分将没有参数,其结果是将字符串原样显示。,printf(This is a C program!n);,printf(Hello,World!n);,语言中规定了一组以反斜杠()开头后面跟一个字符的符号,称为“转义字符”。意思是将反斜杠后面的字符转换成另外的意义。,27,例如:,Eg204.c,printf(Hello,computer!n);,printf

10、(101,012,044);,printf(x31,x10,x41);,Eg203.c,printf(NotNametSextScoretn);,2、带有格式控制符的的格式输出,格式控制符由“%”和跟随其后的一个字符构成。如%d、%f、%c、%s等。,29,在格式控制符中,%和后面跟随的单个字符之间又可以插入以下几种修饰符。,注意:格式控制符的个数与后面的参数个数应相等,且前后位置要一一对应。,30,3、普通字符串与格式控制符混合使用,格式控制符用后面相应位置的常量、变量或表达式的值代替,其余普通字符一律原样显示。,Eg210.c Eg211.c,main( ) printf(2+3=%d,

11、2*3=%dn,2+3,2*3); ,输出结果: 2+3=5,2*3=6,31,例3.1 类型转换字符d的使用。 /*案例代码文件名:AL3_2.C。*/ main() int num1=123; long num2=123456; /*用3种不同格式,输出int型数据num1的值*/ printf(num1=%d,num1=%5d,num1=%-5d,num1=%2dn, num1,num1,num1,num1); /*用3种不同格式,输出long型数据num2的值*/ printf(num2=%ld,num2=%8ld,num2=%5ldn,num2,num2,num2); printf(

12、num1=%ldn,num1); ,32,程序运行结果如下: num1=123,num1=123,num1=123,num1=123 num2=123456,num2=123456,num2=123456 num1=16908411 对于整数,还可用八进制、无符号形式(%o(小写字母o))和十六进制、无符号形式(%x)输出。对于unsigned型数据,也可用%u格式符,以十进制、无符号形式输出。 所谓无符号形式是指,不论正数还是负数,系统一律当作无符号整数来输出。例如,printf(%d,%o,%xn,-1,-1,-1);,33,例3.2 类型转换字符f的使用。 /*案例代码文件名:AL3_3

13、.C。*/ main( ) float f=123.456; double d1,d2; d1=1111111111111.111111111; d2=2222222222222.222222222; printf(%f,%12f,%12.2f,%-12.2f,%.2fn,f,f,f,f,f); printf(d1+d2=%fn,d1+d2); ,程序运行结果如下: 123.456001,123.456001,123.46,123.46,123.46 d1+d2=3333333333333.333010,34,本案例程序的输出结果中,数据123.456001和3333333333333.333

14、010中的001和010都是无意义的,因为它们超出了有效数字的范围。 对于实数,也可使用格式符%e,以标准指数形式输出:尾数中的整数部分大于等于1、小于10,小数点占一位,尾数中的小数部分占5位;指数部分占4位(如e-03),其中e占一位,指数符号占一位,指数占2位,共计11位。 也可使用格式符%g,让系统根据数值的大小,自动选择%f或%e格式、且不输出无意义的零。,35,程序运行结果如下: c=A,A,65 i=65,A 需要强调的是:在C语言中,整数可以用字符形式输出,字符数据也可以用整数形式输出。将整数用字符形式输出时,系统首先求该数与256的余数,然后将余数作为ASCII码,转换成相应

15、的字符输出。,案例3.3 类型转换字符c的使用。 /*案例代码文件名:AL3_4.C。*/ main() char c=A; int i=65; printf(c=%c,%5c,%dn,c,c,c); printf(i=%d,%c,i,i); ,36,案例3.4 类型转换字符s的使用。 /*案例代码文件名:AL3_10.C。*/ main() printf(%s,%5s,%-10s,Internet,Internet,Internet); printf(%10.5s,%-10.5s,%4.5sn,Internet,Internet,Internet); 。,程序演示 程序运行结果如下: Int

16、ernet,Internet,Internet,Inter,Inter,Inter 注意:系统输出字符和字符串时,不输出单引号和双引号,37,使用说明 (1)printf()可以输出常量、变量和表达式的值。但格式控制中的格式说明符,必须按从左到右的顺序,与输出项表中的每个数据一一对应,否则出错。 例如,printf(str=%s, f=%d, i=%fn, Internet, 1.0 / 2.0, 3 + 5, CHINA);是错误的。 (2)格式字符x、e、g可以用小写字母,也可以用大写字母。使用大写字母时,输出数据中包含的字母也大写。除了x、e、g格式字符外,其它格式字符必须用小写字母。

17、例如,%f不能写成%F。 (3)格式字符紧跟在“%”后面就作为格式字符,否则将作为普通字符使用(原样输出)。 例如,“printf(”c=%c, f=%fn“, c, f);”中的第一个c和f,都是普通字符。 Return,38,二、scanf( )函数,功能:等待用户从键盘上输入数据,然后按格式控制的要求对数据进行转换后送到相应的变量地址中去。,格式:scanf(格式控制,地址表列),说明:,、由“格式控制”部分控制输入的数据按确定的格式送到相应变量的地址单元中;,、“地址表列”由若干个地址组成,可以是变量的地址或字符串的首地址。,scanf(%d%d%d, scanf(%d%d%d, ,E

18、g212.c,不含其它字符的格式控制部分,输入数据时,两个数据之间以一个或多个空格、用Tab键或回车键分隔。,41,在%和格式字符之间可插入附加的格式说明符。,42,3、使用scanf( )时应注意的一些问题,、格式控制符中不带域宽,则以分隔符作字符串的结束,反之则按域宽进行截取。,、附加说明符 * 表示跳过相应的输入数据。,、不能企图用格式控制来规定输入数据的精度。,scanf(%7.2f, printf(Please input radius 程序运行结果如下: Please input radius puts(str); ,输出结果为: China Beijing,printf(%s,str);,49,二、gets( )函数,作用:从终端输入一个字符串到字符数组,格式:gets(字符数组名),#include main( ) char str20; gets(str); puts(str); ,Eg219.c,scanf(%s,str);,?,50,注意:scanf( )函数在接收字符串时,以空格或回车符作为分隔符;而gets( )函数仅以回车符作为结束符。所以输入带空格的字符串时候必须用gets( )函数。,51,3.3 程序举例

温馨提示

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

评论

0/150

提交评论