#YCL5T01. YCL五级(C++)理论综合题(修订版)
YCL五级(C++)理论综合题(修订版)
YCL 青少年人工智能编程水平测试 - 五级(C++)理论综合题
本题根据原试卷第 1~20 题整理。单选题每题 2 分,多选题每题 3 分,共 45 分。
一、单选题(每题 2 分)
1. 自增表达式
已知 int m = 0;,下面表达式中,与其他三个表达式的值不相同的是( )。
{{ select(1) }}
m++m += 1++mm + 1
2. 形参和实参
关于 C++ 中形参和实参的描述,正确的是( )。
{{ select(2) }}
- 函数定义时参数列表中的参数称为形式参数,简称形参
- 函数调用时,系统会把形参复制给实参
- 函数定义时参数列表中的参数称为实际参数,简称实参
- 实参只能是变量,不能是常量或表达式
3. 程序入口
对于一个 C++ 程序,以下叙述正确的是( )。
{{ select(3) }}
- 程序通常从
main函数开始执行,并在main函数结束后终止 - 程序总是从源文件中书写的第一个函数开始执行
- 程序总是从源文件中书写的最后一个函数开始执行
- 程序可以不包含
main函数而直接运行
4. 哈希函数
关于哈希(hash)函数,下面说法最准确的是( )。
{{ select(4) }}
- 哈希值可以无损还原出原始数据
- 哈希函数与加密算法完全相同
- 哈希值可用于校验文件内容是否一致
- 相同的哈希值一定说明两个文件完全相同
5. 猜牌问题
箱子里有 16 张牌:红桃 A、Q、4;黑桃 J、8、4、2、7、3;草花 K、Q、4、5、6;方块 A、5。
无名取出一张牌,把点数告诉有名,把花色告诉真名。随后三人的对话如下:
- 有名:“我不知道这张牌。”
- 真名:“我知道你不知道这张牌。”
- 有名:“现在我知道了。”
- 真名:“我也知道了。”
无名拿到的是( )。
{{ select(5) }}
- 红桃 A
- 红桃 4
- 方块 5
- 方块 A
6. 时间复杂度
算法的时间复杂度主要表示( )。
{{ select(6) }}
- 程序在某一台电脑上实际运行的秒数
- 程序源代码的长度
- 随问题规模增长,算法基本运算次数的增长趋势
- 程序中语句的总条数
7. 二维数组位置
若二维数组 a 有 m 行、n 列,并按行优先存储,下标从 0 开始,则 a[i][j] 前面共有多少个元素?
{{ select(7) }}
i * n + ji * m + ji * n + n + ji * n + n + j + 1
8. 算法描述
关于算法的描述,错误的是( )。
{{ select(8) }}
- 算法是解决问题的准确而完整的步骤描述
- 算法复杂度主要包括时间复杂度和“数据复杂度”
- 算法具有确定性、可行性和有穷性等特征
- 算法包括对数据的操作以及控制结构
9. 指针与数组
若有定义 int a[10], *p = a;,则 p + 5 表示( )。
{{ select(9) }}
- 数组元素
a[5]的值 - 数组元素
a[5]的地址 - 数组元素
a[6]的地址 - 数组元素
a[0]的值加 5
10. 右移运算
已知 int a = 20, b = 1;,那么 a >> b 的结果是( )。
{{ select(10) }}
- 40
- 20
- 10
- 1
11. 函数调用
关于 C++ 函数的描述,错误的是( )。
{{ select(11) }}
- 函数可以有返回值,也可以使用
void表示无返回值 - 形参通常只在函数内部有效
- 值传递时,在函数内部修改形参会直接改变调用处的实参
- 同一个函数可以被多次调用
12. FILO 数据结构
按照“FILO(先进后出)”原则组织数据的结构是( )。
{{ select(12) }}
- 堆
- 栈
- 队列
- 链表
13. 二维数组元素
已知 int a[10][10];,按从第 1 个元素开始计数,数组 a 的第 10 个元素是( )。
{{ select(13) }}
a[0][10]a[1][10]a[0][9]a[1][9]
14. 字符数组初始化
下列字符数组初始化中,错误的是( )。
{{ select(14) }}
char s[] = "goodluck";char s[20] = "GoodLuck";char s[] = {'g', 'o', 'o', 'd'};char s[5] = "goodluck";
15. 小写字母转大写
已知字符变量 c 中存放的是一个小写英文字母,下列操作可将其转换为对应大写字母的是( )。
{{ select(15) }}
c = c - 'A';c = c - 26;c = c - 'a' + 'A';c = c + 'a' - 'Z';
二、多选题(每题 3 分)
16. 字符运算
表达式 '9' - '0' 的值为整数 9。下面关于该表达式的说法中,错误的有( )。
{{ multiselect(16) }}
- 结果是整数 9
- 结果是字符
'9' - 表达式不合法
- 结果是字符
'0'
17. 函数执行结果
阅读下面程序:
#include <iostream>
using namespace std;
int func(int a, int b) {
int c;
c = a * b;
b = a;
return c;
}
int main() {
int a, b, c;
a = 10;
b = 100;
c = func(a, b) + a;
cout << c << endl;
return 0;
}
下列说法正确的有( )。
{{ multiselect(17) }}
- 程序执行后,
main中变量a的值为 10 - 被调用的函数名称为
func - 程序执行后,
main中变量c的值为 200 - 程序执行后,
main中变量b的值为 100
18. 真假话推理
甲、乙、丙三个人各自解答同一道题。甲说:“我做错了。”乙说:“甲做对了。”丙说:“我做错了。”丁看过答案后说:“三个人中恰好有一个人做对,且恰好有一个人说对。”
下列说法正确的有( )。
{{ multiselect(18) }}
- 甲说得对
- 乙说得对
- 丙做得对
- 甲做得对
19. C++ 程序组成
以下叙述中,错误的有( )。
{{ multiselect(19) }}
- 在合法取值范围内,整数通常可以精确表示,而浮点数可能存在精度误差
- C++ 程序只由
main函数组成 - C++ 程序可以由多个函数组成
- C++ 程序中只允许定义一个函数
20. 身份推理
无名、有名、真名三人中,一人经商、一人上大学、一人参军。已知:
- 无名的年龄比士兵大;
- 大学生的年龄比有名小;
- 真名的年龄与大学生的年龄不同。
下列说法可能正确的有( )。
{{ multiselect(20) }}
- 无名是大学生
- 有名是商人
- 有名是士兵
- 真名是商人
粤公网安备44195502000195号