GESP四级第三次训练题单
该比赛已结束,您无法在比赛模式下递交该题目。您可以点击“在题库中打开”以普通模式查看和递交本题。
- 排序算法是稳定的(Stable Sorting),就是指排序算法可以保证,在待排序数 据中有两个相等记录的关键字 R 和 S(R 出现在 S 之前),在排序后的列表中 R 也一定在 S 前。下面关于排序稳定性的描述,正确的是( )。{{ select(1) }}
- 冒泡排序是不稳定的。
- 插入排序是不稳定的。
- 选择排序是不稳定的。
- 以上都不正确。
- 在下列代码的横线处填写( ),可以使得输出是“20 10”。 {{ select(2) }}
- int x, int y
- int * x, int * y
- int a, int b
- int & a, int &
- 在下列代码的横线处填写( ),完成对有 n 个 int 类型元素的数组 array 由 小到大排序。 {{ select(3) }}
- array[min] > array[j]
- array[min] > array[i]
- min > array[j]
- min > array[i]
- 在 C++语言中,如果一个函数可能抛出异常,那么一定要在 try 子句里调用这 个函数。() {{ select(4) }}
- 正确
- 错误
- 对包含n个元素的数组进⾏冒泡排序 ,平均时间复杂度一般为( )。 {{ select(5) }}
- O(n)
- O(n log n)
- O(n²)
- 以上都不正确
- 下列关于C++语言中异常处理的叙述,正确的是( ){{ select(6) }}
- ⼀个try子句可以有多个catch子句与之对应。
- 如果try子句在执行时发生异常 ,就⼀定会进入某⼀个catch子句执行。
- 如果try子句中没有可能发生异常的语句 ,会产生编译错误。
- catch 子句处理异常后 ,会重新执行与之对应的try子句。
- 在下列代码的横线处填写( ),完成对有 n个int类型元素的数组 array 由小到大排序。{{ select(7) }}
- int j = 1; j < n; j++
- int j = 0; j < n; j++
- int j = 0; j < i - 1; j++
- int j = 0; j < i; j++
- 对N个元素的数组执行插入排序算法 ,通常的时间复杂度是O(n²)。() {{ select(8) }}
- 正确
- 错误
- 一个可能抛出异常的函数,调用它的位置没有在try子句中,会引起编译错误。() {{ select(9) }}
- 正确
- 错误
- C++的内置函数
sort()
支持数组的局部排序。例如int a={10,9,8,7,6,5,4,3,2,1}
,可以用sort(a,a+5)
,排序成{6,7,8,9,10,5,4,3,2,1}
。( ) {{ select(10) }}
- 正确
- 错误
- 用递归法求 n 的阶乘,时间复杂度是O (n)。 {{ select(11) }}
- 正确
- 错误
- C++内置函数
sort()
可以对整数、浮点数、字符数组进行从大到小,从小到大,局部排序。( ){{ select(12) }}
- 正确
- 错误
- 插入排序在最好情况下的时间复杂度是( )。 {{ select(13) }}
- O(1)
- O(N/2)
- O(N)
- O(N)
- 对
int a[]={2,0,2,4,3,1,6}
,执行第一趟选择排序处理后a
中数据变为{0,2,2,4,3,1,6}
。( ) {{ select(14) }}
- 正确
- 错误
- 如果待排序数据不能都装进内存,需要使用外排序算法。( ) {{ select(15) }}
- 正确
- 错误
- 在C++语言中
try
子句里抛出的结构体等类型的异常无法被catch
捕获。( ){{ select(16) }}
- 正确
- 错误
- 关于直接插入排序,下列说法错误的是( )
{{ select(17) }}
- 插入排序的最好情况是数组已经有序,此时只需要进行n-1次比较,时间复杂度为O(n)
- 最坏情况是数组逆序排序,此时需要进行n(n-1)/2 次比较以及n-1次赋值操作(插入)
- 平均来说插入排序算法的复杂度为O()
- 空间复杂度上,直接插入法是就地排序,空间复杂度为O(n)
-
关于几种排序算法的说法,下面说法错误的是( )。
{{ select(18) }}
- 选择排序不是一个稳定的排序算法
- 冒泡排序算法不是一种稳定的排序算法
- 插入排序是一种稳定的排序算法
- 如果排序前2个相等的数在序列中的前后位置顺序和排序后它们2个的前后位置顺序相同,则称为一种稳定的排序算法
- 数组
{45,66,23,1,10,97,52,88,5,33}
进行从小到大冒泡排序过程中,第一遍冒泡过后的序列是( ){{ select(19) }}
{45,23,1,10,66,52,88,5,33,97}
{45,66,1,23,10,97,52,88,5,33}
{45,66,23,1,10,52,88,5,33,97}
{45,66,23,1,10,97,52,88,33,5}
- 下面的排序算法程序中,横线处应该填入的是( )。 {{ select(20) }}
- a[j]=a[j-1];
- a[j]=a[j+1];
- a[j+1]=a[j-1];
- a[j+1]=a[j];
-
下面的程序中,如果输入 10 0 ,会输出( )
{{ select(21) }}
- Division by zero condition!
- 0
- 10
- 100
- 插入排序算法中,平均时间复杂度是O() ,最坏的情况逆序情况下,达到最大时间复杂度。( )。
{{ select(22) }}
- 正确
- 错误