当前位置:首页 >> 学科竞赛 >>

谭浩强《C++程序设计》课件


中国高等院校计算机基础教育课程体系规划教材

谭浩强 编著

C++程序设计

第1章 C++的初步知识

*1.1 *1.2 1.3 1.4 1.5

从C到C++ 最简单的C++程序 C++程序的构成和书写形式 C++程序的编写和实现 关于C++上机实践

> *1.1 从C到C++
世界上第一种计算机高级语言诞生于1954年, 它是FORTRAN语言。其中使用最广泛、影响最大 的当推BASIC语言和C语言。 BASIC语言是1964年在FORTRAN语言的基础 上简化而成的,它是为初学者设计的小型高级语言。 C语言是1972年由美国贝尔实验室的D.M.Ritch ie研制成功的。大多数系统软件和许多应用软件都 是用C语言编写的。

C++是由AT&T Bell(贝尔)实验室的Bjarne Stroustrup博士及其同事于20世纪80年代初在C语 言的基础上开发成功的。C++保留了C语言原有的 所有优点,增加了面向对象的机制。 C++是由C发展而来的,与C兼容。用C语言写 的程序基本上可以不加修改地用于C++。从C++的 名字可以看出它是C的超集。C++既可用于面向过 程的结构化程序设计,又可用于面向对象的程序设 计,是一种功能强大的混合型的程序设计语言。

C++对C的“增强”,表现在两个方面: (1) 在原来面向过程的机制基础上,对C语言的 功能做了不少扩充。 (2) 增加了面向对象的机制。 面向对象程序设计,是针对开发较大规模的程 序而提出来的,目的是提高软件开发的效率。 学习C++,既要会利用C++进行面向过程的结 构化程序设计,也要会利用C++进行面向对象的程 序设计。

*1.2 最简单的C++程序
例1.1 输出一行字符: “This is a C++ program.”。 程序如下:
#include <iostream> //包含头文件iostream using namespace std; //使用命名空间std int main( ) { cout<<"This is a C++ program."; return 0; }

在运行时会在屏幕上输出以下一行信息: This is a C++ program.

用main代表“主函数”的名字。每一个C++程 序都必须有一个 main 函数。 main前面的int的作用是声明函数的类型为整 型。 函数体是由大括号{ }括起来的。注意C++所有 语句最后都应当有一个分号。 再看程序的第1行“#include <iostream>”,这 不是C++的语句,而是C++的一个预处理命令,它 以“#”开头以与C++语句相区别,行的末尾没有 分号。

#include <iostream>是一个“包含命令”,它 的作用是将文件iostream的内容包含到该命令所在 的程序文件中,代替该命令行。 文件iostream的作用是向程序提供输入或输出 时所需要的一些信息。iostream是i-o-stream 3个词 的组合,表示 “输入输出流”的意思,称为“头 文件”(head file)。 在程序进行编译时,先对所有的预处理命令进 行处理,将头文件的具体内容代替 #include命令行, 然后再对该程序单元进行整体编译。

程序的第2行“using namespace std; ” 的意思 是“使用命名空间std”。C++标准库中的类和函数 是在命名空间std中声明的,因此程序中如果需要 用到C++标准库(此时就需要用#include命令行),就 需要用“using namespace std; ”作声明,表示要用 到命名空间std中的内容。

例1.2 求a和b两个数之和。 可以写出以下程序:
// 求两数之和 #include <iostream> using namespace std; int main( ) { int a,b,sum; cin>>a>>b; sum=a+b; cout<<"a+b="<<sum<<endl; return 0; 作系统返回一个零值 } (本行是注释行) //预处理命令 //使用命名空间std //主函数首部 //函数体开始 //定义变量 //输入语句 //赋值语句 //输出语句 //如程序正常结束,向操

本程序的作用是求两个整数a和b之和sum。第1 行“//求两数之和”是一个注释行,C++规定在一 行中如果出现“//”,则从它开始到本行末尾之间 的全部内容都作为注释。 如果在运行时从键盘输入 123 456↙ 则输出为 a+b=579

例1.3 给两个数x和y,求两数中的大者。 在本例中包含两个函数。
#include <iostream> //预处理命令 using namespace std; int max(int x,int y) //定义max函数,函数值为整型, { //max函数体开始 int z; //变量z为整型 if(x>y) z=x; //if语句,如果x>y,则将x的值赋给z el //否则,将y的值赋给z return(z); //将z的值返回,通过max带回调用处 } //max函数结束 int main( ) //主函数 { //主函数体开始 int a,b,m; //变量声明 cin>>a>>b; //输入变量a和b的值

}

