C. 程序补全-客观题

    客观题

程序补全-客观题

该比赛已结束,您无法在比赛模式下递交该题目。您可以点击“在题库中打开”以普通模式查看和递交本题。

三、完善程序(单选题,每小题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;
}
  1. ①处应该填()。 {{ select(34) }}
  • 0
  • 1
  • i
  • INT_MAX
  1. ②处应该填()。 {{ select(35) }}
  • y[j]<=y[i]
  • y[j]<y[i]
  • y[j]>y[i]
  • y[j]>=y[i]
  1. ③处应该填()。 {{ select(36) }}
  • ans=i
  • f[i]++
  • f[i]--
  • ans++
  1. ④处应该填()。 {{ select(37) }}
  • (f[i]>max_f)
  • (f[i]>=max_f)
  • (f[i]<max_f)
  • (f[i]<=max_f)
  1. ⑤处应该填()。 {{ 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;
}
  1. ①处应该填()。 {{ select(39) }}
  • false
  • true
  • 1
  • -1
  1. ②处应该填()。 {{ select(40) }}
  • used[i]=true
  • data[i]=i
  • used[data[i]]=true
  • used[data[i]]=false
  1. ③处应该填()。 {{ select(41) }}
  • j
  • i
  • true
  • false
  1. ④处应该填()。 {{ select(42) }}
  • n
  • m
  • i
  • j
  1. ⑤处应该填()。 {{ select(43) }}
  • return 0
  • exit
  • continue
  • break

初赛小测

未参加
状态
完成
规则
OI
题目
3
开始于
2026-9-8 18:30
结束于
2026-9-8 21:30
持续时间
3 小时
主持人
参赛人数
7