第1,2章C语言程序设计概述16课件_第1页
第1,2章C语言程序设计概述16课件_第2页
第1,2章C语言程序设计概述16课件_第3页
第1,2章C语言程序设计概述16课件_第4页
第1,2章C语言程序设计概述16课件_第5页
已阅读5页,还剩73页未读 继续免费阅读

下载本文档

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

文档简介

第1章C语言程序设计概述第1章C语言程序设计概述1.1程序、计算机语言与程序设计1.2C语言的产生、发展与特点1.3C语言程序开发过程1.4常用C语言集成开发环境简介1.5C语言程序设计初步1.6函数与模块化程序设计1.7算法与结构化程序设计2问题1:你了解计算机吗?能说出计算机科学领域中的哪些著名人物?3问题2:什么是硬件?什么是软件?它们是什么关系?硬件——计算机的躯壳和肉体软件——计算机的灵魂和思想4问题3:什么是计算机程序,它和软件有什么区别?51.1程序、计算机语言与程序设计程序6所谓程序,就是为实现特定目标或解决特定问题而用计算机语言编写的指令序列的集合,或者说是为实现预期目的而设计的一系列语句和指令。程序设计如果需要利用计算机完成某项任务,就必须首先利用计算机语言编写完成该项任务的程序,这就是通常所说的“编程”,术语称为“程序设计”。问题4:人和计算机是如何交流的?71.1程序、计算机语言与程序设计计算机语言8所谓计算机语言,也称为程序设计语言,是指一个能完整、准确和规则地表达人们的意图,并用以指挥或控制计算机工作的“符号系统”。计算机程序设计语言的发展计算机程序设计语言的发展,经历了从机器语言、汇编语言到高级语言的历程。其发展过程是功能不断完善、描述问题的方法越来越贴近人类思维方式的过程。1.2C语言的产生、发展与特点1.C语言的产生及发展过程91.2C语言的产生、发展与特点2.C语言的特点10(1)语言简洁、紧凑,使用方便、灵活。C语言一共只有32个关键字,9种控制语句,程序书写形式自由,主要使用小写字母,压缩了一切不必要的成分。(2)运算符丰富。C语言的运算符包含的范围很广,共有34种运算符。C语言把括号、赋值、强制类型转换等都作为运算符处理,从而使C语言的运算类型符极为丰富、表达式类型多样化。1.2C语言的产生、发展与特点2.C语言的特点(续)11(3)数据结构丰富,具有现代化语言的各种数据结构。C语言的数据类型有整型、实型、字符型、数组类型、指针类型、结构体类型、共用体类型等,能用来实现各种复杂的数据结构。尤其是指针类型数据,使用十分灵活和多样化。(4)具有结构化的控制语句。用函数作为程序的模块单位,便于实现程序的模块化。C语言是理想的结构化程序设计语言,符合现代编程风格的要求。1.2C语言的产生、发展与特点2.C语言的特点(续)12(5)语法限制不太严格,程序设计自由度大。例如,对数组下标越界不做检查,整型、字符型数据可以通用,不专设逻辑型数据而以整型来代替等。较少的限制给程序员带来较大的自由,这就要求程序员在编程时应确实明白自己在做什么,而不要把检查错误的工作仅寄托于编译程序。(6)C允许直接访问物理地址,能进行位操作,可以直接对硬件进行操作。因此C语言既具有高级语言的功能,又具有低级语言的许多功能,可用来编写系统软件。有人把C语言称为“高级语言中的低级语言”或“中级语言”,但一般仍将C语言称为高级语言。1.2C语言的产生、发展与特点2.C语言的特点(续)13(7)生成目标代码质量高、程序执行效率高,仅比汇编语言目标代码效率低10%~20%。(8)用C语言编写的程序可移植性好。程序基本不做修改就能用于各种计算机和各种操作系统。1.3C语言程序开发过程通常将高级语言编写的程序叫做“源程序”,源程序必须先用一种称为“编译程序”的软件,把它翻译成二进制形式的“目标程序”,然后再将该目标程序与系统的函数库以及其他目标程序连接起来,形成可执行程序。C语言既然是高级语言的一种,其程序开发过程也应该是从“源程序”到“目标程序”,再到“可执行程序”。具体步骤如图1-2所示。1415图1-2C语言程序开发过程1.4常用C语言集成开发环境简介1.4.1TurboC2.0集成开发环境16TurboC2.0是Borland公司开发的一个C语言集成开发环境。可以在TurboC中完成C语言程序的编辑、编译、连接、运行、调试。该系统是DOS操作系统支持下的软件,在windows环境下,可以在命令提示符窗口中运行。1.4.2VisualC++6.0集成开发环境VisualC++6.0,简称VC或者VC6.0,是微软推出的一款C++编译器,将“高级语言”翻译为“机器语言(低级语言)”。VisualC++是一个功能强大的可视化软件开发工具。由于C++是由C语言发展起来的,也支持C语言程序的开发。1.4常用C语言集成开发环境简介采用VisualC++6.0进行C语言程序开发具体步骤:171.启动VC6.0,进入如图所示的主界面。1.4常用C语言集成开发环境简介采用VisualC++6.0进行C语言程序开发具体步骤(续):182.选择“File”菜单中的“New”命令,新建一个Win32控制台应用工程,并给新建工程命名,单击“OK”按钮。如图所示。1.4常用C语言集成开发环境简介采用VisualC++6.0进行C语言程序开发具体步骤(续):193.上一步骤结束后会弹出如图所示的对话框窗口,选择创建一个空工程,单击“Finish”按钮。1.4常用C语言集成开发环境简介采用VisualC++6.0进行C语言程序开发具体步骤(续):204.选择“File”菜单中的“New”命令,打开如图所示的新建窗口,新建一个C++SourceFile,在文件名中输入C语言源文件名,确定名字后即可以开始编辑C程序。注意:一定要加上扩展名“.c”,否则会生成扩展名为“.cpp”的C++源文件。1.4常用C语言集成开发环境简介采用VisualC++6.0进行C语言程序开发具体步骤(续):215.源代码编辑完成后,依次单击工具栏中的“Compile”、“Build”、“ExecuteProgram”按钮编译、连接、运行程序,或直接单击“ExecuteProgram”按钮,编译并调试运行程序。如果出现错误,会在下面的窗口中提示错误内容。如果存在错误,可根据提示的错误信息检查并修改源程序,重复上述步骤,直到程序正确运行。1.4常用C语言集成开发环境简介采用VisualC++6.0进行C语言程序开发具体步骤(续):221.5C语言程序设计初步1.5.1第一个C语言程序1.5.2第一个C语言程序剖析1.5.3C语言程序基本结构231.5C语言程序设计初步1.5.1第一个C语言程序24【例1.1】通过屏幕显示“ThisismyfirstCprogram.”。1.创建源程序文件(1)在硬盘上创建工作目录。(2)创建工程。(3)创建源程序文件。注意:文件名是1_1.C。1.5C语言程序设计初步1.5.1第一个C语言程序(续)252.编辑源程序在程序编辑工作窗口中输入下面的程序源代码,并保存至文件1_1.C中。26源程序:/*例1.1:显示“ThisismyfirstCprogram.”。文件名:1_1.C*/#include<stdio.h>intmain(){ printf("ThisismyfirstCprogram.\n"); return0;}1.5C语言程序设计初步1.5.1第一个C语言程序(续)27注意:(1)C语言是区分大小写的,也称为大小写敏感,不能随意更换大小写。(2)C语言源程序采用ASCII码英文字符,不能采用全角字符(汉字字符)。(3)尖括号<>、圆括号()、大括号{}和方括号[]在C语言中的应用场合不同,不能随意替换。(4)斜杠(/)与反斜杠(\)在C语言中的应用场合不同,不能随意替换。1.5C语言程序设计初步1.5.1第一个C语言程序(续)283.编译源代码编辑完成后,单击工具栏中的“Compile”按钮进行编译。如果没有错误,则会生成目标文件1_1.OBJ。4.连接编译完成并生成OBJ文件后,单击工具栏中的“Build”工具按钮进行连接。如果没有错误,则会生成可执行文件1_1.EXE。1.5C语言程序设计初步1.5.1第一个C语言程序(续)295.执行(1)在集成开发环境下运行。连接完成并生成EXE文件后,单击工具栏中的“Run”工具按钮运行程序,运行结果为显示“ThisismyfirstCprogram.”。(2)在DOS环境下运行。生成的EXE文件可以不依赖于集成开发环境在操作系统中直接运行。1.5C语言程序设计初步1.5.1第一个C语言程序(续)306.处理错误编译器能够指出错误并定位错误出现的位置。双击错误提示,可以定位到源程序中的错误位置。修正错误后重新编译。有时一个很小的错误会显示许多错误提示,一般情况下从第一个错误开始排查,程序调试也是程序设计者必备的一种能力。1.5C语言程序设计初步1.5.2第一个C语言程序剖析311.注释源程序中:/*例1.1:显示“ThisismyfirstCprogram.”。文件名:1_1.C*/一行为注释。在C语言中,位于/*和*/之间的文本为注释。注释不执行任何操作,也就是说不会影响程序的运行,它只是用来增加程序的可读性,帮助程序员理解程序。注释可以是任意文本(包括汉字文本)。注释不一定单独占一行,无论/*和*/放在源程序的什么位置,其中间的内容都是注释。程序员应养成添加注释的良好习惯。1.5C语言程序设计初步1.5.2第一个C语言程序剖析(续)322.预处理命令源程序中:#include<stdio.h>一行为预处理命令。如果在程序中需要使用C语言标准库中的输入输出函数,例如本例中调用的printf()函数,应该在源程序的开头加上这一行。注意:预处理命令不加分号。1.5C语言程序设计初步1.5.2第一个C语言程序剖析(续)333.定义main()函数源程序中:intmain(){printf("ThisismyfirstCprogram.\n");return0;}5行定义了main()函数。1.5C语言程序设计初步1.5.2第一个C语言程序剖析(续)343.定义main()函数C语言程序由函数构成,函数是C程序的基本单位。一个C语言程序必须包含一个且仅有一个main()函数,通常称为主函数。除了main()函数外,还可以包含其他函数,但不是必须的。main()函数是每个程序执行的起始点。一个C语言程序总是从main()函数开始执行,而不论main()函数在源程序中的位置。一个C语言函数由函数首部和函数体两部分组成。1.5C语言程序设计初步1.5.2第一个C语言程序剖析(续)354.函数首部源程序中:intmain()一行为main()函数的函数首部。其中main为函数名;()表示这是一个函数;int表示函数返回值类型为整数值,执行完main()函数后,通过return语句将整数0返回给操作系统,表示程序正常终止。1.5C语言程序设计初步1.5.2第一个C语言程序剖析(续)365.函数体

