第一章 C++ 语言概述
1.1 C++语言特点
1. 关键字49个 auto break case char class continue default
delete do double else extern float for goto if inline
int long new operator public register return short
static switch this union void while
1.2 简单的C++程序
例1.1 dcx.cpp(P2)
Void |
main |
( ) |
{ } |
类型修饰符 |
函数名 |
(形式参数表) |
函数体 |
函数 无返回值 |
主函数 程序入口 |
无参数 |
无语句 无操作 |
操作系统调用主函数,主函数调用子函数。
自变量 函数 函数值
x=90° f(x)=sin(x) 1
计算对象 程序计算 返回值(返回计算结果)
函数说明
double Area (dorble r )
函数类型 函数名 参数类型 参数名
函数体 { }
#include <iostream.h> // 包含库函数
subf( ) // 定义子函数
{ } // 函数体
maim( ) //主函数
{
subf( ); //调用子函数
}
例1.4 圆面积 area.cpp (P6)
# indlude <iostream.h>
# define PI 3.1416
double Area(dorble r)
{
reterrn PI*r*r ;
}
void main( )
{
double radius.area;
cout<<endl<<"请输入圆的半径:";
cin>>radius;
area=Area(radius);
cout<<endl<<"圆的面积:"<<area;
}
字母、_ 起,其后用字母、_、数字。
area=Area(radius);
1.3 程序的编辑、编译、连接和运行(P9)
编辑源程序: 纯文本格式存盘文件名(area.cpp)
编译源程序:(area.cpp)生成目标程序(area.obj),
函数、变量无具体地址,浮动程序。
编译出错与源程序文本有关。
连接目标程序:(area.obj)生成可执行程序(area.exe)
函数、变量有具体地址,可执行程序。
连接出错与系统的目标程序有关。
运行程序:E:\CPP>area
连接出错与程序设计有关。
例如:平均值(A+B)/2;A+B/2
习题一(P12)1-3、1-4
实验一 C++程序的编辑、编译、连接和运行(P1)
实验内容:
(1)圆面积area.cpp(P5)
(2)正负数zfs.cpp(P15) (3)平均值pjz.cpp(P16)
Visual C++ 环境下应用项目的建立与运行
建立主程序文件:圆面积area.cpp(P2)
2.2 整型数据
2.2.1 各种整型数据的基本情况(P15)
定义数据类型:按数据类型分配存储空间.
短整型:short a,b; 2字节
(1000 0000 0000 0000~0111 1111 1111 1111)(-32768~+32767)
整型:int c,d; 4字节(或2字节)
长整形:long e,f; 4字节
2.2.2 整型常量的表示(P16)
进制 |
十进制 |
八进制 |
十六进制 |
前导 |
无 |
0 |
0x |
操纵算子 |
Dec |
Oct |
hex |
数码 |
0~9 |
0~7 |
0~9, A~F |
举例 |
12 |
012=8+2=10 |
0x12=16+2=18 |
2.3 字符型数据
2.3.2 字符型常量的表示(P18)
:用单引号引起来:‘A’,‘B’
转义字符:\n 用反斜杠把字符n转换成换行的意义。
ASCII码表(P351)
字符型常量 |
八进制 |
十进制 |
十六进制 |
'\n' LF换行 |
\12 |
10 |
\x0A |
'\r' CR回车 |
\15 |
13 |
\x0D |
字符串结束符:'\0'
字符串常量:用双引号引起来“float”
例:字符串:"LineOne \x0A LineTwo \12" '\0' (P21)
字符串长度: 7 + 1 + 7 + 1=16
字符串占内存空间: 7 + 1 + 7 + 1+1=17
字符型变量:
例如:char c1,c2; 1字节
c1= 'A',c2= 'B'
c1= 'A'内存ASCII值0100 0001(65)“A”字符点阵。
2.3.4 字符型与整型的关系(P19)
表达式求值:字符转换为ASCII值。
A D Z a d z
++++++>
65 68 90 97 100 122
小写大写的函数(P20)
if(c>='a'&&c<=z) return(c-'a')+'A';
2.4 枚举型数据 用自然语言表示变量的可能取值. (P21)
Enum WEEKDAY {sum,mon,tue,wed,thu, fri sat}; 0 1 2 3 4 5 6
2.5 实型数据
2.5.1 各种实型数据的基本情况
实型的基本情况(P23)
单精度型:float x; 4字节
双精度型:double y; 8字节
2.5.2.实型常量的表示(P24)
小数形式:3.23
指数形式:3.23e-3=3.23*10-3
6.符号常量(P25)
#define PI 3.1416 // 无分号结尾
7.数值表达式
2.7.2 算术操作符(P26)
+ - * / % +5 -6
3.位操作符(P27)
移位<< >> 或与非| & ~ 异或^
例如:5<<2是20 0000 0101位移2是0001 0100
5.复合赋值操作符(P28)
+ =(加赋值) - = * = / = % =
<< = >> = | = & = ^ =
例如:k+=3 是 k=k+(3)
s*=j-7 是s=s*(j-7)
a/=b-1; 等效于 a=a/(b-1);
6.
7.增1减1单目操作符(P29)
int i=3; |
i用前加1 |
i用后加1 |
i=i+1; i=4 |
++i; i=4 |
i++; i=4 |
m=++i; i=4 m=4 |
m=i++ i=4 m=3 |
|
i=i+4; i=7 |
i+=4; i=7 |
8.sizeof 操作符(P30)
测数据或数据类型字节数。
9.操作符的优先级和结合性(P30)
1.由左向右结合:22-19+2*5
由右向左结合:k=j+=5*I;
x+=y+=z; 等效于 x=(x+(y=y+z));
2.算术运算符
优先顺序:-(一元减),* /,%,+ -
一元运算符:一个操作数(-3)、
二元运算符:二个操作数(3+4)
例如:1+ 1*5 %3 -2
=1+ 5%3 -2
=1+2-2
=1
10. 类型的自动转换与强制转换(P32)
类型的自动转换:
短向长,有符号向无符号,整型向实型,低精度向高精度。
例如:4+23L-5.1>(4L+23L)-5.1>
27L-5.1>27.0-5.1>21.9
强制转换:int(3.14+I)
2.8 逻辑型数据与逻辑表达式
2.8.1逻辑型数据(P35)
bool 布尔 1字节 false true
2.8.2 逻辑表达式
1.关系操作符(P35)
优先顺序:< > < = > = ,等于 = = 不等于 ! =
例如:a=3,b=4; a>b 结果为假,取值为0
a<b 结果为真,取值为1
3.逻辑操作符(P36)
优先顺序:非 ! 与 && 或 ||
非 ! (!E1): 入1出0,入0出1
与 &&(E1&&E2):有0出0,全1出1
或 || (E1||E2): 全0出0,有1出1
例如: 5>2 && 2 || 6< 4-!0 (右结合)
=5>2 && 2 || 6< 4-1
=5>2 && 2 || 6<3
=1 && 2 || 0
=1&&2 || 0
=1||0
=1
3.复合条件(P37)
例如:x>2 && x<=7; x<2 || x>7
4.相反条件(P38)
x<y x>=y
+>
5.等价条件(P38)
相反条件的相反等价于原条件。
! (x = = y) 等价x != y
交换律
!(E1 && E2)等价!E1 || !E2
6.永假条件和永真条件(P39)
x<3 && x>15 false
y>0 || y<=0 true
7.逻辑型数据(P39)
false----0, true----1
8.条件运算符
1.条件运算符(P40)
(?:)三元运算符
例如:x=(a>b)? a:b;等效于
if(a>b) x=a; 条件成立,结果取a
else x=b; 否则,结果取b
例1:w=x>100?0:x*3;
x=23 则 w=69;
x=123 则 w=0.
8.自定义类型修饰符(P42)
typedef int DISTANCE;
DISTANCE I, j, k;
等价int I, j, k;
9.表达式的副作用与表达式语句
2.10.1 表达式的副作用(P43)
I+j++ 结果:I+j 副作用 j++
10. 表达式的副作用应用
逗号操作符(P44)
x=(I++, j); x=j;
习题二:(P49 )
2-2填空:25,26,2-3用数轴
实验二:变量的定义与表达式的构造(P15)