2024华为OD机试(C++)真题【E卷+A卷+B卷+C卷+D卷】目录

2024年华为OD机试C++真题合集,涵盖A卷、B卷、C卷和D卷。提供全网最全的400+题目,实时更新,包括Python、JavaScript、Java、C++和C语言的题库。C卷、D卷采用LeetCode模式,重点复习A、B卷旧题。未通过机试有半年冷冻期,订阅专栏享受新题更新及优惠福利。
摘要由CSDN通过智能技术生成
 各语言题库:
【Python+JS+Java合集】【超值优惠】:Py/JS/Java合集
【Python】:Python真题题库
【JavaScript】:JavaScript真题题库
【Java】:Java真题题库
【C++】:C++真题题库
【C语言】:C语言真题题库
【面试手撕代码题库】面试手撕代码题库
华为od机试面试交流群830285880

        2024年8月最新更新,有同学发了E卷的链接,但是实际机考的时候发现全都是B+C卷的题目,无需担心,有新题的话第一时间更新的。

​​​​​​​

        

集中答疑:

0:全网最全题库,400+题目。

1:考试链接上写着【A卷】,对应的就是OD统一考试A卷目录的题目。

2:考试链接上写着【B卷】,对应的就是OD统一考试B卷目录的题目。目前B卷的题目由一部分以前考过的旧题库的题目+一部分全新题目(之前没考过的)题目组成。

3:【D卷】考的都是【C卷】的题目

4:考试链接上写着【E卷】。目前由A+B+C+D卷的旧题 + 全新题目组成。也就是说E卷还会考到A+B+C+D卷的题目,比例大概是新题1道,旧题2道。

5:机试没过,半年的冷冻期。

6:订阅专栏后,专栏内所有的文章都可以看,以后再更新新的题目也可以看,每年更新的题目都会更新到一个专栏里面。

7:文章内均有题目+思路+代码。

8:已经订阅过我专栏的同学,推荐新人订阅的可享 8折 优惠,私信我即可!

 OD统一考试【E卷】题库

抓紧更新中!目录可能更新不及时,可以直接搜我的文章!

E卷的目录只更新最新的题目,旧题在其他目录里

序号题目考点分值时间
1流浪地球逻辑模拟1002024Q3
2栈数据合并 / 空栈压数数据结构1002024Q3
3正则表达式替换逻辑模拟1002024Q3
4更新中。。。

OD统一考试【C卷题库】

(D卷考的都是C卷的题目)

序号题目考点分值时间
1山脉的个数数据结构2002023Q4
2数据单元的变量替换字符串处理1002023Q4
3密码输入检测字符串处理1002023Q4
4找出作弊的人自定义排序1002023Q4
5转盘寿司单调栈2002023Q4
6体育场找座位逻辑分析1002023Q4
75G网络建设并查集2002023Q4
8中庸行者BFS/DFS2002023Q4
9会议室占用时间段逻辑模拟1002023Q4
10小华地图寻宝BFS/DFS2002023Q4
11CPU算力分配逻辑分析1002023Q4
12高效货运贪心算法1002023Q4
13小明的幸运数逻辑模拟1002023Q4
14跳马问题BFS/DFS2002023Q4
15掌握单词的个数数据结构1002023Q4
16计算三叉搜索树的高度树遍历2002023Q4
17来自异国的客人/幸运数字进制转换1002023Q4
18石头剪刀布游戏逻辑分析1002023Q4
19园区参观路径BFS/DFS1002023Q4
20多线段数据压缩数学知识2002023Q4
21开源项目热度榜单自定义排序1002023Q4
22API集群负载统计数据结构1002023Q4
23机场航班调度自定义排序1002023Q4
24小明找位置二分法1002023Q4
25最优的投资方式逻辑分析1002023Q4
26分配土地数据结构1002023Q4
27最多购买宝石数目滑动窗口1002023Q4
28王者荣耀游戏分组回溯算法1002023Q4
29执行任务赚积分逻辑模拟1002023Q4
30智能成绩表自定义排序1002023Q4
31内存冷热标记自定义排序1002023Q4
32最富裕的小家庭数据结构2002023Q4
33机器人搬砖二分法1002023Q4
34剩余银饰的重量逻辑模拟1002023Q4
35分割均衡字符串逻辑模拟1002023Q4
36分披萨回溯法1002024Q1
37员工派遣二分法+数学2002024Q1
38测试用例执行计划自定义排序1002024Q1
39伐木工贪心算法1002024Q1
40快递员的烦恼 / 快递员最短路径BFS/DFS1002024Q1
41跳格子3动态规划2002024Q1
42堆内存申请自定义排序1002024Q1
43符号运算/求分数计算结果数据结构2002024Q1
44反射计数逻辑模拟1002024Q1
45路口最短时间问题BFS/DFS2002024Q1
46小扇和小船的数字游戏进制问题1002024Q1
47亲子游戏BFS/DFS2002024Q1
48传递悄悄话数据结构1002024Q1
49特殊的加密算法BFS/DFS1002024Q1
50贪吃的猴子双指针法1002024Q1
51结对编程逻辑模拟2002024Q1
52幸存数之和逻辑模拟1002024Q1
53电脑病毒感染图计算2002024Q1
54部门人力分配二分法2002024Q1
55分解正整数数学知识1002024Q1
56围棋的气数据结构1002024Q1
57小朋友来自多少小区贪心算法1002024Q1
58宽度最小的子矩阵滑动窗口1002024Q1
59智能驾驶BFS/DFS2002024Q1
60推荐多样性逻辑模拟2002024Q1
61螺旋数组矩阵逻辑模拟1002024Q1
62精准核酸检测BFS/DFS1002024Q1
63田忌赛马BFS/DFS2002024Q1
64运输时间逻辑模拟2002024Q1
65Wonderland游乐园动态规划2002024Q1
66灰度图存储逻辑模拟1002024Q1
67寻找最优的路测线路BFS/DFS2002024Q1
68项目排期/最少交付时间二分法2002024Q1
69幼儿园篮球游戏逻辑模拟2002024Q1
70根据IP查找城市逻辑模拟1002024Q1
71启动多任务排序拓扑排序2002024Q1
72攀登者2逻辑模拟2002024Q1
73文件缓存系统数据结构2002024Q1
74密码解密逻辑模拟1002024Q1
75查找一个有向网络的头节点和尾节点拓扑排序2002024Q1
76抢7游戏逻辑模拟2002024Q1
77中文分词模拟器动态规划2002024Q1
78可以处理的最大任务贪心算法2002024Q1
79生成哈夫曼树二叉树2002024Q1
80两个字符串间的最短路径问题BFS/DFS2002024Q1
81手机App防沉迷系统自定义排序1002024Q1
82最长子字符串的长度(二)前缀和状态压缩2002024Q1
83攀登者1数据结构1002024Q1
84有效子字符串双指针法1002024Q1
85模拟目录管理逻辑模拟2002024Q1
86二叉树计算DFS2002024Q1
87矩阵匹配二分图2002024Q1
88学生重新排队、小朋友最少调整次数逻辑模拟2002024Q1
89目录待更新~~题目已经有了(此目录只含C卷的最新题,旧题属于B卷)

