第1章 C语言与程序设计_第1页
第1章 C语言与程序设计_第2页
第1章 C语言与程序设计_第3页
第1章 C语言与程序设计_第4页
第1章 C语言与程序设计_第5页
已阅读5页,还剩45页未读 继续免费阅读

下载本文档

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

文档简介

1、C语言(yyn)程序设计第一章 C语言(yyn)与程序设计李振福主编C语言程序设计西安电子科技大学出版社共五十页本课程的配套教材为:李振福主编.C语言(yyn)程序设计西安电子科技大学出版社 2013本课程的学时安排为: 理论学时48 实践学时16共五十页学习(xux)目标Hi, Mr. computer.Im human being. 计算机语言是人与计算机交流的工具。所以(suy)要学好C语言,就是要做到让人与计算机相互理解对方。共五十页怎样(znyng)成为一名优秀的程序员热情,热情,还是(hi shi)热情具备独立设计的能力运用计算机语言的能力具备创造力(从模仿他人开始,但不能养成惰性

2、,要学会独立思考,独立解决问题)严谨踏实的作风(编程序最耗费时间的地方是调试与查错,严谨可以确保我们少犯错误,犯了错误容易改正)共五十页具体步骤Step1:掌握数据类型、控制结构、语法(yf)规则。 (识字、造句,授课为主) Step2:掌握程序分析(fnx)、算法、编程。 (体裁、布局。多看多练) Step3:循序渐进,先模仿,后分析。 Step4:重视上机,有效利用宝贵的上机时间, 切实掌握调试手段。共五十页第一章 概述(i sh)1.1 计算机语言及其发展1.2 算法及其表示1.3 程序设计方法(fngf)1.4 C的特点1.5 C程序实例1.6 C程序上机步骤1.7 小结共五十页1.1

3、计算机语言(yyn)及其发展算法为解决(jiju)某一应用问题而采用的解题步骤。对一个一元二次方程,若求其实数解,算法应为:计算方程的判别式;如判别式小于零,则输出方程没有实根的信息;否则,计算方程的实根,并输出计算结果。计算机能理解上述自然语言描述的算法么?共五十页计算机语言的发展(fzhn)经历了三个阶段:机器语言机器指令(由0 和 1组成),可直接执行 难学、难记依赖机器的类型汇编语言用助记符代替机器指令,用变量代替各类地址。克服记忆的难点其他与机器语言类似高级语言类似数学语言、接近自然语言、具有通用性和可移植性,不依赖具体的计算机类型。共五十页0 0 1 0 0 0 1 11 1 1

4、0 1 1 0 10 1 1 0 0 0 0 10 1 1 1 0 1 1 0 机器语言(j q y yn)程序MOV AX, 300HADD BX, AXMOV 2100H, BX HLT汇编语言源程序main( ) int a, b, c; a=300; b=18; c=a+b; printf(“ a+b= %dn”, c);高级语言源程序(C)共五十页1.2 算法(sun f)与流程程序设计的灵魂是算法,而语言只是形式。可以说计算机语言只是一种工具,用来描述处理问题的方法和步骤。但是只要(zhyo)有正确的算法,可以利用任何一种语言编写程序,使计算机进行工作,得出正确的结果。所谓“算法”

5、,指为解决一个问题而采取的方法和步骤,或者说是解题步骤的精确描述。算法应具备有穷性、确定性、有效性、有零个或多个输入(即:可以没有输入,也可以有输入)、有一个或多个输出(即算法必须得到结果)的特性。1.2.1 算法的概念共五十页1.2.2 算法的表示(biosh)形式常用的算法(sun f)表示方法有自然语言、传统流程图、结构化流程图(N-S流程图)、伪代码、计算机语言等。(1)传统流程图常用的流程图符号共五十页【例1.1 】求5! 算法分析:实际上是在做12345的运算。 算法步骤可以分为:步骤1:设变量p,被乘数,p=1;步骤2:设变量i,代表乘数,i=2;步骤3:使pi,乘积(chngj

6、)放在被乘数变量p中,可表示为:pip;步骤4:使i的值加1,即i+1i;步骤5:如果i不大于5,返回重新执行步骤3以及其后的步骤4、步骤5;否则,算法结束。最后得到的p就是5!的值。 绘制流程图开始p=1i=2pipi+1i结束i5真假共五十页(2) N-S流程图 基本结构的顺序组合可以表示任何复杂的算法结构,于是基本结构之间的流程线就属于多余的了,于是美国(mi u)学者I.Nasii和B.shneiderman 于1973年提出了一种新的流程图形式:将全部算法写在一个矩形框内,完全去掉了带箭头的流程线。这种流程图称为N-S结构化流程图,也称盒图。共五十页例1.2 求5!的算法(sun f

7、)用N-S图表示N-S图不能表示非结构化算法,而且当问题(wnt)很复杂时,N-S图可能很大。共五十页1.3 程序设计(chn x sh j)方法结构化程序设计方法(SPStructured Programming) 是由E. Dijkstra等人于1972年提出来的,它建立在Bohm、Jacopini证明的结构定理的基础上。结构定理指出:任何程序逻辑都可以用顺序、选择和循环三种基本结构来表示。在结构定理的基础上,Dijkstra主张避免使用goto语句(goto语句会破坏这三种结构形式),而仅仅用上述三种基本结构反复嵌套来构造程序。在这一思想指导(zhdo)下,进行程序设计时,可以用所谓“自

