搜索
查看
编辑修改
首页
UNITY
NODEJS
PYTHON
AI
GIT
PHP
GO
CEF3
JAVA
HTML
CSS
搜索
Cpp五条
这个屌丝很懒,什么也没留下!
关注作者
热门标签
jquery
HTML
CSS
PHP
ASP
PYTHON
GO
AI
C
C++
C#
PHOTOSHOP
UNITY
iOS
android
vue
xml
爬虫
SEO
LINUX
WINDOWS
JAVA
MFC
CEF3
CAD
NODEJS
GIT
Pyppeteer
article
热门文章
1
uniapp微信小程序兼容性问题记录(持续记录)_uniapp项目在微信小程序中运行有些方法不兼容怎么办
2
linux 常用命令大全_linux常用命令
3
《联邦学习实战》杨强 读书笔记九——联邦个性化推荐案例_联邦学习实战pdf
4
HarmonyOS应用开发:权限开发_鸿蒙开发申请权限
5
Unbutu网卡驱动安装(Intel内置网卡8086:15b8)
6
【毕业设计】Java基于微信小程序的社区旧衣物品回收系统_小区衣物回收管理系统
7
VUE3封装axios网络请求_vue3 http-request
8
微信小程序实现即时通信聊天功能的实例代码
9
Jeff Dean万字总结出炉!图解谷歌2022年AIGC、LLM、CV三大领域成就!
10
【零基础】ad19画一个简单元器件并封装_ad怎么画元器件
当前位置:
article
> 正文
C++经典面试题全集 50~100道 都附带有参考答案_c++面试题目100及最佳答案
作者:Cpp五条 | 2024-03-17 14:20:39
赞
踩
c++面试题目100及最佳答案
51. 引用与指针有什么区别?
答 、1) 引用必须被初始化,指针不必。
2) 引用初始化以后不能被改变,指针可以改变所指的对象。
3) 不存在指向空值的引用,但是存在指向空值的指针。
52. 描述实时系统的基本特性
答 、在特定时间内完成特定的任务,实时性与可靠性。
54. 全局变量和局部变量在内存中是否有区别?如果有,是什么区别?
答 、全局变量储存在静态数据区,局部变量在堆栈中。
55. 堆栈溢出一般是由什么原因导致的?
答 、没有回收垃圾资源
56. 什么函数不能声明为虚函数?
答 构造函数(constructor)
57. IP地址的编码分为哪俩部分?
答 IP地址由两部分组成,网络号和主机号。
58. 不能做switch()的参数类型是:
答 、switch的参数不能为实型。
59. 如何引用一个已经定义过的全局变量?
答 、可以用引用头文件的方式,也可以用extern关键字,如果用引用头文件方式来引用某个在头文件中声明的全局变理,假定你将那个变写错了,那么在编译期间会报错,如果你用extern方式引用时,假定你犯了同样的错误,那么在编译期间不会报错,而在连接期间报错
60. 对于一个频繁使用的短小函数,在C语言中应用什么实现,在C++中应用什么实现?
答 、c用宏定义,c++用inline
61. C++是不是类型安全的?
答案:不是。两个不同类型的指针之间可以强制转换(用reinterpret cast)
62. 当一个类A 中没有生命任何成员变量与成员函数,这时sizeof(A)的值是多少,请解释一下编译器为什么没有让它为零。
答案:为1。举个反例,如果是零的话,声明一个class A[10]对象数组,而每一个对象占用的空间是零,这时就没办法区分A[0],A[1]…了。
63. 简述数组与指针的区别?
答:数组要么在静态存储区被创建(如全局数组),要么在栈上被创建。指针可以随时指向任意类型的内存块。
(1)修改内容上的区别
char a[] = “hello”;
a[0] = ‘X’;
char *p = “world”; // 注意p 指向常量字符串
p[0] = ‘X’; // 编译器不能发现该错误,运行时错误
(2) 用运算符sizeof 可以计算出数组的容量(字节数)。sizeof(p),p 为指针得到的是一个指针变量的字节数,而不是p 所指的内存容量。
64. C++函数中值的传递方式
答:有三种方式:值传递、指针传递、引用传递
65. 内存的分配方式
答:分配方式有三种,
1、 静态存储区,是在程序编译时就已经分配好的,在整个运行期间都存在,如全局变量、常量。
2、 栈上分配,函数内的局部变量就是从这分配的,但分配的内存容易有限。
3、 堆上分配,也称动态分配,如我们用new,malloc分配内存,用delete,free来释放的内存。
66. extern“C”有什么作用?
答:Extern “C”是由C++提供的一个连接交换指定符号,用于告诉C++这段代码是C函数。这是因为C++编译后库中函数名会变得很长,与C生成的不一致,造成C++不能直接调用C函数,加上extren “c”后,C++就能直接调用C函数了。
Extern “C”主要使用正规DLL函数的引用和导出 和 在C++包含C函数或C头文件时使用。使用时在前面加上extern “c” 关键字即可。可以用一句话概括extern “C”这个声明的真实目的:实现C++与C及其它语言的混合编程。
67. 用什么函数开启新进程、线程。
答案:
线程:CreateThread/AfxBeginThread等
进程:CreateProcess等
68. SendMessage和PostMessage有什么区别
答案:SendMessage是阻塞的,等消息被处理后,代码才能走到SendMessage的下一行。PostMessage是非阻塞的,不管消息是否已被处理,代码马上走到PostMessage的下一行。
69. CMemoryState主要功能是什么
答案:查看内存使用情况,解决内存泄露问题。
70. #include 和 #include “filename.h” 有什么区别?
答:对于#include ,编译器从标准库路径开始搜索 filename.h
对于#include “filename.h” ,编译器从用户的工作路径开始搜索 filename.h
71. 处理器标识#error的目的是什么?
答:编译时输出一条错误信息,并中止继续编译。
72. #if!defined(AFX_…_HADE_H)
#define(AFX_…_HADE_H)
……
#endif作用?
答:防止该头文件被重复引用。
73. 在定义一个宏的时候要注意什么?
答:定义部分的每个形参和整个表达式都必须用括号括起来,以避免不可预料的错误发生
74. 数组在做函数实参的时候会转变为什么类型?
答:数组在做实参时会变成指针类型。
75. 系统会自动打开和关闭的3个标准的文件是?
(1) 标准输入—-键盘—stdin
(2) 标准输出—-显示器—stdout
(3) 标准出错输出—-显示器—stderr
76. .在Win32下 char, int, float, double各占多少位?
(1) Char 占用8位
(2) Int 占用32位
(3) Float 占用32位
(4) Double 占用64位
77. strcpy()和memcpy()的区别?
答:strcpy()和memcpy()都可以用来拷贝字符串,strcpy()拷贝以’\0’结束,但memcpy()必须指定拷贝的长度。
78. 说明define和const在语法和含义上有什么不同?
答:(1) #define是C语法中定义符号变量的方法,符号常量只是用来表达一个值,在编译阶段符号就被值替换了,它没有类型;
(2) Const是C++语法中定义常变量的方法,常变量具有变量特性,它具有类型,内存中存在以它命名的存储单元,可以用sizeof测出长度。
79. 说出字符常量和字符串常量的区别,并使用运算符sizeof计算有什么不用?
答:字符常量是指单个字符,字符串常量以‘\0’结束,使用运算符sizeof计算多占一字节的存储空间。
80. 简述全局变量的优缺点?
答:全局变量也称为外部变量,它是在函数外部定义的变量,它属于一个源程序文件,它保存上一次被修改后的值,便于数据共享,但不方便管理,易引起意想不到的错误。
81. 总结static的应用和作用?
答:(1)函数体内static变量的作用范围为该函数体,不同于auto变量,该变量的内存只被分配一次,因此其值在下次调用时仍维持上次的值;
(2)在模块内的static全局变量可以被模块内所用函数访问,但不能被模块外其它函数访问;
(3)在模块内的static函数只可被这一模块内的其它函数调用,这个函数的使用范围被限制在声明它的模块内;
(4)在类中的static成员变量属于整个类所拥有,对类的所有对象只有一份拷贝;
(5)在类中的static成员函数属于整个类所拥有,这个函数不接收this指针,因而只能访问类的static成员变量。
82. 总结const的应用和作用?
答:(1)欲阻止一个变量被改变,可以使用const关键字。在定义该const变量时,通常需要对它进行初始化,因为以后就没有机会再去改变它了;
(2)对指针来说,可以指定指针本身为const,也可以指定指针所指的数据为const,或二者同时指定为const;
(3)在一个函数声明中,const可以修饰形参,表明它是一个输入参数,在函数内部不能改变其值;
(4)对于类的成员函数,若指定其为const类型,则表明其是一个常函数,不能修改类的成员变量;
(5)对于类的成员函数,有时候必须指定其返回值为const类型,以使得其返回值不为“左值”。
83. 什么是指针?谈谈你对指针的理解?
答:指针是一个变量,该变量专门存放内存地址;
指针变量的类型取决于其指向的数据类型,在所指数据类型前加*
指针变量的特点是它可以访问所指向的内存。
84. 什么是常指针,什么是指向常变量的指针?
答:常指针的含义是该指针所指向的地址不能变,但该地址所指向的内容可以变化,使用常指针可以保证我们的指针不能指向其它的变量,
指向常变量的指针是指该指针的变量本身的地址可以变化,可以指向其它的变量,但是它所指的内容不可以被修改。指向长变量的指针定义,
85. 函数指针和指针函数的区别?
答:函数指针是指向一个函数入口的指针;
指针函数是函数的返回值是一个指针类型。
87. 简述Debug版本和Release版本的区别?
答:Debug版本是调试版本,Release版本是发布给用户的最终非调试的版本,
88. 指针的几种典型应用情况?
答:
int *p[n];—–指针数组,每个元素均为指向整型数据的指针。
int (*)p[n];—p为指向一维数组的指针,这个一维数组有n个整型数据。
int *p();——函数带回指针,指针指向返回的值。
int (*)p();—-p为指向函数的指针。
89. static函数与普通函数有什么区别?
答:static函数在内存中只有一份,普通函数在每个被调用中维持一份拷贝
90. struct(结构) 和 union(联合)的区别?
答:1. 结构和联合都是由多个不同的数据类型成员组成, 但在任何同一时刻, 联合中只存放了一个被选中的成员(所有成员共用一块地址空间), 而结构的所有成员都存在(不同成员的存放地址不同)。
2. 对于联合的不同成员赋值, 将会对其它成员重写, 原来成员的值就不存在了, 而对于结构的不同成员赋值是互不影响的。
91. class 和 struct 的区别?
答:struct 的成员默认是公有的,而类的成员默认是私有的。
92. 简述枚举类型?
答:枚举方便一次定义一组常量,使用起来很方便;
93. assert()的作用?
答:ASSERT()是一个调试程序时经常使用的宏,在程序运行时它计算括号内的表达式,如果表达式为FALSE (0), 程序将报告错误,并终止执行。如果表达式不为0,则继续执行后面的语句。这个宏通常原来判断程序中是否出现了明显非法的数据,如果出现了终止程序以免导致严重后果,同时也便于查找错误。
94. 局部变量和全局变量是否可以同名?
答:能。局部会屏蔽全局。要用全局变量,需要使用”::”(域运算符)。
95. 程序的局部变量存在于(堆栈)中,全局变量存在于(静态区 )中,动态申请数据存在于( 堆)中。
96. 在什么时候使用常引用?
答:如果既要利用引用提高程序的效率,又要保护传递给函数的数据不在函数中被改变,就应使用常引用。
97. 类的声明和实现的分开的好处?
答:1. 起保护作用;
2. 提高编译的效率。
98. windows消息系统由哪几部分构成?
答:由一下3部分组成:
1. 消息队列:操作系统负责为进程维护一个消息队列,程序运行时不断从该消息队列中获取消息、处理消息;
2. 消息循环:应用程序通过消息循环不断获取消息、处理消息。
3. 消息处理:消息循环负责将消息派发到相关的窗口上使用关联的窗口过程函数进行处理。
99. 什么是消息映射?
答:消息映射就是让程序员指定MFC类(有消息处理能力的类)处理某个消息。然后由程序员完成对该处理函数的编写,以实现消息处理功能。
100. 什么是UDP和TCP的区别是什么?
答:TCP的全称为传输控制协议。这种协议可以提供面向连接的、可靠的、点到点的通信。
UDP全称为用户报文协议,它可以提供非连接的不可靠的点到多点的通信。用TCP还是UDP,那要看你的程序注重哪一个方面?可靠还是快速?
声明:
本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:
https://www.wpsshop.cn/w/Cpp五条/article/detail/256488
推荐阅读
article
React
常见
面试题
(
一
)_
setstate
对象
相等...
1.当你调用setState的时候,发生了什么事?当调用 setState 时,
React
会做的第
一
件事情是将传递给 s...
赞
踩
article
Linux
命令
06 - -
wget
下载
网络
文件
_
wget
-c
下载
目录
...
Linux
命令
06 - -
wget
下载
网络
文件
_
wget
-c
下载
目录
wget
-c
下载
目录
...
赞
踩
article
SQL
Server
Len()
函数
_
sqlserver
len
...
LEN()
函数
用于输入字符串的字符数。LEN()
函数
返回输入字符串的字符数,不包括尾随空格。以下是LEN()
函数
的...
赞
踩
article
【
Docker
】在
Ubuntu
镜像容器中
安装
Ping
命令
(更换
apt
下载源)...
学习
Docker
的过程中,进行到搭建
Docker
容器互联网络案例时,需要用到
Ping
命令
测试,但是从仓库中p...
赞
踩
article
android编译错误FCM_
the
follow
in
g
in
stances are
in
the
...
android编译报错ed_vendor_
manifest
.xml"Error: The follow
in
g
in
sta...
赞
踩
article
swift
第一个IOS
应用程序
...
swift
出来也有一阵子了,一直没有时间来研究,简单的看了看,随手写几篇文章。特此声明:本博客纯属个人学习,有不足之处...
赞
踩
article
FTP上传超时问题排查
ftp
Client.
storeFile
Connec
ti
on
ti
med o...
建议设置在login 以后,但也有人设置在
ftp
Client.
storeFile
之前的,都可以尝试下。一直卡在stor...
赞
踩
article
PostgreSql
数据库
安装部署手册_
postgresql
-
12
-
linux
-
x64
-instal...
一、下载
数据库
PostgreSql
数据库
下载地址:https://www.
postgresql
.org/二、根据获取的脚...
赞
踩
article
Go
Module
s(
vgo
)
的
介绍与
使用
以及Go
Module
Proxy
_
vgo
gola...
vgo
简介:
vgo
是新一代
的
go项目包管理工具,在 go 1.11中已经支持,现在很多第三方库都
使用
vgo
作为包管理...
赞
踩
article
rocketMq
的
安装
(
mac
环境
)...
一、java
环境
配置此处不赘述,请参阅: https://www.cnblogs.com/ostrich-sunshin...
赞
踩
article
1.1
Android
5.1
- 7.1 系统(
framework
)定制、
修改
、移植、总结_fram...
1:
修改
开机logo
修改
开机logo有两种方法,一种直接去改c语言代码,第二种替换图片用python生成splash。第...
赞
踩
article
【
毕业
季】一个普通
大二
学生
的
迷茫与
展望
_
大二
对
未来
的
展望
和
规划
...
毕业
季,我有话说_
大二
对
未来
的
展望
和
规划
大二
对
未来
的
展望
和
规划
...
赞
踩
article
Ftp获取不到文件流-
ftpClient
.
retrieveFileStream
获取结果为
null
_f...
近期做了一个财务方面的系统(以下称“进销存”),里面有一个模块是销项发票,客户要求与金税开票系统(以下称”金税”)做接口...
赞
踩
article
Paper小计:
Language
Models
as
Knowledge
B
as
es?...
probing_language models
as
knowledge b
as
eslanguage models
as
...
赞
踩
article
Mac
安装
,
简单使用
,
卸载
homebrew
详细教程...
Mac
安装
,
简单实用
,
卸载
homebrew
详细教程
安装
1·进入官网获取下载命令官网:http://brew.sh/图中命...
赞
踩
article
Android
-
HAL
与
HIDL
分析
使用
总结_
hal
hidl
...
Android
-
HAL
与
HIDL
分析
使用
总结
HAL
接口定义语言(简称
HIDL
)适用于指定
HAL
和其用户之间的接口的一种接...
赞
踩
article
Linux
操作系统_/
dev
/
sda1
...
第8讲文件系统管理(FS Management:fdisk+parted)1.操作系统的两种启动模式:Legacy BI...
赞
踩
article
vuex
-辅助
函数
_
vuex
辅助
函数
...
vuex
Vuex 是一个专为 Vue.js 应用程序开发的状态管理模式。它采用集中式存储管理应用的所有组件的状态,并以相...
赞
踩
article
U-
Net
模型
...
U-
Net
模型
是一种改进的FCN结构,因其结构经论文作者画出来形似字母U而得名,应用于医学图像的语义分割。它由左半边...
赞
踩
article
【双U-
Net
残差
网络
:
超分
】
_
unet
超分
...
仅供自己参考
_
unet
超分
unet
超分
Dual U-
Net
r...
赞
踩
相关标签
react
linux
网络
bash
数据库
sql
Docker
android fcm
The following instances are in
com.fingerprints.extension@1.0
天地伟业哈哈哈
FCM
swift
SwiftIOS
应用程序
java
服务器
postgresql
go modeles
vgo
go module proxy
职场和发展
python
人工智能