OD统一考试【B卷题库】

序号题目考点分值时间
1宜居星球改造计划数据结构2002023Q2

2

需要打开多少监视器

逻辑分析1002023Q2
3最佳植树距离逻辑分析1002023Q2
4阿里巴巴找黄金宝箱前缀和2002023Q2
5选修课数据结构1002023Q2
6五子棋迷逻辑分析1002023Q2
7代表团坐车动态规划1002023Q2
8座位调整逻辑分析1002023Q2
9食堂供餐二分法1002023Q2
10寻找最大价值的矿堆DFS1002023Q2
11最长公共后缀逻辑分析1002023Q2
12模拟消息队列逻辑分析1002023Q2
13比赛数据结构1002023Q2
14告警抑制逻辑分析1002023Q2
15报文重排序字符串处理1002023Q2
16字符串摘要字符串处理1002023Q2
17稀疏矩阵逻辑分析1002023Q2
18AI 识别面板数据结构1002023Q2
19报文回路数据结构1002023Q2
20阿里巴巴找黄金宝箱 II数据结构1002023Q2
21阿里巴巴找黄金宝箱 III数据结构1002023Q2
22阿里巴巴找黄金宝箱 IV单调栈2002023Q2
23文件目录大小DFS1002023Q2
24组装最大可靠性设备动态规划2002023Q2
25找出两个整数数组中同时出现的整数数据结构1002023Q2
26通过软盘拷贝文件动态规划2002023Q2
27代码编辑器逻辑分析2002023Q2
28数据分类进制问题1002023Q2
29恢复数字序列滑动窗口1002023Q2
30阿里巴巴找黄金宝箱 V滑动窗口1002023Q2
31比赛的冠亚季军排序算法1002023Q2
32数字游戏逻辑分析1002023Q2
33经典屏保逻辑分析1002023Q2
34字符串化繁为简字符串处理2002023Q2
35数据最节约的备份方法二分法1002023Q2
36跳格子2逻辑分析1002023Q2
37跳房子2数据结构2002023Q2
38支持优先级的队列数据结构1002023Q2
39乘坐保密电梯回溯法1002023Q2
40计算最接近的数逻辑分析1002023Q2
41人气最高的店铺逻辑分析1002023Q2
42战场索敌DFS2002023Q2
43二维伞的雨滴效应二叉树1002023Q2
44跳房子I数据结构1002023Q2
45分割数组的最大差值逻辑分析1002023Q2
46生日礼物二分法1002023Q2
47求最小步数逻辑分析1002023Q2
48拔河比赛数据结构1002023Q2
49评论转换输出递归法2002023Q2
50树状结构查询数据结构2002023Q2
51不开心的小朋友逻辑分析2002023Q2
52数字序列比大小逻辑分析2002023Q2
53符合要求的元组个数 / K 数之和回溯法1002023Q2
54最小循环子数组KMP算法2002023Q2
55金字塔 / 微商的收入数据结构1002023Q2
56矩阵元素边界值字符串处理1002023Q2
57MELON的难题动态规划2002023Q2
58矩阵中非1的元素个数BFS2002023Q2
59计算误码率逻辑分析2002023Q2
60增强的strstr正则匹配1002023Q2
61关联子串字符串处理1002023Q2
62计算礼品发放的最小分组数目双指针1002023Q2
63字符匹配正则匹配1002023Q2
64最小传输时延I Dijkstra算法2002023Q2
65一种字符串压缩表示的解压正则匹配1002023Q2
66冠亚军排名排序方法1002023Q2
67报数游戏逻辑分析1002023Q2
68找出经过特定点的路径长度逻辑分析1002023Q2
69按单词下标区间翻转文章内容字符串处理1002023Q2
70数列描述逻辑分析1002023Q2
71字符串筛选排序排序方法1002023Q2
72相对开音节正则匹配1002023Q2
73字符串变换最小字符串字符串处理1002023Q2
74VLAN资源池数据结构1002023Q2
75拼接URL字符串处理1002023Q2
76执行时长/GPU算力逻辑分析1002023Q2
77荒岛求生数据结构2002023Q3
78查字典字符串处理1002023Q3
79周末爬山BFS2002023Q3
80最小数字排序方法1002023Q3
81最长的元音子串字符串处理1002023Q3
82TLV解析II数据结构1002023Q3
83玩牌高手逻辑分析2002023Q3
84最长连续子序列滑动窗口1002023Q3
85路灯照明II区间合并1002023Q3
86最多团队排序方法1002023Q3
87最长的顺子数据结构1002023Q3
88数字最低位排序排序方法1002023Q3
89整数编码字符串处理1002023Q3
90找车位逻辑分析1002023Q3
91选举拉票线段树2002023Q3
92单词加密字符串处理1002023Q3
93购物优先级队列2002023Q3
94最佳的出牌方法逻辑分析2002023Q3
95字符串划分数据结构1002023Q3
96洞穴探险字符串处理1002023Q3
97最大岛屿体积BFS1002023Q3
98DNA序列滑动窗口1002023Q3
99服务启动DFS1002023Q3
100最长公共前缀字符串处理1002023Q3
101查找舆情热词数据结构1002023Q3
102排队游戏二分法2002023Q4
103BOSS的收入数据结构1002023Q4
104猴子吃桃二分法1002023Q4
105滑动窗口最大值滑动窗口1002023Q4
106全排列数学问题1002023Q4
107编码能力提升计划逻辑处理2002023Q4
108水果摊小买卖贪心算法1002023Q4
109正整数到excel编号的转换进制转换1002023Q4
110反转每对括号间的子串数据结构1002023Q4
111模拟工作队列数据结构2002023Q4
112删除字符串中出现次数最少的字符字符串处理1002023Q4

