C语言概述与数据类型.docx

上传人:b****3 文档编号:2846541 上传时间:2022-11-15 格式:DOCX 页数:24 大小:77.76KB
下载 相关 举报
C语言概述与数据类型.docx_第1页
第1页 / 共24页
C语言概述与数据类型.docx_第2页
第2页 / 共24页
C语言概述与数据类型.docx_第3页
第3页 / 共24页
C语言概述与数据类型.docx_第4页
第4页 / 共24页
C语言概述与数据类型.docx_第5页
第5页 / 共24页
点击查看更多>>
下载资源
资源描述

C语言概述与数据类型.docx

《C语言概述与数据类型.docx》由会员分享,可在线阅读,更多相关《C语言概述与数据类型.docx(24页珍藏版)》请在冰豆网上搜索。

C语言概述与数据类型.docx

C语言概述与数据类型

C语言概述与数据类型

什么是程序?

要使计算机能完成人们预定的工作,就必须把要完成工作的具体步骤编写成计算机能执行的一条条指令,计算机执行这些指令序列后,就能完成指定的功能,这样的指令序列就是程序。

简单地说,程序是能完成一定功能的指令序列。

要想学会编写程序,首先要学习提供指令的程序设计语言;其次,就好像认识许多字不一定能写出好文章一样,仅仅学习了程序设计语言还不能编写出好的程序,还要学习更多和程序设计有关的知识和技巧。

程序的功能一般是指其处理数据的能力,所以一个程序包括以下两个方面内容:

(1)对数据的描述。

在程序中要指定处理数据的类型和存储形式,即数据结构(datastructure)。

(2)对操作的描述。

即操作步骤,也就是算法(algorithm)。

数据是操作的对象,操作的目的是对数据进行加工处理,以得到期望的结果。

作为程序设计人员,必须认真考虑和设计数据结构和操作步骤(即算法)。

因此,著名计算机科学家沃思(NikiklausWirth)提出一个公式:

程序=数据结构+算法

当然这些要素都离不开一个与计算机交互的平台——程序设计语言和环境。

因此,可以这样表示程序:

程序=算法+数据结构+程序设计语言和环境

算法是程序的灵魂,是解决问题所需要采用的合适方法,决定程序“做什么”和“怎么做”;数据结构是加工对象的组织方式;程序设计语言是程序设计的工具和环境。

大家更熟悉的一个词可能是“软件”,软件是具有一定综合功能的程序、数据及相关文档的集合。

只有打好程序设计的基础,并掌握一定的软件开发技术后,才有可能去开发具有实用性的软件。

1.1引言

1.1.1程序设计语言及其分类

1.程序设计语言及其功能

“程序设计语言是一种指挥计算机的工具?

一种程序员之间交流的方式?

一种表述高层设计的媒介?

一种算法的记述方式?

一种表述观念间关系的途径?

一种试验工具?

还是一种控制计算机化的设备的途径?

实际上,一种通用程序设计语言必须集上述所有这些东西于一身,这样才能为用户更好地服务。

”——这是Stroustrup[1994]对程序设计语言的论述。

语言是一种交流工具,发明程序设计语言的目的就是为了使计算机更容易使用。

程序设计语言是计算机软件中非常独特的一部分,属于系统软件,但又和应用软件息息相关。

其功能是使人类能够用某些命令、指令让计算机为人类进行数值、逻辑运算。

2.程序设计语言可以按对硬件依赖的程度分类

人们把程序设计语言按其对计算机硬件依赖的程度分为低级语言和高级语言。

低级语言包括机器语言和汇编语言。

机器语言就是一台机器本身的语言,使这台机器可以直接响应的指令的记述形式,是唯一可以被计算机直接执行的语言。

面向机器程序语言的指令由许多的0和1组成,一条计算机指令指示计算机一次完成一个最基本的操作。

由这种语言编写的程序不但冗长,而且可读性差、移植性差、容易出错、晦涩难懂,是一般人类所无法接受的。

但这样的程序执行效率高,节省内存,运行速度快,通常用于直接控制计算机的硬件。

为了克服机器语言的缺点,产生了汇编语言。

