A. 小高组复赛模拟题2:C++基础综合客观题

    客观题

小高组复赛模拟题2:C++基础综合客观题

该比赛已结束,您无法在比赛模式下递交该题目。您可以点击“在题库中打开”以普通模式查看和递交本题。

小高组复赛模拟题 2:C++ 基础综合客观题

本题包含判断题、多选题和单选题。请按题目要求作答。


一、判断题


  1. 选择排序的核心思想是每次从待排序序列中选择最小(大)的元素,放到已排序序列的末尾。()

{{ select(1) }}

  • 正确
  • 错误

  1. 执行下列代码,输出结果为 10 5,该说法正确吗?
#include <iostream>
using namespace std;
int main() {
    int x=5, y=10;
    int *p=&x, *q=&y;
    int temp = *p;
    *p = *q;
    *q = temp;
    cout << x << " " << y;
    return 0;
}

{{ select(2) }}

  • 正确
  • 错误

  1. 八进制数 10 转换为十进制数的结果是 8。()

{{ select(3) }}

  • 正确
  • 错误

  1. C++ 中,结构体和类的唯一区别是结构体没有成员函数。()

{{ select(4) }}

  • 正确
  • 错误

  1. 递归函数中,终止条件可以设置多个。()

{{ select(5) }}

  • 正确
  • 错误

二、多选题


  1. 下列关于高精度运算的说法,正确的有()

{{ multiselect(6) }}

  • 高精度运算需将数字存储在数组中
  • 高精度乘法的计算复杂度高于高精度加法
  • 高精度运算的数组通常从低位开始存储数字
  • 高精度运算可以处理任意长度的数字

  1. 下列排序算法中,属于高级排序算法的有()

{{ multiselect(7) }}

  • 快速排序
  • 归并排序
  • 插入排序
  • 冒泡排序

  1. 下列关于枚举法的实现步骤,正确的有()

{{ multiselect(8) }}

  • 确定枚举对象与范围
  • 明确判断条件
  • 逐一枚举范围内的元素并验证条件
  • 收集符合条件的结果

  1. 下列关于 C++ 函数参数传递的说法,正确的有()

{{ multiselect(9) }}

  • 值传递中,形参是实参的副本,修改形参不影响实参
  • 数组作为函数参数时,传递的是数组首元素的地址
  • 指针作为函数参数时,修改指针指向的内容会影响实参
  • 函数参数的个数必须与函数定义时的形参个数一致

  1. 执行下列代码,关于函数调用和参数传递的说法,正确的有()
#include <iostream>
using namespace std;
void swap(int &x, int &y) {
    int temp = x;
    x = y;
    y = temp;
}
int main() {
    int a=5, b=10;
    swap(a, b);
    cout << a << " " << b;
    return 0;
}

{{ multiselect(10) }}

  • 该函数采用的是值传递方式
  • 函数调用后,变量 a 和 b 的值会交换
  • 形参 x、y 是实参 a、b 的引用,修改形参会影响实参
  • 函数返回值类型为 void,因此不能有 return 语句

三、单选题


  1. 快速排序的核心是选择“基准数”,下列关于基准数的说法,正确的是()

{{ select(11) }}

  • 基准数只能选择数组的第一个元素
  • 基准数的作用是将数组划分为两部分
  • 基准数的选择不影响快速排序的效率
  • 基准数必须是数组中的最大值

  1. 下列关于 C++ 类的成员访问权限,说法正确的是()

{{ select(12) }}

  • public 成员只能在类内部访问
  • private 成员可以在类外部直接访问
  • public 成员可以在类外部直接访问
  • 类的成员默认访问权限是 public

  1. 关于高精度减法的实现,下列说法错误的是()

{{ select(13) }}

  • 需先比较两个数的位数,位数多的数更大
  • 位数相同时,从高位到低位比较数字大小
  • 计算时从低位开始,不够减时向前一位借 1
  • 借位后,前一位的数字不需要做任何处理

  1. 下列问题最适合用模拟法解决的是()

{{ select(14) }}

  • 找出 1000 以内的素数
  • 模拟掷骰子 100 次统计各点数出现次数
  • 计算两个大整数的乘积
  • 对一组数进行快速排序

  1. 执行下列代码,输出结果是()
#include <iostream>
#include <cstring>
using namespace std;
int main() {
    char s[] = "zhihui";
    cout << strlen(s) << " " << sizeof(s);
    return 0;
}

{{ select(15) }}

  • 6 6
  • 6 7
  • 7 6
  • 7 7

  1. 关于 C++ 结构体对象的定义,正确的是()
struct Book {
    int id;
    char name[20];
    float price;
};

{{ select(16) }}

  • Book b1;
  • struct b1;
  • Book = b1;
  • struct Book b1[];

  1. 下列关于桶排序的说法,正确的是()

{{ select(17) }}

  • 桶排序需要比较元素大小
  • 桶排序的数组下标代表待排序的数字
  • 桶排序适合处理小数排序
  • 桶排序的时间复杂度与数据位数相关

  1. 将二进制数 1010 转换为十进制数,结果是()

{{ select(18) }}

  • 8
  • 9
  • 10
  • 11

  1. 执行下列递归代码,输出结果是()
#include <iostream>
using namespace std;
int f(int n) {
    if(n<=2) return 2;
    return f(n-1) + f(n-2);
}
int main() {
    cout << f(5);
    return 0;
}

{{ select(19) }}

  • 8
  • 10
  • 12
  • 14

  1. 下列关于 C++ 位运算的说法,错误的是()

{{ select(20) }}

  • 按位或运算(|)的规则是对应位有 1 则为 1
  • 按位异或运算(^)的规则是对应位相同则为 1
  • 左移运算(<<)相当于将数字乘以 2
  • 位运算的操作数必须是整数

智汇少年模拟赛2

未参加
状态
已结束
规则
OI
题目
4
开始于
2026-7-24 19:00
结束于
2026-7-24 20:30
持续时间
1.5 小时
主持人
参赛人数
8