B. 算法创意实践挑战赛初中组2025初赛真题2

    客观题

算法创意实践挑战赛初中组2025初赛真题2

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

  1. 以下哪项是C++中合法的变量名? {{ select(1) }}
  • 1num
  • num_1
  • num#1
  • @num
  1. 以下哪段代码能将数组int a[4]={2,4,6,8};的所有元素变为原来的二倍? {{ select(2) }}
  • for(int i=0;i<4;i++) a[i]+=2;
  • for(int i=1;i<=4;i++) a[i]*=2;
  • for(int i=1;i<=4;i++) a[i]=a[i]*a[i];
  • for(int i=0;i<4;i++) a[i]*=2;
  1. 执行以下代码,输出的结果是?
int y=25; 
if(y%2!=0) cout<<y;

{{ select(3) }}

  • 1
  • 0
  • 25
  • y
  1. 执行C++代码string arr[4]={"89","1234","xyz","abcde"};后,计算arr[3].length()+ stoi(arr[1].substr(1)),结果是多少? {{ select(4) }}
  • 92
  • 94
  • 237
  • 239
  1. 执行以下代码,输出的结果是?
int a=14/3*3; 
cout<<a;

{{ select(5) }}

  • 3
  • 0
  • 12
  • 14
  1. 执行下列C++代码后,计算s[0].d+s[1].i,结果是多少?
struct S { double d; int i; };
S s[2]={{1.5,1}, {2.5,2}};

{{ select(6) }}

  • 4
  • 4.5
  • 3.5
  • 3
  1. 补全①处C++代码,使程序输出的结果为aaaa。下列选项中哪一项正确?
string s="a",t="abaa",ans="";
_①_
cout<<ans;

{{ select(7) }}

  • ans=s+t-"b";
  • t[2]='a';ans=t;
  • ans=s*4;
  • s+=s;ans+=s+s;
  1. 下列C++代码中哪个语句运行结果是7? {{ select(8) }}
  • cout << (char)7;
  • cout<<int(4.3333333+2.6666666);
  • cout<<66/9;
  • cout<<15/2.0;
  1. 补全以下代码,将数组a按升序排列。下列选项中哪一项正确?
int a[7]= {7, 1, 4, 2, 2, 3, 6};
int N =7;
for (int i=0; i<N-1; i++) {
    for (int j=0; j<_①_; j++) {
        if (a[j] > a[j+1]) swap(a[j], a[j+1]);
    }
}

{{ select(9) }}

  • N-i-1
  • i-1
  • i
  • N
  1. 阅读以下程序,输入6 7,输出的结果是?
int a,b;
cin>>a>>b;
if(a%2==0) a/=2;
if(a%2!=0) a=a*3+1;
cout<<a+b;

{{ select(10) }}

  • 28
  • 17
  • 13
  • 10
  1. 有一个计算机,上面有按钮00、0、1、2、3、4、5、6、7、8、9。当计算器显示字符串xx并按下按钮bb时,字符串xx会变为x+bx+b(即在xx的末尾附加bb)。最初,计算器显示空字符串。给定一个目标字符串SS,找到在计算机上显示SS所需的最少按键次数。 例如: 如果S=S=“001”,最少需要2次按键:按00,然后按1。 如果S=S=“10009”,最少需要4次按键:按1,然后按00,然后按0,最后按9。补全代码,找到显示目标字符串所需的最少按键次数(有00双按键)。下列选项哪一项正确?
string s;
cin>>s;
int l=s.size();
int p = 0, res = 0;
while(p<l) {
    res++;
    if(_①_)p+=2;
    else p++;
}
cout<<res<<"\n";

{{ select(11) }}

  • p+1<l && s[p]=='0' && s[p+1]=='0'
  • p<l && s[p] =='0' && s[p-1]=='0'
  • p-1<l && s[p]=='0' && s[p-1]=='0'
  • p<l && s[p]=='0' && s[p+1]=='0'
  1. 给定一个由正整数数组组成的长度为NN的序列,A=(A1,A2,,AN)A=(A_1,A_2,\dots,A_N)请判断这个序列是否为等比数列。 等比数列的定义是:对于所有1iN11 \le i \le N-1Ai+1/AiA_{i+1}/A_i的值都相等。补全代码,判断序列是否为等比数列。下列选项中哪一项正确?
int n;
long long a[100];
bool flag=true;
cin>> n;
for(int i=0; i<n; i++) cin>>a[i];
for(int i=0; i<n-2; i++) {
    if(_①_) flag=false;
}
if(flag) cout<<"Yes"<<endl;
else cout<<"No"<<endl;

{{ select(12) }}

  • a[i]+a[i+2] != 2*a[i+1]
  • a[i]*a[i+2] != a[i+1]*a[i+1]
  • a[i+1]/a[i-1] = a[i-1]/a[i+1]
  • a[i]*a[i+1] != a[i+1]*a[i+2]
  1. 有n个荷叶排列成一排,从左到右编号为1到n。Alice和Bob是两只青蛙,初始时分别位于a号和b号荷叶上。他们轮流跳跃,Alice先跳。 例如: 如果Alice在荷叶3,它可以跳到荷叶2或荷叶4(如果这些荷叶存在且未被Bob占据)。 需要注意的是: 青蛙必须跳跃,不能停留在原地。 两只青蛙不能占据同一片荷叶。 如果某只青蛙不能有效跳跃,它将输掉游戏,另一只青蛙获胜。两只青蛙跳荷叶,补全代码输出获胜者。下列选项哪一项正确?
int n,a,b;
cin>>n>>a>>b;
if(_①_) cout<<"Alice";
else cout<<"Bob";

{{ select(13) }}

  • abs(a-b)%2==0
  • abs(n-(a-b))%2!=0
  • abs(n-(a-b))%2==0
  • abs(a-b)%2!=0
  1. 执行下列程序,输出结果为?
#include <iostream>
using namespace std;
int main() {
    int i=1, j=1;
    int x=i++, y=++j;
    cout<<i<<" "<<j<<" "<<x<<" "<<y;
    return 0;
}

{{ select(14) }}

  • 1 2 2 1
  • 2 2 1 2
  • 1 2 2 2
  • 2 2 2 2
  1. 执行下列C++代码片段后输出的是?
long long sum =0;
for (int i= 1; i<= 6; i++) {
    long long mul =1;
    for (int j=1; j<=i; j++) mul*=i;
    sum+=mul;
}
cout << sum % 10;

{{ select(15) }}

  • 6
  • 7
  • 8
  • 9
  1. while循环和do-while循环的主要区别是do-while至少执行一次循环体。 {{ select(16) }}
  • 正确
  • 错误
  1. 定义string s="71884";s.substr(0,s.find('8') - 1)的值为"71"。 {{ select(17) }}
  • 正确
  • 错误
  1. string s="test"; s.length()s.size()返回值相等。 {{ select(18) }}
  • 正确
  • 错误
  1. string s= "abc"+ "def";是合法的初始化方式。 {{ select(19) }}
  • 正确
  • 错误
  1. 结构体struct中只能包含成员变量和成员函数,不能包含结构体类型的变量。 {{ select(20) }}
  • 正确
  • 错误

算法创意实践挑战赛 初中组初赛2025

未参加
状态
已结束
规则
IOI
题目
2
开始于
2026-4-1 0:00
结束于
2026-5-8 12:00
持续时间
900 小时
主持人
参赛人数
4