C++面试题总结(二)_当一个类a 中没有声命任何成员变量与成员函数,这时sizeof(a)的值是多少,如果不是

还有兄弟不知道网络安全面试可以提前刷题吗?费时一周整理的160+网络安全面试题,金九银十,做网络安全面试里的显眼包!

王岚嵚工程师面试题(附答案),只能帮兄弟们到这儿了!如果你能答对70%,找一个安全工作,问题不大。

对于有1-3年工作经验,想要跳槽的朋友来说,也是很好的温习资料!

【完整版领取方式在文末!!】

93道网络安全面试题

内容实在太多,不一一截图了

黑客学习资源推荐

最后给大家分享一份全套的网络安全学习资料,给那些想学习 网络安全的小伙伴们一点帮助!

对于从来没有接触过网络安全的同学,我们帮你准备了详细的学习成长路线图。可以说是最科学最系统的学习路线,大家跟着这个大的方向学习准没问题。

1️⃣零基础入门
① 学习路线

对于从来没有接触过网络安全的同学,我们帮你准备了详细的学习成长路线图。可以说是最科学最系统的学习路线,大家跟着这个大的方向学习准没问题。

image

② 路线对应学习视频

同时每个成长路线对应的板块都有配套的视频提供:

image-20231025112050764

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化资料的朋友,可以点击这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

答:防止该头文件被重复引用。

  1. 在定义一个宏的时候要注意什么?

答:定义部分的每个形参和整个表达式都必须用括号括起来,以避免不可预料的错误发生

  1. 数组在做函数实参的时候会转变为什么类型?

答:数组在做实参时会变成指针类型。

  1. 系统会自动打开和关闭的3个标准的文件是?

答:

(1) 标准输入----键盘—stdin

(2) 标准输出----显示器—stdout

(3) 标准出错输出----显示器—stderr

  1. .在Win32下 char, int, float, double各占多少位?

答:

(1) Char 占用8位

(2) Int 占用32位

(3) Float 占用32位

(4) Double 占用64位

  1. strcpy()和memcpy()的区别?

答:strcpy()和memcpy()都可以用来拷贝字符串,strcpy()拷贝以’\0’结束,但memcpy()必须指定拷贝的长度。

  1. 说明define和const在语法和含义上有什么不同?

答:(1) #define是C语法中定义符号变量的方法,符号常量只是用来表达一个值,在编译阶段符号就被值替换了,它没有类型;

(2) Const是C++语法中定义常变量的方法,常变量具有变量特性,它具有类型,内存中存在以它命名的存储单元,可以用sizeof测出长度。

  1. 说出字符常量和字符串常量的区别,并使用运算符sizeof计算有什么不用?

答:字符常量是指单个字符,字符串常量以’\0’结束,使用运算符sizeof计算多占一字节的存储空间。

  1. 简述全局变量的优缺点?

答:全局变量也称为外部变量,它是在函数外部定义的变量,它属于一个源程序文件,它保存上一次被修改后的值,便于数据共享,但不方便管理,易引起意想不到的错误。

  1. 总结static的应用和作用?

答:

(1)函数体内static变量的作用范围为该函数体,不同于auto变量,该变量的内存只被分配一次,因此其值在下次调用时仍维持上次的值;

(2)在模块内的static全局变量可以被模块内所用函数访问,但不能被模块外其它函数访问;

(3)在模块内的static函数只可被这一模块内的其它函数调用,这个函数的使用范围被限制在声明它的模块内;

(4)在类中的static成员变量属于整个类所拥有,对类的所有对象只有一份拷贝;

(5)在类中的static成员函数属于整个类所拥有,这个函数不接收this指针,因而只能访问类的static成员变量。

  1. 总结const的应用和作用?

答:

(1)欲阻止一个变量被改变,可以使用const关键字。在定义该const变量时,通常需要对它进行初始化,因为以后就没有机会再去改变它了;

(2)对指针来说,可以指定指针本身为const,也可以指定指针所指的数据为const,或二者同时指定为const;

(3)在一个函数声明中,const可以修饰形参,表明它是一个输入参数,在函数内部不能改变其值;

(4)对于类的成员函数,若指定其为const类型,则表明其是一个常函数,不能修改类的成员变量;

(5)对于类的成员函数,有时候必须指定其返回值为const类型,以使得其返回值不为"左值"。

  1. 什么是指针?谈谈你对指针的理解?

答:指针是一个变量,该变量专门存放内存地址;

指针变量的类型取决于其指向的数据类型,在所指数据类型前加*

指针变量的特点是它可以访问所指向的内存。

  1. 什么是常指针,什么是指向常变量的指针?

答:常指针的含义是该指针所指向的地址不能变,但该地址所指向的内容可以变化,使用常指针可以保证我们的指针不能指向其它的变量。

指向常变量的指针是指该指针的变量本身的地址可以变化,可以指向其它的变量,但是它所指的内容不可以被修改。指向长变量的指针定义。

  1. 函数指针和指针函数的区别?

答:函数指针是指向一个函数入口的指针;

指针函数是函数的返回值是一个指针类型。

  1. 简述Debug版本和Release版本的区别?

答:Debug版本是调试版本,Release版本是发布给用户的最终非调试的版本,

  1. 指针的几种典型应用情况?

答:

int *p[n];-----指针数组,每个元素均为指向整型数据的指针。

