#P2959. 2023初赛

2023初赛

Description

一、选择题(每题5分)</p> 1. 以下程序的输出结果是:( ) </p>
#include <iostream>
using namespace std;

int main() {
    int arr[] = {0, 2, 0, 4, 0, 6};
    int sum = 0;

    for (int i = 1; i <= 5; i += 2) {
        sum += arr[i];
    }

    cout << sum << endl; // 输出结果
    return 0;
}
</p>
A. 12
</p> B. 18
</p> C. 20
</p> D. 21
</p>

2. 在 C++ 中,下面哪个关键字用于声明一个变量,其值不能被修改?( )

A. unsigned
B. const
C. static
D. mutable
</div> </p> 3.(8+6)×a-10+c÷2 在 C++ 中应表示为 ()。</p> A. (8+6) xa-10+c÷2
B. (8+6) *a-10+c÷2
C. (8+6) *a-10+c/2
D. (8+6) xa-10+c/2
</div> </p> 4.C++ 中,11%3 的运算结果是 ()。</p> A. 3
B. -1
C. 1
D. 2
</div> </p> 5.下列关于算法的叙述不正确的是 ()。</p> A. 算法的每一步必须没有歧义,不能有半点含糊
B. 算法必须有输入
C. 同一问题可能存在多种不同的算法
D. 同一算法可以用多种不同的形式来描述
</div>
6. 若有如下语句:int a, b, c; a=b=c=5; 则执行语句 b+=++a&&++c>b 后,a、b、c 的值分别为( )

A. 6,7,6
B. 6,6,6
C. 6,6,5
D. 6,1,6

7. 有四个人要从 A 点坐一条船过河到 B 点,船开始在 A 点,该船一次最多可坐两个人。已知这四个人中每个人独自坐船的过河时间依次分别为 1, 2, 4, 8,且两个人坐船的过河时间为两人独自过河时间的较大者。则最短 () 时间可以让四个人都过河到 B 点(包括从 B 点把船开回 A 点的时间)( )

A. 14
B. 15
C. 16
D. 17

8. 下列 C++ 代码执行之后输出的结果是( )

#include <bits/stdc++.h>
using namespace std;
int main(){
    int a = 0, b = 1235;
    while(b>0){
      a += 1;
      b /= 10;
    }
   cout << a;
   return 0;
}
A. 4
B. 5
C. 6
D. 7

9. 关于 C++ 函数,以下说法正确的是( )。

A. 函数不可以没有返回值
B. 函数不可以没有参数
C. 调用函数时填写的参数必须和函数声明时的变量名一致
D. 有的时候调用函数时函数参数可以少于声明时的参数个数

10. 以下哪种排序的时间复杂度是不稳定的 ( )。

A. 快速排序
B. 归并排序
C. 冒泡排序
D. 基数排序

11. 运行下方程序,输出结果为:( ) </p>
#include <bits/stdc++.h>
using namespace std;
int main(){
int a;
a = 45.0 - 30;
a *= 2;
cout << a << endl;
return 0;
}
</p>
A. 10.0
</p> B. 18
</p> C. 30
</p> D. 30.0
</p>

12. 有一个由 1000 个整数构成的顺序表,假定表中的元素已经按升序排列,采用二分查找定位一个元素,则最多需要几次比较就能确定是否存在所查找的元素( )。


A. 10 次
B. 11 次
C. 12 次
D. 13 次

13. 运行下方程序,输出结果为:( )

#include <bits/stdc++.h>
using namespace std;
int main(){
int a = 10, b = 0;
for(;a=0;a--) b += a*(a+1);
cout << b << endl;
return 0;
}
</p>
A. 38
</p> B. 40
</p> C. 0
</p> D. 程序有错误,无法输出
</p>

14. 在下列代码横线处填写 (),可以将输入的单词的大写字母全部变小写( )

#include <bits/stdc++.h>
using namespace std;
int main(){
char word[100];
int l = strlen(word);
for(int i=0;i<l;i++){
// 横线处
}
return 0;
}
</p>
A. word[i]-'a'+'A'
</p> B. word[i]-='A'+'a'
</p> C. word[i]+='A'-'a'
</p> D. word[i]+='a'-'A'
</p>

15. 在C++中,以下哪个函数用于计算字符串的长度( )。


A. length()
B. size()
C. strlen()
D. all(ABC全是)

二、判断题(每题5分)

16. 表达式 (3 && 0) || (0 && -1)的结果为假。( )。

A. 正确
B. 错误

17. 字符 '0' 的 ASCII 码为 48,则字符 '5' 的 ASCII 码为 39 ( )。

A. 正确
B. 错误

18. 只要 while 循环语句中的条件表达式一直成立,循环就一定会永远执行下去。( )。

A. 正确
B. 错误

19. 条件 a+b>c&&b+c>a&&c+a>b 可以正确判断 “a, b,c 三条边可以构成三角形”。( )。

A. 正确
B. 错误

20. 表达式('1'+'1'=='2'? flag=1:flag=2) 的结果值和表达式 (flag==2) 的相同( )。

A. 正确
B. 错误

</span>