笔试面试之C++
7 类B是类A的公有派生类, 类A和类B中都定义了虚函数func()
, p
是一个指向类A对象的指针,则p->A::func()
将()
A 调用类A中的函数
B 调用类B中的函数
C 根据p所指向的对象类型而确定调用类A中的函数或类B的函数
D 都调用
13 下列语句正确的是()
A int a, &ra = a, &&ref = ra
B int &rafa[10]
C int a,&ra = a, &*refp = &ra
D int *pf, *&pref = pi
22 程序段如下:
void GetValue(char* p){
p = (char*)malloc(100);
}
void Test(){
char* str = NULL;
GetValue(str);
strcpy(str, "Perfect");
strcpy(str + 2, "World");
printf(str);
}
运行Test()结果为()
A Perfect World B Rfect World
C PeWorld D.程序崩溃
malloc和new共同点都是申请一段内存空间,然后返回指针,这里是传值调用,不能改变指针!
23 静态变量的默认值是多少()
A.0B 1 C 内存随机值 D 依赖编译器决定
STL的使用
28 如果一个有序的vector/map/set 中进行数据查找,哪一个查找复杂度更低()
A vector B map C set D 时间复杂度一样
29 关于stl描述正确的是()
A stl容器是多线程安全的。
B stl的vector查找效率一般比map快
C 往stl容器放入对象是直接拷贝一份对象到容易中,这部分内存由容易管理
D stl的栈是采用红黑书实现的。
这两题都是考察的STL,看来完美对于STL考察的还是很多的,几个常考的容器中,
顺序容器有:vector,deque,array,list,
其中,vector,deque,array,都是连续分配的内存,所以支持快速随机访问,
vector 和deque可变内存大小,vector可以快速在尾部插入和删除,deque可以快速在头部和尾部插入和删除,两者在中间插入和删除的速度都很慢,因为他们的数据结构可以很容易看出查找为线性查找,复杂度为O(n)
list:明显是链式的,所以在任意位置插入和删除都很快,但是不支持快速随机访问,只能顺序访问
而map,set等采用的是红黑树,他们的查找速率为O(logN)
至于哈希查找,则是无序的,unorderd_map,查找速率为O(1);
另外STL容器并不是线程安全的,读写和写写同时对同一容器访问时需要加锁
vector::at和vector[]:
第一个做边界检查,第二个不做边界检查
26 c++ STl中list使用的迭代器类型为()
A Input iterator B Forward iterator
C Bidirectional iterator D Random Access Iterator
迭代器类型有
input iterator ,output iterator(输入:只读不写,输出迭代器:只写不读)
Forward iterator(包括上面两个所有功能,但只能在序列中单向移动)
Bidrectional iterator(包括上面所有两个功能,可以在序列中双向移动)
Random Access iterator(包括上面所有功能,同时支持常数时间内随机访问元素)
1.已经烂大街的i++和++i你真的懂了吗?函数参数你理解了几何?
int i=3;
printf("%d %d",i++,i++);和printf("%d %d",++i,++i);
输出的分别是4,3和5,5
知识点:1.i++的含义是返回一个常量,这个常量的值=i,然后再将i=i+1;
2.++i的含义是将i=i+1,然后返回i这个变量
3.函数参数入栈的顺序是从右到左
4.gcc编译条件下第一种情况是用寄存器暂时存储i++得到的常量,然后入栈
第二种情况是将i++得到的变量i直接入栈
5.printf(“%d%d”,*i++);实际上是printf(“%d%d”,*(i++)),在i自增之前返回*(i)的值,得到常量,再入栈,再i自增,最后输出的值是*i的值
2.关于float和double的判0
float f 判0 abs(f)<1e-6
double d 判0 abs(d)<1e-15
3.结构体大小计算:
- 最后一个元素的偏移量+最后一个元素的大小
- 两个准则:偏移量必须为自身大小的整数倍
- 结构体大小必须为所有元素大小的证书倍
- 偏移量=上一个元素的偏移量+上一个元素的大小
4.常量指针,指向常量的指针
Static const char *d;
常量指针和指向常量的指针(没有指针常量)
拷贝构造函数等等
- 大端序和小端序
一个地址位为:0x01-0x04
从A-H为从高位到低位
一个int 数据为0x12345678
大端序:高字节存于内存低的地址:
0x01 0x12
0x02 0x34
0x03 0x56
0x04 0x78
小端序:高字节存于内存高的地址:
0x01 0x78
0x02 0x56
0x03 0x34
0x04 0x12
通用多态=包含多态(虚函数)+参数多态(函数模板,类模板)
特定多态=重载多态(函数重载)+强制多态(强制类型转换)
delete[]和delete的区别
delete仅仅调用一次析构函数,delete根据元素个数调用多次析构函数,如果是内置类型元素,因为不需要调用析构函数,所以无所谓,而如果是自定义类型,必须
笔试面试之C++的更多相关文章
- C++常见笔试面试要点以及常见问题
1. C++常见笔试面试要点: C++语言相关: (1) 虚函数(多态)的内部实现 (2) 智能指针用过哪些?shared_ptr和unique_ptr用的时候需要注意什么?shared_ptr的实现 ...
- catalan数及笔试面试里那些相关的问题(转)
一.catalan数由来和性质 1)由来 catalan数(卡塔兰数)取自组合数学中一个常在各种计数问题中出现的数列.以比利时的数学家欧仁·查理·卡塔兰 (1814–1894)命名. 卡塔兰数的一般项 ...
- php 笔试面试 总结
一次小小的笔试面试经历,虽然是一些简单的问题,但是自己在这儿总结一下,也查一些资料,得出一些较好的答案,也能帮助自己成长. 1.自己熟悉的http状态码及其意义 其实这个题答案随处可见.这儿也还是记录 ...
- 找工作笔试面试那些事儿(16)---linux相关知识点(1)
linux这部分的知识倒不是笔试面试必考的内容,不过现在很多公司开发环境都在linux系统下,一些简单的知识还是需要了解一下的,笔试面试中万一碰到了,也不会措手不及.作为菜硕的我,又因为读研期间的项目 ...
- 找工作笔试面试那些事儿(8)---常问的CC++基础题
这一部分是C/C++程序员在面试的时候会被问到的一些题目的汇总.来源于基本笔试面试书籍,可能有一部分题比较老,但是这也算是基础中的基础,就归纳归纳放上来了.大牛们看到一笑而过就好,普通人看看要是能补上 ...
- go golang 笔试题 面试题 笔试 面试
go golang 笔试题 面试题 笔试 面试 发现go的笔试题目和面试题目还都是比较少的,于是乎就打算最近总结一下.虽然都不难,但是如果没有准备猛地遇到了还是挺容易踩坑的. 就是几个简单的笔试题目, ...
- .net 笔试面试总结(1)
趁着在放假时候,给大家总结一点笔试面试上的东西,也刚好为年后跳槽做一点小积累. 下面的参考解答只是帮助大家理解,不用背,面试题.笔试题千变万化,不要梦想着把题覆盖了,下面的题是供大家查漏补缺用的,真正 ...
- 你真的了解字典(Dictionary)吗? C# Memory Cache 踩坑记录 .net 泛型 结构化CSS设计思维 WinForm POST上传与后台接收 高效实用的.NET开源项目 .net 笔试面试总结(3) .net 笔试面试总结(2) 依赖注入 C# RSA 加密 C#与Java AES 加密解密
你真的了解字典(Dictionary)吗? 从一道亲身经历的面试题说起 半年前,我参加我现在所在公司的面试,面试官给了一道题,说有一个Y形的链表,知道起始节点,找出交叉节点.为了便于描述,我把上面 ...
- 从头说catalan数及笔试面试里那些相关的问题 (转)
作者:寒小阳 时间:2013年9月. 出处:http://blog.csdn.net/han_xiaoyang/article/details/11938973. 声明:版权所有,转载请注明出处,谢谢 ...
- Web前端开发笔试&面试_01(mi:)
—— (al_me16041719002000) begin—— 1.(单选)下面哪个方法是String对象和Array对象都有的? A.splice B.split C.replace D.conc ...
随机推荐
- Mybatis初始
1.Mybatis 的作用 完成基本的sql语句 和 存储过程 高级的对象关系映射(ORM) 框架 封装了几乎所有的 JDBC 代码 参数的手工设置 结果集的遍历 2.Mybatis 框架的主体构成 ...
- GridFS使用及配合nginx实现文件服务
Mongodb下GridFS使用及配合nginx实现文件服务 一.GridFS简介 GridFS是mongodb下用来存储文件的一种规范,所有官方支持的驱动均实现了GridFS规范. Mongodb本 ...
- 撩课-Java每天5道面试题第18天
121.描述Struts2的工作原理 客户端发送请求--> 请求经过一系列过滤器-> FilterDispatcher通过 ActionMapper来决定这个Reques t需要调用哪个A ...
- MYSQL-EXPLAIN 命令详解 (转载)
EXPLAIN 命令详解 在工作中,我们用于捕捉性能问题最常用的就是打开慢查询,定位执行效率差的SQL,那么当我们定位到一个SQL以后还不算完事,我们还需要知道该SQL的执行计划,比如是全表扫描, ...
- Hibernate 注解(Annotations 四)多对多双向注解
注解(Annotation),也叫元数据.一种代码级别的说明.它是JDK1.5及以后版本引入的一个特性,与类.接口.枚举是在同一个层次.它可以声明在包.类.字段.方法.局部变量.方法参数等的前面,用来 ...
- 02.CSS动画示例-->鼠标悬停图片旋转
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- Html5 填表 表单(二) input type 各种输入, 各种用户选择,上传等等泛输入用户交互
<input> 无限制输入 type 限制输入 type = 如下类型 type 后还可以跟一些属性: 如<input type=text max ...
- MD5计算器
private void radioBtnFlie_CheckedChanged(object sender, EventArgs e) { RadioButton rb = sender as Ra ...
- C语言四舍五入算法
对h进行四舍五入 1. 网络上搜索来的: C语言取整规则: (int)(h + 0.5) 2. 二级教程: 四舍五入并精确到小数点后面的第n位: 实例:
- Android学习笔记(5)----启动 Theme.Dialog 主题的Activity时程序崩溃的解决办法
新建了一个Android Studio工程,在MainActivity的主界面中添加了两个按钮,点击其中一个按钮用来启动 NormalActivity,点击另一按钮用来启动DialogActivity ...