image

编辑人: 未来可期

calendar2025-12-07

message2

visits721

2023年05月C语言一级答案及解析

一、编程题

1、输出第二个整数
输入三个整数,把第二个输入的整数输出。
时间限制:1000
内存限制:65536
输入
只有一行,共三个整数,整数之间由一个空格分隔。整数是32位有符号整数。
输出
只有一行,一个整数,即输入的第二个整数。
样例输入

123 456 789

样例输出

456

参考答案:

include <bits/stdc++.h>

using namespace std;

int main()

{

int a,b,c;

cin>>a>>b>>c;

cout<<b;

}

解析:【喵呜刷题小喵解析】这个题目要求从输入中读取三个整数,然后输出第二个整数。所以,我们可以定义一个包含三个整数的变量(a、b、c),然后使用`cin`函数从输入中读取这三个整数。接着,我们可以直接输出第二个整数(b)。在C++中,`#include `是包含输入输出流库的预处理指令,它允许我们使用`cin`和`cout`等函数。`using namespace std;`是C++标准库的命名空间,它包含了大多数C++标准库的功能,这样我们可以直接使用`cin`、`cout`等函数而不需要在每次使用前都加上`std::`前缀。主函数`int main()`是程序的入口点。在这个函数中,我们首先定义三个整数变量`a`、`b`、`c`,然后使用`cin`函数从标准输入中读取这三个整数,并存储在变量`a`、`b`、`c`中。最后,我们使用`cout`函数输出第二个整数`b`。注意,我们在主函数的最后添加了`return 0;`,这是主函数的返回语句,表示程序正常结束。在C++中,主函数返回0表示程序正常结束,返回非0值表示程序异常结束。

2、计算表达式的值
给定整数x,y的值,计算3*x+2*y的值。
时间限制:3000
内存限制:65536
输入
一行包含2个整数x,y,以空格作为分隔。数据保证最后计算结果还在整数表示范围内。
输出
按照题目要求输出结果
样例输入

2 3

样例输出

12

参考答案:

include <bits/stdc++.h>

using namespace std;

int main()

{

int x,y;

cin>>x>>y;

cout<<3*x+2*y;

}

解析:【喵呜刷题小喵解析】:本题的要求是根据输入的整数x和y,计算3x+2y的值。因此,我们需要读取x和y的值,然后进行相应的计算。首先,我们包含了头文件,这个头文件包含了C++标准输入输出流对象,如cin和cout。然后,我们使用了using namespace std;语句,这个语句的作用是使得我们在接下来的代码中可以直接使用标准命名空间std中的类和函数,而不需要使用std::前缀。接着,我们定义了main函数,这是C++程序的入口点。在main函数中,我们定义了两个整型变量x和y,用于存储输入的x和y的值。然后,我们使用cin>>x>>y语句读取输入的x和y的值。最后,我们使用cout<<3*x+2*y语句输出计算的结果。注意,我们在main函数的最后添加了return 0;语句,这个语句的作用是表示程序正常结束。虽然对于本题来说,这个语句不是必须的,但是在实际编程中,我们通常会添加这个语句,以表示程序正常结束。

3、大写字母的判断
输入一个字符,判断是否是英文大写字母,即是否是A-Z中的一个。
时间限制:1000
内存限制:65536
输入
一个字符。
输出
如果是英文大写字母,则输出YES,否者输出NO。
样例输入

K

样例输出

YES

参考答案:

t main()

{

char a;

cin>>a;

if(a>=‘A’ && a<=‘Z’)

cout<<“YES”;

else

cout<<“NO”;

}

解析:【喵呜刷题小喵解析】这个程序是一个简单的C++程序,用于判断输入的字符是否为英文大写字母。程序首先定义了一个字符变量`a`,然后通过`cin`从标准输入读取一个字符。接着,使用`if`语句判断该字符是否在`'A'`到`'Z'`的范围内,如果是,则输出`"YES"`,否则输出`"NO"`。最后,程序返回0表示正常结束。这个程序的时间复杂度和空间复杂度都很低,因为它只进行一次字符的比较操作,并且只使用了一个字符变量。因此,它满足题目给出的时间限制和内存限制要求。注意,题目中给出的输入和输出示例是英文的,所以程序中的字符和字符串也是英文的。在实际使用中,可以根据需要修改字符和字符串的编码和格式。

