青少年软件编程(C语言)等级考试试卷(二级)
分数:100  题数:5
一、编程题(共5题,共100分)
1.
数组指定部分逆序重放
 
试题编号:-006
试题类型:编程题
标准答案:
试题难度:一般
试题解析:
#include <bits/stdc++.h>
using namespace std;
int main()
{
  int n,k,m[101] = {0,};
  cin >> n >> k;
  for(int i = 1;i <= n;i++)
  {
    cin >> m[i];
  }
  int i = 1,j = k;
  while(i < j)
  {
    swap(m[i],m[j]);
    i++;
    j--;
  }
  for(int i = 1;i <= n;i++)
  {
    cout << m[i] << " ";
  }
  return 0;
}
2.
简单密码
 
试题编号:-007
试题类型:编程题
标准答案:
试题难度:一般
试题解析:
#include<bits/stdc++.h>
using namespace std;
int main()
{
int a[101][101],x[101],y[101],r,c,n,i,j,rs=0,cs=0;
memset(x,0,sizeof(x));
memset(y,0,sizeof(y));
cin>>n;
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
{
cin>>a[i][j];
if(a[i][j]==1) x[i]++;
}
if(x[i]&1)
{
rs++;
r=i;
}
}
if(rs>1)
{
cout<<"Corrupt"<<endl;
return 0;
}
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
{
if(a[j][i]==1) y[i]++;
}
if(y[i]&1)
{
cs++;
c=i;
if(cs>1) break;
}
}
if(cs>1)
{
cout<<"Corrupt";
return 0;
}
if(rs==0&&cs==0) cout<<"OK";
else cout<<r+1<<" "<<c+1<<endl;
return 0;
}
3.
错误探测
 
试题编号:-008
试题类型:编程题
标准答案:
试题难度:一般
试题解析:
#include<bits/stdc++.h>
using namespace std;
int main()
{
int a[101][101],x[101],y[101],r,c,n,i,j,rs=0,cs=0;
memset(x,0,sizeof(x));
memset(y,0,sizeof(y));
cin>>n;
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
{
cin>>a[i][j];
if(a[i][j]==1) x[i]++;
}
if(x[i]&1)
{
rs++;
r=i;
}
}
if(rs>1)
{
cout<<"Corrupt"<<endl;
return 0;
}
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
{
if(a[j][i]==1) y[i]++;
}
if(y[i]&1)
{
cs++;
c=i;
if(cs>1) break;
}
}
if(cs>1)
{
cout<<"Corrupt";
return 0;
}
if(rs==0&&cs==0) cout<<"OK";
else cout<<r+1<<" "<<c+1<<endl;
return 0;
}
4.
奇数单增序列
 
试题编号:-009
试题类型:编程题
标准答案:编写c语言的软件
试题难度:一般
试题解析:
#include<bits/stdc++.h>
using namespace std;
int main()
{
int a[101][101],x[101],y[101],r,c,n,i,j,rs=0,cs=0;
memset(x,0,sizeof(x));
memset(y,0,sizeof(y));
cin>>n;
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
{
cin>>a[i][j];
if(a[i][j]==1) x[i]++;
}
if(x[i]&1)
{
rs++;
r=i;
}
}
if(rs>1)
{
cout<<"Corrupt"<<endl;
return 0;
}
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
{
if(a[j][i]==1) y[i]++;
}
if(y[i]&1)
{
cs++;
c=i;
if(cs>1) break;
}
}
if(cs>1)
{
cout<<"Corrupt";
return 0;
}
if(rs==0&&cs==0) cout<<"OK";
else cout<<r+1<<" "<<c+1<<endl;
return 0;
}