0 #10796. 普及组初赛模拟29

普及组初赛模拟29

普及组初赛模拟29

一、单选题

  1. 以下哪个是人工智能(Artificial Intelligence)的缩写。 {{ select(1) }}
  • AI
  • NOI
  • AR
  • COM
  1. 以下不属于计算机输出设备的有。 {{ select(2) }}
  • 麦克风
  • 音箱
  • 打印机
  • 显示器
  1. ChatGPT 是 OpenAI 研发的聊天机器人程序,它能通过理解和学习人类的语言来进行对话,还能根据聊天的上下文进行互动,完成很多工作。请你猜猜看,下面任务中,ChatGPT 不能完成的是。 {{ select(3) }}
  • 改邮件
  • 擦地板
  • 写代码
  • 编剧本
  1. C++C++ 表达式 21&2%102 - 1 \& 2\%10 的值是。 {{ select(4) }}
  • 0
  • 1
  • 2
  • 3
  1. C++C++ 代码段执后的输出是。
int a = 5, b = 6;
cout << "a*b=" << a * b;

{{ select(5) }}

  • 5*6= 30
  • 5*6=30
  • a*b=30
  • a*b=a*b
  1. 如果 aabb 均为 int 类型的变量,下列表达式能正确判断"aa 等于 0 且 bb 等于 0"的是。 {{ select(6) }}
  • (a==b==0)(a == b == 0)
  • !(ab) !(a || b)
  • (a+b==0)(a + b == 0)
  • (a==0)==(b==0)(a == 0) == (b == 0)
  1. 在下列代码的横线处填写( ),使得输出是"100 20"。
#include<iostream>
using namespace std;
int main()
{
    int a = 20, b = 100;
    a = ______; //在此处填入代码
    b = a + b;
    a = b - a;
    cout << a << " " << b << endl;
    return 0;
}

{{ select(7) }}

  • a+ba + b
  • bb
  • aba - b
  • bab - a
  1. 以下4个数中最大的素数是。 {{ select(8) }}
  • 91
  • 89
  • 119
  • 93
  1. 45和30的最小公倍数是。 {{ select(9) }}
  • 30
  • 45
  • 90
  • 180
  1. 在下列代码的横线处填写( ),可以使得输出是"147"。
#include<iostream>
using namespace std;
int main()
{
    for(int i = 1; i <= 8; i++)
        if(___) //在此处填入代码
            cout << i;
    return 0;
}

{{ select(10) }}

  • i % 2 == 1
  • i % 3 == 1
  • i = i + 3
  • i + 3
  1. 表达式(4 * (11 + 12) / 4)的计算结果为。 {{ select(11) }}
  • 47
  • 20
  • 23
  • 56
  1. 在C++语中,int类型的变量x、y、z的值分别为2、4、6,以下表达式的值为真的是。 {{ select(12) }}
  • x > y || x > z
  • x != z - y
  • z > y + x
  • x < y || x < z
  1. 如果用一个int类型的变量a表达正方形的边长,则下列哪个表达式不能用来计算正方形的面积? {{ select(13) }}
  • a * a
  • 1 * a * a
  • a ^ 2
  • a * 2 * a / 2
  1. 执行以下C++语言程序后,输出结果是。
#include<iostream>
using namespace std;
int main()
{
    int sum = 0;
    for(int i = 1; i <= 20; i++)
        if(i % 3 == 0 || i % 5 == 0)
            sum += i;
    cout << sum << endl;
    return 0;
}

{{ select(14) }}

  • 210
  • 113
  • 98
  • 15
  1. 当价格不变时,集成电路上可容纳的元器件的数目,约每隔18~20个月就会增加一倍,性能也将提升一倍。提出该定律的是。 {{ select(15) }}
  • 图灵
  • 诺贝尔
  • 摩尔
  • 冯. 诺依曼

二、阅读程序

程序1

#include <iostream>
using namespace std;
int a,b,c;
int main()
{
    cin >> a >> b >> c;
    a = b - a;
    b = b - a;
    a = b + a;
    c = b - a;
    cout<< a << " " << b << " " << c;
    return 0;
}
  1. 若输入1 2 3,则输出3 2 1。 {{ select(16) }}
  • 正确
  • 错误
  1. 若输入123456789012 2 3,将输出2 123456789012 123456789010。 {{ select(17) }}
  • 正确
  • 错误
  1. 该程序中,头文件#include<iostream>可以改为#include<bits/stdc++.h>。 {{ select(18) }}
  • 正确
  • 错误
  1. 若输入10 20 30,输出20 10 -10。 {{ select(19) }}
  • 正确
  • 错误
  1. 若将第10行的c=b-a改成c=b,则输入3 6 9,输出6 3 3。 {{ select(20) }}
  • 正确
  • 错误

程序2

