小白用c++刷题需要知道的基本知识点(一)

第一章 c++简单程序设计

1.1 c++初印象

 1.1.1 c++程序示例

//2_1.cpp
#include 
using namespace std;
int main (){
    cout<<"hello!"<

创建源文件时c++为.cpp文件,c语言为.c文件

  c++同c语言一样。main函数必须有,且只能有一个,表示了程序执行的开始点。

cout<<实现输出,endl 表示换行符

#include为预处理操作,c++中的iostream 类似于c语言中的stdio.h,包含了输入输出等信息

using namespace std 需在嵌入iostream后加上。是针对命名空间的指令。

1.1.2 字符集同c语言

程序一闪而过的时候,解决方式

1.不要按f5,按ctrl+f5

2.只需要添加一个getchar();即可实现从键盘接收一个字符。一个不行就两个

3.添加system("pause");

4.添加cin.get();

1.2 基本数据类型和表达式

1.2.1 基本数据类型

bool
char signed char unsigned char
short unsigned short
int unsigned int
long unsigned long
float
double long double

除了bool值以外,主要分为两大类,整数和浮点数。char从而本质上来说也是整数,他是长度为1个字节的整数,通常用来存放字符的ASCⅡ码。

signed表示有符号数,unsigned表示没有符号数,有符号整数在计算机内是以二进制补码存在的,"0"代表正,"1"代表负,无符号整数只能是正数,在计算机内以绝对值存放。

1.2.2 常量

1.整型常量:八进制整数和十六进制整数通常表示无符号整数,前不带正负号 

                     整型常量后可加L表示长整型,U表示无符号型,也可同时加(不区分大小写) 

2.实型常量:即实数,有两种表现形式,一般形式和指数形式。(默认为double型,可加后缀f)

                     指数形式:例如用0.34E+2表示0.34×10² ,整数部分和小数部分可省其一

3.字符常量:字符常量是单引号括起来的一个字符,另外有一些不可表示字符

\a 响铃(真好玩) \r 回车
\n 换行 \v 换页
\t 水平制表符 \\ 字符“\”
\v 垂直制表符 \" 双引号
\b 退格 \' 单引号

4.字符串常量:简称字符串,由双引号括起来的字符序列

                     字符串中间的双引号要用转义序列表示,字符串末尾有\0,而字符没有

5.布尔常量:只有两个:false和true

1.2.3 变量

储存方式:(不咋懂,不知道刷题用不用得到)

auto:堆栈方式暂时储存,可被若干变量多次覆盖使用

register:存放在通用寄存器中

extern:所有函数和程序段都可引用

static:固定地址存放,整个程序运行期间都有效

1.2.4 符号常量

使用前需声明同时赋初值

1.const 数据类型说明符 常量名 =常量值;

        例如:const float PI =3.1415926;

2.const可以创建const数组,const指针和指向const的指针

        const可以保护数据,可对形式参数使用const

        const int ar[] 即处理数组时将其视为常量

1.2.5 运算符与表达式

1.算术运算符与算术表达式

        基本算术运算符:+     -    *   /(取整)   %(取余)

        ++,--,变量自增自减

2. 赋值运算符与赋值表达式

        =可与算术运算符或位运算符结合,结合顺序从右向左

3. 逗号运算和逗号表达式

        表达式1,表达式2

        先求1,再求2,最终结果为表达式2的值

        a=3*5,a*4            最终结果为60

4. 逻辑运算与逻辑表达式

        <  <=  >  >=优先级高于 ==  !=

        !&& ||

5. 条件运算符与条件表达式

        条件运算符?是唯一的三元运算符

        问号表达式,先求解表达式1,成立则求表达式2为最终结果,不成立求表达式3为结果

        cout<<(grade>=60?"pause":"fail");

6. sizeof运算符

        sizeof类型符,或sizeof表达式

7. 位运算(头一次发现还能这么玩,感觉很底层,有很多技巧)

        按位与(&):二进制各位的&运算,有0则为0

                             对任意数&1,求得末位,可判断奇偶,0为偶,1为奇        

        按位或(|):二进制各位的|运算,有1则为1

                            对任意数|1,强制转换末位为1,强制末位为0,在此基础-1即可

        按位异或(^):相同为0,不同为1

                            可进行简单加密,或者交换两数     

        按位取反(~):对应位置取反

                             可交换正负号,求绝对值

        左移(<<):左边多出来的要舍弃,右边补0

        右移(>>):右边多出来的要舍弃,左边补0

8.其他运算符 

        点运算符(.):成员访问运算符,获取类对象的一个成员

        箭头运算符 (->) :ptr->m等于(*ptr).m 

9. 运算符的优先级与结合性 

        

[ ]  ( ) 后置++ 后置--  .  ->
单目 前置++ 前置-- sizeof   *   +(正号)  -(负号)   ~    ! 右到左
强制转换 右到左
普通 *   %   \   +   -
左移右移 <<   >>
比较 <   >   <=   >=   ==   !=
位运算 &   |   ^
逻辑 &&   ||
问号 ? : 右到左
等号相关 右到左
逗号 ,

10.混合运算时的数据类型转换

        1.隐含转换:自动转换,不丢精度

        2.显性转换:(类型说明符)表达式        C语言

                                表达式(类型说明符)        C++

                                static_cast <类型说明符> 表达式 可替换上面两个

                                const_cast <类型说明符> 表达式

                                reinterpret_cast <类型说明符> 表达式

1.3 数据的输入与输出

1.3.1  I/O流:数据在对象之间的流动,抽象为“流”。流在使用前要建立,使用后要删除。

                       从流中获取数据叫提取,向流中添加数据叫插入。

                       数据的输入与输出就是通过I/O流实现的。

1.3.2 插入符和提取符

        cout<<表达式1<<表达式2...

        例:int a,b;

                cin>>a>>b;

1.3.3 简单的I/O格式控制:

dec

十进制表示

hex 十六进制表示
oct 八进制表示
ws 提取空白符
endl 插入换行符,并刷新流
ends 插入空字符
setsprecision 设置浮点数的小数位数(包括小数点)
setw 设置域宽

例:输出浮点数3.1415并换行,设置域宽为5个字符,小数点后保留两位有效数字

cout<

1.4 算法的基本控制结构(顺序,选择,循环)

1.4.1 if条件句

形式:if  (表达式) 语句1

           else 语句2

判断闰年

​
#include
using namespace std;
int main() {
	int year;
	bool isleapyear;

	cout << "enter the yaer:";
	cin >> year;
	isleapyear = ((year % 4 == 0 && year % 100 != 0) || (year % 400 == 0));
	if (isleapyear)
		cout << year << "is a leapyear" << endl;
	else
		cout << year << "is not a leapyear" << endl;
	return 0;
}

​

把条件写成bool值,比较好看

1.42 多重选择结构

1.嵌套if语句

2.if...else if 语句

3.switch语句(判断同一表达式的值)

switch(表达式)

{case 常量表达式1:语句1

 case 常量表达式2:语句2

...

case 常量表达式n: 语句n

default:语句 n+1

}

​
#include
using namespace std;
int main() {
	int day;
	cin >> day;
	switch (day) {
	case 1:
		cout << "monday" <

一个简单的switch循环,见过这种做法做pta乙级第二题。

1.4.3 循环结构(可嵌套)

1. while 语句

2. do...while 语句

        do 语句

        while (表达式)

        先执行语句,然后判断表达式的值

        true继续,false结束(循环体需要包含改变表达式值的语句) 

3. for 语句(最为灵活)

        输入一个整数,求出所有因子,可以用for穷举到数的开方(交流群老哥提示优化)

2.5 自定义数据类型

2.5.1 typedef声明(提高可读性)

        typedef 已有类别名 新类型名表;(新类型命名表可以有多个标识符,之间以逗号分隔)

        

typedef double area volume;
typedef int natural;
natural i1,i2;
area a;
volume v;

2.5.2 枚举类型enum(解决不合法数据)

        enum 枚举类型名 {变量值列表};

        enum weekday {sun,mom,tue,wed,thu,fri,sat};

说明:1. 枚举元素按常量处理,不能赋值

           2. 枚举元素有默认值 依次为0,1,2,3...

           3. 也可在声明中另行定义

                enum weekday{sun=7,mon=1,tue,wed,thu,fri,sat};

                定义sun为7,mon为1,以后顺序加1,sat=6

            4. 枚举值可以进行关系运算

1.6 深度探索

        完全看不进去

                              

                     

你可能感兴趣的:(c++,数据结构,算法)