中国电子学会(CEIT)考评中心历届真题(含解析答案)
C语言软件编程等级考试二级 2022年12月
编程题五道 总分:100分
一、数组逆序重放(20分)
将一个数组中的值按逆序重新存放。例如,原来的顺序为8,6,5,4,1。要求改为1,4,5,6,8。
时间限制: 1000
内存限制: 65536
输入
输入为两行:第一行数组中元素的个数n (1<n<100),第二行是n个整数,每两个整数之间用空格分隔。
输出
输出为一行:输出逆序后数组的整数,每两个整数之间用空格分隔。
样例输入
5
8 6 5 4 1
样例输出
1 4 5 6 8
#include <stdio.h>
int main() {
int n,t;
int a[100];//输入n
scanf("%d",&n);
//输入n个数
for(int i=0; i<n;i++){
scanf("%d",&a[i]);
}
//逆序存放,交换首尾项
for(int i=0; i<n/2; i++){
t=a[i];
a[i]=a[n-1-i];
a[n-1-i]=t;
}
for(int i=0; i<n; i++){
printf("%d ",a[i]);
}
return 0;
}
二、最长最短单词(20分)
输入1行句子(不多于200个单词,每个单词长度不超过100),只包含字母、空格和逗号。单词由至少一个连续的字母构成,空格和逗号都是单词间的间隔。
试输出第1个最长的单词和第1个最短单词。
时间限制: 10000
内存限制: 65536
输入
—行句子。
输出
两行输出:第1行,第一个最长的单词。第2行,第一个最短的单词。
样例输入
I am studying Programming language C in Peking University
样例输出
Programming
I
提示
如果所有单词长度相同,那么第一个单词既是最长单词也是最短单词。
#include <stdio.h>
#include <string.h>
int main() {
int len,j=0;
char s[20000];
char word[200]= {
0};
int nMax=0,nMin=101;
char sMax[200]={
0},sMin[200]={
0};
//输入一行句子
gets(s);
strcat(s," ");//s后面加一个空格方便判断最后一个单词
len=strlen(s);
for(