4、满足条件的数的累加
现有n个整数,将其中个位数为k的数进行累加求和。
时间限制:1000
内存限制:65536
输入
第一行两个整数n、k,以空格分隔。( 0 < n < 1000, 0 ≤ k ≤ 9) 第二行n个非负整数,以空格分隔,每个数不大于100000。
输出
输出满足题目要求的累加和。
样例输入

10 7
2 5 7 17 11 18 4 27 1 7

样例输出

58

参考答案:

include <bits/stdc++.h>

using namespace std;

int main()

{

int a[100],n,i,k,sum=0;

cin>>n>>k;

for(i=1;i<=n;i++)

{

cin>>a[i];

if(a[i]%10==k)

sum+=a[i];

}

cout<<sum;

}

解析:【喵呜刷题小喵解析】:本题是一道编程题,要求编写一个程序,对给定的n个整数,找出其中个位数为k的数,并求和。程序的基本思路是:首先读取n和k的值,然后读取n个整数,对每个整数判断其个位数是否为k,如果是,则累加到sum变量中。最后输出sum的值。程序中使用了数组a[100]来存储输入的n个整数,但实际上在读取输入时,只需要使用循环变量i来存储当前的整数,不需要数组a。因此,可以将程序中的数组a和循环变量i优化掉,直接使用循环变量i来读取输入和判断条件。程序中的变量sum用于存储累加和,初始化为0。在读取输入时,对每个整数进行判断,如果其个位数为k,则累加到sum中。最后输出sum的值即可。注意,在读取输入时,需要使用cin语句,而不是scanf语句。因为scanf语句在读取空格时会停止读取,而cin语句可以读取空格分隔的多个整数。另外,程序中使用了#include 头文件,这是一个包含了C++标准库的头文件,包含了大多数常用的头文件,可以简化代码书写。但是,在实际编程中,不建议使用这种头文件,因为它可能会导致编译时间过长,同时也可能会引入一些不必要的依赖。在实际编程中,应该根据需要使用具体的头文件。

5、金币

国王将金币作为工资,发放给忠诚的骑士。第一天,骑士收到一枚金币;之后两天(第二天和第三天)里,每天收到两枚金币;之后三天(第四、五、六天)里,每天收到三枚金币;之后四天(第七、八、九、十天)里,每天收到四枚金币……这种工资发放模式会一直这样延续下去:当连续N天每天收到N枚金币后,骑士会在之后的连续N+1天里,每天收到N+1枚金币(N为任意正整数)。

你需要编写一个程序,确定从第一天开始的给定天数内,骑士一共获得了多少金币。
时间限制:10000
内存限制:65536
输入
一个整数(范围1到10000),表示天数。
输出
骑士获得的金币数。
样例输入

6

样例输出

14

参考答案:

include<bits/stdc++.h>

using namespace std;

int k,i,j,t,ans;

int main()

{

cin>>k;

for(i=1;i<=10000;i++)

for(j=1;j<=i;j++)

{

t++;

ans+=i;

if(t==k)

cout<<ans;

}

}

解析:【喵呜刷题小喵解析】:该程序首先读取输入的天数n,然后使用一个循环来模拟骑士收到金币的过程。循环的终止条件是n变为0。在每次循环中,骑士会收到i枚金币,并将这些金币累加到sum变量中。同时,days变量用于记录已经过去的天数。当days等于当前的循环次数i时,表示已经连续i天每天收到i枚金币,因此将n减1。最后,输出骑士收到的总金币数sum。该算法的时间复杂度为O(n),其中n为输入的天数。在每次循环中,我们只需要进行一次加法运算和一次比较运算,因此算法的效率较高。同时,由于使用了变量sum来累加金币数,因此空间复杂度为O(1)。

喵呜刷题:让学习像火箭一样快速,快来微信扫码,体验免费刷题服务,开启你的学习加速器!

创作类型:
原创

本文链接:2023年05月C语言一级答案及解析

版权声明:本站点所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明文章出处。
分享文章
share