计算机笔试真题汇总:C,C++篇

计算机笔试真题汇总:C/C++篇 一、基础知识专项练习

1、派生类对象可以访问基类成员中的()?(点击查看答案>>>>>>>>)

A 、公有继承的私有成员

B 、私有继承的公有成员

C 、公有继承的保护成员

D 、以上都错

2、下列关于多态性说法不正确的是( )。(点击查看答案>>>>>>>>)

A 、多态性是指同名函数对应多种不同的实现

B 、重载方式仅有函数重载

C 、重载方式包含函数重载和运算符重载

D 、多态性表现为静态和动态两种方式

3、下列哪项不属于C++的基本数据类型?( )(点击查看答案>>>>>>>>)

A 、wide B、char C、bool

4、以下选项如果可以初始化正确, 那么就会初始化正确, 那么以下哪种语法在C++中初始化以后编译会错误?其中X 为一C++类( )(点击查看答案>>>>)

A 、const X * x

B 、X const* x

C 、const X const* x

D 、X *const x

5、下面哪一个不是动态链接库的优点?( )(点击查看答案>>>>>>>>)

A 、共享 B、装载速度快 C、开发模式好 D、减少页面交换 6、以下函数中,和其他函数不属于一类的是____。(点击查看答案>>>>>>>)

A 、fwrite B、putc C、pwrite

D 、putchar E、getline F、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、二维数组中的查找(点击实战练习

>>>>>>>>>>>>

题目描述:

在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。

class Solution {

public: bool Find(int target, vector> array) { } };

2、替换空格(点击实战练习>>>>>>>>>>>>)

题目描述:

请实现一个函数,将一个字符串中的空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。

3

题目描述:

输入一个链表,从尾到头打印链表每个节点的值。

/** * structListNode { * intval; * structListNode *next; * ListNode(int x) : * val(x), next(NULL) { * } * }; */ class Solution { public: vectorprintListFromTailToHead(ListNode* head) { } };

4、重建二叉树(点击实战练习>>>>>>>>>>>>)

题目描述:

输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5,3,8,6},则重建二叉树并返回。 /** * Definition for binary tree * structTreeNode { * intval; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(x), left(NULL), right(NULL) {} * }; */ class Solution { public: TreeNode* reConstructBinaryTree(vectorpre,vector vin) {

}

};

5、用两个栈实现队列(点击实战练习>>>>>>>>>>>>)

题目描述:

用两个栈来实现一个队列,完成队列的Push 和Pop 操作。 队列中的元素为int 类型。 class Solution

{

public:

void push(int node) {

}

int pop() {

}

private:

stack stack1;

stack stack2;

};

6、二叉树的镜像(点击实战练习>>>>>>>>>>>>)

题目描述:

操作给定的二叉树,将其变换为源二叉树的镜像。

/*

structTreeNode {

intval;

structTreeNode *left;

structTreeNode *right;

TreeNode(int x) :

val(x), left(NULL), right(NULL) {

}

};*/

class Solution {

public:

void Mirror(TreeNode *pRoot) {

}

};

7、斐波那契数列(点击实战练习>>>>>>>>>>>>)

题目描述:

大家都知道斐波那契数列,现在要求输入一个整数n ,请你输出斐波那契数列的第n 项。

n

class Solution {

public:

int Fibonacci(int n) {

}

};

8、数值的整数次方(点击实战练习>>>>>>>>>>>>)

题目描述:

给定一个double 类型的浮点数base 和int 类型的整数exponent 。求base 的exponent 次方。

class Solution {

public:

double Power(double base, int exponent) {

}

};

9、旋转数组的最小数字(点击实战练习>>>>>>>>>>>>)

题目描述:

把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。 输入一个非递减排序的数组的一个旋转,输出旋转数组的最小元素。 例如数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋转,该数组的最小值为1。 NOTE :给出的所有元素都大于0,若数组大小为0,请返回0。

