题型:组合题
#include <cstdio>
using namespace std;
int n;
int a[100];
int main( ) {
scanf(“%d”,&n);
for(int i = 1; i <= n; ++i) {
scanf(“%d”,&a[i])
int ans = 1
for (int i = 1; i <= n; ++i) {
if ( i > 1 && a[i] < a[i-1])
ans = i ;
while (ans < n && a[i] >= a[ans+1])
++ans;
printf(“%d/n”, ans);
}
return 0;
}
(1).最坏情况下,此程序的时间复杂度是( )。
| A. 0(n2) |
B. 0(log n) |
| C. 0(n) |
D. 0(nlog n) |
若将第12行的“<”改为“!=”,程序输出的结果不会改变。( )
| A.正确 | B.错误 |
(1分)程序输出的ans小于等于n。( )
| A.正确 | B.错误 |
(3分)若输入的a数组是一个严格单调递增的数列,此程序的时间复杂度是( )。
| A. 0(log n) |
B. 0(n2) |
| C. 0(nlog n) |
D. 0(n) |
当程序执行到第16行时,若ans-i>2,则a[i+1]≦a[i]。( )
| A.正确 | B.错误 |
(1分)第16行输出ans时,ans的值一定大于i。( )
| A.正确 | B.错误 |
更新时间:2022-12-06 15:44:19
|
【知识点】
CCF非专业级别软件能力认证CSP-S/提高级
抱歉! 您未登录, 不能查看答案和解析点击登录












