C++1级考试真题参考答案(2023年5月)

四季读书网 3 0
C++1级考试真题参考答案(2023年5月)
第 1 题 输出第二个整数 输入三个整数,把第二个输入的整数输出。
输入 只有一行,共三个整数,整数之间由一个空格分隔。整数是32位有符号整数。 输出 只有一行,一个整数,即输入的第二个整数。 
我的答案:
#include<iostream>using namespace std;intmain(){    int n1, n2, n3;    cin >> n1 >> n2 >> n3; // 依次读取三个整数    cout << n2 << endl;    // 输出第二个整数    return 0;}
第 2 题 
计算表达式的值 给定整数x,y的值,计算3*x+2*y的值。输入一行包含2个整数x,y,以空格作为分隔。数据保证最后计算结果还在整数表示范围内。 按照题目要求输出结果 
我的答案:
#include<iostream>using namespace std;intmain(){    int x,y;    cin>>x>>y;    cout<<3*x+2*y<<endl;    return 0;}
第 3 题 
输入一个字符。判断是否是英文大写字母, 如果是英文大写字母,则输出YES,否则输出NO。 
我的答案:
#include<iostream>using namespace std;intmain(){    char ch;    cin >> ch;    // 核心判断:字符ch的ASCII码是否在‘A’到‘Z’之间    // 这里的逻辑与判断大写字母类似    if (ch >= 'A' && ch <= 'Z')        cout << "YES" << endl;    else        cout << "NO" << endl;    return 0;}
第 4 题 
现有n个整数,将其中个位数为k的数进行累加求和。 输入 第一行两个整数n、k,以空格分隔。( 0 < n < 1000, 0 ≤ k ≤ 9) 第二行n个非负整数,以空格分隔,每个数 不大于100000。 输出满足题目要求的累加和。 
我的答案:
#include<iostream>using namespace std;intmain(){    int n, k, sum = 0;    cin >> n >> k;    for (int i = 0; i < n; i++) {         int num;        cin >> num;        if (num % 10 == k) { // 判断个位数是否等于k            sum += num; // 累加满足条件的数        }    }    cout << sum << endl;    return 0;}
第 5 题 
国王将金币作为工资,发放给忠诚的骑士。第一天,骑士收到一枚金币;之后两天(第二天和第三天)里,每 天收到两枚金币;之后三天(第四、五、六天)里,每天收到三枚金币;之后四天(第七、八、九、十天) 里,每天收到四枚金币……这种工资发放模式会一直这样延续下去:当连续N天每天收到N枚金币后,骑士会在之后的连续N+1天里,每天收到N+1枚金币(N为任意正整数)。 你需要编写一个程序,确定从第一天开始的给定天数内,骑士一共获得了多少金币。输入一个整数(范围1到10000),表示天数。 输出骑士获得的金币数。 
我的答案:
#include<iostream>using namespace std;intmain(){    int totalDays, coins = 0, days = 0// totalDays目标天数,coins金币总数,days已过天数    cin >> totalDays;    // 外层循环:i 代表当前阶段每天的金币数,也代表这个阶段持续的天数    // 例如 i=1 时,每天1金币,持续1天;i=2 时,每天2金币,持续2天    for(int i = 1; ; i++)    {        // 内层循环:模拟当前阶段的每一天        for(int k = 1; k <= i; k++)        {            coins += i; // 这一天获得 i 枚金币            days++;     // 总天数 +1            if(days == totalDays) break// 如果达到目标天数,跳出内层循环        }        if(days == totalDays) break// 如果达到目标天数,跳出外层循环    }    cout << coins << endl;    return 0;}

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