C++ GESP 一级 2023年9月 真题及解析 - 拷贝
1单项选择
2判断题
3编程题
时分秒
问题描述
小明刚刚学习了小时、分和秒的换算关系。他想知道一个给定的时刻是这一天的第几秒,你能编写一个程序帮帮他吗?
输入描述
输入一行,包含三个整数和一个字符。三个整数分别表示时刻的时、分、秒;字符有两种取值,大写字母'A'表示上午,大写字母'P'表示下午。
输出描述
输出一行,包含一个整数,表示输入时刻是当天的第几秒。
样例
0 0 0 A
0
11 59 59 P
86399
题目分析
读入时分秒,如果是下午时间,则小时加上 12。
最终将 小时×3600,分钟×60 全部变为秒数。
参考程序
#include <bits/stdc++.h>
using namespace std;
int main() {
int h, m, s;
char ch;
cin >> h >> m >> s >> ch;
if(ch == 'P') h += 12;
cout << h * 3600 + m * 60 + s;
return 0;
}
几个闰年
问题描述
小明刚刚学习了如何判断平年和闰年,他想知道两个年份之间(包含起始年份和终止年份)有几个闰年。你能帮帮他吗?
输入描述
输入一行,包含两个整数,分别表示起始年份和终止年份。约定年份在 1 到 2022 之间
输出描述
输出一行,包含一个整数,表示闰年的数量。
样例
2018 2022
1
2000 2004
2
题目分析
枚举算法,如果满足闰年条件,则计数器加 1。
闰年判断:能被4整除但是不能被100整除 或 能被400整除。
参考程序
#include <bits/stdc++.h>
using namespace std;
int main() {
int a, b;
cin >> a >> b;
int res = 0;
for(int i = a; i <= b; i++){
if((i % 4 == 0 && i % 100) || i % 400 == 0)
res++;
}
cout << res;
return 0;
}
下一篇:实现一键复制,前端复制命令指南