int (*)p[n];—p为指向一维数组的指针,这个一维数组有n个整型数据。

int *p();------函数带回指针,指针指向返回的值。

int (*)p();----p为指向函数的指针。

  1. static函数与普通函数有什么区别?

答:static函数在内存中只有一份,普通函数在每个被调用中维持一份拷贝

  1. struct(结构) 和 union(联合)的区别?

答:1. 结构和联合都是由多个不同的数据类型成员组成, 但在任何同一时刻, 联合中只存放了一个被选中的成员(所有成员共用一块地址空间), 而结构的所有成员都存在(不同成员的存放地址不同)。

  1. 对于联合的不同成员赋值, 将会对其它成员重写, 原来成员的值就不存在了, 而对于结构的不同成员赋值是互不影响的。
  1. class 和 struct 的区别?

答:struct 的成员默认是公有的,而类的成员默认是私有的。

  1. 简述枚举类型?

答:枚举方便一次定义一组常量,使用起来很方便;

  1. ASSERT()的作用?

答:ASSERT()是一个调试程序时经常使用的宏,在程序运行时它计算括号内的表达式,如果表达式为FALSE (0), 程序将报告错误,并终止执行。如果表达式不为0,则继续执行后面的语句。这个宏通常原来判断程序中是否出现了明显非法的数据,如果出现了终止程序以免导致严重后果,同时也便于查找错误。

  1. 局部变量和全局变量是否可以同名?

答:能。局部会屏蔽全局。要用全局变量,需要使用"::"(域运算符)。

  1. 程序的不同变量的不同存储位置

答:局部变量存在于(堆栈)中,全局变量存在于(静态区 )中,动态申请数据存在于( 堆)中。

  1. 在什么时候使用常引用?

答:如果既要利用引用提高程序的效率,又要保护传递给函数的数据不在函数中被改变,就应使用常引用。

  1. 类的声明和实现的分开的好处?

答:

  1. 起保护作用;

  2. 提高编译的效率。

  1. windows消息系统由哪几部分构成?

答:由一下3部分组成:

  1. 消息队列:操作系统负责为进程维护一个消息队列,程序运行时不断从该消息队列中获取消息、处理消息;

  2. 消息循环:应用程序通过消息循环不断获取消息、处理消息。

  3. 消息处理:消息循环负责将消息派发到相关的窗口上使用关联的窗口过程函数进行处理。

  1. 什么是消息映射?

答:消息映射就是让程序员指定MFC类(有消息处理能力的类)处理某个消息。然后由程序员完成对该处理函数的编写,以实现消息处理功能。

100.什么叫智能指针?

答:当一个类中,存在一个指向另一个类对象的指针时,对指针运算符进行重载,那么当前类对象可以通过指针像调用自身成员一样调用另一个类的成员。

  1. winsock建立连接的主要实现步骤?

答:

服务器端:socket()建立套接字,绑定(bind)并监听(listen),用accept()等待客户端连接, accept()发现有客户端连接,建立一个新的套接字,自身重新开始等待连接。该新产生的套接字使用send()和recv()写读数据,直至数据交换完毕,closesocket()关闭套接字。

客户端:socket()建立套接字,连接(connect)服务器,连接上后使用send()和recv(),在套接字上写读数据,直至数据交换完毕,closesocket()关闭套接字。

102.多态的两个必要条件

答:1.一个基类的指针或引用指向一个派生类对象 2.虚函数

  1. 构成Win32 API 函数的三个动态链接库是什么?

答:内核库,用户界面管理库,图形设备界面库。

104.什么时候需要用虚析构函数?

答:当基类指针指向用new运算符生成的派生类对象时,delete基类指针时,派生类部分没有释放掉而造成释放不彻底现象,需要虚析构函数。 补充:虚函数就是让派生类调用基类的虚函数。

  1. 什么是平衡二叉树?

答:左右子树都是平衡二叉树,而且左右子树的深度差值的约对值不大于1。

  1. 派生新类的过程要经历三个步骤

答:1.吸收基类成员 2.改造基类成员 3.添加新成员

  1. 简单介绍GDI?

答: GDI是Graphics Device Interface 的缩写,译为:图形设备接口;是一个在Windows应用程序中执行与设备无关的函数库,这些函数在不同的输出设备上产生图形以及文字输出。

108.在C++ 程序中调用被 C 编译器编译后的函数,为什么要加 extern “C”?

答:C++语言支持函数重载,C 语言不支持函数重载。函数被C++编译后在库中的名字

与C 语言的不同。假设某个函数的原型为: void foo(int x, int y);该函数被C 编译器编译后在库中的名字为_foo , 而C++编译器则会产生像_foo_int_int 之类的名字。C++提供了C 连接交换指定符号extern"C"来解决名字匹配问题。

  1. 怎样定义一个纯虚函数?含有纯虚函数的类称为什么?

答:在虚函数的后面加=0,含有虚函数的类称为抽象类。

学习路线:

这个方向初期比较容易入门一些,掌握一些基本技术,拿起各种现成的工具就可以开黑了。不过,要想从脚本小子变成黑客大神,这个方向越往后,需要学习和掌握的东西就会越来越多以下是网络渗透需要学习的内容:
在这里插入图片描述

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化资料的朋友,可以点击这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

  • 5
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值