class Solution {

public:

intminNumberInRotateArray(vectorrotateArray) {

}

};

10、顺时针打印矩阵(点击实战练习>>>>>>>>>>>>)

题目描述:

输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字,例如,如果输入如下矩阵: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 则依次打印出数字1,2,3,4,8,12,16,15,14,13,9,5,6,7,11,10.

class Solution { public:

vectorprintMatrix(vector> matrix) {

}

};

更多经典编程练习

三、名企考试真题汇总

1

、(小米)小米

Git (点击实战练习

>>>>>>>>>>>>)

题目描述:

git 是一种分布式代码管理工具,git 通过树的形式记录文件的更改历史,比如: base'

class Solution { public: /** * 返回git 树上两点的最近分割点 * * @param matrix 接邻矩阵,表示git 树,matrix[i][j] == '1' 当且仅当git 树中第i 个和第j 个节点有连接,节点0为git 树的跟节点 * @paramindexA节点A 的index * @paramindexB节点B 的index * @return 整型 */

intgetSplitNode(vector matrix, intindexA, intindexB) {

}

};

2(微软)Numeric Keypad(点击实战练习>>>>>>>>>>>>)

题目描述:

The numberic keypad on your mobile phone looks like below:

123

456

789

suppose you are holding your mobile phone with single hand. Your thumb points at digit 1. Each time you can 1)press the digit your thumb pointing at.2)moveyour thumb right,3)move your thumb down. Moving your thumb left or up is not allowed.

By using the numeric keypad under above constrains, you can produce some numbers like 177 or 480 while producing other numbers like 590 or 52 is impossible.

Given a number K, find out the maximum number less than or equal to K that can be produced.

输入描述:

the first line contains an integer T, the number of testcases. Each testcase occupies a single line with an integer K.

For 50%of the data ,1

For 100% of the data, 1

输出描述:

for each testcase output one line, the maximum number less than or equal to the corresponding K that can be produced.

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、(百度)罪犯转移(点击实战练习>>>>>>>>>>>>)

题目描述:

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(vector A, int n) {

// write code here

}

};

6、(去哪儿)二分查找(点击实战练习>>>>>>>>>>>>)

题目描述:

对于一个有序数组,我们通常采用二分查找的方式来定位某一元素,请编写二分查找的算法,在数组中查找指定元素。

给定一个整数数组A 及它的大小n ,同时给定要查找的元素val ,请返回它在数组中的位置(从0开始) ,若不存在该元素,返回-1。若该元素出现多次,请返回第一次出现的位置。 classBinarySearch {

public:

intgetPos(vector A, int n, intval) {

// write code here

}

};

7、(京东)年终奖(点击实战练习>>>>>>>>>>>>) 题目描述:

小东所在公司要发年终奖,而小东恰好获得了最高福利,他要在公司年会上参与一个抽奖游戏,游戏在一个6*6的棋盘上进行,上面放着36个价值不等的礼物,每个小的棋盘上面放置着一个礼物,他需要从左上角开始游戏,每次只能向下或者向右移动一步,到达右下角停止,一路上的格子里的礼物小东都能拿到,请设计一个算法使小东拿到价值最高的礼物。

给定一个6*6的矩阵board ,其中每个元素为对应格子的礼物价值, 左上角为[0,0],请返回能获得的最大价值,保证每个礼物价值大于100小于1000。 class Bonus {

public:

intgetMost(vector> board) {

// write code here

}

};

8、(腾讯)生成格雷码(点击实战练习>>>>>>>>>>>>)

题目描述:

在一组数的编码中,若任意两个相邻的代码只有一位二进制数不同, 则称这种编码为格雷码(Gray Code),请编写一个函数,使用递归的方法生成N 位的格雷码。

给定一个整数n ,请返回n 位的格雷码,顺序为从0开始。 classGrayCode {

public:

vectorgetGray(int n) {

// write code here

}

};

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

输出描述:

一行输出答案。

更多名企真题练习

牛客网,最大的程序员学习、备考、求职题库

