C语言第一课

  • 格式:pdf
  • 大小:841.88 KB
  • 文档页数:22

1初识C++语言

1.1关于C++

C++是一种计算机通用的高级程序设计语言。

开始形成的是C语言,那些想建立更快更有效的代码的程序员非常欣赏C语言。但有

一位名叫 Bjarne Stroustrup的人却不满足于仅仅是生产快速代码,他想创建面向对象的C

语言编程。他开始对C语言的内核进行必要的修改,使其能满足面向对象模型的要求。

C++从此产生。

C++自诞生以来,经过开发和扩充已成一种完全成熟的编程语言。现在C++已由

ANSI、BSI、DIN、其他几个国家标准机构和ISO定为标准。ISO标准于1997年11月4

日经投票正式通过。

C++ 标准演变了许多年。C++模板是近几年来对此语言的一种扩展,模板是根据类型

参数来产生函数和类的机制,有时也称模板为“参数化的类型”。使用模板,可以设计一个

对许多类型的数据进行操作的类,而不需要为每个类型的数据建立一个单独的类。标准模

板库(Standard Tempalte Library,STL )就是基于这个C++语言扩展的。

C++ 标准可分为两部分, C++语言本身和C++标准库。C++标准库提供了标准的输入

/输出、字符串、容器(如矢量、列表和映射等)、非数值运算(如排序、搜索和合并等)和对

数值计算的支持。应该说, C/C++包含了相对少的关键字,而且很多最有用的函数都来源

于库。

C++标准库实现容器和算法的部分就是STL。 STL 是数据结构和算法的一个框架,数

据结构包括矢量、列表和映射等,算法包括这些数据结构的查找、拷贝和排序等。1994年

7月,ANSI/ISO C++标准委员会投票决定接受STL为C++标准库的一部分。STL的产生是

为了满足通用性的设计目标,而不是为了提高性能。

1.1.1C++的发展:

C++程序设计语言是由来自AT&T 贝尔实现室的Bjarne Stroustrup设计和实现的,它

兼具Simula语言在组织与设计方面的特性以及适用于系统程序设计的C语言特性。

C++最初的版本被称作“带类的C(C with classes)”,在1980年被第一次投入使用;

当时它只支持系统程序设计和数据抽象技术。

支持面向对象程序设计的语言特性在1983年被加入C++;之后,面向对象设计方法和

面向对象程序设计技术就逐渐进入了C++领域。

在1985年,C++ 第一次投入商业市场。

在1987至1989年间,支持范型程序设计的语言特性也被加进了C++

随着若干独立开发的C++实现产品的出现和广泛应用,正式的C++标准化工作在1990

年启动。标准化工作由ANSI(American National Standard Institute)以及后来加入的

ISO(International Standards Organization)负责。1998年正式发布了C++语言的国际标准。1.1.2C++的开发环境:

Visual Studio 6.0

这个虽然是Microsoft公司的老版本的开发环境,但是鉴于其后继版本Visual

Studio.NET的庞大身躯,以及初学者并不那么高的功能要求,所以推荐这个开发环境给

C++的初学者,供其学习C++的最基本的部分,比如C的那部分子集,当然你别指望他能

够支持最新的C99标准。在日常的开发中,仍然有很多公司使用这个经典稳定的环境,比

如笔者就看曾亲见有些公司将其编译器替换为GCC做手机开发之用。

Visual Studio.NET

作为Microsoft公司官方正式发布的最新版本开发环境,其中有太多激动人心的功能。

结合其最新的C++编译器。对于机器配置比较好的开发人员来说,使用这个开发环境将能

满足其大部分的要求。

Borland C++ Builder X

C++BuilderX则是完全从C++的角度思考得出的一个功能丰富的IDE。其最大的特点

是跨平台,跨编译器,多种Framework的集成,并且有一个WxWindows为基础的GUI设

计器。尤其是采用了纯C++来重写了整个Framework,摒弃了以前令人无奈的版本。对于

C++的开发来说,从编译器,到库,到功能集成都是非常理想的。可以预见,Borland C++

Builder X 2.0很值得C++爱好者期待。唯一令人难堪之处是作为一个C++的开发工具,其

IDE是用Java写的,在配置不够理想的机器上请慎重考虑再安装。

Dev C++

GCC是一个很好的编译器。在Windows上的C++编译器一直和标准有着一段距离的