汇编语言是机器语言的一种变形,是将机器指令助记成为可读易懂的符号,但仍只能完成计算机层次的操作;用汇编语言编写的程序要在计算机上执行,先要将用汇编语言编写的源程序转换成机器语言程序,称完成这个转换功能的程序为“汇编程序”。

低级语言的缺点是,指令功能简单,即使完成一个算术表达式的运算也需编写大段程序,而且需要对硬件进行了解,完成的程序不具可移植性。

低级语言的优点是,执行速度快,可直接控制硬件,适用于实时性要求较高的自动控制系统。

 

为了克服以上两种语言的缺陷,产生了许多高级语言。

高级语言的共同特点是,完全不依赖于硬件,接近于自然语言(当然是英语)。

高级语言的基本构成是语句,语句的功能要比机器语言指令的功能强大得多,另外还提供了丰富的函数或类库。

3.程序设计语言还可以按其采用的范型分类

1)面向过程的语言

面向过程的语言虽可独立于计算机编写程序,但用这类语言编写程序时,程序不仅要说明做什么,更重要的是非常详细地告诉计算机如何做,程序需要详细描述解题的过程和细节。

2)面向问题的语言

不必关心问题的求解算法和求解的过程,只需指出问题是做什么以及数据的输入和输出形式,就能得到所需结果。

面向问题语言又称为非过程化语言或陈述性语言,如报表语言、SQL(StructuredQueryLanguage)语言等。

SQL语言是数据库查询和操纵语言,能直接使用数据库管理系统。

由于使用面向问题语言解题只要告诉计算机做什么,不必告诉计算机如何做。

3)面向对象的语言

为克服面向过程语言过分强调求解过程的细节,程序不易复用的缺点,产生了面向对象程序设计方法和面向对象语言。

面向对象语言引入了对象、消息、类、继承、封装、抽象、多态性等机制和概念。

用面向对象语言进行程序设计时,以问题域中的对象为基础,将具有类似性质的对象抽象成类,并利用继承机制,仅对差异进行程序设计,可以提高软件开发效率。

4.其他分类方式

按应用领域分类有人工智能程序设计语言(如lisp)、逻辑推理程序设计语言(如Prolog)、系统程序设计语言(如C语言)。

命令式程序设计语言,由于其适用性强、应用范围广、语句简捷、灵活而得到广泛的使用,如Pascal、Basic、Fortran、C都属于这类语言。

程序设计初学者一般首先学习的就是命令式程序设计语言。

5.关于C语言

C语言是在20世纪70年代初问世的,1978年由美国电话电报公司(AT&T)贝尔实验室正式发表了C语言。

C语言属于面向过程的高级语言。

在C语言的基础上,1983年又由贝尔实验室的BjarneStrou-strup推出了C++语言。

C++语言进一步扩充和完善了C语言,是一种面向对象的高级语言。

程序设计语言只是程序设计的工具,通过对一种程序设计语言的学习,掌握了程序设计的思想方法后是可以触类旁通的。

1.1.2程序的执行

高级程序设计语言接近于自然语言,用其编写的程序对人而言可读性是增强了,但计算机就无法“理解”了。

因此计算机与高级程序之间需要一个“翻译”,就是要把高级语言转化为计算机能读懂的指令。

就像现实中的翻译有两种形式——同声翻译和笔译一样,程序的翻译也有两种方式:

解释和编译。

解释就像同声翻译一样,解释一句执行一句,不保留翻译结果;编译和笔译一样,是把一个程序全部翻译并保存翻译结果,以后计算机直接运行的是翻译后的结果。

用高级程序设计语言编写的程序称为源程序;经编译生成后的计算机可识别的程序称为目标程序;最后经过对目标程序进行连接(连接是指把程序的各模块之间组成一个可执行的整体的过程,详见4.2.6节),生成的是可脱离编译环境,在操作系统下执行的程序称为可执行程序。

多数高级程序设计语言采用编译方式;有的高级程序设计语言,既可以是解释方式也可以是编译方式。

C语言采用的是编译方式,程序从录入到运行过程如图1-1所示。

目前流行的C语言编译系统有以下几个版本:

∙BorlandTurboC或称TurboC;

∙MicrosoftC或称MSC;

∙AT&TC;

∙GCC(GNUCompilerCollection,GNU编译器集合,自由软件基金会)。