计算机笔试真题汇总:C/C++篇 一、基础知识专项练习

1、派生类对象可以访问基类成员中的()?(点击查看答案>>>>>>>>)

A 、公有继承的私有成员

B 、私有继承的公有成员

C 、公有继承的保护成员

D 、以上都错

2、下列关于多态性说法不正确的是( )。(点击查看答案>>>>>>>>)

A 、多态性是指同名函数对应多种不同的实现

B 、重载方式仅有函数重载

C 、重载方式包含函数重载和运算符重载

D 、多态性表现为静态和动态两种方式

3、下列哪项不属于C++的基本数据类型?( )(点击查看答案>>>>>>>>)

A 、wide B、char C、bool

4、以下选项如果可以初始化正确, 那么就会初始化正确, 那么以下哪种语法在C++中初始化以后编译会错误?其中X 为一C++类( )(点击查看答案>>>>)

A 、const X * x

B 、X const* x

C 、const X const* x

D 、X *const x

5、下面哪一个不是动态链接库的优点?( )(点击查看答案>>>>>>>>)

A 、共享 B、装载速度快 C、开发模式好 D、减少页面交换 6、以下函数中,和其他函数不属于一类的是____。(点击查看答案>>>>>>>)

A 、fwrite B、putc C、pwrite

D 、putchar E、getline F、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、二维数组中的查找(点击实战练习

>>>>>>>>>>>>

题目描述:

在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。

class Solution {

public: bool Find(int target, vector> array) { } };

2、替换空格(点击实战练习>>>>>>>>>>>>)

题目描述:

请实现一个函数,将一个字符串中的空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。

3

题目描述:

输入一个链表,从尾到头打印链表每个节点的值。

/** * structListNode { * intval; * structListNode *next; * ListNode(int x) : * val(x), next(NULL) { * } * }; */ class Solution { public: vectorprintListFromTailToHead(ListNode* head) { } };

4、重建二叉树(点击实战练习>>>>>>>>>>>>)

题目描述:

输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5,3,8,6},则重建二叉树并返回。 /** * Definition for binary tree * structTreeNode { * intval; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(x), left(NULL), right(NULL) {} * }; */ class Solution { public: TreeNode* reConstructBinaryTree(vectorpre,vector vin) {

}

};

5、用两个栈实现队列(点击实战练习>>>>>>>>>>>>)

题目描述:

用两个栈来实现一个队列,完成队列的Push 和Pop 操作。 队列中的元素为int 类型。 class Solution

{

public:

void push(int node) {

}

int pop() {

}

private:

stack stack1;

stack stack2;

};

6、二叉树的镜像(点击实战练习>>>>>>>>>>>>)

题目描述:

操作给定的二叉树,将其变换为源二叉树的镜像。

/*

structTreeNode {

intval;

structTreeNode *left;

structTreeNode *right;

TreeNode(int x) :

val(x), left(NULL), right(NULL) {

}

};*/

class Solution {

public:

void Mirror(TreeNode *pRoot) {

}

};

7、斐波那契数列(点击实战练习>>>>>>>>>>>>)

题目描述:

大家都知道斐波那契数列,现在要求输入一个整数n ,请你输出斐波那契数列的第n 项。

n

class Solution {

public:

int Fibonacci(int n) {

}

};

8、数值的整数次方(点击实战练习>>>>>>>>>>>>)

题目描述:

给定一个double 类型的浮点数base 和int 类型的整数exponent 。求base 的exponent 次方。

class Solution {

public:

double Power(double base, int exponent) {

}

};

9、旋转数组的最小数字(点击实战练习>>>>>>>>>>>>)

题目描述:

把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。 输入一个非递减排序的数组的一个旋转,输出旋转数组的最小元素。 例如数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋转,该数组的最小值为1。 NOTE :给出的所有元素都大于0,若数组大小为0,请返回0。

class Solution {

public:

intminNumberInRotateArray(vectorrotateArray) {

}

};

