C++信奥赛能力阶段性测试(一)
C++
120分钟
总分 100.0
27 题
试卷题目预览
第1题
中级
2分
单选
栈的操作特点是( )。
第2题
中级
2分
单选
已知二叉树的中序遍历是[D,B,E,A,F,C],先序遍历是[A,B,D,E,C,F]。请问该二叉树的后序遍历结果是( )。
第3题
中级
2分
单选
请将下列C++实现的深度优先搜索(DFS)代码补充完整,横线处应填入( )。

第4题
中级
2分
单选
以下代码用于检查字符串中的括号是否匹配,横线上应填写( )。

第5题
中级
2分
单选
阅读以下代码,下面哪一项是正确的?

第6题
中级
2分
单选
采用如下代码实现检查输入的字符串括号是否匹配,横线上应填入的代码为( )。

第7题
中级
2分
单选
假设字母表{a,b,c,d,e}在字符串出现的频率分别为10%,15%,30%,16%,29%。若使用哈夫曼编码方式对字母进行二进制编码,则字符abcde分别对应的一组哈夫曼编码的长度分别为( )。
第8题
中级
2分
单选
向一个栈顶为hs的链式栈中插入一个指针为s的结点时,应执行( )。
第9题
中级
2分
单选
在栈数据结构中,元素的添加和删除是按照什么原则进行的?
第10题
中级
2分
单选
青蛙每次能跳1或2步,下面代码计算青蛙跳到第n步台阶有多少种不同跳法。则下列说法,错误的是( )。

第11题
中级
2分
单选
线性筛法与埃氏筛法相比的优势是( )。
第12题
中级
2分
单选
以下代码使用了辗转相除法求解最大公因数,请在横线处填入( ),使其能正确实现相应功能。

第13题
中级
2分
单选
小杨想编写一个判断任意输入的整数N是否为素数的程序,下面哪个方法不合适?( )
第14题
中级
2分
单选
内排序有不同的类别,下面哪种排序算法和冒泡排序是同一类?( )
第15题
中级
2分
单选
有关下面C++代码的说法正确的是( )。(链表节点定义)

第16题
中级
2分
判断
程序运行后会输出 2。
#include <iostream>
#include <stack>
using namespace std;
int main() {
stack<int> s;
s.push(1);
s.push(2);
s.push(3);
s.pop();
s.pop();
cout << s.top() << endl;
return 0;
}
第17题
中级
2分
判断
哈夫曼编码一定唯一,只要字符频率相同,得到的编码也一定完全相同。
第18题
中级
2分
判断
在C++ STL中,栈(std::stack)的pop操作返回栈顶元素并移除它。
第19题
中级
2分
判断
下面代码实现了动态规划版本的斐波那契数列计算,其时间复杂度是O(n)。

第20题
中级
2分
判断
在树的深度优先搜索(DFS)中,使用栈作为辅助数据结构以实现"先进后出"的访问顺序。
第21题
中级
2分
判断
以下代码实现的是二叉树的中序遍历:

第22题
中级
2分
判断
栈和队列均可以用双向链表实现,插入和删除操作的时间复杂度为O(1)。
第23题
中级
2分
判断
下面的代码实现了二叉树的前序遍历,它通过递归方法访问每个节点并打印节点值。

第24题
中级
2分
判断
C++、Python和JAVA等都是面向对象的编程语言。
第25题
中级
2分
判断
哈夫曼编码本质上是一种贪心策略。
第26题
中级
25分
编程
好斗的牛
你有M个牛棚,从左到右一字排开。你希望把N头牛安置到牛棚里。麻烦的是,你的牛很好斗,如果他们附近有其他的牛,他们就会不安分地去挑事。其中,第i头牛的攻击范围是b[i],这意味着,如果他的左边b[i]个牛棚或右边b[i]个牛棚里有其他牛,他就会去挑事。你想留下连续的一段牛棚,并把其他牛棚都卖掉。请问你最少需要留下多少牛棚,才能保证至少存在一种方案能够把所有的N头牛都安置进剩余的牛棚里,且没有牛会挑事?
【输入格式】
第一行1个正整数N。 接下来一行N个用空格隔开的正整数a[i]。 接下来一行N个用空格隔开的正整数b[i]。
【输出格式】
输出一行一个整数,表示你最少需要留下多少牛棚。
【样例输入1】 2 1 2 1 2 【样例输出1】 4 【样例解释1】 你可以留下4个牛棚,并如此安排你的牛: 牛棚1 牛棚2 牛棚3 牛棚4 牛1 牛2 【样例输入2】 3 1 2 3 3 2 1 【样例输出2】 7 对于20%的测试点,保证N≤8。 对于50%的测试点,保证N≤1000。 对于100%的测试点,保证N≤100000,1≤a[i],b[i]≤10^9。
第27题
中级
25分
编程
黑白方块
时间限制:1.0s 内存限制:512.0MB
小杨有一个n行m列的网格图,其中每个格子要么是白色,要么是黑色。小杨想知道网格图中是否存在一个满足如下条件的子矩形:
• 子矩形由4行4列组成
• 子矩形的第1行和第4行只包含白色格子
• 对于子矩形的第2行和第3行,只有第1个和第4个格子是白色的,其余格子都是黑色的
【输入格式】
第一行包含一个正整数t,代表测试用例组数。对于每组测试用例:第一行包含两个正整数n,m。之后n行,每行一个长度为m的01串,0代表白色,1代表黑色。
【输出格式】
对于每组测试用例,如果存在,输出Yes,否则输出No。
【样例输入】 3 1 4 0110 5 5 00000 01100 01100 00001 01100 5 5 00000 01100 01110 00001 01100 【样例输出】 No Yes No 对于全部数据,保证有1≤t≤10,1≤n,m≤100。