在 PC 机中,PENTIUM(奔腾)、酷睿、赛扬等是指( ).
生产厂家名称
硬盘的型号
CPU 的型号
显示器的型号
1TB代表的字节数是( ).
2的10次方
2的20次方
2的30次方
2的40次方
如果一个栈初始时为空,且当前栈中的元素从栈底到栈顶依次为a,b,c,另有元素d已经出栈,则可能的入栈顺序是
a,d,c,b
b,a,c,d
a,c,b,d
d,a,b,c
设X、Y、Z分别代表三进制下的一位数字,若等式XY + ZX = XYX在三进制下成立,那么同样在三进制下,等式XY*ZX =()也成立
YXZ
ZXY
XYZ
XZY
一棵具有5层的满二叉树中结点数为( )。
31
32
33
16
看题目上选项
看题目上选项
看题目上选项
看题目上选项
表达式 a*(b+ c)*d的后缀形式是().
abcd*+*
abc+*d*
a*bc+*d
b+c*a*d
现有一段文言文,要通过二进制哈夫曼编码进行压缩。简单起见,假设这段文言文只由4个汉字“之”、“乎”、“者”、“也”组成,它们出现的次数分别为700、600、300、400。那么,“也”字的编码长度可能是( ).
1
2
3
4
假设一棵二叉树的后序遍历序列为DGJHEBIFCA,中序通历序列为DBGEHJACIF,则其前序遍历序列为()。
ABCDEFGHIJ
ABDEGHJCFI
ABDEGJHCFI
ABDEGHJFIC
若有如下程序段,其中 s、a、b、c均已定义为整型变量,且 a、c均已赋值(c大于0)。
5=a;
for(b=1;b<= c; b++ )s=s+1;
则与上述程序段修改s值的功能等价的赋值语句是()。
s=a+b;
s=a+c;
s=s+c;
s=b+c;
看题目上的选项
看题目上的选项
看题目上的选项
看题目上的选项
完全二叉树的顺序存储方案,是指将完全二双树的结点从上至下、从左至右依次存放到一个顺序结构的数组中。假定根结点存放在数组的1号位置,则第k号结点的父
结点如果存在的话,应当存放在数组的()号位置。
2k
2k+1
k/2下取整
(k+1)/2下取整
周末小明和爸爸妈妈三个人一起想动手做三道菜,小明负责洗菜、爸爸负责切菜、妈妈负责炒菜。假设做每道菜的顺序都是:先洗茶10分钟,然后切菜10分钟,最后炒茶10分钟。那么做一道茶需要30分钟。注意:两道不同的茶的相同步骤不可以同时进行。例如第一道茶和第二道的茶不能同时洗,也不能同时切。那么做完三道茶的最短时间需要( )分钟。
90
60
50
40
有向图中每个顶点的度等于该顶点的( )。
入度
出度
入度和出度之和
入度和出度之差
看题目选项
看题目选项
看题目选项
看题目选项
1 #include
2 using namespace std;
3
4 int n;
5 int d[1000];
6
7 int main() {
8 cin >> n;
9 for (int i = 0; i < n; ++i)
10 cin >> d[i];
11 int ans = -1;
12 for (int i = 0; i < n; ++i)
13 for (int j = 0; j < n; ++j)
14 if (d[i] < d[j])
15 ans = max(ans, d[i] + d[j] - (d[i] & d[j]));
16 cout << ans;
17 return 0;
18 }
假设输入的n和d[i]都是不超过10000的正整数,完成下面的判断题和单选题:
n必须小于1000,否则程序可能会发生运行错误。()
输出一定大于等于0。
若将第13行的“j= 0”改为“j=i+1”,程序输出可能会改变。
将第14行的“d[i] < d[j]“改为“d[i]!= d[j]”,程序输出不会改变。
若输入n为100,且输出为127,则输入的d[i]中不可能有()。
127
126
128
125
若输出的数大于0,则下面说法正确的是()。
若输出为偶数,则输入的d[]中最多有两个偶数
若输出为奇数,则输入的d[i]中至少有两个奇数
若输出为偶数,则输入的d[i]中至少有两个偶数
若输出为奇数,则输入的d[i]中最多有两个奇数
1 #include <iostream>
2 using namespace std;
3 const int maxn = 10000;
4 int n;
5 int a[maxn];
6 int b[maxn];
7 int f(int l, int r, int depth) {
8 if (l > r)
9 return 0;
10 int min = maxn, mink;
11 for (int i = l; i <= r; ++i) {
12 if (min > a[i]) {
13 min = a[i];
14 mink = i;
15 }
16 }
17 int lres = f(l, mink - 1, depth + 1);
18 int rres = f(mink + 1, r, depth + 1);
19 return lres + rres + depth * b[mink];
20 }
21 int main() {
22 cin >> n;
23 for (int i = 0; i < n; ++i)
24 cin >> a[i];
25 for (int i = 0; i < n; ++i)
26 cin >> b[i];
27 cout << f(0, n - 1, 1) << endl;
28 return 0;
如果a数组有重复的数字,则程序运行时会发生错误。( )
如果b数组全为0,则输出为0。
当n = 100时,最坏情况下,与第12行的比较运算执行的次数最接近的是:()
5000
600
6
100
当n = 100时,最好情况下,与第12行的比较运算执行的次数最接近的是:()
100
6
5000
600
当n = 10时,若b数组满足,对任意0 <=讠< n,都有b[i]=i+ 1,那么输出最大为()
386
383
384
385
当n = 100时,若b数组满足,对任意0 <=讠< n,都有b[i]=1,那么输出最小为()
582
580
579
581
完善程序:
(读入整数)请完善下面的程序,使得程序能够读入两个int 范围内的整数,并将这两个整数分别输出,每行一个。输入的整数之间和前后只会出现空格或者回车。输入数据保证合法。例如:
输入:
123 -789
输出:
123
-789
#include <iostream>
using namespace std;
int readint(){
int num = 0; // 存储读取到的整数
int negative = 0; // 负数标识
char c; // 存储当前读取到的字符
c = cin.get();
while ((c < '0' || c > '9') && c != '-')
c = ①;
if (c == '-')
negative = 1;
else
②;
c = cin.get();
while (③){
④;
c = cin.get();
}
if (negative == 1)
⑤;
return num;
}
int main()
{
int a, b;
a = readint();
b = readint();
cout << a << endl
<< b << endl;
return 0;
}
1-5分别填什么?
完善程序:
(中位数 median)给定 n(n 为奇数且小于 1000)个整数,整数的范围在 0-m(0< m< 2的31次)之间,请使用二分法求这几个整数的中位数。所谓中位数,是指将这
几 个数排序之后,排在正中间的数。
#include <iostream>
using namespace std;
const int MAXN = 1000;
int n, i, lbound, rbound, mid, m, count;
int x[MAXN];
int main()
{
cin >> n >> m;
for (i = 0; i < n; i++)
cin >> x[i];
lbound = 0;
rbound = m;
while (①)
{
mid = (lbound + rbound) / 2;
②;
for (i = 0; i < n; i++)
if (③)
④;
if (count > n / 2)
lbound = mid + 1;
else
⑤;
1-5分别填什么?