2023Q2B卷 旧题目

序号题目分值
1德州扑克200
2字符串子序列 II100
3分苹果100
4事件推送100
5路灯照明100
6补活未成活胡杨100
7统计射击比赛成绩100
8高矮个子排队200
9非严格递增连续数字序列100
10最大股票收益200
11找朋友200
12单词重量100
13跳格子游戏200
14篮球比赛200
15勾股数元组200
16太阳能板最大面积100
17整数对最小和100
18最小传输时延200
19热点网站统计200
20数大雁100
21最长广播效应200
22快递运输100
23打印任务排序200
24高效的任务规划200
25乱序整数序列两数之和绝对值最小100
26没有回文串200
27喊七游戏100
28最少面试官200
29报文解压缩200
30服务失效判断200
31跳格子200
32任务最优调度200
33最长子字符串的长度100
34翻牌求最大分100
35快速人名查找100
36寻找相同子串100
37城市聚集度200
38计算最大乘积100
39磁盘容量排序100
40符合要求的结对方式100
41数组拼接100
42出错的或电路200
43分积木200
44解密犯罪时间200
45仿 LISP 运算200
46九宫格按键输入法200
47书籍叠放200
48移除K位数字后的最小数200
49导师请吃火锅200
50最长连续方波信号200
51最长的指定瑕疵度的元音子串200
52数字反转打印100
53求字符串中所有整数的最小和100
54转骰子200
55可以组成网络的服务器200
56区间交集200
57分月饼200
58树形目录删除200
59发广播200
60简易内存池200
61最大社交距离200
62机器人走迷宫200
63学生方阵200
64堆栈中的剩余数字200
65贪吃蛇200
66组成最大数200
67单词搜索/找到它200
68找单词200
69竖直四子棋200
70信道分配200
71数字排列200
72猜密码200
73字符串比较200
74数组二叉树200
75图像物体的边界200
76N进制减法200
77斗地主之顺子200
78计算疫情扩散时间200
79考古问题200
80连续出牌数量200
81矩形相交面积200
82求满足条件的最长子串的长度200
83欢乐的周末200
84二叉树中序遍历200
85最远足迹100
86运维日志排序100
87观看文艺汇演问题 / 计算最多能看几场演出100
88GPU算力 / 执行时长100
89水仙花数100
90用连续自然数之和来表达整数100
91水仙花数II(字符串分割)100
92考勤信息100
93英文输入法100
94找终点100
95字符串中找到连续最长数字串100
96We Are A Team100
97免单统计100
98流水线调度100
99小朋友排队100
100查找接口成功率最优时间段100
101数字字符串组合倒序100
102密钥格式化100
103全量和已占用字符集100
104数字涂色100
105分糖果100
106字符串序列判定100
107数组连续和100
108字符串排序100
109数据分类100
110污染水域200
111TLV解析I100
112迷宫问题100
113求解连续序列100
114矩阵最大值100
115表达式括号匹配100
116最大括号深度100
117输出指定字母在字符串中的索引100
118找到比自己强的人 / 师徒关系100
119内存资源分配100
120完全二叉树非叶子部分后序遍历100
121敏感字段加密100
122IPv4地址转换为整数100
123正方形数量200
124消消乐游戏 / 字符串消除100
125判断一组不等式是否满足约束并输出最大差100
126最少交换次数100
127叠积木200
128单词接龙100
129查找中位数及众数100
130猴子爬山100
131约瑟夫问题100
132最大矩阵和200
133火星文计算100
134统计文本数量100
135采样过滤200
136素数之积100
137批量处理任务100
138最大时间100
139绘图机器 / 计算面积100
140连续字母长度100
141停车场车辆统计100
142数组去重和排序100
143用户调度问题100
144工号不够用了怎么办100
145字符串加密100
146最大N个数与最小N个数的和100
147靠谱的车100
1485键键盘100
149分班问题100
150最大花费金额100

