一、常量和变量
Ⅰ. 常量
定义:
const 常量类型 常量符号=常量;
const int a=100;
类型:
① 整形常量:
十进制:$ 100_{(10)},-1_{(10)} $
八进制:以 $ 0 $ 开头,后由 $ 0 \backsim 7 $ 的字符构成。如 $ 012 $ 表示 $ 12_{(8)} $
十六进制:以 $ 0x $ 开头,后由 $ 0 \backsim F $ 的字符构成。如 $ 0xF1A $ 表示 $ F1A_{(16)} $ 。
② 实型常量:
实型有两种写法,其一是直接写出数值,如 $ 1.3,-0.18 $ ,第二种使用科学计数法表示,如:
其中 $ M $ 为一个实数, $ X $ 为一个整数。
其意味着:
③ 字符型常量:
如‘a’、‘1’、‘?’,注意 <font color='red'>
‘’</font>
不能省去,且‘a’表示一个 <font color='red'>
字符 </font>
,“a”表示一个 <font color='red'>
字符串 </font>
。
Ⅱ. 变量
定义:
变量类型 变量名,变量名,......;
int a,b;
char s,k;
float n,m;
和 $ Pascal $ 中不同, $ C++ $ 可以在定义时给变量赋值,如:
int a=100;
char s='x';
float n=5E2;
变量类型:
变量的类型可以是标准数据类型($ int,long \ long,char,float,double,\cdots $),也可以是用户自定义的类型(结构体)。
二、标准数据类型
这些数据类型都是由系统定义的简单数据类型。
Ⅰ. 整形
数据类型 | $ C++ $ 定义标识符 | $ Pascal $ 定义标识符 | 占字节数 | 取值范围 |
---|---|---|---|---|
短整型 | $ short $ | $ integer $ | $ 2 $ | $ [-2{15},2{15}-1] $ |
无符号短整型 | $ unsigned \ short $ | $ word $ | $ 2 $ | $ [0,2^{16}-1] $ |
长整型 | $ long $ | $ longint $ | $ 4 $ | $ [-2{31},2{31}-1] $ |
无符号长整形 | $ unsigned \ long $ | $ dword $ | $ 4 $ | $ [0,2^{32}-1] $ |
超长整形 | $ long \ long $ | $ int64 $ | $ 8 $ | $ [-2{63},2{63}-1] $ |
无符号超长整形 | $ unsigned \ long \ long $ | $ qword $ | $ 8 $ | $ [0,2^{64}-1] $ |
Ⅱ. 实型
数据类型 | $ C++ $ 定义标识符 | $ Pascal $ 定义标识符 | 占字节数 | 取值范围 | 有效位数 |
---|---|---|---|---|---|
单精度实型 | $ float $ | $ real $ | $ 4 $ | $ [-3.4E+38,3.4E+38] $ | $ 6 $ |
双精度实型 | $ double $ | $ double $ | $ 8 $ | $ [-1.7E+308,1.7E+308] $ | $ 15 $ |
长双精度实型 | $ long \ double $ | $ extended $ | $ 16 $ | $ [-3.4E+4932,1.1E+4932] $ | $ 18 $ |
布尔型 | $ bool $ | $ boolean $ | $ 1 $ | $ true,false $ | $ \diagdown $ |
Ⅲ. 字符型
见 $ ASCLL $ 码表。
Ⅳ. 强制类型转换
(类型名)(表达式)
(int)(4.7)=4;
三、输入与输出
Ⅰ. 字符输入输出
函数:$ getchar(),putchar() $
使用此函数必须包含头文件 <font color='red'>
cstdio </font>
。
使用方式:
字符型变量=getchar();
putchar(字符型变量/ASCLL码);
char s;
s=getchar();
putchar(s);
putchar(66);
输入:Z
输出:ZB
$ getchar() $ 输入的所有元素都按字符处理,且可以 <font color='red'>
读入回车 </font>
。
Ⅱ. 流输入输出
函数:$ cin,cout,endl $
使用此函数必须包含头文件 <font color='red'>
iostream </font>
,且需使用 <font color='red'>
using namespace std;</font>
。
使用方式:
cin>>变量;
cout<<变量/字符串;
cin>>a>>b;
cout<<"a="<<a<<"\nb="<<b<<endl;
cout<<"A";
输入:1 A
输出:
a=1
b=A
A
Ⅲ. 格式化输入输出
函数:$ scanf,printf $
使用此函数必须包含头文件 <font color="red">
cstdio </font>
。
使用方法:
scanf("格式符 格式符",&变量,&变量);
printf("格式符 格式符",变量,变量);
scanf("%d%c",&a,&b);
printf("a=%d\nb=%c\nA",a,b);
输入:1A
输出:
a=1
b=A
A
$ scanf $ 中的 <font color="green">
&变量 </font>
是变量的内存地址,可以是变量地址,也可以是字符串首地址。
输入格式符:
符号 | 说明 |
---|---|
$ d $ | 输入十进制整数 |
$ u $ | 以无符号形式输入十进制整数 |
$ o $ | 输入八进制整数 |
$ x $ | 输入十六进制整数 |
$ c $ | 输入单个字符 |
$ s $ | 输入字符串 |
$ f $ | 输入实数 |
附加格式 | 说明 |
---|---|
$ l $ | 输入长整型数($ ld,lo,lx $)和 $ double $ 型实数($ lf $) |
$ h $ | 输入短整型数($ hd,ho,hx $) |
域宽(一个整数) | 指定输入所占列宽 |
$ * $ | 表示对应输入值不赋给变量 |
输出格式符
符号 | 说明 |
---|---|
$ d $ | 输出十进制整数 |
$ u $ | 以无符号形式输出十进制整数 |
$ o $ | 输出八进制整数 |
$ x $ | 输出十六进制整数 |
$ c $ | 输出单个字符 |
$ s $ | 输出字符串 |
$ f $ | 以小数形式输出实数 |
$ e $ | 以科学记数法形式输出实数 |
参数 | 说明 |
---|---|
$ m $ | 指定宽度,实际宽度不足$ m $ 时补空格,大于 $ m $ 时按实际宽度输出 |
$ .n $ | 不对整形使用,对于实型表示保留$ n $ 位小数,对于字符串表示最多含有 $ n $ 个字符 |
$ - $ | 表示左对齐 |
$ l $ | 输出长整型 |
$ 0 $ | 跟$ m $ 一起使用,表示宽度不足 $ m $ 时补 $ 0 $ |
使用格式:$ %,-,0,m,.n,l $
scanf("%2d%3d%4d",&a,&b,&c);
scanf("%f",&d);
scanf("%5s",&s);
printf("a=%d\nb=%d\nc=%d\nd=%.5f\ns=%7.3s\n",a,b,c,d,s);
输入:
123456789
512E-2
abcdefg
输出:
a=12
b=345
c=6789
d=5.12000
s= abc
四、运算符与表达式
Ⅰ. 赋值语句
变量=表达式;
a=10*19;
a=b=c=d=100;
Ⅱ. 算术运算符
类型 | 运算符 |
---|---|
加 | $ + $ |
减 | $ - $ |
乘 | $ * $ |
除 | $ / $ |
取模 | $ % $ |
表达式+表达式
表达式-表达式
表达式*表达式
表达式/表达式
表达式%表达式
1+1=2;
1-1=0;
1*2=2;
5/2=2;
5.0/2=2.5;
5/2.0=2.5;
5%2=1;
$ a++ $ 表示调用 $ a $ 后将 $ a+1 $ 。
$ ++a $ 表示将 $ a+1 $ 后再调用 $ a $ 。(减法相同)
Ⅲ. 关系运算符
类型 | 运算符 |
---|---|
大于 | $ > $ |
小于 | $ < $ |
等于 | $ == $ |
大于等于 | $ >= $ |
小于等于 | $ <= $ |
不等于 | $ != $ |
关系运算符的结果只能是 $ 0(false) $ 或 $ 1(true) $ 。
Ⅳ. 逻辑运算符
类型 | 运算符 |
---|---|
与 | $ && $ |
或 | $ |
非 | $ ! $ |
与运算符(&&)和或运算符(||)均为双目运算符,具有左结合性。 非运算符(!)为单目运算符,具有右结合性。
逻辑运算符的结果只能是 $ 0(false) $ 或 $ 1(true) $ 。
Ⅴ. 位运算符
类型 | 运算符 |
---|---|
按位与 | $ & $ |
按位或 | $ |
按位异或 | $ \land $ |
取反 | $ \sim $ |
左移 | $ << $ |
右移 | $ >> $ |
Ⅵ. 运算表达式简写
变量=变量 运算符 表达式
变量 运算符=表达式
a=a+2;
a+=2;
Ⅶ. 常用运算函数
类型 | 函数 |
---|---|
绝对值 | $ abs(x) $ |
自然数指数$ e^x $ | $ exp(x) $ |
下取整 | $ floor(x) $ |
上取整 | $ ceil(x) $ |
自然数对数$ \ln{x} $ | $ log(x) $ |
指数函数$ x^t $ | $ pow(x,t) $ |
随机函数(在$ [0,x-1] $ 生成随机数) | $ rand(x) $ |
平方根 | $ sqrt(x) $ |
使用这类函数时,必须包含头文件 <font color="red">
cmath </font>
。
v1.5.2