#4474. 2025年9月GESP C++一级认证试题

2025年9月GESP C++一级认证试题

一、单项选择题

共15题,每题2分,共30分;每题有且仅有一个正确选项。

  1. 人工智能现在非常火 ,小杨就想多了解一下 ,其中就经常听人提到“大模型” 。那么请问这里说的“大模型”最贴切是指 ( )。 {{ select(1) }}
  • 大电脑模型
  • 大规模智能
  • 智能的单位
  • 大语言模型
  1. 小杨这学期刚开学就选修了一门编程课 ,然后就想编写程序来计算1到10001之间的所有偶数的和 。他希望程序采用简单累加整数的方法, 同时希望源程序尽可能清晰、简洁 ,则下面关于实现累加时采用的主要控制结构的哪个说法最不合适( )。 {{ select(2) }}
  • 使用循环结构
  • 使用循环和分支的组合
  • 仅使用顺序结构
  • 不使用分支结构
  1. 下面的C++代码用于输入姓名 ,然后输出姓名 ,正确的说法是( )。 1 string XingMing ; 2 cout << "请输入您的姓名: " ; 3 cin >> XingMing ; 4 cout << XingMing ; {{ select(3) }}
  • XingMing 是汉语拼音 ,不能作为变量名称
  • 可以将 XingMing 改为 Xing Ming
  • 可以将 XingMing 改为 xingming
  • 可以将 XingMing 改为 Xing-Ming
  1. 下列C++代码中a和b都是整型变量 ,执行后 ,其结果是( )。 1 a = 13 ; 2 b = 5 ; 3 cout << a / b << a %// b << a % b ; 4 a*b ; {{ select(4) }}
  • 2 3
  • 23
  • 20
  • 以上都不准确
  1. C++表达式 3 * 4 % 5 / 6 的值是( )。 {{ select(5) }}
  • 10
  • 5
  • 2
  • 0
  1. 下面的C++代码中变量N和M都是整型 ,则执行时如果先输入10并输入一个制表符后输入20并回车 ,其输出的数值是( )。 {{ select(6) }}
  • {30}
  • 1020
  • {N+M}
  • 不输出 ,继续等待输入
  1. 当前是9月 ,编写C++代码求N个月后的月份 。横线处应填入的代码是( )。 1 2 3 4 5 6 7 int N , M; cin >> N ; M = ______________ ; if (M == 0 ) printf("%d个月后12月 " , N ) ; else printf("%d个月后是%d月 " , N , M ) ; {{ select(7) }}
  • N % 12
  • 9 + N % 12
  • (9 + N ) / 12
  • (9 + N ) % 12
  1. 下面C++代码执行后的输出是( )。 1 2 3 4 int n = 0 ; for (int i =0 ; i < 100 ; i++) n += i % 2; cout << n ; {{ select(8) }}
  • 5050
  • 4950
  • 50
  • 49
  1. 下面的C++代码执行后输出是( )。 1 2 3 4 int N = 0 , i; for (i = -100 ; i < 100 ; i++) N += i % 10 ; cout << N ; {{ select(9) }}
  • 900
  • 100
  • 0
  • -100
  1. 下面C++代码执行后输出是( )。 {{ select(10) }}
  • 1#2#
  • 1#2#END
  • 1#2
  • 1#2#3#4#END
  1. 下面的C++代码用于求N的镜面数(N的个位到最高位的各位数字依次反过来出现在数字中 ,但高位0将被忽略 ,不输出) ,如输入1234 ,则将输出 4321 ,又如输入120 ,则将输出 21 ,错误的选项是( )。 {{ select(11) }}
  • N != 0
  • not (N == 0 )
  • N = 0
  • N > 0
  1. 下面C++代码用于交换两个正整数a和b的值 ,不能实现交换的代码是( )。口 A. 1 2 3 4 5 6 7 8 cout << "输入第一个正整数 : " ; cin >> a ; cout << "输入第二个正整数 : " ; cin >> b ; temp = a ; a = b ; b = temp ; cout << "a= " << a << " b= " << b << endl; {{ select(12) }}
  1. 下面C++代码用于获得正整数N的第M位数 ,约定个位数为第1位 ,如N等于1234 ,M等于2 ,则输出3 。假设M的值是大于等于1且小于等于N的位数 。横线处应填入的代码是( )。 {{ select(13) }}
  • N % div / 10
  • N / div / 10
  • N % div % 10
  • N / div % 10
  1. 下面C++代码执行后输出是( )。 1 2 3 4 5 6 7 num = 0 ; while (num <= 5 ){ num += 1; if (num == 3 ) continue ; printf("%d# " , num) ; } {{ select(14) }}
  • 1#2#4#5#6#
  • 1#2#4#5#6
  • 1#2#3#4#5#6#
  • 1#2#3#4#5#6
  1. 下面C++代码用于记录多个输入数中的最大数和最小数(输入 -999 则输入结束) ,相关说法错误的是 ( ) 。 题号 1 2 3 4 5 6 7 8 9 10 答案 x × x x V {{ select(15) }}
  • 程序运行时如果第一个数输入 -999 ,则输出将是 -999 -999
  • 程序输入过程中 ,如果输入的第一个数不是 -999 ,则如果待输入的数据中没有 -999 ,则程序能求出已输入整数中的最大数和最小数
  • 如果用于输入考试成绩, 即成绩中不可能有 -999 ,则程序能求出已输入成绩中的最高成绩和最低成绩
  • 可以将 cin >> now_num; 移动到 while (now_num != -999) { 下面 ,结果不变

二、判断题

共10题,每题2分,共20分。

  1. 在集成开发环境里调试程序时 ,要注意不能修改源程序, 因为如果修改 ,就要终止调试、关闭该文件并重新打开 ,才能再次开始调试 。 ( ) {{ select(16) }}
  • True
  • False
  1. 执行C++表达式 10 % 0 .5 将报错, 因为 0 .5 所在位置只能是整数 。( ) {{ select(17) }}
  • True
  • False
  1. 下面C++代码执行后将输出 9 。 ( ) {{ select(18) }}
  • True
  • False
  1. 下面C++代码执行后将输出 55 。 ( ) 1 2 3 4 n = 0 ; for (int i = 0 ; i > -10 ; i--) n = n + i * -1; cout << n ; {{ select(19) }}
  • True
  • False
  1. 将下面C++代码中的 L1 行的 i = 0 修改为 i = 1 , 其输出与当前代码输出相同 。 ( ) 1 2 3 4 cnt = 0 ; for (int i = 0 ; i < 100 ; i++) // L1 cnt += i; cout << cnt {{ select(20) }}
  • True
  • False
  1. 将下面C++代码中的 i < 10 修改为 i <= 10 ,其执行后输出相同 。 ( ) 1 2 3 4 5 6 7 int n , i; n = i = 0 ; while (i < 10){ n += i; i += 1; } cout << n ; {{ select(21) }}
  • True
  • False
  1. 下面的C++代码执行后将输出 45 。 ( ) 1 2 3 4 5 6 7 int n , i; n = i = 0 ; while (i < 10){ i += 1; n += i; } cout << n ; {{ select(22) }}
  • True
  • False
  1. 执行C++代码 cout << (12 + 12 .12) 将报错, 因为 12 是 int 类型 ,而 12 .12 是 floa t类型 ,不同类型不能直接运算 。 ( ) {{ select(23) }}
  • True
  • False
  1. 下面C++代码执行时将导致无限循环(也称死循环) 。 ( ) {{ select(24) }}
  • True
  • False
  1. 下列C++代码用于求斐波那契数列, 即第1个数为0 ,第2个数为1 ,从第三个数开始 ,依次是其前两个数之和 。如果输入的值为大于1的正整数 ,该代码能实现所求 。 ( ) 3.1 编程题 1 . 试题名称:商店折扣 . 时间限制: 1.0 s · 内存限制:512.0 MB 3.1.1 题目描述 商店正在开展促销活动 ,给出了两种方案的折扣优惠 。第一种方案是购物满 元减 y 元 ;第二种方案是直接打 n折 ,也就是说价格变为原先的 。这里的 z , y,7n 均是正整数 ,并且 1 ≤ y < ≤ n < 10 。 需要注意的是 ,第一种方案中满减优惠只能使用一次 。例如购物满 10 元减 3 元时 ,若挑选了价格总和为 33 元的物品 ,只能减免 3 元 ,需要支付 30 元。 小明在商店挑选了价格总和为 元的物品 ,结账时只能使用一种优惠方案 。小明最少需要支付多少钱呢? 3.1.2 输入格式 四行, 四个正整数 ar,y, n, p ,含义见题目描述。 3.1.3 输出格式 一行 ,一个小数 ,表⽰小明最少需要支付多少钱 ,保留两位小数。 3.1.4 样例 3.1.4.1 输入样例 1 1 2 3 4 3.1.4.2 输出样例 1 3.1.4.3 输入样例 2 3.1.4.4 输出样例 2 3.1.5 数据范围 对于所有测试点 ,保证 1 ≤ y < ≤ 1 ≤ n < ≤ p ≤ 100。 3.1.6 参考程序 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 #include #include using namespace std ; int x , y , n , p ; double a1 , a2; int main() { scanf("%d%d%d%d " , &x , &y , &n , &p) ; a1 = p ; if (a1 >= x ) a1 -= y; a2 = p * 0 .1 * n ; printf("% .2lf\n " , min(a1 , a2)) ; return 0 ; } 3.2 编程题 2 . 试题名称:金字塔 . 时间限制: 1.0 s . 内存限制:512.0 MB 3.2.1 题目描述 金字塔由 n 层石块垒成 。从塔底向上 ,每层依次需要 n x n, (n 1) x (n 1),.… , 2 x 2, 1 x 1 块石块 。请问搭建金字塔总共需要多少块石块? 3.2.2 输入格式 一行 ,一个正整数 ,表⽰金字塔的层数。 3.2.3 输出格式 一行 ,一个正整数 ,表⽰搭建金字塔所需的石块数量。 3.2.4 样例 3.2.4.1 输入样例 1 1 3.2.4.2 输出样例 1 1 3.2.4.3 输入样例 2 1 3.2.4.4 输出样例 2 55 3.2.5 数据范围 对于所有测试点 ,保证 1 ≤ n ≤ 50。 3.2.6 参考程序 {{ select(25) }}
  • True
  • False

三、编程题

共2题,每题25分,共50分。