10、顺时针打印矩阵(点击实战练习>>>>>>>>>>>>)

题目描述:

输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字,例如,如果输入如下矩阵: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 则依次打印出数字1,2,3,4,8,12,16,15,14,13,9,5,6,7,11,10.

class Solution { public:

vectorprintMatrix(vector> matrix) {

}

};

更多经典编程练习

三、名企考试真题汇总

1

、(小米)小米

Git (点击实战练习

>>>>>>>>>>>>)

题目描述:

git 是一种分布式代码管理工具,git 通过树的形式记录文件的更改历史,比如: base'

class Solution { public: /** * 返回git 树上两点的最近分割点 * * @param matrix 接邻矩阵,表示git 树,matrix[i][j] == '1' 当且仅当git 树中第i 个和第j 个节点有连接,节点0为git 树的跟节点 * @paramindexA节点A 的index * @paramindexB节点B 的index * @return 整型 */

intgetSplitNode(vector matrix, intindexA, intindexB) {

}

};

2(微软)Numeric Keypad(点击实战练习>>>>>>>>>>>>)

题目描述:

The numberic keypad on your mobile phone looks like below:

123

456

789

suppose you are holding your mobile phone with single hand. Your thumb points at digit 1. Each time you can 1)press the digit your thumb pointing at.2)moveyour thumb right,3)move your thumb down. Moving your thumb left or up is not allowed.

By using the numeric keypad under above constrains, you can produce some numbers like 177 or 480 while producing other numbers like 590 or 52 is impossible.

Given a number K, find out the maximum number less than or equal to K that can be produced.

输入描述:

the first line contains an integer T, the number of testcases. Each testcase occupies a single line with an integer K.

For 50%of the data ,1

For 100% of the data, 1

输出描述:

for each testcase output one line, the maximum number less than or equal to the corresponding K that can be produced.

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、(百度)罪犯转移(点击实战练习>>>>>>>>>>>>)

题目描述:

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(vector A, int n) {

// write code here

}

};

6、(去哪儿)二分查找(点击实战练习>>>>>>>>>>>>)

题目描述:

对于一个有序数组,我们通常采用二分查找的方式来定位某一元素,请编写二分查找的算法,在数组中查找指定元素。

给定一个整数数组A 及它的大小n ,同时给定要查找的元素val ,请返回它在数组中的位置(从0开始) ,若不存在该元素,返回-1。若该元素出现多次,请返回第一次出现的位置。 classBinarySearch {

public:

intgetPos(vector A, int n, intval) {

// write code here

}

};

7、(京东)年终奖(点击实战练习>>>>>>>>>>>>) 题目描述:

小东所在公司要发年终奖,而小东恰好获得了最高福利,他要在公司年会上参与一个抽奖游戏,游戏在一个6*6的棋盘上进行,上面放着36个价值不等的礼物,每个小的棋盘上面放置着一个礼物,他需要从左上角开始游戏,每次只能向下或者向右移动一步,到达右下角停止,一路上的格子里的礼物小东都能拿到,请设计一个算法使小东拿到价值最高的礼物。

给定一个6*6的矩阵board ,其中每个元素为对应格子的礼物价值, 左上角为[0,0],请返回能获得的最大价值,保证每个礼物价值大于100小于1000。 class Bonus {

public:

intgetMost(vector> board) {

// write code here

}

};

8、(腾讯)生成格雷码(点击实战练习>>>>>>>>>>>>)

题目描述:

在一组数的编码中,若任意两个相邻的代码只有一位二进制数不同, 则称这种编码为格雷码(Gray Code),请编写一个函数,使用递归的方法生成N 位的格雷码。

给定一个整数n ,请返回n 位的格雷码,顺序为从0开始。 classGrayCode {

public:

vectorgetGray(int n) {

// write code here

}

};

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

输出描述:

一行输出答案。

更多名企真题练习

牛客网,最大的程序员学习、备考、求职题库


