CSP-J入门级第一轮认证模拟卷12

*
您的姓名:
一、单项选择题(每题5分,共75分)
*
1. 以下属于输入设备的是( )。
A. 投影仪
B. 键盘
C. 音箱
D. 打印机
*
2. 十进制数17的二进制是( )。
A. 10001
B. 10011
C. 10101
D. 11001
*
3. 不属于高级语言的是( )。
A. Python
B.C++
C. 汇编语言
D. Java
*
4. 表达式 `10 % 3` 的结果是( )。
A. 0
B. 1
C. 2
D. 3
*
5. 数组 `int arr[3][2] = {{1,2},{3,4},{5,6}}` 中,`arr[1][1]` 的值是( )。
A. 1
B. 2
C. 3
D. 4
*
6. 关于变量的错误说法是( )。
A. 变量名区分大小写
B. 变量必须先声明后使用
C. 变量可随时改变类型
D. 变量名不能是关键字
*
7. 非C++基本数据类型的是( )。
A. int
B. float
C. string
D. char
*
8. 以下代码输出是( )。

```cpp

   include <iostream>

   using namespace std;

   int main() {

       int x = 5;

       cout << (x << 1);

       return 0;

   }

 ```cpp

A. 5
B. 6
C. 10
D. 20
*
9. 用于读取单个字符的函数是( )。
A. cin.get()
B. cin.read()
C. cin.scan()
D. cin.getline()
*
10. 循环 `for (int i=0; i<=5; i+=2)` 执行次数是( )。
A. 3
B. 4
C. 5
D. 6
*
11. 关于函数的正确说法是( )。
A. 函数不能嵌套定义
B. 函数必须有返回值
C. 函数参数不能是数组
D. 函数名可以数字开头
*
12. 表达式 `!true && false` 的值是( )。
A. true
B. false
C. 1
D. 0
*
13. 以下代码执行后`sum`的值是( )。

 ```cpp

    int sum = 0;

    for (int i=1; i<5; i++) {

        if (i % 2 == 0) continue;

        sum += i;

    }

    ```  

A. 4
B. 6
C. 9
D. 10
*
14. 用于数学函数的头文件是( )。
A. `<cmath>`
B. `<math.h>`
C. `<algorithm>`
D. A和B
*
15. 以下代码输出是( )。

```cpp

    include <iostream>

    using namespace std;

    int main() {

        int a=3, b=4;

        a = b;

        b = a;

        cout << a << " " << b;

        return 0;

    }

    ```  

A. 3 4
B. 4 3
C. 4 4
D. 3 3
二、阅读程序(每题5分,共75分)

程序1

```cpp

include <iostream>

using namespace std;

int main() {

    int n, sum = 0;

    cin >> n;

    while (n) {

        sum += n % 10;

        n /= 10;

    }

    cout << sum;

    return 0;

}

```

*
16. 程序计算输入整数的各位数字之和。( )
正确
错误
*
17. 输入123,输出6。( )
正确
错误
*
18. 输入-123,输出-6。( )
正确
错误
*
19. 输入1000,输出是( )。
A. 0
B. 1
C. 10
D. 1000
*
20. 程序时间复杂度是( )。
A. O(1)
B. O(n)
C. O(log n)
D. O(n²)

程序2

```cpp

include <iostream>

using namespace std;

int main() {

    int a, b;

    cin >> a >> b;

    int c = a ^ b;

    a = a ^ c;

    b = b ^ c;

    cout << a << " " << b;

    return 0;

}

```

*
21. 程序交换变量a和b的值。( )
正确
错误
*
22. 输入3 5,输出5 3。( )
正确
错误
*
23. 输入0 0,输出0 0。( )
正确
错误
*
24. 输入7 7,输出是( )。
A. 7 7
B. 0 0
C. 7 0
D. 0 7
*
25. 程序使用的交换方法基于( )。
A. 算术运算
B. 位运算
C. 逻辑运算
D. 关系运算

程序3

```cpp

include <iostream>

using namespace std;

int f(int n) {

    if (n <= 1) return n;

    return f(n-1) + f(n-2);

}

int main() {

    int n;

    cin >> n;

    cout << f(n);

    return 0;

}

```

*
26. 程序计算斐波那契数列第n项。( )
正确
错误
*
27. 输入4,输出3。( )
正确
错误
*
28. 函数时间复杂度是O(2ⁿ)。( )
正确
错误
*
29. 输入2,输出是( )。
A. 0
B. 1
C. 2
D. 3
*
30. 输入5时,函数f总调用次数是( )。
A. 5
B. 15
C. 9
D. 7
三、完善程序(每题10分,共30分)

程序1(判断质数)

```cpp

include <iostream>

include <cmath>

using namespace std;

bool isPrime(int n) {

    if (n <= 1) return false;

    for (int i = 2; i <= ______; i++) { // 31

        if (n % i == 0) return false;

    }

    return true;

}

int main() {

    int n;

    cin >> n;

    cout << (isPrime(n) ? "Yes" : "No");

    return 0;

}

```

*
31. A. n
B. n/2
C. sqrt(n)
D. n-1

程序2(选择排序)

```cpp

include <iostream>

using namespace std;

int main() {

    int n, a[100];

    cin >> n;

    for (int i=0; i<n; i++) cin >> a[i];

    for (int i=0; i<n-1; i++) {

        int min_idx = i;

        for (int j=i+1; j<n; j++) {

            if (a[j] < a[min_idx]) ______; // 32

        }

        swap(a[i], a[min_idx]);

    }

    // 输出略

    return 0;

}

```

*
32. A. min_idx = j
B. j = min_idx
C. a[j] = a[min_idx]
D. break

程序3(二分查找)

```cpp

include <iostream>

using namespace std;

int binarySearch(int arr[], int l, int r, int x) {

    while (l <= r) {

        int mid = l + (r - l) / 2;

        if (arr[mid] == x) return mid;

        if (arr[mid] < x) l = mid + 1;

        else ______; // 33

    }

    return -1;

}

// 主函数略

```

*
33. A. r = mid
B. r = mid - 1
C. l = mid
D. r = mid + 1
问卷星提供技术支持
举报