第2章_C语言程序设计基础.ppt
《第2章_C语言程序设计基础.ppt》由会员分享,可在线阅读,更多相关《第2章_C语言程序设计基础.ppt(57页珍藏版)》请在三一文库上搜索。
1、第2章 C语言程序设计基础,2,回顾,C语言的特点 C程序的编译和运行过程 编译器将源程序转换成机器能理解的程序 连接器用于连接相关的目标文件以生成可执行程序,3,教学目标,算法的表示方法 理解变量和常量的含义 熟悉基本数据类型 int、char、float 和 double 掌握算术运算符和赋值运算符的用法 理解表达式 理解类型转换,4,算法,著名计算机科学家沃思提出一个公式: 数据结构 + 算法 = 程序 算法: 为解决一个具体问题而采取的确定的有限的操作步骤,仅指计算机能执行的算法,对数据的描述:数据结构(data structure) 对操作的描述:算法(algorithm),5,算法
2、的特性,有穷性 在合理的时间内完成 确定性(无歧义) 如果x0,则输出Yes;如果x0,则输出No; 可行性(有效性) 能有效执行 负数开平方 没有输入或有多个输入 有一个或多个输出,有足够的情报,6,算法的表示方法,自然语言描述 流程图 在1966年,Bohra 与 Jacopini 提出 N-S图 1973年,美国学者I.Nassi 和 B.Shneiderman 提出 伪代码,7,例1 有两个存储单元a和b,要求将它们的值互换。,分析:按存储器的性质,如果将单元a的值直接送到单元b中,那么就会覆盖掉b原来的内容,因此,需要借助一个临时单元c来交换。,具体算法如下: 步骤1: 将单元a的值
3、送给单元c; 步骤2: 将单元b的值送给单元a; 步骤3: 将单元c的值送给单元b。,自然语言描述,8,例2 求1+2+3+4+10。,步骤1: 将0送到S中; 步骤2: 将1送到n中; 步骤3: 把n的值加到S中; 步骤4: n增1; 步骤5: 若n10则转回步骤3,否则执行步骤6; 步骤6: 输出S的值。,自然语言描述,9,流程图通常采用一些几何图形来代表各种类型的操作,在图形内标明文字或符号来表示操作的内容,并用箭头来表示操作的顺序。,用流程图表示算法,直观形象,易于理解,但由于流程图允许使用箭头随意跳转,对表示算法的层次结构非常不利,且流程图占的篇幅较大,作图工作量也很大。,流程图,1
4、0,顺序结构流程图表示方法,B,A,11,选择结构流程图表示方法,B,N,如果 成绩60 那么 通知补考 否则 告知你考试成绩,A,Y,条件P,12,循环结构流程图表示方法,A,条件P,A,当型循环,直到型循环,真,假,假,条件P,假,真,13,将例2 求1+2+3+4+10 用流程图进行描述。,流程图,14,针对流程图存在的缺点,I. Nassi和B. Shneiderman提出了结构化程序设计的流程图,称为N-S图,更能体现结构化程序设计的思想。推荐使用N-S图。,N-S图完全去掉了流程线,算法的所有处理步骤都写在一个大矩形框内(表示简单、符合结构化思想)(象堆积木),结构化程序设计的三种
5、基本结构 顺序结构、选择结构、循环结构,N-S图(盒图),15,结构化程序设计的三种基本结构具有以下共同的特点: 只有一个入口; 只有一个出口; 结构内的每一部分都有机会被执行到; 结构内不存在“死循环”。,N-S图(盒图),16,将例2 求1+2+3+4+10 用N-S图进行描述。,N-S图(盒图),17,将 求10个任意整数中的最大数 用N-S图进行描述。,N-S图(盒图),18,程序设计步骤,根据实际问题设计应用程序大致要经过以下四个步骤: 分析问题 画流程图或N-S图 编写程序 运行并调试程序,采用自顶向下、逐步细化的结构化分析的方法,19,例3 求三个数中的最大数。,20,数据类型(
6、Data Type),数据为什么要区分类型? 不同类型的数据代表不同的 数据表示形式 合法的取值范围 占用内存空间大小 可参与的运算种类,21,数据类型,在C语言中,数据类型一般包括基本数据类型、构造数据类型、指针类型和空类型等四大类。,22,一个简单的C程序例子,#include /*函数功能:计算两个整数相加之和 入口参数:整型数据a和b 返回值: 整型数a和b之和 */ int Add(int a, int b) return (a + b); /*主函数*/ main() int x, y, sum = 0; printf(“Input two integers:“); scanf(“
7、%d%d“, /*输出x和y相加之和*/ ,并列的两个函数 其中一个是 程序的入口,程序注释,23,C语言中的基本元素,程序,语句,标识符 关键字 常量、变量 运算符 分隔符 ,关键字(Keyword) 又称为保留字 数据类型修饰符int,控制语句return等 标识符(Identifier) 系统预定义标识符,main,printf 等 用户自定义标识符,Add, x, y 等 运算符(Operator) 34种,+ 分隔符(Separator) 空格、回车/换行、逗号等 其它符号 大花括号“”和“” “/*”和“*/”是程序注释所需的定界符 数据(Data) 变量(Variable) 常量
8、(Constant),24,常量,常量是在程序中保持不变的量,常量区分为不同类型:整型、实型、字符型和字符串型 如 12、3.2、a、 “hello“,25,整型常量,整型常量有三种不同的表示形式: 十进制:无前缀,无后缀 八进制:在八进制数值前面加前缀“0”,其数码取值为07。 例如:023,0457,01324等 十六进制:前缀为“0X”或“0x”,其数码取值为09、AF或af。例如:0X2A,0XA0,0XFFFF等 当任意整型常量后跟一个字母u或U时,表示是无符号整型。 例如:123u 当任意整型常量后跟一个字母l或L时,表示是长整型。 例如:123L,26,实型常量,实型(浮点型)常
9、量有2种不同的表现形式: 小数形式:由数字和小数点组成,必须要有小数点。例如:0.123,123.,123.0,0.0等。 指数形式:如123e3或123E3都代表123103。注意字母e或E之前必须有数字,且e或E后面的指数必须为整数。规范化的指数形式:在字母e或E之前的小数部分中,小数点左边应有一位且只能有一位非零的数字,如1.23e5。,27,字符型常量,C语言的字符常量是用单撇号括起来的一个字符,如A,a,$等。 转义字符:以一个字符“”开头的字符序列,代表特殊的含义。,28,八进制数字表示(ddd): 123 3 注意数字的取值范围 十六进制数字表示(xdd): xFF x5 说明:
10、字符可用对应的编码(整数)表示 如:用 065 53 0x35 表示 5 C中经常将字符常量等价为整数参与运算: 如:A +32 结果为 a 0 - 48 为 0,字符型常量,29,字符串由若干字符(含转义字符)组成,用双引号界定 如:“hello“ “a“ “123“ “ “n“ “Tomtis078n“ 含几个字符? 没有长度为零的字符(),但有长度为零的字符串(“) 注:双引号在一行内成对出现,长字符串可写在多行上,C会自动连接为整体。例如:“hello, Im“ “ yu. “ “Who are you?“ 输出显示:hello, Im yu. Who are you?,字符串常量,3
11、0,符号常量,在C语言中,用一个标识符来表示一个常量,称之为符号常量 一般形式为: #define ,#include #define PI 3.14159 main() double s,r; r=5; s = PI * r * r; printf(“area s=%f“,s); ,31,声明和使用变量,声明变量: Datatype variablename; 如: int age; 定义后给变量赋值: variablename = value; 如:age=20; 定义时初始化变量: Datatype variablename = value; 如:int age=20;,给变量赋值,除了
12、给一个直接的值以外,还可以通过计算获得,32,变量的命名规则: 变量名可以由字母、数字和 _(下划线)组合而成 变量名不能包含除 _ 以外的任何特殊字符,如:%、# 、逗号、空格等 变量名必须以字母或 _(下划线)开头 变量名不能包含空白字符(换行符、空格和制表符称为空白字符) C 语言中的某些词(例如 int 和 float 等)称为保留字,具有特殊意义,不能用作变量名 C 语言区分大小写,因此变量 price 与变量 PRICE 是两个不同的变量,变量命名,在 C 语言中,变量命名需要遵循一定的规则(标识符),有效名称,principal,cost_price,marks_3,lastna
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- _C 语言程序设计 基础
链接地址:https://www.31doc.com/p-2252369.html