csp考试选择题+程序题,模拟

程序:

  1. 下列哪个选项可以正确地声明和定义一个整型变量? A. int x; B. integer x; C. x int; D. var x;

    答案:A. int x;

  2. 下面哪个选项是正确的函数调用方式? A. functionName(); B. functionName; C. functionName[]; D. functionName{};

    答案:A. functionName();

  3. 下面哪个选项可以输出到控制台? A. print(); B. cout(); C. System.out.println(); D. std::cout << "";

    答案:D. std::cout << "";

  4. 以下哪个选项可以读取用户输入的整数? A. input(); B. cin(); C. system.in.read(); D. std::cin >> ;

    答案:D. std::cin >> ;

  5. 在C++中,以下哪个选项可以用来表示逻辑或(OR)操作? A. && B. || C. ! D. &

    答案:B. ||

  6. 下面哪个选项是正确的if语句写法? A. if (x > 5) then { ... } B. if x > 5 { ... } C. if x > 5 then { ... } D. if (x > 5) { ... }

    答案:D. if (x > 5) { ... }

  7. 以下哪个选项可以用来循环执行代码块? A. for B. until C. switch D. if

    答案:A. for

  8. 下面哪个选项是C++中的合法数组声明方式? A. int array[10]; B. array[10] int; C. array[int]; D. int[10] array;

    答案:A. int array[10];

  9. 在C++中,以下哪个选项表示类的成员函数? A. function() B. method() C. member_function() D. class_function()

    答案:B. method()

  10. 下面哪个选项可以用来动态分配内存? A. new B. malloc C. alloc D. create

    答案:A. new

数学: 

  1. 问题:将 72 分解为质数的乘积。 答案:72 = 2 * 2 * 2 * 3 * 3。

  2. 问题:计算等差数列的通项公式和前 n 项和,已知首项 a = 3,公差 d = 2。 答案:通项公式为 an = 3 + (n - 1) * 2,前 n 项和为 Sn = (n/2) * (2a + (n - 1)d)。

  3. 问题:计算等比数列的通项公式和前 n 项和,已知首项 a = 2,公比 r = 3。 答案:通项公式为 an = 2 * (3^(n - 1)),前 n 项和为 Sn = (a * (r^n - 1)) / (r - 1)。

  4. 问题:计算 √25 的值。 答案:√25 = 5。

  5. 问题:计算立方根 ∛27 的值。 答案:∛27 = 3。

  6. 问题:计算 A(4, 2) 的值。 答案:A(4, 2) 表示从 4 个元素中选取 2 个元素的排列数,计算公式为 A(4, 2) = 4! / (4-2)! = 12。

  7. 问题:计算 C(5, 3) 的值。 答案:C(5, 3) 表示从 5 个元素中选取 3 个元素的组合数,计算公式为 C(5, 3) = 5! / (3! * (5-3)!) = 10。

  8. 问题:计算 12 和 18 的最大公约数和最小公倍数。 答案:最大公约数为 6,最小公倍数为 36。

  9. 问题:计算数列 1 + 3 + 5 + 7 + ... 的前 n 项和。 答案:等差数列公式可得 Sn = (n/2) * (a + an) = (n/2) * (1 + (2n - 1)) = n^2。

  10. 问题:计算 sin(30°) 的值。 答案:sin(30°) = 0.5。

 ⭐程序题:

模拟填空题:

  1. 填写空缺的代码,使程序输出指定结果(7)。
#include 
#include 
#include 
using namespace std;
int main() {
    int n;
    cin >> ____①____;
    vector a(____①____);
    for (int i = 0; i < ____①____; i++) {
        cin >> a[____②____];
    }
    sort(a.____③____, a.____③____ + ____①____);
    int sum = 0, p = ____①____ >> 1;
    for (int i = 0; i < ____①____; i++) {
        sum += abs(a[i] - a[____④____]);
    }
    cout << ____⑤____ << endl;
    return 0;
}

答案:

#include 
#include 
#include 
using namespace std;
int main() {
    int n;
    cin >> n;
    vector a(n);
    for (int i = 0; i < n; i++) {
        cin >> a[i];
    }
    sort(a.begin(), a.end());
    int sum = 0, p = n >> 1;
    for (int i = 0; i < n; i++) {
        sum += abs(a[i] - a[p]);
    }
    cout << sum << endl;
    return 0;
}

  1. 判断下列说法是否正确。
  • 程序中使用了 vector 容器来存储输入的数据。(√)
  • 程序中没有使用循环语句。(×)
  • 程序可以处理输入数据中有相同元素的情况。(√)

模拟阅读题:

假设所有输入均为不大于100的正整数,完成下列单选题。

  1. 下面哪个函数可以对 vector 容器进行排序?

A. sort

B. reverse

C. unique

D. lower_bound

答案:A

解析:sort()函数可以对容器的元素进行排序,reverse()函数可以将容器中的元素倒序排列,unique()函数可以去除容器中的相邻重复元素,lower_bound()函数可以在有序容器中查找第一个大于等于指定值的元素的迭代器。

  1. 在程序中,变量 p 的作用是什么?

A. 存储输入数据中的中位数。

B. 存储输入数据中的最大值。

C. 存储输入数据中的最小值。

D. 存储输入数据中的平均值。

答案:A

解析:程序中使用变量 p 来存储数组中的中位数,用来计算数组中所有元素与中位数之差的绝对值之和。程序中使用了位运算符 >> 来计算 p 的值,其等价于整数除以 2 的结果。

你可能感兴趣的:(算法,开发语言,c++)