OD统一考试【A卷】题库

序号题目分值时间
1最大化控制资源成本2002022.Q4
2完美走位1002022.Q4
3羊、狼、农夫过河2002022.Q4
4字符串重新排列1002022.Q4
5租车骑绿岛1002022.Q4
6无向图染色1002022.Q4
7单向链表中间节点1002022.Q4
8等和子数组最小和2002022.Q4
9最多颜色的车辆1002022.Q4
10不含101的数1002022.Q4
11过滤组合字符串2002022.Q4
12真正的密码1002022.Q4
13最小调整顺序次数1002022.Q4
14探索地块建立2002022.Q4
15模拟商场优惠打折1002022.Q4
16区间覆盖2002022.Q4
17二元组个数1002022.Q4
18最大平分数组2002022.Q4
19连接器问题2002022.Q4
20打印机队列1002022.Q4
21处理器问题1002022.Q4
22日志首次上报最多积分1002022.Q4
23简单的自动曝光1002022.Q4
24获取最大软件版本号1002022.Q4
25二进制差异数2002022.Q4
26Excel单元格数值统计1002022.Q4
27相同数字的积木游戏1002022.Q4
28开放日活动1002022.Q4
29投篮大赛1002022.Q4
30开心消消乐2002022.Q4
31通信误码1002022.Q4
32最大报酬1002022.Q4
33机器人1002022.Q4
34新学校选址2002022.Q4
35寻找路径1002022.Q4
36任务调度1002022.Q4
37匿名信1002022.Q4
38密室逃生游戏1002022.Q4
39快递业务站1002022.Q4
40对称美学1002022.Q4
41箱子之字形摆放1002022.Q4
42数组合并1002022.Q4
43挑选字符串1002022.Q4
44优选核酸检测点2002022.Q4
45最短木板长度1002022.Q4
46最多获得的短信条数1002022.Q4
47星际篮球争霸赛1002022.Q4
48最左侧冗余覆盖子串1002022.Q4
49端口合并1002022.Q4
50最大利润1002022.Q4
51最长的密码1002022.Q4
52计算数组中心位置1002022.Q4
53积木最远距离1002022.Q4
54区间交叠问题1002022.Q4
55整理扑克牌1002022.Q4
56分奖金2002022.Q4
57计算快递业务主站点2002022.Q4
58去除多余空格2002022.Q4
59最差产品奖2002022.Q4
60最多等和不相交连续子序列1002022.Q4
61货币单位换算1002022.Q4
62查找单入口空闲区域1002022.Q4
63预定酒店1002022.Q4
64基站维护最短距离2002022.Q4
65士兵过河2002022.Q4
66查找二叉树节点2002022.Q4
67硬件产品销售方案1002022.Q4
68核酸最快检测效率2002022.Q4
69计算网络信号2002022.Q4
70异常的打卡记录1002022.Q4
71删除重复数字后的最大数字2002022.Q4
72字符串解密1002022.Q4
73找等值元素1002022.Q4
74任务总执行时长1002022.Q4
75水库蓄水问题2002022.Q4
76单词倒序1002022.Q4
77找出重复代码1002022.Q4
78优雅子数组2002022.Q4
79数字加减游戏1002022.Q4
80猜字谜1002022.Q4
81农场施肥1002022.Q4
82组装新的数组2002022.Q4
83快速开租建站1002022.Q4
84统计友好度最大值1002022.Q4
85荒地建设电站2002022.Q4
86区块链文件转储系统1002022.Q4
87新词挖掘1002022.Q4
88查找充电设备组合1002022.Q4
89上班之路2002022.Q4
90简单的解压缩算法2002022.Q4
91最优高铁城市修建方案2002022.Q4
92垃圾短信识别2002022.Q4
93机房布局1002022.Q4
94静态扫描1002022.Q4
95快递投放问题1002022.Q4
96优秀学员统计2002022.Q4
97人数最多的站点/小火车人数最多所在站点1002022.Q4
98寻找相似单词1002022.Q4
99严格递增字符串1002022.Q4
100微服务的集成测试2002022.Q4
101组合出合法最小数1002022.Q4
102信号发射与接收2002022.Q4
103Linux发行版数量1002022.Q4
104九宫格游戏 / 三阶积幻方1002023.Q1
105模拟商场优惠打折II1002022.Q4
106日志限流1002022.Q4
107最优芯片资源占用1002022.Q4
108工单调度策略1002022.Q4
109统一限载最小值1002023.Q1
110服务中心选址2002023.Q1
112实力差距最小总和2002023.Q1
113最多组合直角三角形个数2002023.Q1
114几何平均值最大子数组1002023.Q1
115构建二叉树2002023.Q1
116最长回文子串1002023.Q1
117大炮攻城2002023.Q1
118检测热点字符1002023.Q1
119数组限制数1002023.Q1
120银行插队1002023.Q1
121称砝码2002023.Q1
122高速公路休息站充电规划1002023.Q2
123超级玛丽过吊桥1002023.Q2
124相同数字组成图形的周长2002023.Q2
125响应报文时间1002023.Q1
126带传送阵的矩阵游离2002023.Q1
127猜数字2002023.Q1
128西天取经2002023.Q1
129购买水果最便宜的方案1002023.Q1
130机智的外卖员1002023.Q1
131新员工考试1002023.Q1
132幻方修复1002023.Q1
133天然货仓1002023.Q1
134
135
136

        2022.10.01 目标:在12月更新到200题。

        每个季度出新题都会更新到这个专栏里。

        最后,好好刷题,好好生活~

