选择题 共15道
判断题 共10道
编程题 共2道
在 C++ 中,( )正确定义了一个返回整数值并接受两个整数参数的函数。
在C++中,形参与实参的关系描述正确的是( )。
运行以下代码,屏幕上将输出( )。
运行下面代码,屏幕上输出是( )。
运行下面代码片段的结果是( )。
在 C++ 中,( )正确定义一个名为 student 的结构体,其中包含一个 name 字符数组和一个 age 整数?
在 C++ 中,( )正确声明了一个 3 行 4 列的二维数组。
一个二维数组定义为 int arr[3][4]; (假设一个int变量占4个字节),则 int arr[0] 占用( )个字节的内存。
下面代码采用递推算法来实现整数 的阶乘( ),则横线上应填写( )。
在排序算法中,稳定性指的是( )。
下面代码实现了冒泡排序函数,则横线上应填写( )
上一题算法的时间复杂度为( )。
下面代码实现了插入排序函数(升序),则横线上应填写( )。
小杨用文件重定向实现在 log.txt 文件中输出日志,则下面横线上应填写( )。
运行下面的代码,屏幕上将输出( )。
代码 int a = 10; int* p = &a; 可以正确定义指针和初始化指针。
在 C++ 中,引用传递允许函数修改传递给它的参数的值。
指针的大小与其所指向的变量的数据类型的大小相同。
二维数组的行的大小的必须在定义时确定,列的大小可以动态变化。
递推算法通过逐步求解当前状态和前一个或几个状态之间的关系来解决问题。
选择排序是稳定的排序算法。
插入排序的时间复杂度总是比冒泡排序低。
在 C++ 中,如果没有捕获到异常(没有匹配的 catch 块),程序会继续执行而不会终止。
以下代码用递推法求斐波那契数列的第 项,时间复杂度为指数级。
执行下面C++代码后,输出的是20。
黑白方块
题面描述
小杨有一个n行m列的网格图,其中每个格子要么是白色,要么是黑色。
小杨想知道网格图中是否存在一个满足如下条件的子矩形:
(1)子矩形由4行4列组成:
(2)子矩形的第1行和第4行只包含白色格子;
(3)对于子矩形的第2行和第3行,只有第1个和第4个格子是白色的,其余格子是黑色的;
请你编写程序帮助小杨判断。
输入格式
第一行包含一个正整数t,代表测试用例组数。
接下来是t组测试用例。对于每组测试用例,一共n+1行。
第一行包含两个正整数n,m,含义如题面所示。
之后n行,每行一个长度为m的01串,代表网格图第i行格子的颜色,如果为0,则对应格子为白色,否则为黑色。
输出格式
对于每组测试用例,如果存在,输出Yes,否则输出No。
样例1
满足条件的子矩形如:
区间排序
小杨有一个包含n个正整数的序列a。
小杨计划对序列进行多次升序排序,每次升序排序小样会选择一个区间[l,r](l≤r)并对区间内所有数字,即al,a(l+1),...,ar进行升序排序。每次升序排序会在上一次升序排序的结果上进行。
小杨想请你计算出多次升序排序后的序列。
第一行包含一个正整数n,含义如题面所示。
第二行包含n个正整数a1,a2,...,an,代表序列。
第三行包含一个正整数q,代表排序次数。
之后q行,每行包含两个正整数li,ri,代表区间[li,ri]内所有数字进行升序排序。
输出一行包含n个正整数,代表多次升序排序后的序列。