第 1 题 单选题
C++中,bool类型的变量占用字节数为 ( )。
A. 1
B. 2
C. 3
D. 4
第 2 题 单选题
以下关于C++结构体的说法,正确的是 ( )。
A. 结构体中只能包含成员变量,不能包含成员函数
B. 结构体不能从另一个结构体继承
C. 结构体里面可以包含静态成员变量
D. 结构体里面不能包含构造函数
第 3 题 单选题
设只含根结点的二又树高度为1,共有62个结点的完全二叉树的高度为 ( )。
A. 4
B. 5
C. 6
D. 7
第 4 题 单选题
以下关于数组的说法,不正确的是 ( ) 。
A. 数组中所有元素的类型必须都相同
B. 数组中各元素在内存中是顺序存放的
C. 数组最后一个元素的索引是数组的长度
D. 数组名的第一个字符可以是下划线
第 5 题 单选题
执行以下代码,输出的结果是( )。
A. 127
B. 97
C. 63
D. 126
第 6 题 问答题
特殊运算符
时间限制: 1000MS
内存限制:65536K8
题目描述
编程实现:特殊运算符
假定有一个运算符“>>>”,它的功能如下所示:
>>>257=25
>>>182=18
>>>933 =93
给定一个正整数N (100 < N < 1000) ,请计算 n-( >>> N)的结果 < /N < 1000)>
例如: N=257时,
257-(>>>257)
=257-25
=232
输入描述
输入一个正整数N (100 < N < 1000)< span> < 1000)<>
输出描述
输出一个整数,表示N -(>>>N)的结果
样例输入
257
样例输出
232
第 7 题 问答题
四叶玫瑰数
时间限制:1000MS
内存限制: 65536KB
题目描述:
编程实现: 四叶玫瑰数
四叶玫瑰数是指一个四位数,其各位上的数字的四次方之和等于本身。给定两个正整数N和M,请将N~M (1<=N<=M<=1000000)之间 (含N和M)的四叶玫瑰数按从小到大的顺序输出。
例如: N=1234,M=2345时,有一个四叶玫瑰数1634,因为1^4 +6^4 + 3^4 + 4^4 = 1634,故输出1634。
输入描述
第一行输入两个正整数N、M (1<=N<=M<=1000000)
输出描述
输出一行,包含若干个用一个空格隔开的正整数,表示N~M之间的四叶玫瑰数按从小到大的顺序的输出结果
注意:
题目数据保证给定的N~M范围内至少有一个四叶玫瑰数
样例输入
1234 2345
样例输出
1634
第 8 题 问答题
质因数的个数
时间限制:1000MS
内存限制: 65536KB
编程实现: 质因数的个数
提示信息:
因数:又称为约数,如果整数a除以整数b(b!=0) 的商正好是整数而没有余数,我们就说b是a的因数。
质数:又称为素数,一个大于1的自然数,除了1和它自身外,不能被其他自然数整除的数叫做质数。2是最小的质数。
质因数:如果一个数a的因数b同时也是质数,那么b就是a的一个质因数,例如: 8=2x2x2,2就是8的质因数;12=2x2x3,2和3就是12的质因数。
题目描述:
给定两个正整数N和M (1<=N<=M<=1e7) ,统计N到M之间 (含N和M) 每个数所包含的质因数的个数,输出其中最大的个数。
例如:
当N=6,M=10,6到10之间
6的质因数是2、3,共有2个
7的质因数是7,共有1个
8的质因数是2、2、2,共有3个
9的质因数是3、3,共有2个
10的质因数是2、5,共有2个
6到10之间的数中质因数最多的是8,质因数有3个,故输出3.
输入描述
输入两个正整数N和M (1<=N<=M<=1e7),两个正整数之间用一个空格隔开
输出描述
输出一个整数,表示质因数个数中的最大值
样例输入
6 10
样例输出
3
第 9 题 问答题
最大的矩形纸片
时间限制:1000MS
内存限制: 65536KB
题目描述:
编程实现:最大的矩形纸片
一张半边参差不齐的网格纸 (网格边长均为1),有一边是完整没有破损的。现要从中剪出一片面积最大的矩形纸片。
给定网格纸中完整边的长度N (1<=N<=1000000) ,以及网格中每一列残存部分的高度(1<=高度<=10000),输出能够剪出的最大矩形纸片面积。
例如: N=6,每一列残存部分的高度依次为3、2、1、4、5、2,如下图所示:
可以发现,沿着红色框可以剪出的矩形纸片面积最大,为8,所以输出8。
输入描述
第一行输入一个正整数N(1≤N≤1000000),表示纸片完整边的长度
第二行输入N个正整数(1≤正整数≤10000),表示每列格子残存部分的高度,两个正整数之间用一个空格隔开
输出描述
输出一个正整数,表示能够剪出的最大矩形纸片面积
样例输入
6
3 2 1 4 5 2
样例输出
8
第 10 题 问答题
数字游戏
时间限制: 1000MS
内存限制: 65536KB
题目描述:
编程实现:数字游戏
老师给出了一组数,要求小蓝对这组数进行调整,调整的规则如下:
第1次,从这组数中选出一个最小的数,把它调整为和第二小的数一样大;
第2次,再从这组数中选出一个最大的数,把它调整为和第二大的数一样大;
重复执行1、2步骤;
当这组数中所包含的不同的数少于3个时,结束调整。
现在给定了一组数,请帮小蓝编写程序计算出总共的调整次数,以及调整结束时这组数中的最小数和最大数。
例1:
当这组数是 2 2 2 2时,这组数中所包含的不同的数少于3个(只有2这一种数),无需调整,最后输出:
0 2 2
例2:
当这组数是 1 3 4 2时,调整过程如下:
先将这组数中最小的数1,改成2,这组数变为:2 3 4 2
再将这组数中最大的数4,改成3,这组数变为:2 3 3 2
这时,这组数中只包含2、3两个数了,满足规则4,调整结束,总共调整了2次,故最后输出:
2 2 3
输入描述
第一行输入一个正整数N(3≤N≤1000000),表示这组数中数的个数
第二行输入N个正整数(1≤正整数≤1000000),正整数之间用一个空格隔开
输出描述
输出一行,包含三个整数,分别是总的调整次数、调整结束时的最小值和最大值,整数之间用一个空格隔开
样例输入
4
1 3 4 2
样例输出
2 2 3
第 11 题 问答题
活动人数
时间限制: 1000MS
内存限制: 65536KB
题目描述:
编程实现:活动人数
有一个大型企业集团,由N个部门组成,编号从1到N。这些部门之间的层次关系形成了一个树状结构,一个上级部门可能会有1个或多个直接下级部门,一个下级部门只有一个直接上级部门。
本月集团举办了一个大型活动,这次的活动组织方按如下要求安排活动:
来的人越多越好;
如果一个上级部门参加本次活动,那么他们的直接下级部门就不能参加,而他的间接下集部门可以参加(如下图,如果部门1参加,那么部门2、3不能参加,而部门4、5、6可以参加)。
请你帮他们计算一下,如何安排可以使参加活动的人数最多,并输出参加活动的最多人数。
例如:当N=6,每个部门编号为1到6,部门上下级关系和部门的人数如下图所示:
注意:示例中,部门1是层级最高的部门,没有直接上级,故将其直接上级部门设为0;
当安排(1、4、5、6)这4个部门参加活动时,人数最多,为11,所以输出11。
输入描述
第一行输入一个正整数N(1≤N≤100000),表示集团所有部门的数量
接下来有N行,每行输入三个非负整数F、S和C,(0≤F≤N,1≤S≤N,F≠S,1≤C≤1000),F表示是部门S的直接上级,C表示部门S的人数,整数之间用一个空格隔开
注意:如果是最上层的部门,其直接上级部门编号为0
输出描述
输出一个整数,表示参加活动的最多人数
样例输入
6
0 1 2
1 2 4
1 3 3
2 4 3
3 5 2
3 6 4
样例输出
11