源程序中:

{ printf("ThisismyfirstCprogram.\n"); return0; } 4行为main()函数的函数体。函数体是在函数首部下用一对{}括起来的部分,它包含了实现函数功能的全部语句。1.5C语言程序设计初步1.5.2第一个C语言程序剖析(续)376.输出信息—调用printf()函数

源程序中:

printf("ThisismyfirstCprogram.\n");

一行为函数调用语句,通过调用标准库函数printf()在屏幕上显示字符串"ThisismyfirstCprogram."。1.5C语言程序设计初步1.5.2第一个C语言程序剖析(续)38函数之间可以相互调用(main()函数例外,main()函数不可以被其它函数调用)。被调用的函数可以是系统提供的库函数(ANSIC提供100多个库函数),也可以是用户根据需要自己编写设计的函数。C语言本身没有输入输出语句,程序的输入输出工作都是由标准库函数实现。注意:反斜杠引导的字符称为转义字符,其意思是将反斜杠(\)后面的字符变成另外的意思。在本例代码中的字符'\n'为换行符,在这里输出的是回车换行。391.5.3C语言程序基本结构1.5C语言程序设计初步1.5.3C语言程序基本结构(续)401.C程序由函数构成。C语言是函数式的语言,函数是C程序的基本单位。一个C源程序至少包含一个main()函数,也可以包含一个main()函数和若干个其他函数,但只能有一个main()函数。被调用的函数可以是系统提供的库函数,也可以是用户根据需要自己编写设计的函数。C语言程序的全部工作都是由各个函数完成的。编写C程序就是编写一个个函数。1.5C语言程序设计初步1.5.3C语言程序基本结构(续)412.main()函数(主函数)是每个程序执行的起始点。一个C程序总是从main()函数开始执行,而不论main()函数在程序中的位置。可以将main()函数放在整个程序的最前面,也可以放在整个程序的最后,或者放在其他函数之间。1.5C语言程序设计初步1.5.3C语言程序基本结构(续)423.一个函数由函数首部和函数体两部分组成。(1)函数首部:包括函数类型、函数名、函数参数类型、函数参数名。例如,在sum()函数的首部为:注意:函数可以没有参数,但是后面的一对()不能省略。1.5C语言程序设计初步1.5.3C语言程序基本结构(续)43(2)函数体:函数首部下用一对{}括起来的部分。如果函数体内有多个{},最外层是函数体的范围。函数体一般包括声明部分、执行部分两部分。{[声明部分]:在这部分定义本函数所使用的变量。[执行部分]:由若干条语句组成命令序列(可以在其中调用其他函数)。}431.5C语言程序设计初步1.5.3C语言程序基本结构(续)444.C程序书写格式自由。一行可以写几个语句,一个语句也可以写在多行上。5.C程序没有行号,每条语句的最后必须有一个分号“;”表示语句的结束。6.C语言本身没有输入输出语句。输入和输出的操作是由库函数scanf()和printf()等函数来完成的。7.可以用/*……*/对C程序中的任何部分做注释。一个好的、有使用价值的源程序都应当加上必要的注释,以增强程序的可读性。1.6函数与模块化程序设计所谓模块化程序设计,是以功能模块为单位进行程序设计,实现求解算法的方法。模块化的目的是为了降低程序复杂度,使程序设计、调试和维护等操作简单化。在C语言程序设计中,这些功能模块称为函数。函数与外界有一个特殊的接口,可以将信息传递进来,也可以将函数产生的结果传递出去。4545例:

