第2章 C++简单程序设计
发布时间:2021-06-06
发布时间:2021-06-06
C++语言程序设计基础 C++语言程序设计基础信工学院中国地质大学(北京) 中国地质大学(北京)1
C++简单程序设计 第2章 C++简单程序设计 2.1 C++语言概述 C++语言概述 2.2 基本数据类型和表达式 2.3 数据的输入与输出 2.4 算法的基本控制结构 2.5 自定义数据类型
C++语言概述 2.1 C++语言概述 C++的产生 ++的产生20世纪60年代英国剑桥大学学者开发BCPL 20世纪 年代英国剑桥大学学者开发 世纪60年代英国剑桥大学学者开发BCPL 1970年美国 1970年美国Bell实验室提出B语言 年美国Bell实验室提出 实验室提出B 1972年Bell实验室对 语言改进推出C 1972年Bell实验室对B语言改进推出C语言 实验室对B 1980年AT&T贝尔实验室的 1980年AT&T贝尔实验室的Bjarne 贝尔实验室的Bjarne Stroustrup博士创建 ++语言 Stroustrup博士创建C++语言 博士创建C
C++的历史 C++的历史 几十年来,许多编程语言如流星般闪过, 几十年来,许多编程语言如流星般闪过, C++一直占据着世界顶级编程语言的宝 而C++一直占据着世界顶级编程语言的宝 针对PC PC机 智能手机和MP3 MP3等嵌入式 座。针对PC机、智能手机和MP3等嵌入式 设备,以及其它众多计算机环境,C++语 设备,以及其它众多计算机环境,C++语 言始终是不错的选择。 言始终是不错的选择。 C++的标准不断更新 C++的标准不断更新目前使用的是ANSI/ISO C++( 目前使用的是ANSI/ISO C++(ISO/IEC 1482:2003), 1482:2003),2003年发布 ),2003年发布 下一个标准为C++11,2011年10月发布 下一个标准为C++11,2011年10月发布4-4-
C++程序实例 2.1.3 C++程序实例/*第一个C++程序 /*第一个C++程序 第一个C++ 作者: 作者:CPP 版本: 版本:1.0*/ //文件包含命令 #include <iostream> //文件包含命令 using namespace std; //主函数头 int main() //主函数头 //主函数体 { //主函数体 cout<<"Hello! Hello!"<<endl; //输出数据 cout<< Hello! <<endl; //输出数据 cout<<"Welcome C++!"<<endl; cout<< Welcome to C++! <<endl; return 0; }5
2.1.4 字符集26个 个 小写字母 26个 个 大写字母 10个 个 数字字符 特殊符号 abcdefghijklmnopqrstuvwxy z ABCDEFGHIJKLMNOPQRST UVWXYZ 0123456789 !#%^&*_+=-~<> /\ ‘ “ ; . , : ? () [] {}
2.1.5 词法记号 关键字(保留字):已被C++语言本身使用,不能 关键字(保留字) 已被C++语言本身使用, C++语言本身使用 作为其它用途使用的单词, 作为其它用途使用的单词,P22 标识符: 标识符:由字母、数字、下划线组成且由字母或下划线开头 由字母、数字、 的字符串。 的字符串。 标识符是区分大小字母的。 标识符是区分大小字母的。 标识符的有效长度视不同系统而定。 标识符的有效长度视不同系统而定。 不能使用C++语
言的关键字 不能使用C++语言的关键字。 语言的关键字。
判断下列标识符是否合法: 判断下列标识符是否合法: Result,List-2,_first2, first_&,2first Result,List_first2, first_&,7
2.2 基本数据类型和表达式基 本 数 据 类 型类型 逻辑类型bool 取值只有true和false 逻辑类型 char 整数类型 short int long float double long double 类型void 用于函数和指针 类型signed有符号 unsigned无符号
2.2.2 常量 在程序运行期间其值不发生变化的数据。 在程序运行期间其值不发生变化的数据。 1、整型常量十进制整数:如123,0,-456 十进制整数: 123, 八进制整数(以0开头):如012 八进制整数( 开头) 十六进制整数(以0X开头):如0x12 十六进制整数( 0X开头): 开头):如 长整型用L作后缀; 长整型用L作后缀; 无符号型用U作后缀; 符号型用U作后缀; 无符号长整型用UL或LU均可。 无符号长整型用UL或LU均可。 均可A)八进制数;B)十进制数;C)十六进制数;D)非法数 A)八进制数;B)十进制数 C)十六进制数 D)非法数 十进制数; 十六进制数; 八进制数
一般表示 无符号数据
练习题:在C++语言中,029是一个[ ]。 语言中, 是一个[ 练习题: C++语言中 029是一个 ]。9
2、实型常量 只有十进制表示一般形式实数整数和小数部分可省其一,但不能都省 整数和小数部分可省其一, 如1.3,.13,13.,0.0 1.3,.13,13.,
指数形式实数由尾数、指数和字母e组成 由尾数、指数和字母e E前后都要有数字,且E后的指数必须为整数 前后都要有数字, 判断:e2,2.1e-5,2.1e3.5,-5.1e2,e 2.1e3.5, 5.1e2, 判断:e2,2.1e-
浮点型常量缺省为double,加后缀f表示float, 浮点型常量缺省为double,加后缀f表示float,加l 表示long 表示long double10
3、字符常量 由两个单引号括起的一个字符,如'A'、'5'、'%' 由两个单引号括起的一个字符, A'、'5' 具有数值,值为字符的ASCII码 具有数值,值为字符的ASCII ASCII码 转义序列:以\开头 转义序列:‘\字母’:用于输出格式控制或特殊字符,P26,如‘ \n’、 字母’ 用于输出格式控制或特殊字符,P26,'\t'、' \\'、' \''
‘\ddd’:用三位八进制数表示一个字符常量,如' \101' ddd’ 用三位八进制数表示一个字符常量, 101' ‘\xhh’:两位十六进制数表示一个字符常量,如'\x41' xhh’ 两位十六进制数表示一个字符常量, x41' 练习题: 练习题:"abc\n"在内存中占几个字节?"abc\\n"呢? abc\n"在内存中占几个字节 abc\ n"呢 在内存中占几个字节? 字符串" 字符串"\\\"ABC\"\\"在内存中占几个字节? "ABC\ 在内存中占几个字节? 11
4、字符串常量 由双引号括起的字符序列
(不一定是C++ 由双引号括起的字符序列 不一定是C++ 字符序列( 字符集中的字符,只要C++ C++编译器支持即 字符集中的字符,只要C++编译器支持即 可) 字符串中每一字符用一个字节存放,并 字符串中每一字符用一个字节存放, 且系统自动在字符串尾加' 且系统自动在字符串尾加'\0' 字符串的处理由字符数组来实现 练习题:'x'和"x"有什么不同? 练习题:'x' "x"有什么不同?
2.2.3 变量名字 三要素 类型 值 数据值 地址值 变量声明的一般形式: 变量声明的一般形式: <存储类型><数据类型> <变量名>; 存储类型><数据类型 数据类型> <变量名 变量名>double x,y,z; int a=2,b=-6,c(3); a=2,b=13
2.2.4 符号常量 将一个变量声明为一个常量<数据类型 <变量名称 数据类型> 变量名称> 表达式> const <数据类型> <变量名称>=<表达式>;
const <数据类型> <变量名称>(<表达式>); <数据类型 <变量名称>(<表达式>); 数据类型> 变量名称>(<表达式>) <数据类型> const <变量名称>=<表达式>; 数据类型> <变量名称 变量名称> 表达式> <数据类型> const <变量名称>(<表达式>); 数据类型> <变量名称>(<表达式>); 变量名称>(<表达式>) const int MAX=10; int const PI(3.14);14
2.2.5 运算符与表达式 1、算术运算符-(取负)、+(取正):右结合 )、+ 取正): 取负)、 +、-、*、/、%(不能用于浮点型):左结合 %(不能用于浮点 不能用于浮点型 ++、--:++a;--a a++; ++、--:++a;--a;a++;a-- :右结合对变量本身来说运算结果一样 前置:变量先+1或-1,再参加表达式的运算 前置:变量先+1或 后置:变量先参加运算,然后再+1或-1 后置:变量先参加运算,然后再+1或 练习题: 练习题: a=7*2 + -3%5 - 4/3; int x=11,则x++*1/3的值为( ),x为( ) x=11,则x++*1/3的值为 ), 的值为( int x=11,则++x*1/3的值为( ),x为( ) x=11,则++x*1/3的值为 ), 的值为(15
2.赋值运算符 2.赋值运算符 赋值运算符:=(右结合) 赋值运算符:=(右结合 右结合)注:表达式和常变量不能作为左值 两边数据类型不一致时, 当=两边数据类型不一致时,编译器会在赋值前将 右操作数自动转换为同左操作数相同的类型。 右操作数自动转换为同左操作数相同的类型。
赋值复合运算符:+=、-=、*=、/=、%=、 作为一个 赋值复合运算符:+=、 /=、%=、 整体参与 运算 <<=、>>=、&=、^=、 <<=、>>=、&=、^=、|=变量 op= 表达式 <=>变量=变量op表达式 <=>变量 变量op表达式 变量= a+=3 → a=a+3、x*=y+8 → x=x*(y+8) a=a+3、
思考: 思考: int a=12; a+=a-=a*a;16
3.逗号运算符 3.逗号运算符 d1,d2,d3,d4 d1,d2,d3,最后一个表达式的值就是逗号表达式的
值 float x(10.5f),y(1.8f),z(0); z=(x+=5, y+=x+0.2); z=(z=8, x=5, y=3); int a=1,b=2,c; c = (a++, a+=b, a+b);
4.逻辑运算符 4.逻辑运算符 关系运算符:>、<、>=、<=、==、!= >=、<=、==、 关系运算符: 逻辑真为1(true),逻辑假为0(false) 逻辑真为1(true) 逻辑假为0(false) 1(true), 练习: 练习:char x('m'),y('n'); int n; n=(x<y); n=(x==(yn=(x==(y-1)); n=('y'!='Y')+(5>3)+((yn=('y'!='Y')+(5>3)+((y-x)==1);18
逻辑运算符 单目:! 单目: 双目:&&、|| 双目:&&、 操作数:非0为真,0为假 操作数: 为真, 表达式值:真为1,假为0 表达式值:真为1 假为0
int x,y,z; x=y=z=1; --x&&++y&&++z;
注意:C++规定:在一个逻 ++x&&++y&&++z; 注意:C++规定 规定: 辑表达式中, 辑表达式中,当计算出一 个子表达式的值后便可确 int x=5,y=18; 定整个逻辑表达式的值时, 定整个逻辑表达式的值时, 后面的子表达式就不再计 后面的子表达式就不再计 --x>=5&&++y>18; 算。
x++>=0||--y>100;
5.条件运算符 5.条件运算符 d1?d2:d3(右结合) d1?d2:d3(右结合) int x=2,y=0,z; z=((y=0)?++x:y++); z=(y!=5?x+1:y++); z=((y=5)?x+1:++y);思考: 若有(exp)?a++:b--,则能完全与 (exp)等价 思考: 若有 , 等价 的是[ 。 的是 ]。 A)(exp==0) B)(exp!=0) C)(exp==1) D)(exp!=1)
6.sizeof运算符 6.sizeof运算符 sizeof(<类型或变量名>) sizeof(<类型或变量名>) 类型或变量名返回变量或数据类型在内存中所占的字节数 double z(0); int k; k=sizeof(float); k=-1*sizeof(z); k=k=sizeof(10.2);
上一篇:光纤宽带接入验收规范
下一篇:中考英语短文填空题技巧