#320. CSP2019PJ-17

CSP2019PJ-17

  1. (阅读程序)
#include<cstdio>
using namespace std;
int n, m;
int a[100], b[100];
int main()
{
    scanf("%d%d",&n, &m);
    for(int i = 1; i <= n; ++i)
        a[i] = b[i] = 0;
    for(int i = 1; i <= m; ++i)
    {
       int x, y;
       scanf("%d%d",&x, &y);
       if(a[x] < y && b[y] < x) //第13行
       {
            if(a[x] > 0)
                b[a[x]] = 0; //第15行
            if(b[y] > 0)
                a[b[y]] = 0;
            a[x] = y;
            b[y] = x;
       }
    }
    int ans = 0;
    for(int i = 1; i <= n; ++i)
    {
        if(a[i] == 0)
            ++ans;
        if(b[i] == 0)
            ++ans; //第27行
    }
    printf("%d\n", ans);
    return 0;
}

假设输入的 n 和 m 都是正整数,x 和 y 都是在 [1,n] 的范围内的整数,完成下面的判断题和单选题:

(判断题)

当 m > 0 时,输出的值一定小于 2n( )

{{ select(1) }}

执行完第 27 行的 “++ans” 时,ans 一定是偶数( )

{{ select(2) }}

a[i] 和 b[i] 不可能同时大于 0( )

{{ select(3) }}

若程序执行到第 13 行时,x 总是小于 y,那么第 15 行不会被执行。( )

{{ select(4) }}

(选择题)

若 m 个 x 两两不同,且 m 个 y 两两不同,则输出的值为( )

{{ select(5) }}

  • 2n - 2m
  • 2n + 2
  • 2n - 2
  • 2n

若 m 个 x 两两不同,且 m 个 y 都相等,则输出的值为( )

{{ select(6) }}

  • 2n - 2
  • 2n
  • 2m
  • 2n - 2m