求两个整数之和。解题思路:设置3个变量a和b用来存放两个整数sum用来存放和数用赋值运算符“=”把结果传送给sum46#include<stdio.h>intmain(){inta,b,sum;a=123;b=456;sum=a+b;printf(”sumis%d\n”,sum);return0;}定义整型变量a,b,sum对变量a,b赋值将a与b的和赋给sum47#include<stdio.h>intmain(){inta,b,sum;a=123;b=456;sum=a+b;printf(”sumis%d\n”,sum);return0;}真正输出时,用sum的值替代代替要输出的值481.6函数与模块化程序设计【例1.2】采用函数实现计算两数之和。4950源程序:#include<stdio.h>intsum(intx,inty)

//函数实现两数相加{ returnx+y;}voidoutput(inta)//函数实现和的输出{ printf("sum=%d\n",a);}5051源程序(续):intmain(){ intx,y,z; x=32;y=64; z=sum(x,y); output(z); return0;}运行结果:sum=96511.7算法与结构化程序设计1.7.1算法举例1.7.2算法的特性1.7.3算法的表示521.7算法与结构化程序设计一个程序应包括以下两方面内容:(1)对数据的描述。在程序中要指定数据的类型和数据的组织形式,即数据结构(DataStructure)。(2)对操作的描述。即操作步骤,也就是算法(Algorithm)。著名计算机科学家沃思(NikiklausWirth)提出了一个公式:程序=数据结构+算法所谓算法就是为解决一个问题而采取的方法和步骤。53531.7.1算法举例【例1.3】求5!(1×2×3×4×5)。求5的阶乘的最原始的算法如下:步骤1:先求1×2,得到结果2。步骤2:将步骤1得到的乘积2再乘以3,得到结果6。步骤3:将6再乘以4,得24。步骤4:将24再乘以5,得120。这就是最后的结果。问题:如果要求1×2×…×1000?54541.7.1算法举例改进的算法:今设t为被乘数,i为乘数。用循环算法来求结果。可以将算法改写如下:步骤1:使t=1。步骤2:使i=2。步骤3:使t×i,乘积仍放在变量t中,可表示为t×i=>t。步骤4:使i的值加1,即i+1=>i。步骤5:如果i不大于5,返回到步骤3;否则,算法结束。算法结束后,t中的就是最后的结果。55551.7.1算法举例问题:题目改为求1×3×5×7×9×11?算法:步骤1:使t=1。步骤2:使i=3。步骤3:使t×i,乘积仍放在变量t中,可表示为t×i=>t。步骤4:使i的值加2,即i+2=>i。步骤5:如果i不大于11,返回到步骤3;否则,算法结束。56561.7.1算法举例可以看出,改进的算法具有通用性、灵活性。由于计算机是高速进行运算的自动机器,实现循环是轻而易举的。因此,循环算法更容易在计算机上实现。57571.7.2算法的特性一个算法应该具有以下特性:1.有穷性2.确定性3.有零个或多个输入4.有一个或多个输出(即算法必须得到结果)5.有效性会使用和设计常用的算法,根据算法编写程序。58581.7.3算法的表示1.7.3算法的表示用自然语言表示算法流程图表示算法用N-S流程图表示算法用计算机语言表示算法59591.7.3算法的表示1.用自然语言表示算法自然语言就是人们日常使用的语言,可以是汉语、英语或其他语言。用自然语言表示通俗易懂,但文字冗长,容易出现“歧义性”。用自然语言描述包含分支和循环的算法,不是很方便。60601.7.3算法的表示2.流程图表示算法流程图是一种使用很广的方法,它使用一些约定的几何图形来描述算法,直观形象,易于理解。

