第1章 C++简单程序设计 1.1 C++语言概述 1.2 基本数据类型和表达式 1.3 运算符与表达式 1.4 程序的基本控制结构.

Slides:



Advertisements
Similar presentations
C语言程序设计 主讲教师 :张群燕 电话:
Advertisements

第4章 條件判斷與迴圈 Java 2 程式設計入門與應用.
第4章 选择结构程序设计 选择结构是计算机科学用来描述自然界和社会生活中分支现象的手段。其特点是:根据所给定选择条件为真(即分支条件成立)与否,而决定从各实际可能的不同操作分支中执行某一分支的相应操作,并且任何情况下恒有“无论分支多寡,必择其一;纵然分支众多,仅选其一”的特性。
大学程序设计技能训练(C).
第一章 C语言概述 计算机公共教学部.
第3章 运算符、表达式与语句 本章导读 1、算术运算符和算术表达式 2、关系运算符与关系表达式 3、逻辑运算符与逻辑表达式
C语言实验 第一课 标题:学号+姓名.
数学建模与MATLAB 第五讲:循环结构(1) 2017/9/12.
C++中的声音处理 在传统Turbo C环境中,如果想用C语言控制电脑发声,可以用Sound函数。在VC6.6环境中如果想控制电脑发声则采用Beep函数。原型为: Beep(频率,持续时间) , 单位毫秒 暂停程序执行使用Sleep函数 Sleep(持续时间), 单位毫秒 引用这两个函数时,必须包含头文件
程序设计基础.
第三章 C语言基础 学习目标: 熟练掌握:C语言的基本数据类型、运算符及表达式 掌握:常见的输入、输出函数使用方法;
C#程序设计基础 $5 流程控制.
EBNF 请用扩展的 BNF 描述 C语言里语句的结构; 请用扩展的 BNF 描述 C++语言里类声明的结构;
第3章 C语言的基本语句 和程序结构设计.
基础篇 基础知识 —C语言程序设计 学习目标 掌握C语言中三种常见的基本类型及其使用方法 掌握常见的算术运算符和表达式的使用
授课老师:龚涛 信息科学与技术学院 2018年3月 教材: 《Visual C++程序员成长攻略》 《C++ Builder程序员成长攻略》
走进编程 程序的顺序结构(二).
辅导课程六.
第2章 数据类型与数据运算.
程序设计基础.
第一单元 初识C程序与C程序开发平台搭建 ---观其大略
1.2 MATLAB变量表达式与数据格式 MATLAB变量与表达式 MATLAB的数据显示格式
C语言程序设计基础 刘新国.
第二章 Java语言基础.
程序的三种基本结构 if条件分支语句 switch多路开关语句 循环语句 循环嵌套 break,continue和goto语句
第二章 数据类型、运算符与表达式.
第七章 操作符重载 胡昊 南京大学计算机系软件所.
授课老师:龚涛 信息科学与技术学院 2016年3月 教材:《Visual C++程序员成长攻略》 《C++ Builder程序员成长攻略》
第四章 选择结构程序设计 计算机科学学院.
第2章 C++流程控制语句 if 语句 switch语句 for语句 while语句 do - while语句 break语句
第1章 概述 本章要点: C语言程序结构和特点 C语言程序的基本符号与关键字 C语言程序的编辑及运行 学习方法建议:
第一章 函数与极限.
第4章 PHP流程控制语句.
C++语言程序设计 C++语言程序设计 第七章 类与对象 第十一组 C++语言程序设计.
1.3 C语言的语句和关键字 一、C语言的语句 与其它高级语言一样,C语言也是利用函数体中的可执行 语句,向计算机系统发出操作命令。按照语句功能或构成的不 同,可将C语言的语句分为五类。 goto, return.
C语言程序设计 主讲教师:陆幼利.
程式結構&語法.
第二章 基本数据类型及运算 C数据类型概述 基本数据类型 运算符和表达式 混合运算与类型转换 数据的输入输出 顺序程序设计举例.
<编程达人入门课程> 本节内容 内存的使用 视频提供:昆山爱达人信息技术有限公司 官网地址: 联系QQ: QQ交流群: ,
C语言程序设计 第一章 数据类型, 运算符与表达式 第二章 顺序程序设计 第三章 选择结构程序设计 第四章 循环控制 第五章 数组.
数据类型与运算规则.
第4章 Excel电子表格制作软件 4.4 函数(一).
<编程达人入门课程> 本节内容 为什么要使用变量? 视频提供:昆山爱达人信息技术有限公司 官网地址: 联系QQ:
C++语言程序设计 C++语言程序设计 第四章 数组及自定义数据类型 C++语言程序设计.
第二章 Java语法基础.
第九节 赋值运算符和赋值表达式.
C++语言程序设计 C++语言程序设计 第二章 基本数据类型与表达式 第十一组 C++语言程序设计.
College of Computer Science & Technology
多层循环 Private Sub Command1_Click() Dim i As Integer, j As Integer
ASP.NET实用教程 清华大学出版社 第4章 C#编程语言 教学目标 教学重点 教学过程 2019年5月5日.
第四章 选择结构程序设计 计算机科学学院.
学习目标 1、了解基本运算符 2、运算符优先级.
2.6 字符型数据 一、 字符常量 1、字符常量的定义 用一对单引号括起来的单个字符,称为字符常量。 例如,‘A’、‘1’、‘+’等。
#include <iostream.h>
第二章 Java基本语法 讲师:复凡.
C程序设计 实验二 数据类型、运算符和表达式 第6讲
本节内容 C语言的汇编表示 视频提供:昆山爱达人信息技术有限公司 官网地址: 联系QQ: QQ交流群 : 联系电话:
第二章 Java基本语法 讲师:复凡.
程序设计基础A(C语言) 第一章 C语言概述 主讲教师: 许 康
Chap 6 数据类型和表达式 6.1 数据的存储和基本数据类型 6.2 常量和变量 6.3 数据的输入和输出 6.4 类型转换
C++语言程序设计 C++语言程序设计 第一章 C++语言概述 第十一组 C++语言程序设计.
C++语言程序设计 C++语言程序设计 第九章 类的特殊成员 第十一组 C++语言程序设计.
基本知识 数据类型、变量、常量、运算符.
鸡兔同笼(续) ——选择结构.
Java程序设计 第3章 控制语句.
第二章 数据类型与表达式 丘志杰 电子科技大学 计算机学院 软件学院.
第三章 流程控制 程序的运行流程 选择结构语句 循环结构语句 主讲:李祥 时间:2015年10月.
编译原理实践 6.程序设计语言PL/0.
2 Java语言基础 (数据运算与流程控制).
第二章 简单数据类型 §2.1 数据类型概述 §2.2 变量和常量 §2.3 简单数据类型 §2.4 简单数据类型的相互转换
Presentation transcript:

