试卷总分:100分


选择题 10题 40分

01 02 03 04 05 06 07 08 09 10


判断题 10题 20分

11 12 13 14 15 16 17 18 19 20


编程题 2题 40分

21 22

E1063 电子学会青少年软件编程等级考试-C++ -CIE-202606-C++二级-真题-考试

选择题 共10道

01 以下C++数组定义中,正确的是? 4分
登录后查看选项
02 C++中,用于向文件中写入数据的文件流对象是? 4分
登录后查看选项
03 下列选项里,属于文件操作类的是? 4分
登录后查看选项
04

执行以下C++代码,变量res的最终值是?

int a = 5, b = 2; 
double res = (double)a / b;
4分
登录后查看选项
05

执行以下 C++ 代码,输入`65`后,输出结果是?

int grade;
cin >> grade;
if (grade >= 90)
  cout << "优秀";
else if (grade >= 70)
  cout << "良好";
else if (grade >= 60)
  cout << "及格";
else
  cout << "不及格";
4分
登录后查看选项
06

以下C++代码执行后,输出结果是?

#include <iostream>
using namespace std;

int main() {
  int x = 15;
  if(x > 20) {
    cout << "A";
  } else if(x > 10) {
    if(x % 3 == 0)
      cout << "B";
    else
      cout << "C";
  } else {
    cout << "D";
  }
  return 0;
}
4分
登录后查看选项
07

以下C++代码执行后,`#`一共会输出多少次?

#include <iostream>
using namespace std;

int main() {
  for(int i=1;i<=4;i++)
    for(int j=1;j<=i;j++)
      cout << "#";
  return 0;
}
4分
登录后查看选项
08

以下C++代码执行后,输出的结果是?

#include <iostream>
using namespace std;

int main() {
  int sum = 0;
  for(int i=1;i<=3;i++)
    for(int j=1;j<=2;j++)
      sum += i * j;
  cout << sum;
  return 0;
}
4分
登录后查看选项
09

执行以下代码,数组arr中元素的最终结果是?

#include <iostream>
using namespace std;

int main() {
  int arr[4] = {2, 4, 6, 8};
  for (int i = 0; i < 4; i++) {
    arr[i] = arr[i] * 2;
  }

  // 输出查看结果
  for (int i = 0; i < 4; i++) {
    cout << arr[i] << " ";
  }
  return 0;
}
4分
登录后查看选项
10

以下代码用于求数组中所有元素的平均值,横线处应填入的代码是?

int arr[5] = {10,20,30,40,50}; 
int sum = 0;
for(int i=0;i<5;i++){ 
	sum += arr[i]; 
} 
double avg = _________; 
cout << avg;
4分
登录后查看选项

判断题 共10道

11 C++ 中可以使用文件流操作文件。 2分
登录后查看选项
12 `ifstream`对象打开文件后,可以用`>>`运算符从文件中读取数据。 2分
登录后查看选项
13 C++中,将double类型赋值给int类型变量时,会自动进行类型转换,不会丢失数据。 2分
登录后查看选项
14 `switch`语句中,关键字`default`是必须的,否则会编译报错。 2分
登录后查看选项
15 for 循环和 while 循环一定不能互相嵌套使用。 2分
登录后查看选项
16 `break`语句可以跳出所有层的循环,直接结束整个循环嵌套。 2分
登录后查看选项
17 C++中,数组的长度可以在定义后随时修改。 2分
登录后查看选项
18 定义数组`int arr[10];`后,数组元素的合法下标范围是0~9。 2分
登录后查看选项
19 一维数组名代表数组首元素的内存地址。 2分
登录后查看选项
20 `if-else if-else`语句中,可以有多个`else if`,但只能有一个`else`。 2分
登录后查看选项

编程题 共2道

21

查找特定的值(2606-2)

题目描述

给定 n 个数字 a1​,a2​,…,an​,再给定一个目标 t,请查找序列中第一次出现 t 的位置。

输入

第一行:单个正整数 n

第二行:n 个整数 a1​,a2​,…,an​

第三行:单个整数 t

输出

若存在 t,输出第一次出现 t 的位置;否则输出 -1。

数据范围

1≤n≤10000,1≤ai​≤10000,1≤t≤10000

输入样例1

5

89 20 65 31 74

31

输出样例1

4

输入样例2

5

5 4 1 2 3

6

输出样例2

-1

输入样例3

5

25 35 35 35 35

35

输出样例3

2

20分

C0660
登录后作答
22

打印旗帜(2606-2)

题目描述

打印一面三角型的旗子。旗面向左,其中三角形每条边有n个星号,旗子的旗杆也有 n 个星号。

例如,当 n=3 时,输出:

    *
  ***
*****
    *
    *
    *

输入

第一行:正整数 n

输出

输出旗帜图案

数据范围

1≤n≤20

输入样例1

3

输出样例1

    *
  ***
*****
    *
    *
    *

输入样例2

7

输出样例2

            *
          ***
        *****
      *******
    *********
  ***********
*************
            *
            *
            *
            *
            *
            *
            *
20分

C0661
登录后作答