计算机笔试真题汇总CC++篇.docx
- 文档编号:6069601
- 上传时间:2023-01-03
- 格式:DOCX
- 页数:10
- 大小:19.91KB
计算机笔试真题汇总CC++篇.docx
《计算机笔试真题汇总CC++篇.docx》由会员分享,可在线阅读,更多相关《计算机笔试真题汇总CC++篇.docx(10页珍藏版)》请在冰豆网上搜索。
计算机笔试真题汇总CC++篇
计算机笔试真题汇总:
C,C++篇
计算机笔试真题汇总:
C/C++篇一、基础知识专项练习
1、派生类对象可以访问基类成员中的()?
(点击查看答案>>>>>>>>)
A、公有继承的私有成员
B、私有继承的公有成员
C、公有继承的保护成员
D、以上都错
2、下列关于多态性说法不正确的是()。
(点击查看答案>>>>>>>>)
A、多态性是指同名函数对应多种不同的实现
B、重载方式仅有函数重载
C、重载方式包含函数重载和运算符重载
D、多态性表现为静态和动态两种方式
3、下列哪项不属于C++的基本数据类型?
()(点击查看答案>>>>>>>>)
A、wideB、charC、bool
4、以下选项如果可以初始化正确,那么就会初始化正确,那么以下哪种语法在C++中初始化以后编译会错误?
其中X为一C++类()(点击查看答案>>>>)
A、constX*x
B、Xconst*x
C、constXconst*x
D、X*constx
5、下面哪一个不是动态链接库的优点?
()(点击查看答案>>>>>>>>)
A、共享B、装载速度快C、开发模式好D、减少页面交换6、以下函数中,和其他函数不属于一类的是____。
(点击查看答案>>>>>>>)
A、fwriteB、putcC、pwrite
D、putcharE、getlineF、scanf
7、下列关于模板的说法正确的是()(点击查看答案>>>>>>>>)
A、模板的实参在任何时候都可以省略
B、类模板与模板类所指的是同一概念
C、类模板的参数必须是虚拟类型的
D、类模板中的成员函数全部都是模板函数
8、STL中的一级容器有:
()(点击查看答案>>>>>>>>)
A、vector,deque,list,set,multiset,map,multimap
B、序列容器,关联容器,容器适配器
C、set,multiset,map,multimap
D、vector,deque,list
9、重复多次fclose一个打开过一次的FILE*fp指针会有什么结果?
()(点击查看答案>>>>>>>>>>>>)
A、导致文件描述符结构中指针指向的内存被重复释放,进而导致一些不可预期的异常
B、不会出现异常,释放一个已经释放的指针,系统会自动忽略
C、运行异常
D、以上答案都不正确
10、若有定义int(*pt)[3];则下列说法正确的是:
()
(点击查看答案>>>>>>>>)
A、定义了基类型为int的三个指针变量
B、定义了基类型为int的具有三个元素的指针数组pt
C、定义了一个名为*pt、具有三个元素的整形数组
D、定义了一个名为pt的指针变量,它可以指向每行有三个整数元素的二维数组
更多专项练习题目
二、经典编程试题汇总
1、二维数组中的查找(点击实战练习
>>>>>>>>>>>>
)
题目描述:
在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。
请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。
classSolution{
public:
boolFind(inttarget,vector>array){}};
2、替换空格(点击实战练习>>>>>>>>>>>>)
题目描述:
请实现一个函数,将一个字符串中的空格替换成“%20”。
例如,当字符串为WeAreHappy.则经过替换之后的字符串为We%20Are%20Happy。
3
题目描述:
输入一个链表,从尾到头打印链表每个节点的值。
/***structListNode{*intval;*structListNode*next;*ListNode(intx):
*val(x),next(NULL){*}*};*/classSolution{public:
vectorprintListFromTailToHead(ListNode*head){}};
4、重建二叉树(点击实战练习>>>>>>>>>>>>)
题目描述:
输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。
假设输入的前序遍历和中序遍历的结果中都不含重复的数字。
例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5,3,8,6},则重建二叉树并返回。
/***Definitionforbinarytree*structTreeNode{*intval;*TreeNode*left;*TreeNode*right;*TreeNode(intx):
val(x),left(NULL),right(NULL){}*};*/classSolution{public:
TreeNode*reConstructBinaryTree(vectorpre,vectorvin){
}
};
5、用两个栈实现队列(点击实战练习>>>>>>>>>>>>)
题目描述:
用两个栈来实现一个队列,完成队列的Push和Pop操作。
队列中的元素为int类型。
classSolution
{
public:
voidpush(intnode){
}
intpop(){
}
private:
stackstack1;
stackstack2;
};
6、二叉树的镜像(点击实战练习>>>>>>>>>>>>)
题目描述:
操作给定的二叉树,将其变换为源二叉树的镜像。
/*
structTreeNode{
intval;
structTreeNode*left;
structTreeNode*right;
TreeNode(intx):
val(x),left(NULL),right(NULL){
}
};*/
classSolution{
public:
voidMirror(TreeNode*pRoot){
}
};
7、斐波那契数列(点击实战练习>>>>>>>>>>>>)
题目描述:
大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项。
n
classSolution{
public:
intFibonacci(intn){
}
};
8、数值的整数次方(点击实战练习>>>>>>>>>>>>)
题目描述:
给定一个double类型的浮点数base和int类型的整数exponent。
求base的exponent次方。
classSolution{
public:
doublePower(doublebase,intexponent){
}
};
9、旋转数组的最小数字(点击实战练习>>>>>>>>>>>>)
题目描述:
把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。
输入一个非递减排序的数组的一个旋转,输出旋转数组的最小元素。
例如数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋转,该数组的最小值为1。
NOTE:
给出的所有元素都大于0,若数组大小为0,请返回0。
classSolution{
public:
intminNumberInRotateArray(vectorrotateArray){
}
};
10、顺时针打印矩阵(点击实战练习>>>>>>>>>>>>)
题目描述:
输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字,例如,如果输入如下矩阵:
12345678910111213141516则依次打印出数字1,2,3,4,8,12,16,15,14,13,9,5,6,7,11,10.
classSolution{public:
vectorprintMatrix(vector>matrix){
}
};
更多经典编程练习
三、名企考试真题汇总
1
、(小米)小米
Git(点击实战练习
>>>>>>>>>>>>)
题目描述:
git是一种分布式代码管理工具,git通过树的形式记录文件的更改历史,比如:
base'
classSolution{public:
/***返回git树上两点的最近分割点**@parammatrix接邻矩阵,表示git树,matrix[i][j]=='1'当且仅当git树中第i个和第j个节点有连接,节点0为git树的跟节点*@paramindexA节点A的index*@paramindexB节点B的index*@return整型*/
intgetSplitNode(vectormatrix,intindexA,intindexB){
}
};
2(微软)NumericKeypad(点击实战练习>>>>>>>>>>>>)
题目描述:
Thenumberickeypadonyourmobilephonelookslikebelow:
123
456
789
supposeyouareholdingyourmobilephonewithsinglehand.Yourthumbpointsatdigit1.Eachtimeyoucan1)pressthedigityourthumbpointingat.2)moveyourthumbright,3)moveyourthumbdown.Movingyourthumbleftorupisnotallowed.
Byusingthenumerickeypadunderaboveconstrains,youcanproducesomenumberslike177or480whileproducingothernumberslike590or52isimpossible.
GivenanumberK,findoutthemaximumnumberlessthanorequaltoKthatcanbeproduced.
输入描述:
thefirstlinecontainsanintegerT,thenumberoftestcases.EachtestcaseoccupiesasinglelinewithanintegerK.
For50%ofthedata,1
For100%ofthedata,1
输出描述:
foreachtestcaseoutputoneline,themaximumnumberlessthanorequaltothecorrespondingKthatcanbeproduced.
3、(华为)最高分是多少(点击实战练习>>>>>>>>>>>>)
题目描述:
老师想知道从某某同学当中,分数最高的是多少,现在请你编程模拟老师的询问。
当然,老师有时候需要更新某位同学的成绩.
输入描述:
输入包括多组测试数据。
每组输入第一行是两个正整数N和M(0
学生ID编号从1编到N。
第二行包含N个整数,代表这N个学生的初始成绩,其中第i个数代表ID为i的学生的成绩
接下来又M行,每一行有一个字符C(只取‘Q’或‘U’),和两个正整数A,B,当C为'Q'的时候,表示这是一条询问操作,他询问ID从A到B(包括A,B)的
学生当中,成绩最高的是多少
当C为‘U’的时候,表示这是一条更新操作,要求把ID为A的学生的成绩更改为B。
输入描述:
对于每一次询问操作,在一行里面输出最高成绩.
4、(XX)罪犯转移(点击实战练习>>>>>>>>>>>>)
题目描述:
C市现在要转移一批罪犯到D市,C市有n名罪犯,按照入狱时间有顺序,另外每个罪犯有一个罪行值,值越大罪越重。
现在为了方便管理,市长决定转移入狱时间连续的c名犯人,同时要求转移犯人的罪行值之和不超过t,问有多少种选择的方式?
输入描述:
第一行数据三个整数:
n,t,c(1≤n≤2e5,0≤t≤1e9,1≤c≤n),第二行按入狱时间给出每个犯人的罪行值ai(0≤ai≤1e9)
输出描述:
一行输出答案。
5、(美团)直方图内最大矩形(点击实战练习>>>>>>>>>>>>)
题目描述:
有一个直方图,用一个整数数组表示,其中每列的宽度为1,求所给直方图包含的最大矩形面积。
比如,对于直方图[2,7,9,4],它所包含的最大矩形的面积为14(即[7,9]包涵的7x2的矩形)。
给定一个直方图A及它的总宽度n,请返回最大矩形面积。
保证直方图宽度小于等于500。
保证结果在int范围内。
classMaxInnerRec{
public:
intcountArea(vectorA,intn){
//writecodehere
}
};
6、(去哪儿)二分查找(点击实战练习>>>>>>>>>>>>)
题目描述:
对于一个有序数组,我们通常采用二分查找的方式来定位某一元素,请编写二分查找的算法,在数组中查找指定元素。
给定一个整数数组A及它的大小n,同时给定要查找的元素val,请返回它在数组中的位置(从0开始),若不存在该元素,返回-1。
若该元素出现多次,请返回第一次出现的位置。
classBinarySearch{
public:
intgetPos(vectorA,intn,intval){
//writecodehere
}
};
7、(京东)年终奖(点击实战练习>>>>>>>>>>>>)题目描述:
小东所在公司要发年终奖,而小东恰好获得了最高福利,他要在公司年会上参与一个抽奖游戏,游戏在一个6*6的棋盘上进行,上面放着36个价值不等的礼物,每个小的棋盘上面放置着一个礼物,他需要从左上角开始游戏,每次只能向下或者向右移动一步,到达右下角停止,一路上的格子里的礼物小东都能拿到,请设计一个算法使小东拿到价值最高的礼物。
给定一个6*6的矩阵board,其中每个元素为对应格子的礼物价值,左上角为[0,0],请返回能获得的最大价值,保证每个礼物价值大于100小于1000。
classBonus{
public:
intgetMost(vector>board){
//writecodehere
}
};
8、(腾讯)生成格雷码(点击实战练习>>>>>>>>>>>>)
题目描述:
在一组数的编码中,若任意两个相邻的代码只有一位二进制数不同,则称这种编码为格雷码(GrayCode),请编写一个函数,使用递归的方法生成N位的格雷码。
给定一个整数n,请返回n位的格雷码,顺序为从0开始。
classGrayCode{
public:
vectorgetGray(intn){
//writecodehere
}
};
9、(搜狗)火眼金睛(点击实战练习>>>>>>>>>>>>)
题目描述:
现在我们需要查出一些作弊的问答社区中的ID,作弊有两种:
1.A回答了B的问题,同时B回答了A的问题。
那么A和B都是作弊。
2.作弊ID用户A和作弊ID用户B同时回答了C的问题,那么C也是作弊。
已知每个用户的ID是一串数字,一个问题可能有多个人回答。
输入描述:
每组数据第一行为总问题数N(N小于等于200000),第二行开始每行一个问题,第一个数字为提问人ID,第二个数字为回答人数,后面则为所有回答人的ID。
(ID均为0-1000000的整数)
输出描述:
第一行为作弊ID数量,第二行开始为从小到大的每行一个作弊ID。
10、(网易)奖学金(点击实战练习>>>>>>>>>>>>)
题目描述:
小v今年有n门课,每门都有考试,为了拿到奖学金,小v必须让自己的平均成绩至少为avg。
每门课由平时成绩和考试成绩组成,满分为r。
现在他知道每门课的平时成绩为ai,若想让这门课的考试成绩多拿一分的话,小v要花bi的时间复习,不复习的话当然就是0分。
同时我们显然可以发现复习得再多也不会拿到超过满分的分数。
为了拿到奖学金,小v至少要花多少时间复习。
输入描述:
第一行三个整数n,r,avg(n大于等于1小于等于1e5,r大于等于1小于等
于1e9,avg大于等于1小于等于1e6),接下来n行,每行两个整数ai和bi,均小于等于1e6大于等于1
输出描述:
一行输出答案。
更多名企真题练习
牛客网,最大的程序员学习、备考、求职题库
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 笔试 汇总 CC