今天我给大家出一套C++四级考题
限时1小时,大家加油!!!
题目1:改变二维数组
题目描述
输入一个 n 行 m 列的二维数组,把它的奇数和偶数行互换后输出。(如果 n 为奇数,最后的一行无需调换位置)
n , m 为不超过 20 的正整数。数组内的数据为不大于 200 的正整数。
输入格式
共 n+1 行
第一行包括两个数字 n 和 m 。
第二行到第 n+1 行是这个数组里的数据。数据间用空格隔开。
输出格式
输出 n 行的改变后的数组。
样例
输入数据 1
3 2
1 2
5 6
7 8
输出数据 1
5 6
1 2
7 8
题目2:书架
题目描述
为了方便同学们查阅资料,程序设计兴趣小组的辅导老师打算将积攒了很多年的 n 本书放到上课教室的书架上去。
教室的书架是一层一层叠起来的,每一层最多可以放 m 本书。每一层的高度由放在这层中最高的那本书决定的,如果不放书,则认为这层的高度为 0 。为了使每个同学能方便地拿到想要的书,书架的总高度应尽可能低。请编程计算将这 n 本书放在书架上后书架的最小总高度,计算的过程中不考虑书的厚度与书架本身材料的厚度。
输入格式
输入共 n+1 行。
第 1 行 2 个整数 n 和 m (1 ≤ m ≤ n ≤ 100000 ) 。
接下来 n 行,每行 1 个正整数,分别表示每本书的高度( 每本书的高度不超过100 )。
输出格式
一个整数,表示将 n 本书放入书架后书架的最小总高度。
样例
输入数据 1
3 2
20 10 30
输出数据 1
40
题目3:出生日期
题目描述
小明想调查他们信息学班里面每个同学的年龄,并且按照年龄从大到小的顺序排序。
但是小明最近很忙,所以请你帮他解决一下排序问题。
输入格式
有两行。
第一行为总人数 n ( 1 <= n <= 1000 );
第二行至 n+1 行分别是每个人的姓名 s 、出生年 y 、月 m 、日 d (姓名是长度不超过20个字符的英文);
输出格式
有 n 行,即 n 个生日从大到小同学的姓名。(如果有两个同学生日相同,输入靠后的同学先输出)
样例
输入数据 1
3
Yangchu 1992 4 23
Qiujingya 1993 10 13
Luowen 1991 8 1
输出数据 1
Luowen
Yangchu
Qiujingya
题目描述
小明想调查他们信息学班里面每个同学的年龄,并且按照年龄从大到小的顺序排序。
但是小明最近很忙,所以请你帮他解决一下排序问题。
输入格式
有两行。
第一行为总人数 n ( 1 <= n <= 1000 );
第二行至 n+1 行分别是每个人的姓名 s 、出生年 y 、月 m 、日 d (姓名是长度不超过20个字符的英文);
输出格式
有 n 行,即 n 个生日从大到小同学的姓名。(如果有两个同学生日相同,输入靠后的同学先输出)
样例
输入数据 1
3
Yangchu 1992 4 23
Qiujingya 1993 10 13
Luowen 1991 8 1
输出数据 1
Luowen
Yangchu
Qiujingya
题目1答案:
代码
#include<bits/stdc++.h>
using namespace std;
int n,m,a[201][201];
int main(){
cin>>n>>m;
for(int i=1;i<=n;i++)
{
for(int j=1;j<=m;j++)
{
cin>>a[i][j];
}
}
for(int i=1;i<=n;i++)
{
for(int j=1;j<=m;j++)
{
if(i%2==0)
cout<<a[i-1][j]<<" ";
if(i%2==1)
{
if(i!=n)
{
cout<<a[i+1][j]<<" ";
}
else
{
cout<<a[i][j]<<" ";
}
}
}
cout<<endl;
}
return 0;
}
题目2答案:
代码
#include<bits/stdc++.h>
using namespace std;
long long n,m,a[100005],s;
int main()
{
cin>>n>>m;
for(int i=1;i<=n;i++)
{
cin>>a[i];
}
sort(a+1,a+n+1);
for(int i=n;i>=0;i-=m)
{
s=s+a[i];
}
cout<<s;
return 0;
}
题目3答案:
代码
#include<bits/stdc++.h>
using namespace std;
int n;
struct xs
{
string name;
int nian,yue,ri,xh;
}
a[1002];
bool cmp(xs x,xs y)
{
if(x.nian!=y.nian)
{
return x.nian<y.nian;
}
else
{
if(x.yue!=y.yue)
{
return x.yue<y.yue;
}
else
{
if(x.ri!=y.ri)
{
return x.ri<y.ri;
}
else
{
return x.xh>y.xh;
}
}
}
}
int main()
{
cin>>n;
for(int i=1;i<=n;i++)
{
cin>>a[i].name>>a[i].nian>>a[i].yue>>a[i].ri;
a[i].xh=i;
}
sort(a+1,a+1+n,cmp);
for(int i=1;i<=n;i++)
{
cout<<a[i].name<<"\n";
}
return 0;
}
题目4答案:
代码
#include<bits/stdc++.h>
using namespace std;
long long x,s,l;
int main()
{
cin>>x;
if(x<=4)s=32;
else
{
s+=(x/6)*36;
l=x%6;
if(l==5)
{
s+=36;
}
if(l==4||l==3)
{
s+=32;
}
if(l==2||l==1)
{
s+=28;
}
}
cout<<s;
return 0;
}
标签:同学,输出,题目,书架,int,C++,抽测,输入
From: https://blog.csdn.net/zhangguanghao9/article/details/143969552