《全国青少年软件编程等级考试》2021年9月C语言一级真题(含答案)
概述
1. 交换输出
2. 计算乘积
3. 数字判断
4. 满足条件的数的累加
5. 比n小的最大质数
概述
考试时间:2021年03月21日
题目类型:编程题(共5题,共100分)
时间限制:1000
内存限制:65536
1. 交换输出
输入两个整数a、b,将他们交换输出。
输入
一行两个整数a、b,以空格分隔。 0 < a < 108, 0 < b < 1016
输出
一行两个整数b、a,以空格分隔。
样例输入
123 12345654321
样例输出
12345654321 123
程序代码
2. 计算乘积
一行两个整数a、b,以空格分隔。(0 < a,b < 108)
输入
一行两个整数a、b,以空格分隔。(0 < a,b < 108)
输出
输出一个整数,表示a、b的乘积。
样例输入
123456 123456
样例输出
15241383936
程序代码
#include <bits/stdc++.h>
using namespace std;
int main(){
long long a, b;
cin >> a >> b;
cout << a * b;
return 0;
}
3. 数字判断
输入一个字符,如果输入的字符是数字,输出yes, 否则输出no
输入
一个字符
输出
如果输入的字符是数字,输出yes, 否则输出no
样例输入
样例1输入:
5
样例2输入:
A
样例输出
样例1输出:
yes
样例2输出:
no
程序实现
#include <bits/stdc++.h>
using namespace std;
int main(){
char ch;
cin >> ch;
if(ch>='0' && ch <='9'){
cout << "yes";
}else{
cout << "no";
}
return 0;
}
4. 满足条件的数的累加
现有n个整数,将其中个位数为k的数进行累加求和。
输入
第一行两个整数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 n, k, x, s=0;
cin >> n >> k;
for(int i=1; i<=n; i++){
cin >> x;
if(x%10 == k){
s = s + x;
}
}
cout << s;
return 0;
}
5. 比n小的最大质数
对于给定的n,求比n小的质数中最大的一个。
质数是指一个大于1的自然数,除了1和它自身外,不能被其他自然数整除的数。
输入
一个整数n。(2 < n < 10000)
输出
一个整数,即题目要求的解。
样例输入
100
样例输出
97
程序代码
#include <bits/stdc++.h>
using namespace std;
int main(){
int n, i, j, t;
bool prime;
cin >> n;
for(i=n; i>=2; i--){
prime = true;
for(j=2; j<=i-1; j++){
if(i % j == 0){
prime = false;
break;
}
}
if(prime == true){
cout << i;
break;
}
}
return 0;
}