8、顶向下,逐步求精”的方式,对问题进行分解。 1.3.1 结构化的程序设计方法 共五十页一个结构化程序应符合以下标准:(1)程序仅由顺序结构、分支结构和循环结构三种基本结构组成,基本结构可以嵌套。(2)每种基本结构都只有一个入口和一个出口,即一端进,一端出。这样的结构置于其他结构之间时,程序的执行顺序必然是从前一结构的出口到本结构的入口,经本结构内部的操作,到达(dod)本结构的唯一出口,体现出流水化特点。(3)程序中没有死循环(不能结束的循环)和死语句(程序中永远执行不到的语句)。 AB(a)PPA(b)(c)成立不成立成立不成立AB共五十页结构化程序设计方法遵循的原则自顶向下,逐步求精。 模

9、块化设计。 程序结构化。结构化程序设计过程 分析问题(wnt)(Question)设计算法(Algorithm)编写程序(Program)简称QAP方法。共五十页1.3.2 面向对象的程序设计(chn x sh j)方法 在结构化的程序设计中,解决某一个问题,就是要确定这个问题能够分解为哪些函数,数据(shj)能够分解为哪些基本的类型,如int、double等。也就是说,思考方式是面向机器结构的,而不是面向问题结构的,需要在问题结构和机器结构之间建立联系。面向对象的程序设计方法的思考方式是面向问题的结构,它认为现实世界是由一个个对象组成的。面向对象的程序设计方法解决某个问题时,要确定这个问题是

10、由哪些对象组成的。 共五十页对象由数据和操作构成消息由三个部分组成:接受消息的对象;要执行的函数的名字;函数需要(xyo)的参数。面向对象的主要特性:封装继承多态对象数据操作共五十页面向对象程序设计(chn x sh j)过程 (1)面向对象的分析(OOA)。 (2)面向对象的设计(shj)(OOD)。(3)面向对象的实现(OOI)。 共五十页结构化程序设计(shj)与面向对象程序设计(shj)的比较ProgramFunctionFunctionFunctionProgramOperationsDataOperationsData共五十页1.4 C的特点(tdin)1. C语言(yyn)的特点

11、语言结构化语言简洁功能强大数据结构丰富运算符丰富生成的代码质量高可移植性好共五十页2. C+的特点(tdin)与C语言兼容,既支持面向对象的程序设计,也支持结构化的程序设计。修补了C语言中的一些漏洞,提供更好的类型(lixng)检查和编译时的分析功能。生成目标程序质量高,程序执行效率高。提供了异常处理机制,简化了程序的出错处理。函数可以重载及可以使用缺省参数。提供了模板机制。共五十页1.5 C程序(chngx)实例例1.3简单的C语言程序(chngx)。#include /*预处理命令*/main( ) /*主函数*/ printf(My first C program!n); /*输出双引号

12、中的内容*/1.5.1 C语言程序实例共五十页【例1.4 】求两个(lin )整数之和#include main() /*主函数*/int a,b,sum; /*设置变量(binling)的数据类型*/a=1; /*给变量赋初值*/b=2;sum=a+b; /*加法运算*/printf(sum=%dn,sum);共五十页重点(zhngdin)C程序的基本(jbn)结构是函数,函数是完成某个整体功能的最小单位。C函数从左花括号开始,到对应的右花括号结束。main()可以在程序的任何位置上,但C程序执行时,总是从main()函数开始。共五十页1.5.2 C+程序(chngx)实例例1.5简单(ji

