#10730. 指针与引用第一题(NOIP2008)

指针与引用第一题(NOIP2008)

第一题(NOIP2008)

#include<iostream>
using namespace std;
void func(int ary[], int n) {
    int i = 0, j, x;
    j = n - 1;
    while (i < j) {
        while (i < j && ary[i] > 0) i++;
        while (i < j && ary[j] < 0) j--;
        if (i < j) {
            x = ary[i];
            ary[i++] = ary[j];
            ary[j--] = x;
        }
    }
}

int main() {
    int a[20], i, m;
    m = 10;
    for (i = 0; i < m; i++) {
        cin >> a[i];
    }
    func(a, m);
    for (i = 0; i < m; i++)
        cout << a[i] << " ";
    cout << endl;
    return 0;
}
  1. 【判断题】将第13行的ary[i++]=ary[j]改为ary[++i]=ary[j],程序输出结果不变。
    {{ select(1) }}
  • 正确
  • 错误
  1. 【判断题】输入54 -6 -11 6 -59 22 -6 11 0,输出结果为54 10 16 22 -59 -11 -6 -6
    {{ select(2) }}
  • 正确
  • 错误
  1. 【判断题】将func函数中的所有变量n全部改成a,程序能通过编译且输出结果不变。
    {{ select(3) }}
  • 正确
  • 错误
  1. 【选择题】该代码的时间复杂度为( )。
    {{ select(4) }}
  • A. O(nlogn)
  • B. O(n²)
  • C. O(n)
  • D. O(logn)