《计算思维与C语言概述》-第一章_第1页
《计算思维与C语言概述》-第一章_第2页
《计算思维与C语言概述》-第一章_第3页
《计算思维与C语言概述》-第一章_第4页
《计算思维与C语言概述》-第一章_第5页
已阅读5页,还剩16页未读 继续免费阅读

下载本文档

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

文档简介

1.1计算思维与程序设计语言

1.1.1

二进制思维与程序设计语言的分类计算机系统采用二进制来表示数值型信息。二进制的每一位基值只有0和1,因易于电子器件实现而应用于计算机系统。也就是说,计算机系统是0和1的世界,使用0和1表示数值,也表示逻辑(0为假,1为真),从而实现自动化。0和1,以及逻辑运算代表的二进制思维是计算思维的基础。因此,人类世界中的信息只有表示为0和1的组合,才能进入计算机系统。早期的程序员就使用二进制来编写程序让计算机执行,

从而完成某种任务。

这种二进制语言称为机器语言。机器语言是机器指令的集合。机器指令就是计算机能够直接识别并执行的指令。计算机的机器指令是一个二进制编码。下一页返回1.1计算思维与程序设计语言

例如,应用8086CPU完成计算s=768+12288-1280的三条机器指令如下:101100000000000000000011000001010000000000110000001011010000000000000101假如将指令误写成以下形式,运算将错误。101100000000000000000011000001010000000000011000001011010000000000000101不难看出,用机器语言编写程序是非常困难的。无论是记住这些二进制编码,还是找出其中的一些错误,都非常麻烦。上一页下一页返回1.1计算思维与程序设计语言

早期的程序员们很快就发现了使用机器语言带来的麻烦,于是,汇编语言产生了。汇编语言是汇编指令的集合。汇编指令采用了类似人类所使用的自然语言的语法来表示这些指令,从而便于程序员阅读和记忆。例如,将寄存器BX的内容传送到寄存器AX的机器指令是“1000100111011000”,而对应的汇编指令则为“MOVAX,BX”。很明显,后者更便于程序员阅读和记忆。由于计算机只能识别机器指令,因此需要将采用汇编语言编写的程序翻译成计算机能够识别的指令序列,这一工作由专门程序来完成。汇编指令与机器指令基本上一一对应,

它的执行与机器语言一样受硬件底层平台的限制。更重要的是,用多条指令实现一个程序的编写过于烦琐。于是,

高级语言产生了!高级语言是对汇编语言的进一步抽象,它更接近于人类使用的自然语言,

同时又不依赖于计算机硬件,编出的程序能在不同体系结构的计算机上执行。上一页下一页返回1.1计算思维与程序设计语言

例如,求两个数的最大值的C语言代码如下所示:if(a>b)

max=a;

else

max=b;

可见,高级语言更接近于人类的自然语言描述。但由于计算机只能识别机器语言,因此用高级语言编写的程序也需要经过专门的编译器程序翻译成机器指令,才能在计算机上执行。综上所述,程序员发现使用更接近于自然语言的高级语言更容易实现计算机软件的设计与开发,只需运用计算思维来解决问题,

而无须考虑计算机硬件平台的要求与限制。上一页下一页返回1.1计算思维与程序设计语言

1.1.2

计算思维与程序设计以计算机学科为代表的计算思维又称构造思维,其以设计和构造为特征,最本质的内容是抽象与自动化。抽象与自动化反映了计算的根本问题,即什么能被有效地自动进行。程序是让计算机自动执行的指令序列,数据、指令和程序是计算思维最基本的内容,程序设计与构造是一种计算思维。程序设计语言和计算思维相辅相成,语言是思维的体现,思维是语言的载体。对于程序设计课程来说,学生应掌握的编程能力是计算思维和技能化知识的综合体,

实践操作是对计算思维能力结果的一种验证。上一页下一页返回1.1计算思维与程序设计语言

1.1.

