C语言程序设计课件第2章顺序结构.ppt_第1页
C语言程序设计课件第2章顺序结构.ppt_第2页
C语言程序设计课件第2章顺序结构.ppt_第3页
C语言程序设计课件第2章顺序结构.ppt_第4页
C语言程序设计课件第2章顺序结构.ppt_第5页
已阅读5页,还剩26页未读 继续免费阅读

下载本文档

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

文档简介

1、C语言程序设计,第2章 顺序结构,本章主要内容,1. 运算符及表达式,2. C语句,3. 输入输出控制,顺序结构程序设计,C是面向过程的结构化程序设计语言,进行程序设计就是设计解题的操作过程。 结构化程序设计由顺序结构、选择结构和循环结构三种结构组成。 顺序结构是最基础的结构形式,因为没有任何限制的时候,程序以语句出现的顺序来执行。 程序设计中,最小的独立单元是语句。如自然语言中的句子一样,语句也有固定的表现形式和组成结构。本章将在第1章的基础上介绍操作数据的运算符,进而形成表达式,然后构成语句。同时还将介绍数据的输入、输出控制函数的使用。,运算符及表达式,运算符是指运算的符号,C语言拥有非常

2、丰富的运算符。 表达式由运算符与操作数组合而成,并由运算符指定对操作数要进行的运算,一个表达式的运算结果是一个值。,学习运算符及表达式应注意以下问题: (1)运算符的功能 (2)运算符对运算对象的限制 (3)运算符的优先级和结合性 (4)表达式值的类型 (5)表达式的书写规则,C语言运算符的优先级与结合性,算术运算符和算术表达式,算术运算符有: 单目运算符:-(负)、+(正),右结合 双目运算符:+、- 、*、/(整数相除结果 取整)、%(取余) 优先级: 先乘除(含取余),后加减,括号优先 结合性: 同级从左至右,要求%两侧均为整形数据,写出以下面算术表达式的优先级和结合性: a*b/c-1

3、.5+a a/b/c*(3-d),算术运算符和算术表达式,#include stdio.h void main() int i=3; float r=2.0; printf(2*-i:%dn,2*-i); printf(r/i:%fn,r/i); printf(r/i:%dn,r/i); i=r/i; printf(i=r/i:%dn,i); i=2%3; printf(2%3:%dn,i); ,【例2.1】算术运算符的使用示例。,2*-i:-6 r/i:0.666667 r/i:1431655765 i=r/i:0 2%3:2,赋值运算符及赋值表达式,由赋值运算符“=”将变量和表达式连接起来

4、的式子。其形式是: =,int a,b,c; a=5 a=5 a=b=c=5 a,b,c均为5 a=5+(c=6) c为6 ,a为11 a=(b=4)+(c=6) c为6 , b为4,a为10 a=(b=10)/(c=2) c为2,b为10,a为5,复合赋值运算符,在赋值符“=”之前加上其它二目运算符可构成复合赋值符。 如:+=,-=,*=,=,%=,=, x=3; y=8;x*=y+1; printf(x=%d,y=%dn,x,y); x=3;y=8;x=x*y+1; printf(x=%d,y=%dn,x,y); ,x=27,y=8 x=25,y=8,自增自减运算符,+(自增), -(自减

5、): +n, -m 前缀, 变量的值+(-)1 n+ , m- 后缀, 变量的值+(-)1 优先级: 高于双目运算 结合性: 同级从右至左 j=3; m=+j; j=j+1;m=j;即j的为4,m的值为4 n=j+; n=j;j=j+1;即j的为4,n的值为3 说明:对于j变量,j+和+j都使j的值加1,但m和n 的值就不同了,所以前缀和后缀运算对变量是一样的,对 表达式的值就不一样。,自增自减应用,【例2.3】自增自减运算符的使用。,#includestdio.h void main() int i=8; printf(%dn,+i); printf(%dn,-i); printf(%dn,

6、i+); printf(%dn,i-); printf(%dn,-i+); printf(%dn,-i-); ,9 8 8 9 -8 -9,逗号运算符和表达式,逗号表达式的格式: 表达式1,表达式2, ,表达式n 逗号表达式的求解顺序及结果: 先求解表达式1,再求解表达式2,,最后求解表达式n;逗号表达式的最终结果为表达式n的值。 实例: a=3*5,a*4 最终结果为60 x=(a=10,b=100,c=50) 最终结果为50 y=(i+, j-, k+2) 最终结果为k+2,数据类型转换,自动转换:当参加算术运算的数据类型不一致时低级向高级转换;赋值运算符两边的数据类型不同时,将右侧表达式

7、的值转换为左侧变量的类型。 强制转换:强迫变量或表达式的值转换为某一特定类型。常用在自动类型转换不能达到目的时。转换格式为: (类型说明符)变量 (类型说明符)(表达式) (double)a, (int)(x+y) ,(float)(5%3),转换不会改变变量定义时所规定的数据类型,赋值时的类型转换,“=”两侧类型不一致时,要将“=”右侧表达式的值转换为“=”左侧变量的类型,右侧表达式类型的字节超过变量类型的字节时会出错 整实:截掉小数部分 实整:数值不变,存为浮点 整char:整型低8位char 整型(字节数相同的)unsigned 整型:原样送入。若超过整型表示范围会出错。 unsigne

