-
2019年C++复试题写了几道
函数值传递: 形参为对象且不加引用,在函数中的改变不会影响主调函数中的对象本身;
字符串: 字符串中的休止符'\0'
在ASCII码中的编码是0,可以将该字符串与0进行比较;
函数值传递: 形参中如果数据类型为数组,其实从本质上来说就是要传入地址,此时如果就是a[-1]出现,就是代表传入地址的前一个内存中的变量,可以用&a[i]
来传入数组中的某个地址;
构造函数: 内嵌对象的构造函数调用顺序其实和派生类对象差不多,先按照定义顺序调用内嵌(基类)对象构造函数,再调用该(派生类)对象的构造函数,最后执行构造函数函数体中的内容。析构函数的调用顺序相反;
数组的初始化: 可以用int a[3] = {1, };
来初始化,这样除了第一个指定,其他默认为0,需要注意的是,只能按照顺序初始化,不可跳过;
标准输出: 在执行标准输出前会先计算出所有表达式的值,如果有++、--
这样的会对输出值产生影响的操作符也是会先执行,例如:cout << x << y << x++ << endl;
第一个输出的x就是x++执行后的值。 -
函数
函数的定义和使用:return
的两个作用 ;嵌套调用;递归调用;
函数的参数传递: 值传递:用实参初始化形参,初始化结束之后就没有关系了;引用传递:形实结合时用实参去初始化被定义为引用的形参,就使得形参编程了实参的引用,因为可以通过形参对实参进行更改;
内联函数: 只是请求,而编译器并不承诺;
带默认值形参的函数: 带默认值的形参必须在形参表的最后;不允许对同一形参的默认值多次定义,即使值相同;
函数重载:
运行栈与函数调用: -
B树
B-树: 每个结点都代表一个包含记录的关键字,找到该结点就相当于找到记录;插入: 都是叶子结点插入,多了就往上提;删除: 借关键字、关键字的交换、结点的合并;查找: 多路查找;
B+树: 非叶子结点只是通往最终待查找记录的索引,只有叶子结点才是终点
散列表: 建立方法、冲突解决方法、性能分析(查找成功平均长度和查找失败平均长度)
20200328
最新推荐文章于 2022-03-28 20:48:11 发布