中国电子学会(CEIT)考评中心历届真题(含解析答案)
C语言软件编程等级考试二级 2023年09月
编程题五道 总分:100分
一、数组指定部分逆序重放(20分)
将一个数组中的前k项按逆序重新存放。例如,将数组8、6、5、4、1,前3项逆序重放得到5、6、8、4、1。
时间限制: 1000
内存限制: 65536
输入
输入为两行:第一行两个整数,以空格分隔,分别为数组元素的个数n (1 < n <100)以及指定的k (1 <= k <= n)。第二行是n个整数,每两个整数之间用空格分隔。
输出
输出为一行:输出按题目要求逆序后数组的整数,每两个整数之间用空格分隔。
样例输入
5 3
8 6 5 4 1
样例输出
5 6 8 4 1
#include <stdio.h>
int main() {
int n,k,a[100];
scanf("%d %d",&n,&k);
for(int i=0; i<n; i++){
if(i<k)
scanf("%d",&a[k-i-1]);//输入的时候前k项按照逆序存放
else
scanf("%d",&a[i]);//其它项正常存放
}
for(int i=0; i<n; i++)
printf("%d ",a[i]);
return 0;
}
二、序列排序(20分)
对于给定的正整数序列,按照每个数的各位数和从大到小排序,各位数和相同的按照本身大小排序,大的在前,小的在后。
时间限制: 1000
内存限制: 65536
输入
第一行1个整数n,表示序列的大小。(0 <n ≤ 1000)第二行n个正整数,表示序列的每个数,每个数不大于100000000。
输出
输出按照题目要求排序后的序列。
样例输入
6
17 26 9 13 88 10
样例输出
88 9 26 17 13 10
#include<iostream>
using namespace std;
int main() {
int a=0,num1,num2, n, arr1[100], arr2[100] = {
0};
cin >> n;
for (int i = 0; i < n;