版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、C语言程序设计 第1章 程序设计概述,2013年6月.,课件制作日期:2013年6月.张磊,第1章 程序设计概述,1.1 程序设计语言 1.2 算法 1.3 程序设计与实现 1.4 C语言程序的基本结构,1.1 程序设计语言,程序设计语言: 计算机能够理解和识别的一种语言体系,它按照特定的规则组织计算机指令,使计算机能够自动进行各种操作处理。 计算机程序: 按照程序设计语言的规则组织起来的一组计算机指令。 程序设计语言分类: 机器语言、汇编语言和高级语言。 C 语言属于高级语言,1972年由美国的Dennis Ritchie设计发明。 1983年,美国国家标准化协会(ANSI)根据C语言问世以
2、来各种版本对 C的发展和扩充,制定了C的标准,称为 ANSI C。1987年ANSI又公布了新的标准87 ANSI C。,课件制作日期:2013年6月.张磊,1.1 程序设计语言,C语言程序示例: 计算1到100的所有自然数的和。,#include int main(void) int i=1,s=0; while(i=100) /* 循环控制 */ s=s+i; /* 数据累加 */ i=i+1; /* 生成下一个要累加的数 */ printf(sum=%dn,s); /* 输出结果 */ return 0; ,课件制作日期:2013年6月.张磊,1.2 算法,1.2.1 算法概念与算法描述
3、 1.2.2 算法的逻辑结构 1.2.4 算法的特性 1.2.4 算法评价,1.2.1 算法概念与算法描述,算法重要性:程序=数据结构+算法 1算法的概念 算法是求解问题的方法,是在有限步骤内求解某一问题所使用的一组定义明确的规则,是计算机处理问题所需要的具体步骤。 2算法的描述方法 自然语言 流程图 N-S图 PAD图 伪码等。,课件制作日期:2013年6月.张磊,1.2.1 算法概念与算法描述, 用自然语言描述算法 “计算1到100的所有自然数的和” 步骤 i和s赋初值,使i=1,s=0; 步骤 判断i的值,若i100 则执行步骤;否则,转步骤; 步骤 s加i; 步骤 i加1,转步骤; 步
4、骤 显示s的值,结束。,课件制作日期:2013年6月.张磊,1.2.1 算法概念与算法描述, 用流程图描述算法,课件制作日期:2013年6月.张磊,1.2.1 算法概念与算法描述,“计算1100自然数和”的算法,步骤 i=1,s=0; 步骤 若i100 则执行步骤;否则,转步骤; 步骤 s加上i; 步骤 i加上1,转步骤; 步骤 显示s的值,结束,课件制作日期:2013年6月.张磊,1.2.1 算法概念与算法描述,(3) 用伪代码描述算法 “计算1到100的所有自然数的和”,begin i=1,s=0 while i100 s=s+i i=i+1 end while ptint s end,课
5、件制作日期:2013年6月.张磊,1.2.2 算法的逻辑结构,顺序结构、分支结构、循环结构是算法的三种基本结构,这三种结构互相结合,可以实现任何逻辑控制。,算法 步骤 输入一个学生两门课的成绩a1,a2; 步骤 计算平均成绩 (a1+a2)/2ave; 步骤 输出平均成绩ave,结束。,问题1-顺序结构:输入一个学生的两门课的成绩,计算出平均成绩。,伪代码 begin intput a1,a2 ave=(a1+a2)/2 print ave end,课件制作日期:2013年6月.张磊,课件制作日期:2013年6月.张磊,1.2.2 算法的逻辑结构,问题2-分支结构:输入一个学生的两门课的成绩,
6、若平均成绩不低于90分,则显示“优等生”,否则显示“要加油啊!”,算法 步骤 输入一个学生两门课的成绩a1、a2; 步骤 计算平均成绩(a1+a2)/2ave; 步骤 若ave90,则执行步骤;否则执行步骤; 步骤 输出“优等生”,结束。 步骤 输出“要加油啊!”,结束。,课件制作日期:2013年6月.张磊,1.2.2 算法的逻辑结构,问题2-分支结构 输入一个学生的两门课的成绩,若平均成绩不低于90分,则显示“优等生”,否则显示“要加油啊!”,伪代码描述算法 begin input a1,a2 ave=(a1+a2)/2 if ave90 then print “优等生!” else pri
7、nt “要加油啊!” end,1.2.2 算法的逻辑结构,问题3-循环结构:按照问题2的标准,统计全班的优等生人数(全班共30人)。,算法 步骤 设置变量count对输入的数据量计数,其初值为1;设置变量result对优等生计数,其初值为0; 步骤 若count30,则执行步骤;否则转步骤; 步骤 输入一个学生两门课的成绩a1、a2; 步骤 计算平均成绩(a1+a2)/2ave; 步骤 若ave90,则执行步骤;否则转步骤; 步骤 result+1result; 步骤 count+1count;转步骤; 步骤 输出统计结果,结束。,1.2.2 算法的逻辑结构,问题3-循环结构 按照问题2的标准
8、,统计全班的优等生人数(全班共30人)。,伪代码描述 begin count=1,result=0 while count30 input a1,a2 ave=(a1+a1)/2 if ave90 then result=result+1 count=count+1 end while print result end,课件制作日期:2013年6月.张磊,1.2.2 算法的逻辑结构,算法逻辑结构框图, 顺序结构,顺序结构传统流程图 顺序结构N-S图,课件制作日期:2013年6月.张磊,1.2.2 算法的逻辑结构,算法逻辑结构框图,(2) 分支结构,分支结构流程图 分支结构N-S图,课件制作日期
9、:2013年6月.张磊,1.2.2 算法的逻辑结构,算法逻辑结构框图,(3) 循环结构,循环结构流程图 循环结构N-S图,课件制作日期:2013年6月.张磊,1.2.3 算法的特性,算法特性 有穷性:经过有限步骤解决问题。 确定性:每个步骤所规定的操作必须是确定的。 有效性:每一个步骤必须能够有效地执行 。 输入和输出特性。有零个或多个输入,有一个或多个输出。,还应注意 算法的多样性:一个具体问题可以有不同的解决方法,因此可以设计解决问题的不同算法。 算法的通用性:一个算法应是适用于某类问题,而不只是适用于某一个问题。,课件制作日期:2013年6月.张磊,1.2.4 算法评价,算法复杂程度 算
10、法的时间复杂性:规模与执行速度关系 算法空间复杂性:对系统资源的需求程度 算法的通用性 正确和清晰易读永远是一个好算法的基本条件。,课件制作日期:2013年6月.张磊,1.3 程序设计与实现,1.3.1 程序设计的基本过程 1.3.2 使用VisualC+ 6.0实现C语言程序 1.3.3 程序设计示例,课件制作日期:2013年6月.张磊,1.3.1 程序设计的基本过程,分析要处理的问题涉及的各种概念、数据特点、已知条件、所求结果,以及已知条件与所求结果之间的关系等各方面的信息。 明确:要做什么?,确定具体的算法,并选择合适的算法表达工具对算法进行描述。,用程序设计语言的语句和命令实现算法的每
11、一个步骤。,课件制作日期:2013年6月.张磊,1.3.2 使用VC+ 6.0实现C语言程序,使用VC+ 6.0实现C程序的基本步骤有4个: 1建立源程序文件,3构建可执行文件,2编译源程序,4运行可执行文件,启动VC+ 6.0系统 使用“File”“New”命令,打开VC+ 6.0的程序编辑窗口 录入编辑源程序,保存文件,使用“Build”“Compile”命令对源程序进行编译,生成二进制目标代码文件。,程序通过编译之后,使用“Build”“Build”命令将编译阶段生成的目标文件和系统的库函数文件等连接起来,生成扩展名是“.exe”的可执行文件。,使用“Build”“!Execute”命令
12、运行程序,获得执行结果。,课件制作日期:2013年6月.张磊,1.3.3 程序设计示例,例1-1 设计计算矩形面积的程序。,3编写程序,2算法设计,4调试运行程序,1问题分析, 设矩形的边长为a和b、矩形面积为s,则s=ab。 通过键盘输入等方式为矩形边长a、b提供数据。 程序执行后要输出计算结果。 2算法设计 3编写程序 4调试运行程序, 假设该矩形都是整型数据,因此,要使用int对a、b、s进行说明。 使用scanf()函数输入数据a、b。 使用“s=a*b”计算矩形面积,并存储到s中。 使用printf()函数输出计算结果s。 把上面的一些具体语句放在main()函数中。 程序清单,课件
13、制作日期:2013年6月.张磊,1.3.3 程序设计示例,/* program e1-1.c */ #include int main() int a,b,s; printf(Input a,b: ); scanf(%d,%d, ,1.3.3 程序设计示例,4调试运行程序,例1-1 设计计算矩形面积的程序。, 建立源程序文件。 启动VC+ 6.0,使用“File”“New”命令,打开 “new”窗口,选用“Files”选项卡,在主窗口中选择“C+ Source File”项,在“File”对话框中输入文件名,在“Location”对话框中指定文件的存储位置。,1.3.3 程序设计示例,4调试运
14、行程序,例1-1 设计计算矩形面积的程序。, 建立源程序文件 单击“OK”按钮,打开程序编辑窗口录入编辑源程序,并及时存盘。,课件制作日期:2013年6月.张磊,1.3.3 程序设计示例,4调试运行程序,例1-1 设计计算矩形面积的程序。, 建立源程序文件 编译源程序 程序编辑完成后,使用“Build”“Compile ”命令编译,执行“Build”“Compile”命令后的提示信息,编译结果显示在编译报告窗口,1.3.3 程序设计示例,4调试运行程序,例1-1 设计计算矩形面积的程序。, 建立源程序文件。 编译源程序。 构建可执行文件。 程序编译完成后,使用“Build”“Build ”构建
15、可执行文件。 运行可执行文件。 成功构建可执行文件之后,使用“Build”“!Execute”命令即可运行程序。,1.4 C语言程序的基本结构,1.4.1 程序的函数化结构 1.4.2 程序中的常量和变量 1.4.3 程序中的基本语句 1.4.4 标识符与保留字 1.4.5 程序风格,1.4 1 程序的函数化结构,1简单C语言程序的结构 C语言程序是由函数构成的,任何一个C语言程序都有一个称为主函数的main()函数,例如,前面介绍的C语言程序e1-0.c和e1-1.c,其主体内容都是main()函数。 程序中main()函数的一般结构: int main(void) 函数体 ,例1-2 更简
16、单的C程序。 #include int main(void) printf(Hello!n); return 0; ,特别强调: 任何一个C语言程序,main()函数都是不可缺少的,当一个C语言程序只有一个函数模块时,这个函数必然是main()函数。,1.4.1 程序的函数化结构,上述程序,在“int main()”之前都有一行代码“#include”, 作为初学者,为方便起见,不妨先将其视为C语言程序的基本构成部分。 可以认为,简单C语言程序的基本结构:,#include int main(void) 函数体 ,1.4.1 程序的函数化结构,2C语言程序的一般结构 一个C语言程序,在结构上不
17、仅要有main()函数,还可以包括其他独立的函数,一个函数可以在另一个函数中被使用。,例1-3 输出图案程序。 /* program e1-3.c */ #include int main(void) /* 主函数 */ void p_s(void); p_s(); p_s(); p_s(); return 0; void p_s() /* 其他函数 */ printf($#$n); ,1.4.1 程序的函数化结构,3C语言程序的基本特点 C语言程序由函数构成,而且每个程序可以有多个函数。 一个源程序不论由多少个函数组成,有且只能有一个main()函数,而且main()函数可以放在程序的任何位
18、置。 一个源程序无论由多少个函数构成,总是从main()函数开始执行程序,与main()函数在程序中的位置无关。,1.4.2 程序中的常量和变量,1常量 程序中的常量分为直接常量和符号常量两种。 直接常量就是具体的数据,有整数、实数、字符和字符串四种类型。例如,程序e-0.c中的“1”和“100”是整数常量,程序e1-2.c中的“Hello!”是字符串常量; 符号常量是通过特殊方式定义的一类常量,其定义方法将在第2章介绍。 2变量 程序中的变量用变量名标识,每个变量具有特定的数据类型,计算机按照一定的规则为变量分配一定的内存空间,变量的值存储在变量所在的存储空间中。 C语言的每个变量在使用之前
19、必须首先进行变量定义,为变量指定数据类型和变量名。 C语言中变量的基本类型有3种:整型、实型和字符型,分别用的int、float和char进行标识。,1.4.3 程序中的基本语句,按照功能划分3类 数据定义语句,流程控制语句,数据处理语句,对程序中使用的变量名称、数据类型等进行说明。例如,程序e1-1.c的“int a,b,c;”语句。,对程序中的数据进行运算、输入、输出等。例如,程序e1-1.c的“ “s=a*b;”、“printf(“Area: %dn,s);” 等。,对程序的执行流程进行控制,分为分支控制和循环控制两类。例如,程序e1-0.c中的while语句。,1.4.4 标识符与保留字,1. 标识符 在程序中使用的变量名、函数名等。 标识符构成 任何一个标识符只能是由字母(AZ,az)、数字(09)和下划线“_”构成的字符串,其他符号不能出现在标识符中,并且标识符的第一个字符必须是字母或下划线。 合法标识符 a BOOK1 max _add num_1 非法标识符 3sum 不允许以数字开头 ab#cd 使用了非法字符“#” book-1 出现非法字符“-”(减号),注意: 两个标识符中的字母相同而大小写形式不同时,C语言认为是两个不同
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年四川西南航空职业学院单招职业适应性测试题库含答案详解(新)
- 2026年安徽城市管理职业学院单招职业倾向性考试题库附参考答案详解(黄金题型)
- 2026年四川铁道职业学院单招职业技能测试题库及答案详解(真题汇编)
- 2026年宁波卫生职业技术学院单招职业技能考试题库及答案详解1套
- 2025年值班与交接班制度试题(含答案)
- 大学生网络安全教育课程设计方案
- 2026年宁波职业技术学院单招职业适应性考试题库完整参考答案详解
- 2026年宁波工程学院单招职业倾向性测试题库附答案详解(达标题)
- 2026年天津铁道职业技术学院单招综合素质考试题库附参考答案详解(满分必刷)
- 2026年天门职业学院单招职业倾向性考试题库参考答案详解
- DBJ50T 043-2016 工程勘察规范
- 物业工程部工作亮点汇报
- (正式版)DB65∕T 032-2019 《城市用煤》
- 宠物行为心理培训课件
- 钳形表电工基础知识培训课件
- 2024学年金华市金东区七年级语文上学期期中考试卷附答案解析
- 肾错构瘤护理查房
- 生态旅游监测体系构建-洞察及研究
- 2025年人教版小升初考试语文五套试卷及答案打印版
- 罗茗华焊接检测技术课件
- 《数控加工编程》课件-数控编程基础
评论
0/150
提交评论