m=max(a,b); //调用max函数,将得到的值赋给m cout<<"max="<<m<<'\n'; //输出大数m的值 return 0; //如程序正常结束,向操作系统返回一个零值 //主函数结束

本程序包括两个函数 : 主函数 main 和被调用的 函数max。 程序运行情况如下: 18 25 ↙ (输入18和25给a和b) max=25 (输出m的值) 注意输入的两个数据间用一个或多个空格间隔, 不能以逗号或其他符号间隔。

在上面的程序中,max函数出现在main函数之 前,因此在main函数中调用max函数时,编译系统 能识别max是已定义的函数名。如果把两个函数的 位置对换一下,即先写main函数,后写max函数, 这时在编译main函数遇到max时,编译系统无法知 道max代表什么含义,因而无法编译,按出错处理。 为了解决这个问题,在主函数中需要对被调用 函数作声明。上面的程序可以改写如下:
#include <iostream> using namespace std; int main( ) { int max(int x,int y); int a,b,c;

//对max函数作声明

cin>>a>>b; c=max(a,b); cout<<"max="<<c<<endl; return 0;
} int max(int x,int y) { int z; if(x>y) z=x; else z=y; return(z); }

//调用max函数

//定义max函数

只要在被调用函数的首部的末尾加一个分号, 就成为对该函数的函数声明。函数声明的位置应当 在函数调用之前。

1.3 C++程序的构成和书写形式
C++程序的结构和书写格式归纳如下: (1) 一个C++程序可以由一个程序单位或多个程序 单位构成。 (2) 在一个程序单位中,可以包括以下几个部分: ① 预处理命令。#include命令行。 ② 全局声明部分(在函数外的声明部分)。数据 类型的声明和变量的定义。

③ 函数。每一个程序必须包括一个或多个函数, 其中必须有一个(而且只能有一个)主函数(main函 数 )。 但是并不要求每一个程序文件都必须具有以上 3个部分,可以缺少某些部分(包括函数)。 (3) 一个函数由两部分组成: ① 函数首部。包括函数名、函数类型、函数属 性、函数参数(形参)名、参数类型。 一个函数名后面必须跟一对圆括号, 函数参数 可以缺省,如int main( )。

② 函数体。如果在一个函数中有多个大括号, 则最外层的一对{ }为函数体的范围。 函数体一般包括: ?局部声明部分 (在函数内的声明部分)。 对数据的声明既可以放在函数之外(其作用范围 是全局的),也可以放在函数内(其作用范围是局部 的,只在本函数内有效)。 ?执行部分。由若干个执行语句组成,用来进行有 关的操作,以实现函数的功能。

(4) 语句包括两类。 一类是声明语句,另一类是执行语句。 C++对 每一种语句赋予一种特定的功能。C++语句必须以 分号结束。 (5) main函数 一个C++程序总是从main函数开始执行的,而 不论main函数在整个程序中的位置如何。 (6) 类(class) 是C++新增加的重要的数据类型,是C++对C 的最重要的发展。

(7)C++程序书写格式自由,一行内可以写几个语句, 一个语句可以分写在多行上。 (8) 注释 C++还保留了C语言的注释形式,用“//”作注 释时,有效范围只有一行,即本行有效,不能跨行。 而用“/*……*/”作注释时有效范围为多行。只要 在开始处有一个“/*”,在最后一行结束处有一个 “*/”即可。

1.4 C++程序的编写和实现
一个程序从编写到最后得到运行结果要经历以 下一些步骤。 1. 用C++语言编写程序 用高级语言编写的程序称为“源程序”(source program)。C++的源程序是以.cpp作为后缀的(cpp 是c plus plus 的缩写)。 2. 对源程序进行编译 为了使计算机能执行高级语言源程序,必须先 用一种称为“编译器(complier)”的软件,把源程序 翻译成二进制形式的“目标程序(object program)”。

