QQ扫一扫联系
一个 32 位整型变量占用( )个字节。
4
8
32
128
二进制数 11.01 在十进制下是( )。
3.25
4.125
6.25
11.125
下面的故事与( )算法有着异曲同工之妙。
从前有座山,山里有座庙,庙里有个老和尚在给小和尚讲故事:“从前有座山,山里有座庙,庙里有个老和尚在给小和尚讲故事:‘从前有座山,山里有座庙,庙里有个老和尚给小和尚讲故事……’”
枚举
递归
贪心
分治
1948 年,( )将热力学中的熵引入信息通信领域,标志着信息论研究的开端。
冯·诺伊曼(John von Neumann)
图灵(Alan Turing)
欧拉(Leonhard Euler)
克劳德·香农(Claude Shannon)
已知一棵二叉树有 2013 个节点,则其中至多有( )个节点有 2 个子节点。
1006
1007
1023
1024
在一个无向图中,如果任意两点之间都存在路径相连,则称其为连通图。右图是一个有 5 个顶点、8 条边的连通图。若要使它不再是连通图,至少要删去其中的( )条边。
2
3
4
5
斐波那契数列的定义如下:
F1=1,F2=1,Fn=Fn−1+Fn−2(n≥3)。如果用下面的函数计算斐波那契数列的第 n 项,则其时间复杂度为( )。
int F(int n) { if (n <= 2) return 1; else return F(n - 1) + F(n - 2); }
O(1)
O(n)
O(n2)
O(Fn)
二叉查找树具有如下性质:每个节点的值都大于其左子树上所有节点的值、小于其右子 树上所有节点的值。那么,二叉查找树的( )是一个有序序列。
先序遍历
中序遍历
后序遍历
宽度优先遍历
将 (2,6,10,17) 分别存储到某个地址区间为
0∼10 的哈希表中,如果哈希函数
h(x)= ( ),将不会产生冲突,其中
amodb 表示 a 除以 b 的余数。
xmod11
x 2mod11
(2x)mod11
[]mod11,其中 表示 下取整
IPv4 协议使用 32 位地址,随着其不断被分配,地址资源日趋枯竭。因此,它正逐渐被 使用( )位地址的 IPv6 协议所取代。
40
48
64
128
二分图是指能将顶点划分成两个部分,每一部分内的顶点间没有边相连的简单无向图。 那么,12 个顶点的二分图至多有( )条边。
18
24
36
66
( )是一种通用的字符编码,它为世界上绝大部分语言设定了统一并且唯一的二进制编码,以满足跨语言、跨平台的文本交换。目前它已经收录了超过十万个不同字符。
ASCII
Unicode
GBK 2312
BIG5
把 64 位非零浮点数强制转换成 32 位浮点数后,不可能( )。
大于原数
小于原数
等于原数
与原数符号相反
对一个 n 个顶点、m 条边的带权有向简单图用 Dijkstra 算法计算单源最短路时,如果不使用堆或其它优先队列进行优化,则其时间复杂度为( )。
O(mn+n 3)
O(n2)
O((m+n)logn)
O((m+n 2)logn)
T(n) 表示某个算法输入规模为 n 时的运算次数。如果 T(1) 为常数,且有递归式
T(n)=2×T( )+2n,那么 T(n)= ( )。
Θ(n)
Θ(nlogn)
Θ(n2)
Θ(n2logn)
下列程序中,正确计算
1,2,…,100 这 100 个自然数之和 sum(初始值为 0)的是( )。
for (i = 1; i <= 100; i++) sum += i;
i = 1; while (i > 100) { sum += i; i++;}
i = 1; do { sum += i; i++; } while (i <= 100);
i = 1; do { sum += i; i++; } while (i > 100);
( )的平均时间复杂度为 O(nlogn),其中 n 是待排序的元素个数。
以 A0作为起点,对下面的无向图进行深度优先遍历时(遍历的顺序与顶点字母的下标无关),最后一个遍历到的顶点可能是( )。
( )属于 NP 类问题。
CCF NOIP 复赛考试结束后,因( )提出的申诉将不会被受理。
#include <stdio.h> #include <string.h> const int SIZE = 100; int main() { int n, i, isPlalindrome; char str[SIZE]; scanf("%s", str); n = strlen(str); isPlalindrome = 1; for (i = 0; i < n/2; i++) { if (str[i] != str[n-i-1]) isPlalindrome = 0; } if (isPlalindrome) printf("Yes\n"); else printf("No\n"); return 0; }
输入:abceecba
输出:_________
#include <stdio.h> int main() { int a, b, u, v, i, num; scanf("%d%d%d%d", &a, &b, &u, &v); num = 0; for (i = a; i <= b; i++) if (((i % u) == 0) || ((i % v) == 0)) num++; printf("%d\n", num); return 0; }
输入:1 1000 10 15
输出:_________
#include <stdio.h> const int SIZE = 100; int main() { int height[SIZE], num[SIZE], n, ans; int i, j; scanf("%d", &n); for (i = 0; i < n; i++) { scanf("%d", &height[i]); num[i] = 1; for (j = 0; j < i; j++) { if ((height[j] < height[i]) && (num[j] >= num[i])) num[i] = num[j]+1; } } ans = 0; for (i = 0; i < n; i++) { if (num[i] > ans) ans = num[i]; } printf("%d\n", ans); return 0; }
输入:
8
3 2 5 11 12 7 4 10
输出:_________
输入:
6 5 9
1 4
2 3
2 4
3 2
4 1
4 3
4 5
5 4
6 4
输出:_________
void swap3(int p) { int start1, end1, start2, end2, i, j, temp; start1 = 1; end1 = p; start2 = p + 1; end2 = n; while (true) { i = start1; j = start2; while ((i <= end1) && (j <= end2)) { temp = a[i]; a[i] = a[j]; a[j] = temp; i++; j++; } if (i <= end1) start1 = i; else if ((4)) {//(3 分) start1 = (5); //(3 分) end1 = (6); //(3 分) start2 = j; } else break; } }