《全國(guó)青少年軟件編程等級(jí)考試》2021年9月C語(yǔ)言一級(jí)真題(含答案)
概述
1. 交換輸出
2. 計(jì)算乘積
3. 數(shù)字判斷
4. 滿(mǎn)足條件的數(shù)的累加
5. 比n小的最大質(zhì)數(shù)
概述
考試時(shí)間:2021年03月21日
題目類(lèi)型:編程題(共5題,共100分)
時(shí)間限制:1000
內(nèi)存限制:65536
1. 交換輸出
輸入兩個(gè)整數(shù)a、b,將他們交換輸出。
輸入
一行兩個(gè)整數(shù)a、b,以空格分隔。 0 < a < 108, 0 < b < 1016
輸出
一行兩個(gè)整數(shù)b、a,以空格分隔。
樣例輸入
123 12345654321
樣例輸出
12345654321 123
程序代碼
2. 計(jì)算乘積
一行兩個(gè)整數(shù)a、b,以空格分隔。(0 < a,b < 108)
輸入
一行兩個(gè)整數(shù)a、b,以空格分隔。(0 < a,b < 108)
輸出
輸出一個(gè)整數(shù),表示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. 數(shù)字判斷
輸入一個(gè)字符,如果輸入的字符是數(shù)字,輸出yes, 否則輸出no
輸入
一個(gè)字符
輸出
如果輸入的字符是數(shù)字,輸出yes, 否則輸出no
樣例輸入
樣例1輸入:
5
樣例2輸入:
A
樣例輸出
樣例1輸出:
yes
樣例2輸出:
no
程序?qū)崿F(xiàn)
#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. 滿(mǎn)足條件的數(shù)的累加
現(xiàn)有n個(gè)整數(shù),將其中個(gè)位數(shù)為k的數(shù)進(jìn)行累加求和。
輸入
第一行兩個(gè)整數(shù)n、k,以空格分隔。( 0 < n < 1000, 0 ≤ k ≤ 9) 第二行n個(gè)非負(fù)整數(shù),以空格分隔,每個(gè)數(shù)不大于100000。
輸出
輸出滿(mǎn)足題目要求的累加和。
樣例輸入
10 7
2 5 7 17 11 18 4 27 1 7
樣例輸出
58
程序?qū)崿F(xiàn)
#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小的最大質(zhì)數(shù)
對(duì)于給定的n,求比n小的質(zhì)數(shù)中最大的一個(gè)。
質(zhì)數(shù)是指一個(gè)大于1的自然數(shù),除了1和它自身外,不能被其他自然數(shù)整除的數(shù)。
輸入
一個(gè)整數(shù)n。(2 < n < 10000)
輸出
一個(gè)整數(shù),即題目要求的解。
樣例輸入
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;
}