8、d(字节数相同的)非unsigned整型:原样送入,符号位也作为数值,C语句,C语言的语句用来向计算机发出操作指令。C语句分为以下四类: 执行语句:a+;、printf(“ok”);等 声明语句:float x,y; 空语句:如:; 复合语句:即用大括号把一些语句括起来。, int x=1 int x=2; int x=3; printf(“%dn”,x); printf(“%dn”,x); printf(“%dn”,x); ,输入输出控制,C语言本身没有输入/输出语句,所有输入/输出都由函数来实现 C语言的标准库函数 是由编译系统提供的一系列子程序 调用形式: 函数名(参数表) 输入输出函数

9、在使用前须用预编译命令 “#include”将“stdio.h”头文件包含到用户的源文件中。即: #include “stdio.h”,标准输入输出函数,字符I/O,字符串I/O,格式I/O,getchar() putchar(),scanf() printf(),gets() puts(),格式输出函数printf(),格式输出函数: printf(格式控制字符串,输出项表列); 功能:按“格式控制字符串” 的输出格式,将输出项目表中的各输出项依次输出到系统指定的缺省输出设备。,格式字符串是以%(格式转换说明符)与(转义字符)开头的字符串,在%与后面跟有各种格式字符,以说明输出数据的类型、形

10、式、长度、小数位数、换行等。,输出项表列是若干个需要输出的数据项,这些待输出的数据项简称为输出项。输出项可以是变量,也可以是表达式。输出项之间用逗号分隔。要求格式字符的个数和输出项表列在数量和类型上应该一一对应。,格式控制字符串,格式控制字符串的内容可以是下列三种形式之一或是它们的组合: 格式说明符:用于规定相应输出项内容的输出格式; 转义字符:用来输出转义字符所代表的控制代码或特殊字符; 普通字符:要求原样输出的字符(非格式字符串)。,while语句应用实例,【例2.5】分析以下程序的输出结果。,#includestdio.h void main() int a=15; float b=13

11、8.3576278; double c=35648256.3645687; char d=p; printf(a=%d,%5d,%o,%xn,a,a,a,a); printf(b=%f,%lf,%5.4lf,%en,b,b,b,b); printf(c=%lf,%f,%8.4lfn,c,c,c); printf(d=%c,%8cn,d,d); ,a=15, 15,17,f,b=138.357620,138.357620,138.3576,1.383576e+002,c=35648256.364569,35648256.364569,35648256.3646,d=p, p,格式输入函数scan

12、f(),scanf()函数称为格式输入函数,即按用户指定的格式从键盘上把数据输入到指定的变量之中。 scanf()函数的一般形式为: scanf(格式控制字符串,地址表列);,格式控制字符串的作用与printf()函数相同,但不能显示非格式字符串,也就是不能显示提示字符串。 地址表列中给出各变量的地址。地址是由地址运算符“ printf(input a,b,cn); scanf(%d%d%d, ,789,或者:789,或者: 7 8 9,字符输入输出函数,字符输出函数putchar() putchar()函数是字符输出函数,其功能是在显示器上输出单个字符。其一般形式为: putchar(c);

13、 其中参数c代表字符变量或整型变量。 字符输入函数getchar() getchar函数的功能是从键盘上输入一个字符。其一般使用形式为: c=getchar(); 其中“c”是一个变量,通常把输入的字符赋予一个字符变量,构成赋值语句。,字符串输入输出函数,puts()函数 puts()函数用来向标准输出设备(屏幕)写字符串并换行,其调用格式为: puts(s); 其中s可以为字符串常量、字符数组名或字符指针,相关概念将在后续章节介绍。 gets()函数 gets()函数用来从标准输入设备(键盘)读取字符串直到回车结束,但回车符不属于这个字符串。其调用格式为: gets(s); 其中s为字符数组

14、名或字符指针。,算法解析,【例2.12】格式说明符的宽度和精度使用。,#include stdio.h void main() float a=12345.678; int b=12345; printf(n12345678901234567890); printf(n%21.10f:a1,a); printf(n%2.2f:a2,a); printf(n%10d:b1,b); printf(n%2d:b2n,b); ,12345678901234567890 12345.6777343750:a1 12345.68:a2 12345:b1 12345:b2,算法解析,【例2.13】将上例的输

15、出控制为左对齐。,#include stdio.h void main() float a=12345.678; int b=12345; printf(n12345678901234567890); printf(n%-21.10f:a1,a); printf(n%-2.2f:a2,a); printf(n%-10d:b1,b); printf(n%-2d:b2n,b); ,语法练习(单选题),单精度变量x=3.0,y=4.0,下列表达式中的y的值为9.0的是( )。 A) y/=x*27/4 B) y+=x+2.0 C) y-=x+8.0 D) y*=x-3.0 已定义 int num=sum=7, (sum=num+, sum+, +num)表达式的结果是( )。 A)7 B)8 C)9 D)10 已知i、j、k为int型变量,若从键盘输入:1,2,3,使i的值为1,j的值为2,k的值为3,以下选项中正确的输入语句是( )。 A) scanf(%2d %2d %2d,语法练习(填空题),以下程序运行后输出的结果是_。 #include main(

温馨提示

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

评论

0/150

提交评论