美国标准化协会ANSI规定了一些常用的流程图符号,已为世界各国程序工作者普遍采用。616162图1-12流程图符号1.7.3算法的表示(1)起止框:表示算法的开始和结束。(2)输入输出框:表示算法请求输入输出需要的数据或算法将某些结果输出。(3)菱形框(判断框):主要是对一个给定条件进行判断,根据给定的条件是否成立来决定如何执行其后的操作。它有一个入口,两个出口。(4)处理框:表示算法的某个处理步骤,一般内部常常填写赋值操作。(5)连接点:用于将画在不同地方的流程线连接起来。同一个编号的点是相互连接在一起的,实际上同一编号的点是同一个点,只是画不下才分开画。636364651.7.3算法的表示3.结构化程序设计结构化程序设计由顺序结构、选择结构和循环结构三种基本结构构成。C语言是结构化程序设计语言。1966年,Bohra和Jacopini提出了用这三种基本结构作为表示一个良好算法的基本单元。由三种基本结构顺序组成的算法结构,可以解决任何复杂的问题。666667

图1-15顺序结构图1-16选择结构注:A框或B框可以有一个是空的。68

(a)While型(b)Until型图1-17循环结构1.7.3算法的表示以上三种基本结构有一些共同特点:(1)只有一个入口。(2)只有一个出口。(3)结构内的每一部分都有机会被执行到。(4)结构内不存在“死循环”(无限循环,指程序的控制流程一直在重复运行某一段代码,无法退出的情形)。69691.7.3算法的表示4.用N-S流程图表示算法基本结构的顺序

温馨提示

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

评论

0/150

提交评论