中国电子学会(CEIT)考评中心历届真题(含解析答案)
C语言软件编程等级考试二级 2020年09月
编程题五道 总分:100分
一、单词倒排(20分)
编写程序,读入一行英文(只包含字母和空格,单词间以单个空格分隔),将所有单词的顺序倒排并输出,依然以单个空格分隔。
时间限制: 1000ms
内存限制: 65536kb
输入
输入为一个字符串(字符串长度至多为100)。
输出
输出为按要求排序后的字符串。
样例输入
I am a student
样例输出
student a am I
#include <stdio.h>
#include <string.h>
int main() {
int i=0,j=0;
char s[101]= {
0};
char *p;
char word[101];
char list[100][101];
gets(s);
//分离每个单词加到list
p=s;
while(true) {
if(*p=='\0'){
//字符串结束
strcpy(list[j++],word);
break;
}
else if(*p==' '){
//遇到空格
strcpy(list[j++],word);
memset(word,0,sizeof(word));
i=0;
}
else{
word[i++]=*p;
}
p++;
}
//反向输出单词顺序
for(i=j-1; i>=0; i--){
printf("%s ",list[i]);
}
return 0;
}
二、细菌的繁殖与扩散(20分)
在边长为9的正方形培养皿中,正中心位置有m个细菌。假设细菌的寿命仅一天,但每天可繁殖10个后代,而且这10个后代,有两个分布在原来的单元格中,其余的均匀分布在其四周相邻的八个单元格中。求经过n天后,细菌在培养皿中的分布情况。
时间限制: 1000ms
内存限制: 65536kb
输入
输入为两个整数,第一个整数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 <stdio.h>
#include <string.h>
int main() {
int d[9][9];
int b[9][9];
int m,n;
scanf("%d %d",&m,&n);
if(n<0 || n>4)
return 0;
//初始化
memset(d,0,sizeof(d)</