13、ndn)的C+程序。#include void main()coutHello! My first C+ program!n;共五十页例题(lt)解析 1.一 个C程序由若干个C函数组成各个函数在文件中的书写(shxi)位置为。 A) 任意 B) 第一个函数必须是主函数其他函数任意 C) 必需完全按调用的顺序排列 D)其他函数必须在前,主函数必须在最后 你能回答下面问题吗?共五十页2. 在一个C程序中。 A) main函数必须出现在所有(suyu)函数之前 B) main函数必须出现在所有函数之后 C) main函数可以在任何地方出现 D) main函数必须出现在固定位置上共五十页3. 以下叙

14、述中正确的是。 A) C程序中注释部分可以处现在程序中任何合适的地方 B) 花括号“”和“”只能作为函数体的定界符 C) 构成C程序的基本单位是函数,所有函数名都可以由用户(yngh)命名 D) 分号是C语句之间的分隔符,不是语句的一部分共五十页4.以下叙述中正确的是。 A) C语言的源程序不必通过编译就可以直接(zhji)运行 B) C语言中的函数不可以进行单独编译 C) C源程序经编译形成的二进制代码可以直接运行 D) C语言中的每条可执行语句最终都将被转换成二进制的机器指令共五十页5.以下(yxi)说法中正确的是。 A) C语言程序总是从第一个定义的函数开始执行 B) C语言程序总是从m

15、ain()函数开始执行 C) C语言程序中的main()函数必须放在程序的开始部分 D) 一个C函数中只允许一对花括号共五十页1.6 C程序(chngx)上机步骤一般情况下,开发一个C应用程序可以按照(nzho)如下步骤来进行:创建一个项目;编辑项目中的源代码;编译项目中的文件;纠正编译中出现的错误;运行可执行的文件。共五十页1.6.1 Microsoft Visual C+6.0 集成(j chn)环境简介Visual C+ 6.0提供了一个支持可视化编程的集成开发环境:Visual Studio(又名Developer Studio)。Developer Studio是一个通用的应用程序集

16、成开发环境,它不仅支持Visual C+,还支持Visual Basic,Visual J+,Visual InterDev等Microsoft系列开发工具。Developer Studio采用标准的多窗口Windows用户界面,包含项目工作区、ClassWizard、AppWizard、WizardBar、Component Gallery等。Developer Studio提供了许多工具,包含一个文本编辑器、资源编辑器、工程编译(biny)工具、一个增量连接器、源代码浏览器、集成调试工具,以及一套联机文档。使用Developer Studio,可以完成创建、调试、修改应用程序等各种操作。共

17、五十页1.6.2 C程序(chngx)上机步骤(1) 启动Visual C+6.0进入Developer Studio编译(biny)环境共五十页(2) 单击主窗口(chungku)菜单栏中的“File”(文件)菜单项,单击下拉式菜单中的选项“New”(新建),弹出新建对话框。(3) 在“New”(新建)对话框上选择“Projects”(工程)选项卡,选择“Win32 Console Application”(Win32控制台应用程序)共五十页共五十页(4)在“Project Name”(工程名称)文本框内输入工程名称为exam1。工程文件存放的位置可点击按钮 ,选择路径,点击确定(qudng

18、)按钮。(5)在弹出的对话框(如下图所示)中,选择一个建立一个空项目的单选按钮,再点击“Finish”(完成)按钮。共五十页共五十页(6)在弹出的对话框中,给出了新建工程的一些信息,点击(din j)“OK”(确定)按钮。共五十页(7)再单击“File”菜单(ci dn)中的“New”命令,选择“Files”选项卡,选择“Text File”,注意“Add to project”应勾选。共五十页(8)在“File”文本框内输入文件名称“1.c”,点击“OK”按钮。(9)逐行输入源程序直至完毕,如下图所示。然后点击“File”菜单(ci dn)的“Save”(保存)命令。#include stdio.hmain()printf(My first C program!n);共五十页共五十页(10)单击工具栏上的红色叹号或按“CtrlF5”执行程序,出现如图所示对话框,此时显示(xinsh)程序运行结果。共五十页1.5.2 C+程序(chngx)上机步骤 (1)按照C程序上机步骤(1)(6)操作,建立(jinl)一个工程exam2,再单击“File”菜单中的“New”命令,选择“Files”选项卡,选择“C+ Source File”,如下图所示。注意“Add to project”应勾选。共五十页(2)在“File”文本框内

温馨提示

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

评论

0/150

提交评论