优秀的编程知识分享平台

网站首页 > 技术文章 正文

C++ GESP 一级2025年3月真题及解析

nanyue 2025-05-22 12:28:37 技术文章 6 ℃


1单选题



1判断题




常见 10 大易错点

  1. 标识符合法性
  2. 只能由字母、数字、下划线组成,且不能以数字开头;连字符 -、特殊符号均非法。
  3. 关键字 vs. 标准库名
  4. do, for, while 等才是语言关键字;cin, cout, endl, abs 只是库标识符。
  5. 整数运算中的截断与优先级
  6. / 与 % 同级、左结合;所有操作在 int 范围内先截断再继续运算。
  7. printf/scanf 宽度与格式符
  8. %2d 与 %02d 的区别;读浮点却用 %d 会把 3.6 读成 3 等。
  9. 单/双引号、字符串常量
  10. 双引号不能随意替换为单引号;不能使用“三个双引号”表示字符串。
  11. continue 与 break 的语义
  12. continue 仅跳过本次循环余下语句,不结束整个循环;与 break 概念不同。
  13. 逗号运算符‐导致的输出顺序误判
  14. (a = 3, b = 5) 结果为 5,但 cout << a << b; 仍按变量顺序输出 3 5。
  15. 自增/自减 & 循环终值
  16. i++ 与 ++i 作用点不同;循环边界容易 off-by-one,导致结果多/少一次。
  17. 逻辑表达式短路与取反
  18. !(i % 2) 判断偶数,!(i % 7) 判断能被 7 整除;组合条件时需防短路误解。
  19. 变量作用域与首次出现位置
  20. 在 if/else 链或多重循环里声明的变量,其可见性、生命周期经常被忽视,引发编译错误或意外结果。


3编程题


图书馆里的老鼠


题目分析

y/x 的值为啃掉的书,但是 y%x 的值不为 0,证明还有一本书没有啃完,而答案要求剩下完整的书,所以结果还要减 1。


参考程序

#include<bits/stdc++.h>
usingnamespacestd;


intmain(){


  int n, x, y;


  cin >> n >> x >> y;


  n -= y / x;


  if(y % x) n--;


  cout << n;




  return0;
}


四舍五入


题目分析

将数字转换为 double 再除以 10,然后四舍五入,可以使用 round 或者 int(x + 0.5),最后再乘以 10。


参考程序

#include<bits/stdc++.h>
usingnamespacestd;


intmain(){


  int n;
  cin >> n;


  while(n--){
    double x;
    cin >> x;


    x /= 10;
    cout << int(x + 0.5) * 10 << endl;
  }




  return0;
}

Tags:

最近发表
标签列表