编译系统主要对所提供的C语言语句进行编译,不同C语言版本的C语言语句有所不同,但都实现了ANSIC的标准,而且在此基础上各自进行了一些扩充。

本书主要针对其标准(共同)的部分进行讲解。

编译系统还提供了常用的函数,附录C中以TurboC为例介绍了函数库。

编译系统不仅提供编译功能,还提供了友好的编程环境,在该环境下,可以对程序进行编辑、编译、连接、调试和运行等工作。

C++语言扩充了C语言,并兼容C语言,当前各种考证和程序竞赛系统多采用VisualC++为编译系统,所以教材在讲解中,对两者的差别在必要的情况下进行讲解。

VisualC++编译系统下,编写和运行C语言程序的过程,详见教材《高级语言程序设计实验指导与习题集》。

图1-1程序从编辑到运行的过程

1.1.3认识简单的C程序

1.函数

C语言源程序由函数构成,函数又由程序设计语言提供的具有一定功能的语句构成。

一个源程序其中必不可少且只能有一个的是主函数(main函数),程序从主函数开始运行。

在第3章之前针对仅包含主函数的程序进行讨论。

为了说明C语言源程序结构的特点,先看一个简单的程序,以便读者了解C语言源程序基本组成结构。

#include

main()

{

printf("Hello!

");

}

以上例子是一个可以编译运行的最简单的C语言程序,仅包括一个主函数,其功能是把字符串“Hello!

”送到显示器并显示。

printf函数调用语句的功能就是显示(或称为输出)。

C语言的函数由三部分组成:

(1)使用输出库函数时要用到头文件stdio.h,源文件开头应有以下预编译命令:

#include

(2)函数首部:

由函数名——main和一对括号()构成。

(3)函数体:

由一对{}和其中的一条或多条语句构成。

2.语句

程序(或函数)的基本组成是语句。

语句一般有输入、输出、赋值或控制等功能,是程序设计语言提供的,是最基本处理数据的功能。

通过对语句的组织,完成不同数据处理功能的函数。

因此语句是程序设计语言的基础。

如“printf()”;就是输出功能的函数调用语句。

3.书写格式

C语言函数体中的每一个语句都是以“;”分号为结束符的。

它们的书写非常自由,可以在一行的任意位置开始写程序语句,一个语句可写成多行,一行可以写多个语句。

从便于阅读理解和维护的角度出发,在书写程序时应遵循:

每个语句占一行。

4.注释

注释是供编程人员阅读的,与程序的运行没有任何关系。

注释的格式为“/*…*/”。

注释语句可以出现在程序的任意位置,在C++语言环境下也可以用“//…”注释格式,只能出现在语句的行尾或独立为一行。

例如:

#include

main()

{

printf("Hello!

");/*输出*/

}

{

/*输出*/printf("Hello!

");

}

{

printf("Hello!

");//输出

}

1.2C语言基本数据类型

前面已经讨论程序的主要功能就是处理数据,C语言能够处理哪些类型的数据?

计算机是如何表示和存储数据呢?

下面进行介绍。

1.2.1计算机中数据存储基础

1.存储空间的单位

计算机存储数据的电器元件多数是二态的,因此计算机的指令和数据都是以二进制进行存储的。

一个电器元件的存储量定义为位(b),是存储的最小单位。

1b能表示2个状态,可以表示数值0和1;2b能表示4个状态,可以表示数值0(00),1(01),2(10),3(11)…

计算机存储的基本单位是字节(B),1B=8b,能表示28=256个状态,可以表示数值0,1,2,…,255。

00000000表示0,00000001表示1,00000010表示2,…,11111111表示255。

2.二进制转十进制

十进制是满十进一,所以1236=1000+200+30+6=1×103+2×102+3×101+6×100

同样的道理,二进制是满二进一,所以二进制转化为十进制过程如下:

二进制0001001=23+20=9,二进制00011010=24+23+21=26

3.十进制转二进制

十进制数1236÷10=123…6,123÷10=12…3,12÷10=1…2,1÷10=0…1,从后向前余数就是这个十进制数1236。

同样的道理,十进制转化为二进制的过程如下:

26÷2=13…0,13÷2=6…1,6÷2=3…0,3÷2=1…1,1÷2=0…1,从后向前余数就是26的二进

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 经管营销 > 经济市场

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1