GESP 一级 C++ 高频考点与真题精讲(一)

四季读书网 3 0
GESP 一级 C++ 高频考点与真题精讲(一)
GESP 一级 C++ 高频考点与真题精讲(一)

高频考点概览

GESP一级主要考察编程的基础知识,核心考点可以归纳为以下几类:

  1. 输入输出与基本运算:使用 cin 和 cout 进行输入输出,进行加、减、乘、除、取余等基本数学运算。
  2. 顺序结构:代码按顺序执行,没有分支和循环。
  3. 分支结构(if-else):根据条件判断执行不同的代码块。
  4. 循环结构(for/while):重复执行一段代码,用于计数、累加、遍历等。
  5. 简单数学问题:如闰年判断、日期计算、找因数等。

经典真题与解题思路

考点一:输入输出与基本运算

经典真题:B3834 [GESP202303 一级] 长方形面积

  • 题目描述:输入长方形的长和宽,输出其面积。
  • 解题思路
    1. 用 cin 读取两个整数 length 和 width
    2. 计算面积 area = length * width
    3. 用 cout 输出 area
  • 代码示例
    #include<iostream>usingnamespacestd;intmain(){int l, w;cin >> l >> w;cout << l * w << endl;return0;}

经典真题:B4062 [GESP202412 一级] 温度转换

  • 题目描述:输入一个摄氏温度,输出对应的华氏温度。公式:F = C * 9 / 5 + 32
  • 解题思路
    1. 用 cin 读取一个浮点数 c
    2. 根据公式计算 f
    3. 用 cout 输出 f
  • 代码示例
    #include<iostream>usingnamespacestd;intmain(){double c;cin >> c;double f = c * 9.0 / 5 + 32;cout << f << endl;return0;}

考点二:分支结构(if-else)

经典真题:B3835 [GESP202303 一级] 每月天数

  • 题目描述:输入年份和月份,输出该月的天数。
  • 解题思路
    1. 用 if-else if-else 判断月份。
    2. 1、3、5、7、8、10、12月有31天。
    3. 4、6、9、11月有30天。
    4. 2月需要判断是否为闰年,闰年29天,平年28天。
  • 代码示例
    #include<iostream>usingnamespacestd;intmain(){int year, month;cin >> year >> month;if (month == 2) {if ((year % 4 == 0 && year % 100 != 0) || (year % 400 == 0)) {cout << 29 << endl;        } else {cout << 28 << endl;        }    } elseif (month == 4 || month == 6 || month == 9 || month == 11) {cout << 30 << endl;    } else {cout << 31 << endl;    }return0;}

经典真题:B4001 [GESP202406 一级] 立方数

  • 题目描述:输入一个整数,判断它是否是一个立方数(即某个整数的三次方)。
  • 解题思路
    1. 用 cin 读取一个整数 n
    2. 计算 n 的立方根 cube_root = pow(n, 1.0/3)
    3. 取整后得到 x = round(cube_root)
    4. 判断 x*x*x 是否等于 n
  • 代码示例
    #include<iostream>#include<cmath>usingnamespacestd;intmain(){int n;cin >> n;int x = round(pow(n, 1.0/3));if (x * x * x == n) {cout << "Yes" << endl;    } else {cout << "No" << endl;    }return0;}

考点三:循环结构(for/while)

经典真题:B3839 [GESP202306 一级] 累计相加

  • 题目描述:输入一个整数 n,计算从1到n的所有整数的和。
  • 解题思路
    1. 初始化一个累加变量 sum = 0
    2. 使用 for 循环从1到n,每次将循环变量 i 加到 sum 中。
    3. 输出 sum
  • 代码示例
    #include<iostream>usingnamespacestd;intmain(){int n, sum = 0;cin >> n;for (int i = 1; i <= n; i++) {        sum += i;    }cout << sum << endl;return0;}

经典真题:B3953 [GESP202403 一级] 找因数

  • 题目描述:输入一个整数 n,输出它的所有因数。
  • 解题思路
    1. 使用 for 循环从1到n。
    2. 判断 n % i == 0,如果成立,则 i 是 n 的因数。
    3. 输出所有满足条件的 i
  • 代码示例
    #include<iostream>usingnamespacestd;intmain(){int n;cin >> n;for (int i = 1; i <= n; i++) {if (n % i == 0) {cout << i << " ";        }    }cout << endl;return0;}

GESP 一级 C++ 高频考点与真题精讲(一) 第1张
获取电子版资料,请联系大黄老师!

信息学奥赛 | 备赛CSP-JS 常用网站

信息学竞赛相关好书推荐(更新)信息学奥赛-学习资源(GESP,CSP-J/S,NOIP)

GESP备考!官方C++历届真题解析汇总

抱歉,评论功能暂时关闭!