GESP 一级 C++ 高频考点与真题精讲(一)高频考点概览
GESP一级主要考察编程的基础知识,核心考点可以归纳为以下几类:
输入输出与基本运算:使用 cin和cout进行输入输出,进行加、减、乘、除、取余等基本数学运算。顺序结构:代码按顺序执行,没有分支和循环。 分支结构(if-else):根据条件判断执行不同的代码块。 循环结构(for/while):重复执行一段代码,用于计数、累加、遍历等。 简单数学问题:如闰年判断、日期计算、找因数等。
经典真题与解题思路
考点一:输入输出与基本运算
经典真题:B3834 [GESP202303 一级] 长方形面积
题目描述:输入长方形的长和宽,输出其面积。 解题思路: 用 cin读取两个整数length和width。计算面积 area = length * width。用 cout输出area。代码示例: #include<iostream>usingnamespacestd;intmain(){int l, w;cin >> l >> w;cout << l * w << endl;return0;}
经典真题:B4062 [GESP202412 一级] 温度转换
题目描述:输入一个摄氏温度,输出对应的华氏温度。公式: F = C * 9 / 5 + 32。解题思路: 用 cin读取一个浮点数c。根据公式计算 f。用 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 一级] 每月天数
题目描述:输入年份和月份,输出该月的天数。 解题思路: 用 if-else if-else判断月份。1、3、5、7、8、10、12月有31天。 4、6、9、11月有30天。 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 一级] 立方数
题目描述:输入一个整数,判断它是否是一个立方数(即某个整数的三次方)。 解题思路: 用 cin读取一个整数n。计算 n的立方根cube_root = pow(n, 1.0/3)。取整后得到 x = round(cube_root)。判断 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的所有整数的和。解题思路: 初始化一个累加变量 sum = 0。使用 for循环从1到n,每次将循环变量i加到sum中。输出 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,输出它的所有因数。解题思路: 使用 for循环从1到n。判断 n % i == 0,如果成立,则i是n的因数。输出所有满足条件的 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;}

文章来源:
四季读书网
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至23467321@qq.com举报,一经查实,本站将立刻删除;如已特别标注为本站原创文章的,转载时请以链接形式注明文章出处,谢谢!