程序补全-客观题
该比赛已结束,您无法在比赛模式下递交该题目。您可以点击“在题库中打开”以普通模式查看和递交本题。
三、完善程序(单选题,每小题3分,共计30分)
完善程序1(坐标统计): 输入n个整点在平面上的坐标。对于每个点,可以控制所有位于它左下方的点(即x,y坐标都比它小),它可以控制的点的数目称为"战斗力"。依次输出每个点的战斗力,最后输出战斗力最高的点的编号(如果若干个点的战斗力并列最高,输出其中最大的编号)
#include<iostream>
using namespace std;
const int SIZE=100;
int x[SIZE],y[SIZE],f[SIZE];
int n,i,j,max_f,ans;
int main()
{
cin>>n;
for(i=1;i<=n;i++) cin>>x[i]>>y[i];
max_f=0;
for(i=1;i<=n;i++)
{
f[i]=[ ① ];
for(j=1;j<=n;j++)
{
if(x[j]<x[i] && [ ② ])
[ ③ ];
}
if( [ ④ ] )
{
max_f=f[i];
[ ⑤ ];
}
}
for(i=1;i<=n;i++) cout<<f[i]<<endl;
cout<<ans<<endl;
return 0;
}
- ①处应该填()。 {{ select(34) }}
- 0
- 1
- i
- INT_MAX
- ②处应该填()。 {{ select(35) }}
- y[j]<=y[i]
- y[j]<y[i]
- y[j]>y[i]
- y[j]>=y[i]
- ③处应该填()。 {{ select(36) }}
- ans=i
- f[i]++
- f[i]--
- ans++
- ④处应该填()。 {{ select(37) }}
- (f[i]>max_f)
- (f[i]>=max_f)
- (f[i]<max_f)
- (f[i]<=max_f)
- ⑤处应该填()。 {{ select(38) }}
- ans++
- ans+=max_f
- ans=i
- ans=max_f
完善程序2(排列数): 输入两个正整数n,m(1<n<20,1<m<n),在1~n中任取m个数,按字典序从小到大输出所有这样的排列。
例如: 输入:
3 2
输出:
1 2
1 3
2 1
2 3
3 1
3 2
#include<iostream>
#include<cstring>
using namespace std;
const int SIZE=25;
bool used[SIZE];
int data[SIZE];
int n,m,i,j,k;
bool flag;
int main()
{
cin>>n>>m;
memset(used,false,sizeof(used));
for(i=1;i<=m;i++)
{
data[i]=i;
used[i]=true;
}
flag=true;
while(flag)
{
for(i=1;i<=m-1;i++)
cout<<data[i]<<" ";
cout<<data[m]<<endl;
flag=[ ① ];
for(i=m;i>=1;i--)
{
[ ② ];
for(j=data[i]+1;j<=n;j++)
if(!used[j])
{
used[j]=true;
data[i]=[ ③ ];
flag=true;
break;
}
if(flag)
{
for(k=i+1;k<=m;k++)
for(j=1;j<=[ ④ ];j++)
if(!used[j])
{
data[k]=j;
used[j]=true;
break;
}
[ ⑤ ];
}
}
}
return 0;
}
- ①处应该填()。 {{ select(39) }}
- false
- true
- 1
- -1
- ②处应该填()。 {{ select(40) }}
- used[i]=true
- data[i]=i
- used[data[i]]=true
- used[data[i]]=false
- ③处应该填()。 {{ select(41) }}
- j
- i
- true
- false
- ④处应该填()。 {{ select(42) }}
- n
- m
- i
- j
- ⑤处应该填()。 {{ select(43) }}
- return 0
- exit
- continue
- break
冀公网安备13098402000493号