第1章 C++简单程序设计 1.1 C++语言概述 1.2 基本数据类型和表达式 1.3 运算符与表达式 1.4 程序的基本控制结构

1.1 C++语言概述 1.1.1 从C到C++ 1.1.2 C++面向对象的特性 1.1.3 C++的词法与规则 返回首页

1.1.1 从C到C+ C++语言源于C语言,而C语言是在B语言的基础上发展起来的。1960年出现了一种面向问题的高级语言ALGOL 60,但它离硬件比较远,不宜用来编写系统软件。1963年英国剑桥大学推出了CPL(Combined Programming Language)语言,后来经简化为BCPL语言。1970年美国贝尔(Bell)实验室的K.Thompson以BCPL语言为基础,设计了一种类似于BCPL的语言,取其第一字母B,称为B语言。1972年美国贝尔实验室的Dennis M.Ritchie为克服B语言的诸多不足,在B语言的基础上重新设计了一种语言,取其第二字母C,故称为C语言。 返回本节

1.1.2 C++面向对象的特性 1.C++支持数据封装 C++类中可定义三种不同访问控制权限的成员。一种是私有(Private)成员,另一种是公有(Public)成员,还有一种是保护(Protected)成员。 3.C++中通过发送消息来处理对象 C++中是通过向对象发送消息来处理对象的,每个对象根据所接收到的消息的性质来决定需要采取的行动,以响应这个消息。

