GESP-C++-1

GESP C++ 一级样题卷

一、单选题(每题 2 分,共 30 分)

  1. 人们在使用计算机时所提到的 Windows 通常指的是( )。
    A. 操作系统
    B. 多人游戏
    C. 上市公司
    D. 家居用具
    答案:A

  2. 计算机领域的图灵奖为了纪念( )科学家图灵。
    A. 英国
    B. 德国
    C. 瑞典
    D. 法国
    答案:A

  3. 下列关于 C++语言的叙述,不正确的是()。
    A. 变量使用前必须先定义
    B. if 语句中的判断条件必须写在 ()中
    C. for 语句的循环体必须写在{}中
    D. 程序必须先编译才能运行
    答案:C
    解析:本题题目描述有问题,理解即可,不必去争议。

  4. 不可以作为 C++标识符的是( )。
    A. a_plus_b
    B. a_b
    C. a+b
    D. ab
    答案:C

  5. 常量'3'的数据类型是( )。
    A. int
    B. char
    C. bool
    D. double
    答案:B

  6. 按照 C++语言的语法,以下不是正确的变量定义语句是( )。
    A. int a;
    B. int a = 10;
    C. int a(10);
    D. a = 10;
    答案:D
    解析:"a=10" 这是赋值,并非定义。

  7. 下列符号不是 C++语言的运算符的是( )。
    A. $
    B. %
    C. =
    D. *
    答案:A

  8. 如果用两个 int 类型的变量 a 和 b 分别表达直角三角形两条直角边的长度,则下列哪个表达式可以用来计算三角形的面积?( )
    A. a * b / 2
    B. a / 2 * b
    C. 1 / 2 * a * b
    D. a * b * 0.5
    答案:D
    解析:考虑到 / 取整的操作

  9. 表达式(3 + 12 / 3 * 2)的计算结果为( )。
    A. 10
    B. 5
    C. 11
    D. 2
    答案:C

  10. 如果 a 为 int 类型的变量,且 a 的值为 6,则执行 a = a + 3;之后,a 的值会是( )。
    A. 0
    B. 3
    C. 6
    D. 9
    答案:D

  11. 如果 a 和 b 均为 int 类型的变量,下列表达式能够正确判断“a 不等于 0 或b 不等于 0”的是( )
    A. !a == 0 && !b == 0
    B. !(a == 0 && b == 0)
    C. (a != 0) && (b != 0)
    D. a && b
    答案:B
    解析:只要其中一个不为0即可,还可以写作 (a!=0 || b!=0)、(a+b)、(a||b)

  12. 如果 a 为 int 类型的变量,下列表达式不能正确表达“a 是奇数时结果为0,否则结果非 0”的是( )。
    A. a %= 2
    B. a / 2 * 2 == a
    C. a % 2 == 0
    D. (a + 1) % 2
    答案:A

  13. 在下列代码的横线处填写( ),可以使得输出是“2010”。

#include <iostream>
using namespace std;
int main() {
    int a = 10, b = 20;
    _______  // 在此处填入代码
    cout << a << " " << b << endl;
    return 0;
}

A. a = b; b = a;
B. a = max(a, b); b = min(a, b);
C. a = a + b; a = a - b; b = a - b;
D. int tmp = a; a = b; b = tmp;
答案:D

  1. 在下列代码的横线处填写( ),可以使得输出是“111111”。
#include <iostream>
using namespace std;
int main() {
    for (int i = 1; i <= 16; _______)  // 在此处填入代码
        cout << 1;
    return 0;
}

A. i++
B. i += 3
C. i *= 2
D. i = i * 3 - 1
答案:B

  1. 执行以下 C++语言程序后,输出结果是( )。
#include <iostream>
using namespace std;
int main() {
    int sum = 1;
    for (int i = 1; i <= 10; i++)
        if (3 <= i <= 5)
            sum += i;
    return 0;
}

A. 56
B. 13
C. 12
D. 60
答案:A

二、判断题(每题 2 分,共 20 分)
F -- FALSE, T -- TRUE

  1. 操作系统是让用户可以操纵计算机完成各种功能的软件。( F )
  2. 要执行 Windows 的桌面上的某个程序,通常需至少连续点击程序图标 3 次。( F )
  3. 注释是对于 C++程序员非常有用,但会被 C++编译器忽略。( T )
  4. C++语言中的标识符只能由大写字母和小写字母组成。( F )
  5. 3.0 是一个 int 类型常量。( F )
  6. 能用 while 语句编写的循环,就可以使用 for 语句编写出具有同样功能的循环。( T )
  7. 在每个 if 语句中,都必须有 else 子句与 if 配对使用。( F )
  8. C++语言中也遵循与“先乘除、后加减”类似的运算符优先级规则。( T )
  9. 如果 a 为 int 类型的变量,且表达式(a % 4 == 0)的计算结果为真,说明 a的值是 4 的倍数。( T )
  10. 表达式(6.0 / 3.0)的计算结果为 2,且结果类型为 int 类型。( F )

三、编程题 (每题 25 分,共 50 分)

  1. 【问题描述】
    小明刚刚学习了小时、分和秒的换算关系。他想知道一个给定的时刻是这一天的第几秒,你能编写一个程序帮帮他吗?
    【输入描述】
    输入一行,包含三个整数和一个字符。三个整数分别表示时刻的时、分、秒;
    字符有两种取值,大写字母'A'表示上午,大写字母'P'表示下午。
    【输出描述】输出一行,包含一个整数,表示输入时刻是当天的第几秒。
    【样例输入 1】0 0 0 A
    【样例输出 1】0
    【样例输入 2】11 59 59 P
    【样例输出 2】86399
    【参考程序】
#include <iostream>
using namespace std;
int main() {
    int h = 0, m = 0, s = 0;
    char noon = 'A';
    cin >> h >> m >> s >> noon;
    int sec = h * 60 * 60 + m * 60 + s;  // 计算秒数
    if (noon == 'P')                     // 处理上下午
        sec += 12 * 60 * 60;
    cout << sec << endl;  // 输出秒数
    return 0;
}
  1. 【问题描述】
    小明刚刚学习了如何判断平年和闰年,他想知道两个年份之间(包含起始年份和终止年份)有几个闰年。你能帮帮他吗?
    【输入描述】输入一行,包含两个整数,分别表示起始年份和终止年份。约定年份在 1到 2022 之间
    【输出描述】输出一行,包含一个整数,表示闰年的数量。
    【样例输入 1】2018 2022
    【样例输出 1】1
    【样例输入 2】2000 2004
    【样例输出 2】2
    【参考程序】
#include <iostream>
using namespace std;
int main() {
    int s = 0, t = 0, cnt = 0;
    cin >> s >> t;
    for (int y = s; y <= t; y++) {
        if (y % 400 == 0 || (y % 4 == 0 && y % 100 != 0))
            cnt++;
    }
    cout << cnt << endl;
    return 0;
}
posted @ 2023-06-17 14:20  HelloHeBin  阅读(644)  评论(0)    收藏  举报