编译是以源程序文件为单位分别编译的。目标 程序一般以.obj或.o作为后缀(object 的缩写)。编译 的作用是对源程序进行词法检查和语法检查。编译 时对文件中的全部内容进行检查,编译结束后会显 示出所有的编译出错信息。一般编译系统给出的出 错信息分为两种,一种是错误(error);一种是警告 (warning) 。 3. 将目标文件连接 在改正所有的错误并全部通过编译后,得到一 个或多个目标文件。此时要用系统提供的“连接程 序(linker)”将一个程序的所有目标程序和系统的库 文件以及系统提供的其他信息连接起来,最终形成 一个可执行的二进制文件,它的后缀是.exe,是可 以直接执行的。

4. 运行程序 运行最终形成的可执行的二进制文件(.exe文件), 得到运行结果。 5. 分析运行结果 如果运行结果不正确,应检查程序或算法是否 有问题。

图1.1

1.5 关于C++上机实践
1、编程软件:Dev-Cpp 5.5.3 MinGW 4.7.2 Setup 2、上机练习:“熟能生巧”,多做多练多思考才 能更好的掌握知识。 3、自我拓展:“师傅领进门,修行靠个人” 4、扎实的基础+勤奋的练习+较强的自学能力+细 心=成功


相关文章:
c++程序设计 谭浩强 答案 完整版
搜 试试 7 帮助 全部 DOC PPT TXT PDF XLS 百度文库 教育专区 高等教育 ...c++程序设计 谭浩强 答案 完整版_理学_高等教育_教育专区。c++程序设计 谭浩强 ...
《c++程序设计》谭浩强版
搜 试试 7 帮助 全部 DOC PPT TXT PDF XLS 百度文库 教育专区 高等教育 工学《c++程序设计》谭浩强版_工学_高等教育_教育专区...
《c++程序设计》谭浩强_答案 完整版
搜 试试 7 帮助 全部 DOC PPT TXT PDF XLS 百度文库 专业资料 IT/计算机 ...《c++程序设计》谭浩强_答案 完整版_计算机软件及应用_IT/计算机_专业资料。《c++...
C++程序设计谭浩强第1-12章课件
做好实习课前、课后的准备和总结 3.阅读参考书籍: C 语言程序设计 C 程序设计实践 谭浩强 (美)H.M.Deitel 等著 C++程序设计教程 (美)H.M.DEITEL 等著 1...
《c++程序设计》谭浩强_答案
搜 试试 帮助 全部 DOC PPT TXT PDF XLS 百度文库 教育专区 高等教育 理学...《c++程序设计》谭浩强_答案 隐藏>> 第一章 1.5 题 #include <iostream> using...
C++程序设计(第2版)谭浩强 编著
搜 试试 7 帮助 全部 DOC PPT TXT PDF XLS 百度文库 教育专区 高等教育 ...C++程序设计(第2版)谭浩强 编著_理学_高等教育_教育专区。C++程序设计(第2版)...
谭浩强C++程序设计复习提纲
清华大学出版社版谭浩强《C++程序设计》复习提纲复习目标: (1)掌握 C++的基本语法结构; (2)掌握基本的程序设计算法和技巧; (3)具备初步的高级语言程序设计能力; ...
《c++程序设计》谭浩强_答案
搜 试试 帮助 全部 DOC PPT TXT PDF XLS 百度文库 专业资料 IT/计算机 ...《c++程序设计》谭浩强_答案 隐藏>> CCCCDFDSFFVGCCC C++程序设计课后答案 袁俊...
谭浩强版《C++程序设计》知识点
搜 试试 7 帮助 全部 DOC PPT TXT PDF XLS 百度文库 教育专区 高等教育 ...谭浩强《C++程序设计》知识点_理学_高等教育_教育专区。C++知识点第...
《c++程序设计》谭浩强_答案
搜试试 7 帮助 全部 DOC PPT TXT PDF XLS 百度文库 专业资料 IT/计算机 ...《c++程序设计》谭浩强_答案_电脑基础知识_IT/计算机_专业资料。第一章 1.5 题...
更多相关标签:
c语言程序设计 谭浩强 | c程序设计 谭浩强 | c程序设计 谭浩强 pdf | c程序设计谭浩强视频 | c程序设计答案 谭浩强 | c程序设计 谭浩强害人 | c程序设计教程 谭浩强 | 谭浩强的c程序设计 |