4.C++中允许友元破坏封装性 类中的私有成员一般是不允许该类外面的任何函数访问的,但是友元便可打破这条禁令,它可以访问该类的私有成员(包含数据成员和成员函数)。 5.C++允许函数名和运算符重载 C++允许一个相同的函数名或运算符代表多个不同实现的函数,这就称函数或运算符的重载,用户可以根据需要定义函数重载或运算符重载。 6.C++支持继承性 C++中可以允许单继承和多继承。 7.C++支持动态联编 C++中可以定义虚函数,通过定义虚函数来支持动态联编。 返回本节

1.1.3 C++的词法与规则 1.C++的字符集 C++中含有以下字符:数字,小写字母,大写字母,运算符,特殊字符,不可印出字符 。 2.词与词法规则 (1)标识符。 (2)关键字。 (3)运算符和分隔符。(4)字符串。 (5)常量。 (6)注释。 3.书写格式 (1)一般情况下每个语句占用一行。 (2)不同结构层次的语句。 (3)表示结构层次的大括弧。 (4)适当加些空格和空行。

表1-1 C++的标准保留字 返回本节

1.1.4 C++程序结构的组成 C++程序结构的基本组成包括以下几个部分: (3)函数 (4)语句 (5)变量 (6)其他

返回本节 下面用一个简单的程序例子来分析C++程序的构成。 例1-2:C++程序构成示例。 #define PI 3.1415926 //宏定义命令,定义符号常量PI #include <iostream.h> //文件包含命令 void main() //主函数 { double length,area,radius; //定义变量 cout<<"Please input radius:"<<endl; cin>>radius; //输入语句 length=2*PI*radius; area=PI*radius*radius; cout<<"length="<<length<<endl //输出语句 <<"area="<<area<<endl; } 返回本节

1.1.5 C++程序的开发步骤 1.编辑 是指把按照C++语法规则编写的程序代码通过编辑器(Borland C++ 5.05,Visual C++ 6.0,Turbo C++ 3.0)输入计算机,并保存。 2.编译 将编辑好的C++源程序通过编译器转换为目标文件(OBJ文件)。即生成该源文件的目标代码。 3.链接 将用户程序生成的多个目标代码文件(.obj)和系统提供的库文件(.lib)中的某些代码连接在一起,生成一个可执行文件(.exe)。 4.执行 把生成的可执行文件运行,在屏幕上显示运行结果。用户可以根据运行结果来判断程序是否出错。 返回本节

1.2 基本数据类型和表达式 1.2.1 数据类型概述 1.2.2 常量 1.2.3 变量 返回首页

图1-1 C++数据类型

1.2.1 数据类型概述 1.基本数据类型 基本数据类型有4种:整型(int)、浮点型(float)、字符型(char)、逻辑型(bool)。 2.空类型void:用于显示说明一个函数不返回任何值。 3.构造类型,又称为组合类型,它是由基本类型按照某种规则组合而成的。 4.指针类型:变量用于存储另一变量的地址,而不能用来存放基本类型的数据。 5.类类型:是体现面向对象程序设计的最基本特征,也是体现C++与C最大的不同之处。 返回本节

1.2.2 常量 1.整型常量 整型数据表示通常意义上的整数,整型常量可以用十进制、八进制或十六进制表示。 2.浮点数常量 1.2.2 常量 1.整型常量 整型数据表示通常意义上的整数,整型常量可以用十进制、八进制或十六进制表示。 2.浮点数常量 浮点数也称为实型数。只能以十进制形式表示。共有两种表示形式:小数表示法和指数表示法。 3.字符常量与字符串常量 (1)字符常量。 (2)转义字符。 (3)字符串常量。

4.逻辑常量 逻辑常量是逻辑类型中的值,Visual C++用保留字bool表示逻辑类型,该类型只含有两个值,即整数0和1,用0表示逻辑假,用1表示逻辑真。 5.枚举常量 枚举常量是枚举类型中的值,即枚举值。枚举类型是一种用户定义的类型,只有用户在程序中定义它后才能被使用。 6.地址常量 指针类型的值域是0232-1之间的所有整数,每一个整数代表内存空间中一个对应单元(若存在的话)的存储地址,每一个整数地址都不允许用户直接使用来访问内存,以防止用户对内存系统数据的有意或无意的破坏。

表1-2 常用的特殊字符 返回本节