计算思维在C语言程序设计中的应用C语言是一种面向过程的程序设计语言,是目前世界上普遍流行、使用非常广泛的高级程序设计语言之一,由美国贝尔实验室的DennisMRitchie设计。当前最新的C语言标准为C11,在它之前的C语言标准为C99。鉴于C语言对底层硬件操作方面的优势,C语言广泛应用于操作系统(如Windows、Linux、UNIX等操作系统)、工业控制等软件的开发。另外,C语言具有绘图能力强、可移植性好的特点,并具备很强的数据处理能力,因此也适用于二维、三维图形动画软件的开发。计算思维是模型与算法相结合的思维过程,是抽象与自动化实现的过程。在C语言程序设计中,先把待解决的问题抽象成与其相应的模型,然后确定算法,编写程序求解问题,最后由机器自动执行。上一页下一页返回1.1计算思维与程序设计语言

一个C语言程序的设计与构造,首先将简单的语句组合成复杂的结构化语句,进而抽象为函数,最后将多个函数组合为复杂的程序。函数机制有利于实现穷举法、递推法、递归法、回溯法、

迭代法、

分治法、

贪心法和动态规划法等典型算法,同时使程序更简短而清晰,有利于维护,并提高代码的重用性,

从而提高程序开发的效率。上一页返回1.2C程序的基本结构

先来看一个最小的C程序———helloc,

以此来了解C程序的基本结构。

该程序能在屏幕上输出以下内容:可以看出,一个C程序由注释、预处理命令和主程序组成,主程序由一组函数组成。每个程序至少有一个函数,即主函数main。下一页返回1.2C程序的基本结构

1.2.1

注释在helloc代码清单的第一部分,

包含在“/∗”

和“∗/”之间的内容属于注释。

注释既可以单独占一行,也可以和程序中的其他代码在同一行。注释可以占多行,称为块注释。

在现在的编译系统中,注释也可以从“//”开始到本行结束,称为行注释。注释是程序员用自然语言向其他程序员传递该程序的有关信息,不是真正执行的语句,不影响程序的执行。注释一般分为序言性注释和功能性注释:(1)序言性注释通常在程序的开始,

用于说明程序的名称、

功能、

设计思想、

版本、设计者等信息。(2)功能性注释通常在程序代码内部,

用于说明关键数据、

语句、

控制结构的含义和作用。注释能够提高程序的可读性,便于程序的维护,为程序适当增加一些注释是一种良好的程序设计习惯。上一页下一页返回1.2C程序的基本结构

1.2.2

预处理helloc代码清单的第二部分是预处理命令。C语言的编译分为预处理和编译,先执行预处理,再执行编译。预处理命令均以“#”符号开始,且每条预处理命令独占一行。常用的预处理命令是库包含。

“#include<stdioh>”

用于告诉编译器,

本程序要将一个“stdioh”文件的内容包含。“stdioh”(stdio即standardinputoutput的缩写)是C语言标准输入/输出函数库中定义的一个头文件,包含了标准函数库中定义的输入/输出函数的说明信息。函数printf是标准函数库stdio的输出函数,要想使用函数printf,就必须在预编译阶段包含此库函数的头文件stdioh。上一页下一页返回1.2C程序的基本结构

1.2.3

主程序程序helloc的最后一部分是主程序,是算法的描述。C语言程序是由一个主函数main和若干子函数组成的。函数可以分为两部分———函数首部和函数体。

函数的概念来自数学。

表1-1所示为C语言函数与数学函数的对比。在数学函数f(x)=x2+x+1中,f称为函数名,x称为函数的自变量,f(x)的定义给出了通过自变量计算函数值的方法。C语言函数定义与数学函数类似,

函数首部intmain()等同于数学函数中等号的左边部分,

函数体等同于数学函数中等号的右边部分。函数首部(函数头)中的int表示函数的执行结果是一个整数,main是函数名,()中是函数的参数,相当于数学函数中的自变量。在本例中,函数没有参数,()中的内容为空。上一页下一页返回1.2C程序的基本结构

