2026 年 3 月青少年软编等考 C/C++ 一级真题解析

目录

  • [一、单选题(每题 4 分,共 40 分)](#一、单选题(每题 4 分,共 40 分))
  • [二、判断题(每题 2 分,共 20 分)](#二、判断题(每题 2 分,共 20 分))
  • [三、编程题(每题 20 分,共 40 分)](#三、编程题(每题 20 分,共 40 分))

一、单选题(每题 4 分,共 40 分)

  1. 以下哪个软件不能用于 C++ 程序的编写与编译运行?( )
    A. Dev-C++
    B. Visual Studio
    C. 微软 Word
    D. Code::Bolcks

【答案】C

【解析】Dev-C++、Visual Studio、Code::Blocks 都是常见的程序开发工具,可以编写、编译并运行 C++ 程序。Microsoft Word 是文字处理软件,不能用于编译运行 C++ 程序。


  1. 一个 C++ 源程序文件,以下哪个后缀名是标准合法的?( )
    A. .txt
    B. .cpp
    C. .doc
    D. .exe

【答案】B

【解析】C++ 源程序文件通常使用 .cpp 作为扩展名。.txt 为文本文件;.doc 为 Word 文档;.exe 为 Windows 系统中的可执行程序(二进制文件)。


  1. 以下 C++ 变量命名中,合法的一项是?( )
    A. 123num
    B. my-age
    C. int
    D. _score_2026

【答案】D

【解析】变量命名不能以数字开头;不能包含 - 等特殊符号;不能使用关键字;可以包含字母、数字和下划线。


  1. C++ 表达式 8 + 3 * 5 % 2 的计算结果是?( )
    A. 9
    B. 13
    C. 55
    D. 0

【答案】A

【解析】按照运算符优先级:先计算 3 * 5 = 15,然后计算 15 % 2 = 1,最后计算 8 + 1 = 9


  1. 执行以下 C++ 代码,输入 15 并回车后,输出结果是?( )

    cpp 复制代码
    #include <iostream>
    int main() {
        int a;
        std::cin >> a;
        std::cout << "result=" << a * 2;
    }

    A. result=15

    B. result=30

    C. 30=30

    D. 编译报错

【答案】B

【解析】输入 15 并回车之后,15 会被 cin 语句读取并存储到变量 a 中,之后输出 a * 2 会输出 15 * 2 的值 30。


  1. 以下哪个 C++ 函数可以用于计算一个数的平方根?( )
    A. abs()
    B. sqrt()
    C. pow()
    D. max()

【答案】B

【解析】abs() 用于求绝对值;sqrt() 用于求平方根;pow() 用于求幂运算;max() 用于求最大值。


  1. 以下 C++ 代码执行后,变量 b 的最终值是?( )

    cpp 复制代码
    #include <iostream>
    int main() {
        int a = 10, b;
        a = a + 5;
        b = a / 3;
    }

    A. 3

    B. 5

    C. 10

    D. 15

【答案】B

【解析】执行 a = a + 5 之后 a 的值是 10 + 5 = 15 10 + 5 = 15 10+5=15,再执行 b = a / 3 之后 b 的值是 15 / 3 = 5 15 / 3 = 5 15/3=5。


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

    cpp 复制代码
    #include <iostream>
    int main(){
        int a = 5, b = 10;
        if (a > 3 && b < 15)
            std::cout << "YES";
        else
            std::cout << "NO";
    }

    A. YES

    B. NO

    C. 1

    D. 0

【答案】A

【解析】关系运算 a > 3b < 15 同时成立,因此 if 语句的判断条件成立,输出 YES


  1. 以下 C++ 代码执行后,循环体一共会执行多少次?( )

    cpp 复制代码
    #include <iostream>
    int main() {
        for (int i = 0; i < 10; i += 2)
            std::cout << i;
    }

    A. 5

    B. 10

    C. 4

    D. 无限次

【答案】A

【解析】循环变量依次为 0 , 2 , 4 , 6 , 8 0, 2, 4, 6, 8 0,2,4,6,8,共执行 5 次。


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

    cpp 复制代码
    #include <iostream>
    int main() {
        int sum = 0;
        for (int i = 1; i <= 5; i++)
            sum += i;
        std::cout << sum;
    }

    A. 5

    B. 10

    C. 15

    D. 20

【答案】C

【解析】循环中依次将 1 , 2 , 3 , 4 , 5 1,2,3,4,5 1,2,3,4,5 累加到变量 sum 中,可以得出 1 + 2 + 3 + 4 + 5 = 15 1+2+3+4+5=15 1+2+3+4+5=15。

二、判断题(每题 2 分,共 20 分)

  1. 顺序结构的程序,会按照代码书写的先后顺序依次执行。( )

【答案】√

【解析】顺序结构是最基本的程序结构,语句会按照编写顺序依次执行。


  1. C++ 程序必须经过编译、链接生成可执行文件后,才能在计算机上运行。( )

【答案】√

【解析】C++ 属于编译型语言,源代码需要经过编译和链接后生成可执行程序。


  1. 在 C++ 中,变量可以先使用,后定义。( )

【答案】×

【解析】变量必须先定义后使用,否则会产生编译错误。


  1. C++ 中,5 / 2 的计算结果是 2.5。( )

【答案】×

【解析】在 C++ 中,两个整数相除会执行整除运算,小数部分会被舍弃。因此 5 / 2 的结果是 2。


  1. cin 是 C++ 中用于输出的标准流对象。( )

【答案】×

【解析】cin 是标准输入流;cout 是标准输出流。


  1. pow(2.0, 3.0) 的计算结果是 8.0。( )

【答案】√

【解析】根据定义 2 3 = 8 2^3=8 23=8,由于 pow() 函数的返回值是 double 类型,因此 pow(2.0, 3.0) 的结果是 8.0


  1. abs(-5)abs(5) 的返回值相同,都是 5。( )

【答案】√

【解析】绝对值表示到原点的距离,-5 和 5 到原点的距离都是 5。


  1. C++ 中,!(5 > 3) 的逻辑结果为 true。( )

【答案】×

【解析】先计算 5 > 3 得到 true,再计算 !true 得到结果为 false


  1. while 循环的循环体至少会执行一次。( )

【答案】×

【解析】while 先判断条件再执行循环体。若条件一开始就不成立,则一次都不会执行。


  1. for (i = 0; i < 10; i++) 循环结束后,变量 i 的值是 10。( )

【答案】√

【解析】由于循环中变量 i 的步进量是 1,因此当 i 从 9 增加到 10 时 i < 10 首次不成立,退出循环,此时 i 的值是 10。

三、编程题(每题 20 分,共 40 分)

1. 夹心饼干

题目链接:SOJ P7791

三个整数组成的三元组,恰好两个数相等、剩余一个数不同时,我们称其为 "夹心饼干"。给定三个整数 a , b , c a,b,c a,b,c,若能组成夹心饼干,输出 Yes,否则输出 No

时间限制:1 s

内存限制:256 MB

  • 输入
    输入三个整数 a , b , c a,b,c a,b,c, 1 ≤ a , b , c ≤ 9 1\le a,b,c\le 9 1≤a,b,c≤9。

  • 输出
    输出组成结果。

  • 样例输入 1

    a 复制代码
    3 3 2
  • 样例输出 1

    a 复制代码
    Yes
  • 样例输入 2

    a 复制代码
    2 2 2
  • 样例输出 2

    a 复制代码
    No

思路分析

此题考查分支结构,属于基础题。

满足条件的情况只有三种:

text 复制代码
a=b 且 b≠c
a=c 且 a≠b
b=c 且 a≠b

如果满足其中任意一种情况,就输出 Yes,否则输出 No

cpp 复制代码
/*
 * Name: T1.cpp
 * Problem: 夹心饼干
 * Author: Teacher Gao.
 * Date&Time: 2026/05/30 16:48
 */

#include <iostream>

using namespace std;

int main() {
    int a, b, c;
    cin >> a >> b >> c;

    if ((a == b && b != c) ||
        (a == c && a != b) ||
        (b == c && a != b))
        cout << "Yes\n";
    else
        cout << "No\n";

    return 0;
}

2. 累加求和

题目链接:SOJ D1454

给定两个整数 a , b a,b a,b,计算 a a a 到 b b b 之间(包含 a a a 和 b b b)所有偶数的和,并输出结果。

时间限制:1 s

内存限制:256 MB

  • 输入
    输入两个整数 a , b a,b a,b, − 10 4 ≤ a ≤ b ≤ 10 4 -10^4\le a\le b\le 10^4 −104≤a≤b≤104。

  • 输出
    输出 a a a 到 b b b 之间所有偶数的和。

  • 样例输入 1

    a 复制代码
    1 10
  • 样例输出 1

    a 复制代码
    30
  • 样例输入 2

    a 复制代码
    -10 10
  • 样例输出 2

    a 复制代码
    0

思路分析

此题考查循环结构,属于入门题。

循环枚举区间 a , b a,b a,b 中的每个整数,如果当前数字能够被 2 整除,则将其加入答案。

cpp 复制代码
/*
 * Name: T2.cpp
 * Problem: 累加求和
 * Author: Teacher Gao.
 * Date&Time: 2026/05/30 16:49
 */

#include <iostream>

using namespace std;

int main() {
    int a, b;
    cin >> a >> b;

    int ans = 0;
    for (int i = a; i <= b; i++) {
        if (i % 2 == 0) {
            ans += i;
        }
    }

    cout << ans << '\n';

    return 0;
}
相关推荐
小成202303202651 小时前
C++~01面向对象基础
开发语言·c++
会编程的土豆1 小时前
Go 方法接收者超清晰笔记(类型名 vs 变量名)
开发语言·笔记·golang
郝学胜-神的一滴2 小时前
干货版《算法导论》07:递归视角下的选择排序与归并排序
java·数据结构·c++·python·程序人生·算法·排序算法
YY&DS2 小时前
Qt 嵌入 CEF 在 Linux 下必须设置 `QT_XCB_GL_INTEGRATION=xcb_egl才能加载网页
linux·开发语言·qt
csdn_aspnet2 小时前
javascript 算法 LeetCode 编号 70 - 爬楼梯
开发语言·javascript·算法·leetcode·ecmascript
Navigator_Z2 小时前
LeetCode //C - 1073. Adding Two Negabinary Numbers
c语言·算法·leetcode
han_hanker2 小时前
BeanUtils.copyProperties 和序列化的问题
java·开发语言·spring boot
野生技术架构师2 小时前
牛客网2026互联网大厂Java面试题汇总,附官方级答案解析
java·开发语言
暖焰核心3 小时前
C++内存管理和模板初阶
开发语言·c++