1.2.3 变量 1.变量命名 变量的命名要遵守以下规则: (1)不能是C++保留字。 (2)第一个字符必须是字母或下划线,中间不能有空格。 1.2.3 变量 1.变量命名 变量的命名要遵守以下规则: (1)不能是C++保留字。 (2)第一个字符必须是字母或下划线,中间不能有空格。 (3)变量名除了使用26个英文大小写字母和数字外,只能使用下划线。 (4)一般不要超过31个字符。 (5)变量名不要与C++中的库函数名、类名和对象名相同。

2.变量定义和说明 变量定义是通过变量定义语句实现的,该语句的一般格式为: <类型关键字> <变量名>[=<初值表达式>],…;

3.变量初始化 变量初始化一般采用两种方式。 第一种方式是在定义变量时可以给变量赋一个初值,例如: int a=3; float b=3.4; const int c=5; 第二种方式是先定义变量,然后通过赋值语句使变量初始化,例如: int a; a=3; 返回本节

1.3 运算符与表达式 1.3.1 运算符 1.3.2 表达式 1.3.3 数据类型转换 返回首页

C++语言的运算符按其在表达式中与运算对象的关系(连接运算对象的个数)可分为: l    单目运算符(一元运算符,只需一个操作数) l    双目运算符(二元运算符,需两个操作数) l    三目运算符(三元运算符,需三个操作数)

1.3.1 运算符 1.算术运算符 2.赋值运算符 3.关系运算符 4.逻辑运算符 5.自增、自减运算符 6.条件运算符 7.位运算符 1.3.1 运算符 1.算术运算符 2.赋值运算符 3.关系运算符 4.逻辑运算符 5.自增、自减运算符 6.条件运算符 7.位运算符 8.sizeof运算符(求字节运算符) 9.逗号运算符

1.算术运算符 算术运算符包括双目运算符和单目运算符两种。包括: l +加法运算符,或正值运算符,如1+2,+3)

2.赋值运算符 (1)赋值运算符“=”的一般格式为: 变量=表达式; (2)赋值表达式本身的运算结果是右侧表达式的值,而结果类型是左侧变量的数据类型。 (3)赋值运算符的结合性是从右至左的,因此,C++程序中可以出现连续赋值的情况。 (4)复合运算符:

3.关系运算符 (1)关系运算符用于两个值进行比较,运算结果为true(真)或false(假),分别用值非0(true)或0(false)表示。 (2)关系运算符都是双目运算符,其结合性是从左到右,<、<=、>、>=运算符的优先级相同,= =和!=运算符的优先级相同,前者运算的优先级高于后者。 (3)关系运算符的优先级低于算术运算符。

4.逻辑运算符 C++中的逻辑运算符为:&&(逻辑与), ||(逻辑或),!(逻辑非)。逻辑表达式的结果为真则为1,结果为假则为0。 逻辑非(!)是单目运算符,逻辑与(&&)和逻辑或(||)是双目运算符。 逻辑非的优先级最高,逻辑与次之,逻辑或最低。 逻辑运算真值表如表1-3所示。

表1-3 逻辑运算真值表(真为非0,假为0)

5.自增、自减运算符 (1)自增(++)、自减(--)运算符为变量的增1和减1提供了紧凑格式。 (2)自增、自减运算符都是单目运算符,其作用是使变量的值增1或减1。 (3)自增、自减运算符有四种应用格式: (4)C++编译器在处理时尽可能多的自左向右将运算符结合在一起。 (5)在调用函数时,实参的求值顺序一般为自右向左。而不是PASCAL语言那样自左向右。

6.条件运算符 (1)条件运算符“?:”是C++中惟一的三目运算符,其形式为: 表达式1 ? 表达式2 : 表达式3 (2)条件运算符的结合性是自右向左。 (3)条件运算符的优先级别高于赋值运算符,低于关系运算符和算术运算符。

7.位运算符 (1)位(bit)是计算机中表示信息的最小单位,一般用0和1表示。 (2)位运算符是对其操作数按其二进制形式逐位进行运算,参加位运算的操作数必须为整数。

8.sizeof运算符(求字节运算符) (1)sizeof运算符是单目运算符,用于计算运算对象在内存中所占字节的多少,它有两种形式: (2)sizeof可以接受的类型标识符很多,如sizeof(int)表示求整型数据在内存中所占字节数。

9.逗号运算符 (1)逗号运算符用于将多个表达式连在一起,并将各表达式从左到右的顺序依次求值,但只有其最右端的表达式的结果,作为整个逗号表达式的结果。 (2)逗号表达式的一般格式为: 表达式1,表达式2,……,表达式n 返回本节