main函数是C语言程序中的一个特殊函数,每个程序有且仅有main函数,它代表程序运行时的入口。程序运行时,首先找到main函数,然后依次执行main函数中包含的每条语句,直到main函数结束。除了main函数外,程序中使用的函数可以分为两类:一类是我们为了实现某项功能而自己编写的函数,通常称为“自定义函数”;另一类是由编译器提供的函数库中的函数,通常称为“库函数”。上述程序中所使用的printf函数就是一个库函数。函数体是实现如何从自变量得到函数值的过程,即算法的描述。C语言函数的定义部分被放在一对大括号中,可以包含一系列语句,这些语句给出了函数执行的操作。在C语言程序中,分号是语句结束的唯一标志;一条语句既可以独占一行,也可以占用多行;多条语句可以放在同一行。上一页下一页返回1.2C程序的基本结构

程序helloc包含以下两条语句:(1)printf("Hello,World!\

n");函数printf用于格式化输出到屏幕,在头文件stdioh中声明。(2)return0;return语句用于表示退出程序,0是函数的值。上述程序中的int、include、void、return是C语言的保留字,保留字又称为关键字。每种程序设计语言都规定了自己的一套保留字。保留字是具有特殊含义和功能的词汇,不能被用作其他用途。C语言有30多个保留字,全部使用小写形式。后续章节将逐步介绍C语言的其他保留字。上一页返回1.3C程序的编译

使用任何文本编辑器都可以创建一个扩展名为c的C程序文件,但要把C程序文件转换为机器可以执行的程序,则需要以下3个步骤:(1)预处理。

程序首先被送给预处理器。

预处理器执行以#开头的命令,

其功能类似编辑器,它既可以向程序添加内容,也可以对程序进行修改。(2)编译。

修改后的程序可以进入编译器。

编译器将程序翻译成机器指令(即目标代码)。(3)连接。

连接器把编译器产生的目标代码和所需的其他附加代码整合,

产生完全可执行的程序。这些附加代码包括程序中用到的库函数。上述工作烦琐而复杂,幸运的是,这些工作由现有的系统程序自动实现,无须用户完成,这类系统程序一般称为编译器。现有的C语言编译器多种多样,接下来将简单介绍常用的几种。下一页返回1.3C程序的编译

1.3.1

UNIX操作系统的CC编译器在UNIX操作系统中,用于编译和连接的程序称为CC编译器。为了编译和连接程序helloc,需要在终端或命令行窗口中输入下述命令:%cchelloc说明:字符%为UNIX操作系统的提示符,无须输入。在使用CC编译器时,系统会自动进行连接操作。在编译和连接程序后,CC编译器会把可执行程序放到默认名为aout的文件中。在UNIX系统中,

执行如下命令可以把程序helloc生成的执行文件命名为hello:%cc-ohellohelloc其中,-o选项允许为可执行程序的文件选择名字。上一页下一页返回1.3C程序的编译

1.3.2

Linux操作系统的GCC编译器在Linux操作系统中,

GCC(GNUCompilerCollection)编译器是最流行的C程序编译器之一,这种编译器的使用与UNIX操作系统中的CC编译器相似。例如,在Linux操作系统中,

执行如下命令可以把程序helloc生成的执行文件命名为hello:%gcc-ohellohelloc现在的GCC编译器能够编译Ada、C、C++、Fortran、Java和Objective-C等多种语言。GCC编译器不仅是开源的、免费的,还能为多种不同的CPU生成代码,所以GCC编译器广泛应用于商业软件开发。上一页下一页返回1.3C程序的编译

1.3.3

Windows操作系统的集成开发环境在Windows操作系统中,

常用的编译系统为集成开发环境(IntegratedDevelopmentEnvironment,IDE),即一个软件包,集编辑、编译、连接、执行、调试于一体。在该环境中,既可以编辑c文件,也可以编译c文件为可执行文件。当编译器发现程序有错时,它会在编辑器中把包含出错代码的行突出显示。上一页下一页返回1.3C程序的编译

Windows操作系统的常用集成开发环境有:1

VisualC++60VisualC++60(简称VisualC++、MSVC、VC++或VC)是Microsoft公司推出的以C++语言为基础的Windows开发环境程序,是面向对象的可视化集成编译系统。C++语言全面兼容了C语言,此环境包含了C语言的编译环境。由于VisualC++6

温馨提示

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

评论

0/150

提交评论