QQ扫一扫联系
以下哪一种设备属于输出设备:( )
扫描仪
键盘
鼠标
打印机
如果256 种颜色用二进制编码来表示,至少需要( )位。
6
7
8
9
对于入栈顺序为a,b,c,d,ea,b,c,d,e的序列,下列( )不是合法的出栈序列。
a,b,c,d,e
e,d,c,b,a
b,a,c,d,e
c,d,a,e,b
如果一棵二叉树只有根结点,那么这棵二叉树高度为1。请问高度为5的完全二叉树 有( )种不同形态?
16
15
17
32
二进制数 11.01 在十进制下是( ).
3.25
4.125
6.25
11.125
下列各无符号十进制整数中,能用八位二进制表示的数中最大的是( )。
296
133
256
199
一些数字可以颠倒过来看,例如0、1、8颠倒过来还是本身,6颠倒过来是9, 9颠倒 过来看还是6,其他数字颠倒过来都不构成数字。 类似的,一些多位数也可以颠倒过来看,比如106颠倒过来是901。假设某个城市的车牌只由 5位数字组成,每一位都可以取0到9。 请问这个城市最多有多少个车牌倒过来恰好还是原来的车牌?( )
60
125
75
100
二进制数101.11对应的十进制数是( )。
6.5
5.5
5.75
5.25
使用冒泡排序对序列进行升序排列,每执行一次交换操作系统将会减少 1 个逆序 对,因此序列 5,4,3,2,1 需要执行( )次操作,才能完成冒泡排序。
0
5
10
15
由1, 1, 2, 2, 3这五个数字组成不同的三位数有( )种。
18
15
12
24
将(2, 6, 10, 17)分别存储到某个地址区间为0~10 的哈希表中,如果哈希函数 h(x) = ( ),将不会产生冲突,其中a mod b表示 a 除以 b 的余数。
寄存器是( )的重要组成部分.
硬盘
高速缓存
内存
中央处理器(CPU)
某算法的计算时间表示为递推关系式 T(n)=T(n-1)+n(n 为正整数)及 T(0)=1,则 该算法的时间复杂度为( )。
O(logn)
O(nlogn)
O(n)
O(n^2)
100以内最大的素数是( ).
89
97
91
93
冒泡排序算法的伪代码如下:
输入:数组L, n ≥ k。输出:按非递减顺序排序的 L。
算法 BubbleSort:
1. FLAG ← n //标记被交换的最后元素位置
2. while FLAG > 1 do
3? k ← FLAG -1
4? FLAG ← 1
5? for j=1 to k do
6. if L(j) > L(j+1) then do
7? L(j) ? L(j+1)
8? FLAG ← j
对 n个数用以上冒泡排序算法进行排序,最少需要比较多少次?( )。
n^2
n-2
n-1
n
#include <stdio.h> #include <string.h> char base[64]; char table[256]; char str[256]; char ans[256]; void init() { for (int i = 0; i < 26; i++) base[i] = 'A' + i; for (int i = 0; i < 26; i++) base[26 + i] = 'a' + i; for (int i = 0; i < 10; i++) base[52 + i] = '0' + i; base[62] = '+', base[63] = '/'; for (int i = 0; i < 256; i++) table[i] = 0xff; for (int i = 0; i < 64; i++) table[base[i]] = i; table['='] = 0; } void decode(char *str) { char *ret = ans; int i, len = strlen(str); for (i = 0; i < len; i += 4) { (*ret++) = table[str[i]] << 2 | table[str[i + 1]] >> 4; if (str[i + 2] != '=') (*ret++) = (table[str[i + 1]] & 0x0f) << 4 | table[str[i + 2]] >> 2; if(str[i + 3] != '=') (*ret++) = table[str[i + 2]] << 6 | table[str[i + 3]]; } } int main() { init(); printf("%d\n", (int)table[0]); scanf("%s", str); decode(str); printf("%s\n", ans); return 0; }
判断题
1)输出的第二行一定是由小写字母、大写字母、数字和”+”、”/”、”=”构成的字符
串。()
2.)可能存在输入不同,但输出的第二行相同的情形。()
3)输出的第一行为”-1”。()
单选题
4)设输入字符串长度为n,decode函数的时间复杂度为()
5)当输入为”Y3Nx”时,输出的第二行为()
6)当输入为”Y2NmIDIwMjE=”时,输出的第二行为()
1.
A.正确
B.错误
2.
A.正确
B.错误
3.
A.正确
B.错误
4.
A.O(√n)
B.O(n)
C.O(n log n)
D.O(n^2)
5.
A.”csp”
B.“csq”
C.”CSP”
D.“Csp”
6.
A.”ccf2021”
B.”ccf2022”
C.”ccf 2021”
D.”ccf 2022”
第一空(1.5分):___________________________
第二空(1.5分):___________________________
第三空(1.5分):___________________________
第四空(3分):___________________________
第五空(3分):___________________________
第六空(3.5分):___________________________
#include <algorithm> #include <iostream> using namespace std; int n; int d[50][2]; int ans; void dfs(int n, int sum) { if (n == 1) { ans = max(sum, ans); return; } for (int i = 1; i < n; ++i) { int a = d[i - 1][0], b = d[i - 1][1]; int x = d[i][0], y = d[i][1]; d[i - 1][0] = a + x; d[i - 1][1] = b + y; for (int j = i; j < n - 1; ++j) d[j][0] = d[j + 1][0], d[j][1] = d[j + 1][1]; int s = a + x + abs(b - y); dfs(n - 1, sum + s); for (int j = n - 1; j > i; --j) d[j][0] = d[j - 1][0], d[j][1] = d[j - 1][1]; d[i - 1][0] = a, d[i - 1][1] = b; d[i][0] = x, d[i][1] = y; } } int main() { cin >> n; for (int i = 0; i < n; ++i) cin >> d[i][0]; for (int i = 0; i < n; ++i) cin >> d[i][1]; ans = 0; dfs(n, 0); cout << ans << endl; return 0; }
假设输入的n是不超过50的正整数,d[i][0]、d[i][i]都是不超过10000的正整数,完成下面
的判断题和单选题:
?判断题
1) 若输入 n 为 0,此程序可能会死循环或发生运行错误。( )
2) 若输入 n 为 20,接下来的输入全为 0,则输出为 0。( )
3) 输出的数一定不小于输入的 d[i][0] 和 d[i][l]的任意一个。( )
?单选题
4) 若输入的 n 为 20,接下来的输入是 20 个 9 和 20 个 0,则输出为( )。
5) 若输入的 n 为 30,接下来的输入是 30 个 0 和 30 个 5,则输出为( )。
6) 若输入的 n 为 15,接下来的输入是 15 到 1,以及 15到1,则输出为( )。
1.
A. 正确
B. 错误
2.
A. 正确
B. 错误
3.
A. 正确
B. 错误
4.
A. 1890
B. 1881
C. 1908
D. 1917
5.
A. 2000
B. 2010
C. 2030
D. 2020
6.
A. 2440
B. 2220
C. 2240
D. 2420
第一空(1.5分):_____________________
第二空(1.5分):_____________________
第三空(1.5分):_____________________
第四空(3分):_____________________
第五空(3分):_____________________
第六空(4分):_____________________
#include<cstdio> using namespace std; int n, m; int a[100], b[100]; int main() { scanf("%d%d", &n, &m); for (int i = 1; i <= n; ++i) a[i] = b[i] = 0; for (int i = 1; i <= m; ++i) { int x, y; scanf("%d%d", &x, &y); if (a[x] < y && b[y] < x) { if (a[x] > 0) b[a[x]] = 0; if (b[y] > 0) a[b[y]] = 0; a[x] = y; b[y] = x; } } int ans = 0; for (int i = 1; i <= n; ++i) { if (a[i] == 0) ++ans; if (b[i] == 0) ++ans; } printf("%d", ans); return 0; }
假设输入的n和m都是正整数,x和y都是在[1, n]的范围内的整数,完成下面的判断题和单选
题:
?判断题
1)当m>0时,输出的值一定小于2n。()
2)执行完第27行的"++ans"时,ans —定是偶数。()
3)a[i]和b[i]不可能同时大于0。()
4)右程序执行到第13行时,x总是小于y,那么第15行不会被执行。()
?选择题
5)若m个x两两不同,且m个y两两不同,则输出的值为()
6)若m个x两两不同,且m个y都相等,则输出的值为()
1.
A. 正确
B. 错误
2.
A. 正确
B. 错误
3.
A. 正确
B. 错误
4.
A. 正确
B. 错误
5.
A. 2n-2m
B. 2n+2
C. 2n-2
D. 2n
6.
A. 2n-2
B. 2n
C. 2m
D. 2n-2m
第一空(1.5分):____________________
第二空(1.5分):____________________
第三空(1.5分):____________________
第四空(1.5分):____________________
第五空(3分):____________________
第六空(3分):____________________
(矩阵变幻)有一个奇幻的矩阵,在不停的变幻,其变幻方式为:
数字 0 变成矩阵
0 0
0 1
数字 1 变成矩阵
1 1
1 0
最初该矩阵只有一个元素 0,变幻 nn 次后,矩阵会变成什么样?
例如,矩阵最初为:[0];
矩阵变幻 1 次后:
0 0
0 1
矩阵变幻 2 次后:
0 0 0 0
0 1 0 1
0 0 1 1
0 1 1 0
输入一行一个不超过 10 的正整数 n。输出变幻 n 次后的矩阵。
试补全程序。
提示:
<<表示二进制左移运算符,例如(11)_2 << 2 = (1100)_2 ;
而 ^ 表示二进制异或运算符,它将两个参与运算的数中的每个对应的二进制位—进行比较,
若两个二进制位相同,则运算结果的对应二进制位为 0 ,反之为 1。
#include <cstdio>
using namespace std;
int n;
const int max_size = 1 << 10;
int res[max_size][max_size];
void recursive(int x, int y, int n, int t) {
if (n == 0) {
res[x][y] = ①;
return;
}
int step = 1 << (n - 1);
recursive(②, n - 1, t);
recursive(x, y + step, n - 1, t);
recursive(x + step, y, n - 1, t);
recursive(③, n - 1, !t);
}
int main() {
scanf("%d", &n);
recursive(0, 0, ④);
int size = ⑤;
for (int i = 0; i < size; i++) {
for (int j = 0; j < size; j++)
printf("%d", res[i][j]);
puts("");
}
return 0;
}
①处应填()
②处应填()
③处应填()
④处应填()
⑤处应填()
1.
A. n%2
B. 0
C. t
D. 1
2.
A. x-step,y-step
B. x,y-step
C. x-step,y
D. x,y
3.
A. x-step,y-step
B. x+step,y+step
C. x-step,y
D. x,y-step
4.
A. n-1,n%2
B. n,0
C. n,n%2
D. n-1,0
5.
A. 1<<(n+1)
B. 1<<n
C. n+1
D. 1<<(n-1)
第一空(3分):_______________________
第二空(3分):_______________________
第三空(3分):_______________________
第四空(3分):_______________________
第五空(3分):_______________________
(矩形计数)平面上有n个关键点,求有多少个四条边都和x轴或者y轴平行的矩
形,满足四个顶点都是关键点。给出的关键点可能有重复,但完全重合的矩形只计一次。
试补全枚举算法。
#include <stdio.h>
struct point {
int x, y, id;
};
int equals(struct point a, struct point b) {
return a.x == b.x && a.y == b.y;
}
int cmp(struct point a, struct point b) {
return ①;
}
void sort(struct point A[], int n) {
for (int i = 0; i < n; i++)
for (int j = 1; j < n; j++)
if (cmp(A[j], A[j - 1])) {
struct point t = A[j];
A[j] = A[j - 1];
A[j - 1] = t;
}
}
int unique(struct point A[], int n) {
int t = 0;
for (int i = 0; i < n; i++)
if (②)
A[t++] = A[i];
return t;
}
int binary_search(struct point A[], int n, int x, int y) {
struct point p;
p.x = x;
p.y = y;
p.id = n;
int a = 0, b = n - 1;
while(a < b) {
int mid = ③;
if (④)
a = mid + 1;
else
b = mid;
}
return equals(A[a], p);
}
#define MAXN 1000
struct point A[MAXN];
int main() {
int n;
scanf("%d", &n);
for (int i = 0; i < n; i++) {
scanf("%d %d", &A[i].x, &A[i].y);
A[i].id = i;
}
sort(A, n);
n = unique(A, n);
int ans = 0;
for (int i = 0; i < n; i++)
for (int j = 0; j < n; j++)
if ( ⑤ && binary_search(A, n, A[i].x, A[j].y) && binary_search(A, n,
A[j].x, A[i].y)) {
ans++;
}
printf("%d\n", ans);
return 0;
}
①处应填()
②处应填()
③处应填()
④处应填()
⑤处应填()
1.
A.a.x != b.x ? a.x < b.x : a.id < b.id
B.a.x != b.x ? a.x < b.x : a.y < b.y
C.equals(a,b) ? a.id < b.id : a.x < b.x
D.equals(a,b) ? a.id < b.id : (a.x != b.x ? a.x < b.x : a.y < b.y)
2.
A.i == 0 || cmp(A[i], A[i - 1])
B.t == 0 || equals(A[i], A[t - 1])
C.i == 0 || !cmp(A[i], A[i - 1])
D.t == 0 || !equals(A[i], A[t - 1])
3.
A.b - (b - a) / 2 + 1
B.(a + b + 1) >> 1
C.(a + b) >> 1
D.a + (b - a + 1) / 2
4.
A.!cmp(A[mid], p)
B.cmp(A[mid], p)
C.cmp(p, A[mid])
D.!cmp(p, A[mid])
5.
A.A[i].x == A[j].x
B.A[i].id < A[j].id
C.A[i].x == A[j].x && A[i].id < A[j].id
D.A[i].x < A[j].x && A[i].y < A[j].y
第一空(3分):_______________________
第二空(3分):_______________________
第三空(3分):_______________________
第四空(3分):_______________________
第五空(3分):_______________________