1.3.2 表达式 1.算术表达式 2.逻辑表达式 3.关系表达式 4.赋值表达式 5.条件表达式 6.逗号表达式 返回本节

1.3.3 数据类型转换 1.隐式类型转换 隐式类型转换是由编译器自动完成的类型转换 2.显式类型转换 1.3.3 数据类型转换 1.隐式类型转换 隐式类型转换是由编译器自动完成的类型转换 2.显式类型转换 显式类型转换是由程序员显式指出的类型转换,转换形式有两种: 类型名(表达式) (类型名)表达式

图1-2 数据类型转换的顺序 返回本节

1.4 程序的基本控制结构 1.4.1 顺序结构 1.4.2 选择结构 1.4.3 循环结构 1.4.4 转移语句 返回首页

1.4.1 顺序结构 1.表达式语句 2.输入/输出(I/O) 3.复合语句

1.表达式语句 表达式是指用运算符连接各个运算对象,合乎语法规则的式子。在C++程序中,几乎所有的操作运算都通过表达式来实现,而表达式语句也就成了C++程序中最简单也是最基本的一类语句。 (1)空语句。 (2)赋值语句。 (3)函数调用语句

2.输入/输出(I/O) (1)输入。 当程序需要执行键盘输入时,可以使用抽取操作符“>>”从输入流cin中抽取键盘输入的字符和数字,并把它赋给指定的变量。 (2)输出。 当程序需要在屏幕上显示输出时,可以使用插入操作符“<<”向输出流cout中插入字符和数字,并把它在屏幕上显示输出。

3.复合语句 C++语言允许把一组语句用一对花括号括起来,构成一个复合语句。例如: { int a; a=1+2; } 复合语句是若干条语句的一个集合,它在语法上是一个整体,相当于一个语句。复合语句与简单语句一样地使用。 返回本节

1.4.2 选择结构 1.if…else语句 (1)if语句。 (2)空语句。 (3)if…else语句。 2.switch语句 1.4.2 选择结构 1.if…else语句 (1)if语句。 (2)空语句。 (3)if…else语句。 2.switch语句 switch语句是多分支的选择语句。

1.if…else语句 例1-4:判断用户的输入,如果输入的数值大于0,则在屏幕上显示“正数”;否则在屏幕上显示“不是正数”。 #include<iostream.h> void main() { int a; cin>>a; if(a>0) cout<<"正数"<<endl; else cout<<"不是正数"<<endl; }

例1-5:判断用户的输入,根据输入数值是大于0、等于0、小于0,分别在屏幕上显示“正数”、“零”、“负数”。 #include<iostream.h> void main() { int a; cin>>a; if(a>0) cout<<"正数"<<endl; else if(a<0) cout<<"负数"<<endl; cout<<"零"<<endl; }

2.switch语句 switch语句的语法格式为: switch (整数表达式) { case 常量表达式1:<语句序列1>; …… case 常量表达式n:<语句序列n>; default:<语句序列n+1>; }

例如,根据考试成绩的等级输出百分制分数段: char grade; //… switch (grade) { case'A': cout << "85~100\n";break; case'B': cout << "70~84\n";break; case'C': cout << "60~69\n";break; case'D': cout << "<60\n";break; default: cout << "error\n";break; }

有几点说明: (1)default语句是可缺省的。 (2)switch后面括号中的表达式只能是整型、字符型或枚举型表达式。 (3)在各个分支中的break语句起着退出switch语句的作用。 (4)case语句起标号的作用。标号不能重名,所以每一个case常量表达式的值必须互不相同,否则就会出现编译错误。 (5)当多个分支需要执行同一操作时,可以使多个case语句共用一组语句序列。 (6)各个case(包括default)语句的出现次序可以任意。 (7)每个case语句中可以有多条语句组成相应的语句序列,但不必用{ }。

例1-6:读入一行字母,求其中元音字母出现的次数。 #include <iostream.h> #include <conio.h> void main( ) { char c; int count=0; while ((c=getche())!='\n')

返回本节 switch (c) { case 'a': case 'A': case 'e': case 'E': case 'i': case 'o': case 'O': case 'u': case 'U': count++;break; } cout<<count<<endl; 返回本节

