553的一些概念题
Posted za-ya-hoo
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了553的一些概念题相关的知识,希望对你有一定的参考价值。
前言
国家线终于出来了,接下来就是等东南的院校和具体复试形式了,祝我好运,总结一下今年553真题常考的一些概念题并给出一些我自己的答案。
基本知识
控制结构
顺序结构: 一般都是,从上到下依次执行;
选择结构:if else;
当满足条件执行什么,不满足又执行什么;
循环结构:while() {}; do () while{}; for(; ; ) {}
满足某个条件就一直执行某个语句。
控制语句
条件判断语句: if语句、switch语句;
循环执行语句: do while语句,while语句,for语句;
转向语句: break语句,continue语句, return语句,goto语句。
存储类说明符
auto
:标明一个变量具有自动存储时期,只能用在具有代码块作用域的变量声明中;
register
:请求一个变量存储在寄存以便快速使用,但是不能获得该变量的地址,只能用在具有代码块作用域的变量声明中;
static
:使该变量具有静态存储使其,只能用在具有代码块作用域的变量声明中;
extern
:表明一个在其他地方定义了的变量;
const
:将数据定为不变的,在只能初始化,以后不可改变其值。在指针中使用时,const的位置决定是指针本身不变还是指针指向的数据不变。
switch语句
switch 中的default是否必须使用break退出?default加不加break都可以,但是每个case后面如果只想执行该case的内容,则需要加break。
逻辑错误与语法错误
逻辑错误: 逻辑上错误,可运行,但是结果可能是错误的,例如算法错误,公式写错等;
语法错误: 使用了错误的语法,在编译期就会被发现,例如少加了标点符号,拼写错误等。
作用域
类作用域: 每个类都定义了自己的新作用域和唯一的类型。在类的定义体内声明类成员,将成员名引入类的作用域;
文件作用域: 任何在代码块之外声明的标识符都具有文件作用域。但是在同文件中编写的通过include指令包含到其他文件中的声明,就好像直接写在那些文件中一样,它们的作用域不限于头文件的文件尾。
函数
实参个数
fun(m + n, x + y, fun(m + n, z, (x, y)));
中的实参个数:3个(存疑
指针与引用
引用初始化
char &a
初始化,字符变量的引用,应该用一个字符变量去初始化,且只能在定义时通过初始化进行指定对象而不能赋值。
const位置对指针的影响
const int *a
:常量指针,不能通过该指针进行对值的更改指向对象的值;
int * const a
:指针常量,不能更改该指针的指向。
例
#include<iostream>
using namespace std;
int main() {
int a = 0;
int b = 1;
const int *p = &a;
int *const q = &a;
p = &b;
q = &b; //ERROR:指针常量不能更改其指向的对象
*p = 3; //ERROR:常量指针不能通过指针更改其指向值的对象,但是注意,该对象如果不是常量那是可以更改的
*q = 3;
return 0;
}
数组名的含义
int a[] = {1, 2, 3, 4}; int *p = a;
中第二句语句的含义:将数组的首元素地址赋值给p指针。
指针强制转换
`reinterpter_cast<目标指针类型>(带转换指针)
继承
意义
类的继承机制允许程序员在保持原有类特性的基础上进行更具体、梗详细的定义。增强了代码的重用性和可扩充性,而且能更好的反应类之间的关系。
多态
多态的含义
多态是指同样的消息(函数调用)被不同类型的对象(指针指向)接受时导致不同的行为(不同的实现)。
纯虚函数语句声明
例如:virtual func() = 0;
其中virtual
是声明为虚函数,= 0
称为纯指示符。有纯虚函数的类被称为抽象类,纯虚函数不能给出函数定义,抽象类也不能进行实例化。
绑定
在多态中确定操作的具体对象的过程就是绑定,绑定是指计算机程序自身彼此关联的过程,也就是把一个标识符名和一个存储地址联系在一起的过程,用面对对象的术语来说,就是把一条消息和一个对象的方法相结合的过程。
动态绑定: 指在程序运行阶段完成绑定的情况,就是运行时的多态。包含多态就是属于此类,即通过虚函数与指针、虚函数与引用;
静态绑定: 指在编译链接阶段完成绑定的情况,就是编译时的多态。重载、强制、参数多态都是属于此类。
重载
重载的条件
- 函数名称相同。
- 形参类型不同、个数不同或者顺序不同(和返回值和形参名称没有关系!。
运算符重载
运算符重载 是对已用的运算符赋予多重含义,使同一个运算符作用于不同的类型的数据时导致不同的行为。
运算符重载可以使更多用户自定义的类使用已用的运算符进行更多操作。
不能重载的运算符
- 类属关系运算符
.
- 成员指针运算符
.*
- 作用域分辨符
::
- 三目运算符
?:
赋值运算符重载
ClassA& operator=(const ClassA& cls)
:返回引用是因为赋值运算的结果还可以拿来作为左值,里面用常引用是规范起见。
输入输出流
标准库含义
cin
:从标准设备输入
cout
: 向标准设备输出
cerr
:不带缓存的错误输出,适合快速输出
clog
:带缓存的错误输出,缓存区满才进行输出
输入输出库
包含输入输出的标准库:(存疑
以上是关于553的一些概念题的主要内容,如果未能解决你的问题,请参考以下文章
Codeforces Round #553 (Div. 2) B题
LeetCode 553 最优除法 HERODING的LeetCode之路[数学] HERODING的LeetCode之路