青少年软件编程(C语言)等级考试试卷(二级)
2020年9月 分数:100 题数:5
一、编程题(共5题,共100分)
1.
单词倒排
单词倒排
编写程序,读入一行英文(只包含字母和空格,单词间以单个空格分隔),将所有单词的顺序倒排并输出,依然以单个空格分隔。
时间限制:10000
内存限制:65536
输入
输入为一个字符串(字符串长度至多为100)。
输出
输出为按要求排序后的字符串。
样例输入
I am a student
样例输出
student a am I
#include<iostream>
#include<string>
using namespace std;
string str;
string de[100];
int main(){
getline(cin,str);
int len=str.length();
int ind=0;
for(int i = 0;i<len;i++){
if(str[i]>='a'&&str[i]<='z'||str[i]>='A'&&str[i]<='Z'){
de[ind]+=str[i];
}else{
ind++;
de[ind]=" ";
ind++;
}
}
if(de[ind]==" "){
ind--;
}
for(int i=ind;i>=0;i--){
cout<<de[i];
}
return 0;
}
2.
细菌的繁殖与扩散
细菌的繁殖与扩散
在边长为9的正方形培养皿中,正中心位置有m个细菌。假设细菌的寿命仅一天,但每天可繁殖10个后代,而且这10个后代,有两个分布在原来的单元格中,其余的均匀分布在其四周相邻的八个单元格中。求经过n(1≤n≤4)天后,细菌在培养皿中的分布情况。
时间限制:10000
内存限制:65536
输入
输入为两个整数,第一个整数m表示中心位置细菌的个数(2 ≤ m ≤ 30),第二个整数n表示经过的天数(1 ≤ n ≤ 4)。
输出
输出九行九列整数矩阵,每行的整数之间用空格分隔。整个矩阵代表n天后细菌在培养皿上的分布情况。
样例输入
2 1
样例输出
0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0
0 0 0 2 2 2 0 0 0
0 0 0 2 4 2 0 0 0
0 0 0 2 2 2 0 0 0
0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0
#include <iostream>
#include <cstring>
#include <cstdio>
#include <stdio.h>
using namespace std;
int a[9][9]={};
int a1[9][9]={};
void virus(){
for(int i=0;i<9;i++){
for(int j=0;j<9;j++){
if(a[i][j]!=0){
for(int k=-1;k<=1;k++){
for(int g=-1;g<=1;g++){
if(k==0&&g==0){
a1[i][j]+=a[i][j]*2;
}else{
a1[k+i][g+j]+=a[i][j];
}
}
}
}
}
}
}
int main(){
int n;
cin>>a[4][4]>>n;
for(int i=0;i<n;i++){
virus();
for(int g=0;g<9;g++){
for(int k=0;k<9;k++){
a[g][k]=a1[g][k];
a1[g][k]=0;
}
}
}
for(int i=0;i<9;i++){
for(int j=0;j<9;j++){
cout<<a[i][j]<<" ";
}
cou
202009软件编程(C语言)真题——(2级)