1.4.3 循环结构 C++提供了三种循环控制语句:while语句,do…while语句,for语句。三种语句都由相似的三部分组成:进入循环的条件,循环体,退出循环的条件;完成的功能也类似。所不同的只是三者进入与退出循环的方式不同。 while语句:当条件满足时进入,重复执行循环体,直到条件不满足时退出。

1.while语句 1.while语句 while语句的语法格式为: while (条件表达式) 循环体; 它的含义为:首先对条件表达式进行判断,若判断结果为假(false,0),则跳过循环体,执行while结构后面的语句。若判断结果为真(true,非0),则进入循环体,执行其中的语句序列。 while循环由4个部分组成:循环变量初始化,判断条件,循环体,改变循环变量的值。

例如,计算sum=1+2+3+…+10的while循环结构如下: while (i<=10) //判断条件 { //循环体 sum=sum+i; i++; //改变循环变量的值 }

例1-7:输入一行字符,求其中字母、数字和其他符号的个数。 解: #include <iostream.h> #include <conio.h> void main( ) { char c; int letters=0,digit=0,others=0; cout<<"Please input a line charaters\n"; while ((c=getche( ))!='\n')

{ if (c>='a' && c<='z' || c>='A' && c<='Z') letters++; else if (c>='0' && c<='9') digit++; others++; }

2.do…while语句 2.do…while语句 do…while语句的语法格式为: do 循环体; while (条件表达式);

例1-8:求满足下式的最小n值,limit由键盘输入。 程序如下: #include <iostream.h> void main() { int i=0,sum=0; float limit; cout <<"Please input limit:\n"; cin>>limit; do { i++; sum+=1/i; } while sum<=limit; cout<<i; }

3.for语句 3.for语句 for语句的语法格式为: for(表达式1;表达式2;表达式3) 循环体; (1)先求解表达式1; (2)求解表达式2,若为0(假),则结束循环,转到(5); (3)若表达式2为非0(真),则执行循环体,然后求解表达式3; (4)转回(2); (5)执行for语句下面的一个语句。

例如,求和运算: for (i=1; ; i++) //分号不能省略 { sum+=i; if (i>10) break; } 等价于: for (i=1; 5 ; i++)

返回本节 例1-9:输出菲波那切数列的前20项。即前两项为1,以后每一项为前两项之和。 #include <iostream.h> void main() { int i1=1,i2=1,i3,i; cout<<i1<<' '<<i2<<' '; for (i=3;i<=20;i++) i3=i1+i2; cout<<i3<<' '; i1=i2; i2=i3; } 返回本节

1.4.4 转移语句 1.break语句 break语句的作用是:结束当前正在执行的循环(for、while和do…while)或多路分支(switch)程序结构,转而执行这些结构后面的语句。 2.continue语句 continue语句的作用是:结束当前正在执行的这一次循环(for、while和do…while),接着执行下一次循环。即跳过循环体中尚未执行的语句,接着进行下一次是否执行循环的判定。 3.goto语句 goto语句的语法格式为: goto 标号;

例如,下面的代码在执行了break之后,继续执行“a+=1;”处的语句,而不是跳出所有的循环。 for ( ; ; ) { … if (i==1) break; } a+=1; //break跳至此处 //…

for ( ; ; ) { … if (i==1) break; } a+=1; //break跳至此处 //…

例1-10:编程求50~100内的素数 #include <iostream.h> #include <math.h> #define MIN 51 #define MAX 100 void main ( ) { int i,j,k; for (i=MIN;i<=MAX;i+=2) //素数必是奇数

{ k=int (sqrt(double(i))); for (j=2;j<=k;j++) if (i%j==0) break; if (j>=k+1) cout<<' '<<i; } cout<<endl; 输出结果为: 53 59 61 67 71 73 79 83 89 97

例1-11:编程从键盘上输入的10个数中所有正数之和。 #include <iostream.h> void main( ) { int num; sum=0; cout<<"please input number:"; for (int i=1;i<=10;i++) cin>>num; if (num<0) continue; sum+=num; } cout <<"sum="<<sum<<endl;

例如:求1加到10的总和。 i=1; sum=0; loop: sum+=i++; if (i<=10) goto loop; cout <<"the sum is"<< sum << endl; 返回本节