1. 虚函数是可以[New一个对象的时候要根据虚函数的函数体来填虚表;而内联函数没有函数体,只是在预编译阶段展开]内联的,这样就可以减少函数调用的开销,提高效率(错误) 2. 一个类里可以同时存在[同一个类里无论什么函数都不能函数名和参数完全一样]参数和函数名都相同的虚函数与静态函数(错误) 3. 父类的析构函数是非虚的,但是子类的析构函数是虚的,delete子类指针(指向该子类对象)[特殊情况,参见题5],会调用父类的析构函数(正确)//任何情况下删除子类都会调用到父类的析构函数 4.对于下面的类CA,sizeof(CA) = _B_: A. 4 B. 8 C. 12 D. 16 class CA { public: CA(); virtual ~CA(); //因为有虚函数,所以会有4个字节的虚表指针 private: int m_iTime; //成员变量4个字节 public: int GetTime(); int SetTime(int iTime); }; 5.下面这段程序,打印结果是_A_: A. 1 B. 2 C. 3 D. 以上都不对 int g_iCount = 0; class CParent { public: CParent() {} ~CParent() {g_iCount += 1;} }; class CSon : public CParent { public: CSon() {} ~CSon() {g_iCount += 2;} }; main() { CParent* p = new CSon(); delete p[由于p被声明成父类指针,并且父类和子类的析构函数都非虚,因此delete操作只能根据p指针声明的类型来调用父类的析构函数]; std::cout << g_iCount << std::endl; } 6.请问下面这段程序的输出结果是_A_: A. 2,1, B. 2,2, C. 1,1, D. 1,2, class CParent { public: CParent() {} virtual ~CParent() {} public: virtual void Print() { std::cout << "1,"; }; }; class CSon : public CParent { public: CSon() {}; virtual ~CSon() {}; public: void Print() { std::cout << "2,"; }; }; void Test1(CParent& oParent[这里是引用了一个外部对象,该对象的虚表不会发生变化]) {oParent.Print();} void Test2(CParent oParent[这里会在栈空间内重新构造一个CParent类的对象,如果传入实参的类型与CParent不同则虚表会发生变化]) {oParent.Print();} main() { CSon * p = new CSon(); Test1(*p); //这里只是一个引用 Test2(*p); //这里会在栈空间重新构造Cparent类对象 delete p; } 7.请问下面这段程序的输出结果是_D_: A. 2,1, B. 2,2, C. 1,1, D. 1,2, class CParent { public: CParent() {} virtual ~CParent() {} public: void Print(){ std::cout << "1," ; }; }; class CSon : public CParent { public: CSon() {} virtual ~CSon() {} public: void Print(){ std::cout << "2,"; }; }; main() { CSon oSon; CParent * pParent = &oSon; CSon * pSon = &oSon; pParent->Print(); pSon->Print();[由于父类和子类的Print函数都非虚,所以根据指针类型决定调用关系] } 8.请问下面这段程序的输出结果是_C_: A. 2,1, B. 2,2, C. 1,2, D. 1,1, class CParent { public: CParent() {Print();} virtual ~CParent() {} public: virtual void Print(){ std::cout << "1,"; } }; class CSon : public CParent { public: CSon() {Print();} virtual ~CSon() {} public: void Print(){ std::cout << "2,"; } }; main() { CParent * pParent = new CSon()[类的构造过程遵循压栈原则,构造过程中虚表尚未建立成功,是静态调用虚函数]; delete pParent; } 9.请问下面这段程序的输出结果是_D_: A. 2,2, B. 2, C. 输出结果不确定 D. 以上都不对 class CParent { public: CParent() {Print();[构造子类对象时调用到父类的构造函数,但父类的Print函数是纯虚的,没有实现,所以这里的调用不成功,编译会出错]} virtual ~CParent() {} public: virtual void Print() = 0; }; class CSon : public CParent { public: CSon() {Print();} virtual ~CSon() {} public: void Print() { std::cout << "2,"; }; }; main() { CParent * pParent = new CSon(); delete pParent; } 10.请仔细阅读以下程序: class Base { public: virtual bool operator == (int iValue) { std::cout << "I am Base class !" << std::endl; return true; } virtual ~Base(){} }; class Derive: public Base { public: virtual bool operator == (int iValue) { std::cout << "I am Derive class !" << std::endl; return true; } virtual ~Derive(){} }; int main() { Derive derive; Base* pBase = &derive; Derive* pDerive = &derive; *pBase == 0; *pDerive == 0;[重载操作符声明为virtual使操作符产生多态性] return 0; } 程序的输出结果是_B_: A、I am Base class ! I am base class ! B、I am Derive class ! I am Derive class ! C、I am base class ! I am Derive class ! D、I am Derive class ! I am Base class !
1.static有什么用途?(请至少说明两种) 1)在函数体,一个被声明为静态的变量在这一函数被调用过程中维持其值不变。 2) 在模块内(但在函数体外),一个被声明为静态的变量可以被模块内所用函数访问,但不能被模块外其它函数访问。它是一个本地的全局变量。 3) 在模块内,一个被声明为静态的函数只可被这一模块内的其它函数调用。那就是,这个函数被限制在声明它的模块的本地范围内使用 2.引用与指针有什么区别? 1) 引用必须被初始化,指针不必。 2) 引用初始化以后不能被改变,指针可以改变所指的对象。 3) 不存在指向空值的引用,但是存在指向空值的指针。 3.描述实时系统的基本特性 在特定时间内完成特定的任务,实时性与可靠性。 4.全局变量和局部变量在内存中是否有区别?如果有,是什么区别? 全局变量储存在静态数据库,局部变量在堆栈。 5.什么是平衡二叉树? 左右子树都是平衡二叉树 且左右子树的深度差值的绝对值不大于1。 6.堆栈溢出一般是由什么原因导致的? 没有回收垃圾资源。 7.什么函数不能声明为虚函数? constructor函数不能声明为虚函数。 8.冒泡排序算法的时间复杂度是什么? 时间复杂度是O(n^2)。 9.写出float x 与“零值”比较的if语句。 if(x>0.000001&&x<-0.000001) 10.Internet采用哪种网络协议?该协议的主要层次结构? Tcp/Ip协议 主要层次结构为: 应用层/传输层/网络层/数据链路层/物理层。 11.Internet物理地址和IP地址转换采用什么协议? ARP (Address Resolution Protocol)(地址解析協議) 12.IP地址的编码分为哪俩部分? IP地址由两部分组成,网络号和主机号。不过是要和“子网掩码”按位与上之后才能区分哪些是网络位哪些是主机位。 13.用户输入M,N值,从1至N开始顺序循环数数,每数到M输出该数值,直至全部输出。写出C程序。 循环链表,用取余操作做 14.不能做switch()的参数类型是: switch的参数不能为实型。 1.写出判断ABCD四个表达式的是否正确, 若正确, 写出经过表达式中 a的值(3分) int a = 4; (A)a += (a++); (B) a += (++a) ;(C) (a++) += a;(D) (++a) += (a++); a = ? 答:C错误,左侧不是一个有效变量,不能赋值,可改为(++a) += a; 改后答案依次为9,10,10,11 2.某32位系统下, C++程序,请计算sizeof 的值(5分). char str[] = “http://www.ibegroup.com/” char *p = str ; int n = 10; 请计算 sizeof (str ) = ?(1) sizeof ( p ) = ?(2) sizeof ( n ) = ?(3) void Foo ( char str[100]){ 请计算 sizeof( str ) = ?(4) } void *p = malloc( 100 ); 请计算 sizeof ( p ) = ?(5) 答:(1)17 (2)4 (3) 4 (4)4 (5)4 3. 回答下面的问题. (4分) (1).头文件中的 ifndef/define/endif 干什么用?预处理 答:防止头文件被重复引用 (2). #i nclude 和 #i nclude “filename.h” 有什么区别? 答:前者用来包含开发环境提供的库头文件,后者用来包含自己编写的头文件。 (3).在C++ 程序中调用被 C 编译器编译后的函数,为什么要加 extern “C”声明? 答:函数和变量被C++编译后在符号库中的名字与C语言的不同,被extern "C"修饰的变 量和函数是按照C语言方式编译和连接的。由于编译后的名字不同,C++程序不能直接调 用C 函数。C++提供了一个C 连接交换指定符号extern“C”来解决这个问题。 (4). switch()中不允许的数据类型是? 答:实型 4. 回答下面的问题(6分) (1).Void GetMemory(char **p, int num){ *p = (char *)malloc(num); } void Test(void){ char *str = NULL; GetMemory(&str, 100); strcpy(str, "hello"); printf(str); } 请问运行Test 函数会有什么样的结果? 答:输出“hello” (2). void Test(void){ char *str = (char *) malloc(100); strcpy(str, “hello”); free(str); if(str != NULL){ strcpy(str, “world”); printf(str); } } 请问运行Test 函数会有什么样的结果? 答:输出“world” (3). char *GetMemory(void){ char p[] = "hello world"; return p; } void Test(void){ char *str = NULL; str = GetMemory(); printf(str); } 请问运行Test 函数会有什么样的结果? 答:无效的指针,输出不确定 5. 编写strcat函数(6分) 已知strcat函数的原型是char *strcat (char *strDest, const char *strSrc); 其中strDest 是目的字符串,strSrc 是源字符串。 (1)不调用C++/C 的字符串库函数,请编写函数 strcat 答: VC源码: char * __cdecl strcat (char * dst, const char * src) { char * cp = dst; while( *cp ) cp++; /* find end of dst */ while( *cp++ = *src++ ) ; /* Copy src to end of dst */ return( dst ); /* return dst */ } (2)strcat能把strSrc 的内容连接到strDest,为什么还要char * 类型的返回值? 答:方便赋值给其他变量 6.MFC中CString是类型安全类么? 答:不是,其它数据类型转换到CString可以使用CString的成员函数Format来转换 7.C++中为什么用模板类。 答:(1)可用来创建动态增长和减小的数据结构 (2)它是类型无关的,因此具有很高的可复用性。 (3)它在编译时而不是运行时检查数据类型,保证了类型安全 (4)它是平台无关的,可移植性 (5)可用于基本数据类型 8.CSingleLock是干什么的。 答:同步多个线程对一个数据类的同时访问 9.NEWTEXTMETRIC 是什么。 答:物理字体结构,用来设置字体的高宽大小 10.程序什么时候应该使用线程,什么时候单线程效率高。 答:1.耗时的操作使用线程,提高应用程序响应 2.并行操作时使用线程,如C/S架构的服务器端并发线程响应用户的请求。 3.多CPU系统中,使用线程提高CPU利用率 4.改善程序结构。一个既长又复杂的进程可以虑分为多个线程,成为几个独立或半独 立的运行部分,这样的程序会利于理解和修改。 其他情况都使用单线程。 11.Windows是内核级线程么。 答:见下一题 12.Linux有内核级线程么。 答:线程通常被定义为一个进程中代码的不同执行路线。从实现方式上划分,线程有两 种类型:“用户级线程”和“内核级线程”。 用户线程指不需要内核支持而在用户程序 中实现的线程,其不依赖于操作系统核心,应用进程利用线程库提供创建、同步、调度 和管理线程的函数来控制用户线程。这种线程甚至在象 DOS 这样的操作系统中也可实现 ,但线程的调度需要用户程序完成,这有些类似 Windows 3.x 的协作式多任务。另外一 种则需要内核的参与,由内核完成线程的调度。其依赖于操作系统核心,由内核的内部 需求进行创建和撤销,这两种模型各有其好处和缺点。用户线程不需要额外的内核开支 ,并且用户态线程的实现方式可以被定制或修改以适应特殊应用的要求,但是当一个线 程因 I/O 而处于等待状态时,整个进程就会被调度程序切换为等待状态,其他线程得不 到运行的机会;而内核线程则没有各个限制,有利于发挥多处理器的并发优势,但却占 用了更多的系统开支。 Windows NT和OS/2支持内核线程。Linux 支持内核级的多线程 13.C++中什么数据分配在栈或堆中,New分配数据是在近堆还是远堆中? 答:栈: 存放局部变量,函数调用参数,函数返回值,函数返回地址。由系统管理 堆: 程序运行时动态申请,new 和 malloc申请的内存就在堆上 14.使用线程是如何防止出现大的波峰。 答:意思是如何防止同时产生大量的线程,方法是使用线程池,线程池具有可以同时提 高调度效率和限制资源使用的好处,线程池中的线程达到最大数时,其他线程就会排队 等候。 15函数模板与类模板有什么区别? 答:函数模板的实例化是由编译程序在处理函数调用时自动完成的,而类模板的实例化 必须由程序员在程序中显式地指定。 16一般数据库若出现日志满了,会出现什么情况,是否还能使用? 答:只能执行查询等读操作,不能执行更改,备份等写操作,原因是任何写操作都要记 录日志。也就是说基本上处于不能使用的状态。 17 SQL Server是否支持行级锁,有什么好处? 答:支持,设立封锁机制主要是为了对并发操作进行控制,对干扰进行封锁,保证数据 的一致性和准确性,行级封锁确保在用户取得被更新的行到该行进行更新这段时间内不 被其它用户所修改。因而行级锁即可保证数据的一致性又能提高数据操作的迸发性。 18如果数据库满了会出现什么情况,是否还能使用? 答:见16 19 关于内存对齐的问题以及sizof()的输出 答:编译器自动对齐的原因:为了提高程序的性能,数据结构(尤其是栈)应该尽可能 地在自然边界上对齐。原因在于,为了访问未对齐的内存,处理器需要作两次内存访问 ;然而,对齐的内存访问仅需要一次访问。 20 int i=10, j=10, k=3; k*=i+j; k最后的值是? 答:60,此题察优先级,实际写成: k*=(i+j);,赋值运算符优先级最低 21.对数据库的一张表进行操作,同时要对另一张表进行操作,如何实现? 答:将操作多个表的操作放入到事务中进行处理 22.TCP/IP 建立连接的过程?(3-way shake) 答:在TCP/IP协议中,TCP协议提供可靠的连接服务,采用三次握手建立一个连接。   第一次握手:建立连接时,客户端发送syn包(syn=j)到服务器,并进入SYN_SEND状 态,等待服务器确认; 第二次握手:服务器收到syn包,必须确认客户的SYN(ack=j+1),同时自己也发送一个 SYN包(syn=k),即SYN+ACK包,此时服务器进入SYN_RECV状态;   第三次握手:客户端收到服务器的SYN+ACK包,向服务器发送确认包ACK(ack=k+1) ,此包发送完毕,客户端和服务器进入ESTABLISHED状态,完成三次握手。 23.ICMP是什么协议,处于哪一层? 答:Internet控制报文协议,处于网络层(IP层) 24.触发器怎么工作的? 答:触发器主要是通过事件进行触发而被执行的,当对某一表进行诸如UPDATE、 INSERT 、 DELETE 这些操作时,数据库就会自动执行触发器所定义的SQL 语句,从而确保对数 据的处理必须符合由这些SQL 语句所定义的规则。 25.winsock建立连接的主要实现步骤? 答:服务器端:socker()建立套接字,绑定(bind)并监听(listen),用accept() 等待客户端连接。 客户端:socker()建立套接字,连接(connect)服务器,连接上后使用send()和recv( ),在套接字上写读数据,直至数据交换完毕,closesocket()关闭套接字。 服务器端:accept()发现有客户端连接,建立一个新的套接字,自身重新开始等待连 接。该新产生的套接字使用send()和recv()写读数据,直至数据交换完毕,closesock et()关闭套接字。 26.动态连接库的两种方式? 答:调用一个DLL中的函数有两种方法: 1.载入时动态链接(load-time dynamic linking),模块非常明确调用某个导出函数 ,使得他们就像本地函数一样。这需要链接时链接那些函数所在DLL的导入库,导入库向 系统提供了载入DLL时所需的信息及DLL函数定位。 2.运行时动态链接(run-time dynamic linking),运行时可以通过LoadLibrary或Loa dLibraryEx函数载入DLL。DLL载入后,模块可以通过调用GetProcAddress获取DLL函数的 出口地址,然后就可以通过返回的函数指针调用DLL函数了。如此即可避免导入库文件了 。 27.IP组播有那些好处? 答:Internet上产生的许多新的应用,特别是高带宽的多媒体应用,带来了带宽的急剧 消耗和网络拥挤问题。组播是一种允许一个或多个发送者(组播源)发送单一的数据包 到多个接收者(一次的,同时的)的网络技术。组播可以大大的节省网络带宽,因为无 论有多少个目标地址,在整个网络的任何一条链路上只传送单一的数据包。所以说组播 技术的核心就是针对如何节约网络资源的前提下保证服务质量。
华为OD机试华为公司的在线笔试平台,用于选拔人才。根据题库的不同版本,2023年A、B版本的真题目录大致如下: 点分类: 1. 数据结构算法:包括数组、链表、栈、队列、树、图、排序算法、查找算法等。 2. 编程语言:主要C++或Java语言的基础知识,包括语法、数据类型、运算符、流程控制等。 3. 计算机网络:主要察网络基础知识,包括HTTP、TCP/IP协议、网络安全等。 4. 操作系统:主要察操作系统的基础知识,包括进程管理、内存管理、文件系统等。 5. 数据库:主要察数据库基础知识,包括SQL语句的编写、数据库设计等。 6. 算法设计与分析:主要算法的设计思路和复杂度分析能力。 7. 编程综合能力:主要察应聘者的编程能力和解决问题的能力,题目可能是一些综合性的编程题目。 在线OJ入口: 华为OD机试一般提供在线提交代码的平台,应聘者需要在平台上注册账号,并按照要求进行代码的提交与运行。具体的OJ入口链接将根据试安排提供给应聘者,一般将在笔试前一段时间内向应聘者发送相关信息。 在进行华为OD机试的过程中,应聘者可以根据真题目录中的点分类进行有针对性的复习和准备,熟悉相关知识点,并通过刷题进行练习来提高自己的编程能力和解题能力。希望以上信息能对您有所帮助。
评论 101
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

MISAYAONE

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值