相关内容

  • 中国银行去年校园招聘笔试的时间安排
  • 中国银行去年校园招聘笔试的时间安排,仅供参考 14:00~15:30 英语 16:00~17:00 认知能力 17:05~18:05 综合知识 [中国银行笔试通用资料:] 一:中行英语笔试 中行英语笔试总题量:20 道单词选择,10 道挑错,20 道完型,四篇常规阅读(每篇 5 题),1 篇文章排 ...

  • 2016年联通校园招聘考试笔试经验汇总
  • 2016年联通校园招聘考试笔试经验汇总 (1) 建议以后参加笔试的同学尽量早点复习,因为考试的题型够复杂,题不 难,但是耗时间比较多.主要就是公务员考试方面的试题,网上都能搜到一下历年的真题. (2) 笔试内容没有英语知识.没有专业知识,考试内容就是行测试题和公共 基础知识试题,大家上网在文库和道客 ...

  • 2017湖南省考时间安排
  • 专家解析最新湖南公务员行测真题 2017湖南省考时间安排 还有疑问?点击这里>>>一对一在线咨询. 2017年湖南公务员考试公告将会于2017年3月上旬发布,报名时间:3月下旬进行报名,笔试时间:4月下旬,大家可以参考2016湖南公务员考试时间安排来规划自己的报考计划.为自己的20 ...

  • 公选领导干部面试试题|结构化面试|面试技巧|面试模拟试题
  • 编辑推荐 2011年中央政法委遴选干部面试题 领导干部公开选拔人机对话(四) 2011-07-07 领导干部公开选拔人机对话(三) 2011-07-07 领导干部公开选拔人机对话(二) 2011-07-07 领导干部公开选拔人机对话(一) 2011-07-07 公开选拔领导干部应变能力类面试试题汇集 ...

  • 2016湖南省公务员考试流程
  • 专家解析最新湖南公务员行测真题 2016湖南省公务员考试流程 还有疑问?点击这里>>>一对一在线咨询. 2016湖南公务员考试公告暂时还没有公布,具体的考试流程可以参考2015年湖南公务员考试流程,信息如下: 2015年.湖南公务员报名流程如下: 2015湖南公务员考试报名阶段 第 ...

  • 行测85分心的体会
  • 2012公务员考试[华图]名师模块班汇总讲义+练习题(全): http://www.iliyu.com/source/42855/ 2012[华图]公务员考试[基础精讲班+强化班] 资料汇总: http://www.iliyu.com/source/42907/ 华图2011公考资料大集合: htt ...

  • 事业单位企业退休职工薪资待遇调整消息 (3)
  • 2015年甘肃省公务员考试公告丨2015年甘肃省一万名考试实施方案 事业单位丨公务员丨教师丨养老金丨退休职工丨工资待遇 汇总整理 事业单位工资改革一直备受大家关注,甘肃事业单位招聘网收集了事业单位工资改革最新消息,并整理汇总,帮助大家更好的了解以后的职位,大家可以按CTRL+D 保存页面,以便及时查 ...

  • 中国人民银行考试笔试专用题库内部讲义历年考试真题(法律类)
  • 人民银行考试历年真题汇总整理(法律类) 人民银行全国统一考试,分专业类别进行,考试内容主要包括行测+专业知识,题目实际上是不难的,但要有针对性的复习,多练题目是肯定的!建议报考的同学提前做好复习准备,考试资料可以到"柏蓝考"上面找找,资料确实不错,比较有针对性,大家可以去了解一下 ...

  • 中国人民银行笔试英语类
  • 今年新加了行测,每个专业都考的,第一年考所以没有前任的经验可借鉴,摸着石头过河.70道题60分钟,和国考节奏差不多, 还是五个部分 ,题目比国考稍简单 一.常识 二.言语理解 三.数量关系 四.逻辑判断 五.资料分析 做的时候把握时间,我一不小心就在数量关系上超时了,以致后面的资料分析没时间好好算, ...