时候,GCC就是一个让Windows下开发者流口水的编译器。Dev-C++就是能够让GCC跑

在Windows下的工具,作为集成开发环境,还提供了同专业IDE相媲美的语法高亮,代码

提示,调试等功能。

由于使用Delphi开发,占用内存少,速度很快,比较适合轻量级的学习和使用。

1.2Dev-cpp的环境

启动Dev-c++后的环境如下:在这个环境中,编辑好源代码后,单击可以编译源代码,如果编译有错误,则列

出错误,并停止编译,这个操作的快捷键为Ctrl+F9。如果编译成功,则可以单击,运行编译好的程序。当然,也可以单击,编译当前的程序并运行。这个操作的快捷键为F9.

一些有用的快捷键:

Ctrl+y:删除当前行

Ctrl+n:新建源文件窗口

Insert:插入与改写状态切换

1.3C++程序结构

1.3.1Hello Word!

输入以下程序并编译、运行。

#include

using namespace std;

int main()

{

cout<<"Hello Word!"<

}

从这个mini程序可以看到C++程序的一般格式。注释如下:

#include //包含要使用的库函数。这里是输入输出功能。因为一个

//信息系统总要输入输出信息,所以基本上每个程序都会

//包含它。using namespace std; //把std名字空间打开,程序可以正确识别std中的名

字了,//如cout,endl等(开盖子语句)。

int main() //主函数,执行入口,在最新标准中,它必须返回int

//类型数据

{ //函数的内容必须放在{}括号中

cout<<"Hello Word!"<

} //函数结束

还可以看到,程序的语句必须用分号结束

在Dev-cpp中,执行后屏幕一闪,就回到编辑界面,怎样让程序等一会,让我们能看

清执行结果。有两种方法:int main()

{

cout<<"Hello Word!"<

getchar();

}

这种方法调用函数getchar(),它等待从命令行得到一个字符,回车结束。所以回车后

回到编辑界面。或:

int main()

{

cout<<"Hello Word!"<

system(“pause”);

}

这种方法调用Windows中的cmd命令“pause”,按任意键回到编辑界面。练习:

(1)在Dev-cpp中编写代码,让它说一些你想说的话。注意,在它可以说中国话,

只要把它放到英文的引号中就行。

(2)编程序显示一首唐诗

(3)编程,用字符*组成一个3列5行的平行四边形

1.3.2能说会算

放在引号中的内容会原样输出。如果不放在引号中呢?比如编程计算123×321.

#include

using namespace std;

int main()

{

cout<<321*123<

getchar();

}

可以看到,对于没有放到引号中的类型,C++会把这些内容作为表达式,计算并输出这个

表达式的值。

练习:(1)计算半径为12的球的体积

(2)一元二次方程的系数分别为1 ,5,3,求这个方程的根。 C++中的常用算术运算符:

运算C++中的运算符

++

--

×*

÷/

求余数%

1.3.3变量

如果在Hello Word程序中,去掉引号,会发生什么。试一试。

对了,它把Hello看成了一个变量,并报告说Hello这个变量没有定义。C++是一种强类型

语言,要求所有的变量都要先定义后使用。

定义变量的方法为:

类型名 变量名

如:

int a; //定义一个变量,变量名为a,它的类型为整型

double c,d; //定义两个变量,变量名为c和d,它们的类型都为double

int b=12; //定义一个变量,变量名为b,类型为整型,同时给变量b赋值,让变量b的值

//12.

要改变一个变量的值,可以使用赋值号“=”,它的作用是:计算出等号右边的表达式的值,

然后把这个结果赋值给等号右边的变量。如执行以下语句:

b=-1;

可以让变量b的值为-1C++常用基本数据类型

类型说明长度(字节)表示范围备注

char字符型1-128~127

unsigned char无符号字符10~255

int整型4约±21亿

unsigned int无符号整型40到约42亿

double双精度型8约±1030815位有效位

bool布尔型1true和false

练习:

(1)计算半径为12的球的体积,把球的半径保存在变量r中,把球的体积放到变量v中。

(2)一元二次方程的系数分别为1 ,5,3,求这个方程的根。把系数分别保存在变量

a,b,c中。判别式结果保存在d中,根分别保存在x1和x2中。

(3)在第一题中,如果忘记给变量r赋值,会得到什么结果。为什么?