202
3年
第
6
届全国青少年人工智能创新挑战赛C++信息学专项真题
一、单项选择题(共 15 题,每题 2 分,共计 30 分;每题有且仅有一个正确选项)
1. 下列有关分支结构的叙述中,不正确的是( )。
A.if(a==0) x++; 不是一个合法的C++语句
B.switch(3){……}是一个合法的C++语句
C.switch语句中不一定要使用break语句
D.if(a>b) m++;else m-- 是一个合法的C++语
2. 下列有关循环控制语句的叙述中,不正确的是( )。
A. while 循环语句是先循环后判断
B. for语句构成的循环可以用break 语句退出
C. while 语句构成的循环可以用for语句构成的循环来代替
D. for 语句的3个表达式均可以省略,但之间的分号不能省略
3. 在定义数组时,对数组元素赋初值,下列正确的是( )。
A. int a[5]={10,11,12,13,14,15};
B. int a[5]={ };
C. int a[5]=10,11,12,13,14;
D. int a[5]={10};
4. 若有定义char str[20]="Book ";则执行下面语句的输出结果是( )。
cout << strlen(str) << "," << sizeof(str) << endl;
A. 20,6
B. 6,20
C. 5,20
D. 20,5
5. 若定义int a = 066,则执行cout << a;语句后,输出的结果是( )。
A. 54
B. 66
C. 78
D. 102
6. 对长度为n的线性表进行顺序查找,时间复杂度为( )
A. O(n)
B. O(log2n)
C. O(n-1)
D. O(n+1)
7. 顺序查找适合线性表的存储结构为( )
A. 链接存储
B. 压缩存储
C. 散列存储
D. 索引存储
8. 若有以下代码,则数组 arr 的长度是( )
int arr [] = {1, 2, 3, 4, 5};
A. 3
B. 4
C. 5
D. 6
9. 下列哪个是 C++语言中用于获取字符串长度的函数( )。
A. length()
B. len()
C. getLength()
D. strlen ()
10. 在下列代码的横线处填写 (),可以保证输出是“1357”,不会有多余字符( )
#include
#include
using namespace std;
int main () {
char str [] = "1234567";
for (____________________) // 在此处填入代码
cout << str [i];
return 0;
}
A. int i = 0; i < strlen (str); i++
B. int i = 0; str [i] != \0 ; i++
C. int i = 1; i <= 7; i += 2
D. int i = 0; i <= 6; i += 2
11. 如果 a 和 b 均为 int 类型的变量,下列表达式能正确判断“a等于b”的是( )
A. ((a / b) == 1)
B. ((a & b) == a)
C. ((a ^ b) == 0)
D. ((a | b) == b)
12. 如果 a 为 int 类型的变量,下列哪个表达式可以正确求出满足“大于等于a且是4的倍数”的整数中最小的( )
A. (a & (~3))
B. ((a >
2023年第6届全国青少年人工智能创新挑战赛真题-C++信息学专项