#include <bits/stdc++.h>
using namespace std;
int main(){
    int i, n, m, ans;
    cin >> n >> m;
    i = n;
    ans = 0;
    while(i <= m)
    {
        ans += i;
        i++;
    }
    cout << ans <<endl;
    return 0;
}
  1. 假如删去第7行ans=0,程序运行结果。 {{ select(21) }}
  • 不变
  • 变大
  • 变小
  • 均有可能
  1. 将第8行的<=改变<,输出结果将。 {{ select(22) }}
  • 减小n
  • 减小m
  • 增大n
  • 增大m
  1. 当m<n时,程序。 {{ select(23) }}
  • 不会运行错误
  • 会运行错误
  • 输出结果错误
  • 输出结果为负数
  1. 输入10 20,输出结果为。 {{ select(24) }}
  • 165
  • 5
  • 20
  • 10
  1. 输入的n和m不超过int范围,该程序。 {{ select(25) }}
  • 一定会输出正确的结果
  • 一定输出错误结果
  • 可能输出错误结果
  • 前三种说法均不对

程序3

#include <bits/stdc++.h>
using namespace std;
int main()
{
    int n;
    cin >> n; //输入一个三位数
    if(n<100 || n > 999)
    {
        cout << "不是三位数";
        return 0;
    }
    int a, b, c, d;
    a = n % 10;
    b = n / 10 % 10;
    c = n / 100 % 10;
    d = a * a * a + b * b * b + c * c * c;
    if(d == n)
    {
        cout << "YES" << endl;
    }
    else
    {
        cout << "NO" << endl;
    }
    return 0;
}
  1. 假如将第15行改为 c=n/100c = n / 100,输入一个三位数,程序运行结果。 {{ select(26) }}
  • 不变
  • 改变
  • 一直输出 "YES"
  • 一直输出 "NO"
  1. 第14行改为以下语句,不会影响程序结果。 {{ select(27) }}
  • b = n%10%10
  • b = n %100/10
  • b = n / 100 / 10
  • b = n % 10 / 10
  1. 第15行改为以下语句,不会影响程序结果。 {{ select(28) }}
  • c = n %1000 / 100
  • c = n %1000 / 10
  • c = n / 1000 / 10
  • c = n % 10 / 1000
  1. 输入1530,输出结果为。 {{ select(29) }}
  • YES
  • NO
  • 不是三位数
  • 无输出
  1. 输入153,程序将输出。 {{ select(30) }}
  • YES
  • NO
  • 不是三位数
  • 无输出

三、程序阅读填空题

程序1

题意描述:学校进行了优秀学生干部的投票评选,每人一票,每张选票上有一个1到20的数字,代表被投票的20名学生干部的编号。全校共有2000人参加了投票,票数最多的前10名为优秀学生干部。统计票数最多的是10名。

#include <iostream>
using namespace std;
int a[22];
int main()
{
    for(int i = 1; __A__ ; i++)
    {
        int x;
        cin >> x;
        __B__ ;
    }
    int __C__ ;
    for(int i = 2; __D__ ; i++)
    {
        if(__E__)
        {
            m = i;
        }
    }
    cout << m;
    return 0;
}
  1. A处下划线位置应填写。 {{ select(31) }}
  • i <= 2000
  • i <= 22
  • i <= 20
  • i >= 2000
  1. B处下划线位置应填写。 {{ select(32) }}
  • a[x] ++
  • a[i] ++
  • x++
  • x += x
  1. C处下划线位置应填写。 {{ select(33) }}
  • m = -1
  • m = -10000000
  • m = 2010
  • m = 1
  1. D处下划线位置应填写。 {{ select(34) }}
  • i < 20
  • i == 20
  • i = 2000
  • i < 21
  1. E处下划线位置应填写。 {{ select(35) }}
  • a[i] >= a[m]
  • a[i] > a[m]
  • a[i] < a[m]
  • a[i] <= a[m]

程序2

输入压缩后的字符串,输出压缩前的字符串。压缩的方法是把连续的相同字母压缩为"长度+字母"的形式,在本题中,单个的字母不需要压缩。例如: 3a5bx3a5bx,解压后的结果为: aaabbbbbxaaabbbbbx;例如: 12ab10c2ax12ab10c2ax解压后的结果为: aaaaaaaaaaabcccccccccaaxaaaaaaaaaaabcccccccccaax

#include <bits/stdc++.h>
using namespace std;
string s;
int main()
{
    cin >> s;
    int x = 0;
    for(int i = 0; __A__ ; i++)
    {
        if(__B__)
        {
            x = x * 10 + (s[i] - '0');
        }
        else
        {
            if(__C__)
            {
                for(int j = 1; j <= x; j++)
                {
                    cout << __D__;
                }
            }
            else
            {
                cout << s[i];
            }
            __E__;
        }
    }
    return 0;
}
  1. A处下划线位置应填写。 {{ select(36) }}
  • i < s.size()
  • i < strlen(s)
  • i < s.size() - 1
  • i <= strlen(s) - 1
  1. B处下划线位置应填写。 {{ select(37) }}
  • s[i] >= 'A' && s[i] <= 'Z'
  • s[i] >= 'a' && s[i] <= 'z'
  • s[i] >= '0' || s[i] <= '9'
  • s[i] >= '0' && s[i] <= '9'
  1. C处下划线位置应填写。 {{ select(38) }}
  • x >= 0
  • x > 0
  • x <= 1
  • x > 1
  1. D处下划线位置应填写。 {{ select(39) }}
  • s[i]
  • s[i - 1]
  • (int) s[i]
  • (int) s[i - 1]
  1. E处下划线位置应填写。 {{ select(40) }}
  • x = 0
  • x --
  • x = 1
  • x ++