#z167. 基础篇测试1
基础篇测试1
1. 下列关于C++函数参数传递的说法中,正确的是( )
{{ select(1) }}
- [选项1] 传值参数中,修改形参的值会影响实参的值
- [选项2] 引用参数中,形参是实参的别名,修改形参等价于修改实参
- [选项3] 函数参数只能通过传值或引用方式传递
- [选项4] 传值参数传递时,实参和形参占用相同的内存空间
2. 在C++中,关于string类型的成员函数,下列说法错误的是( )
{{ select(2) }}
- [选项1]
size()函数可返回字符串的长度,与length()函数功能相同 - [选项2]
substr(pos, len)函数用于提取从pos位置开始、长度为len的子串,若pos+len超出字符串长度,则只提取到字符串末尾 - [选项3]
find(subs)函数若找到子串subs,返回子串起始位置;若未找到,返回-1 - [选项4]
replace(pos, len, new_str)函数用于将从pos位置开始、长度为len的子串替换为new_str
3. 关于C++结构体(struct),下列说法错误的是( )
{{ select(3) }}
- [选项1] 结构体可以包含不同类型的数据成员
- [选项2] 结构体变量可以整体赋值
- [选项3] 结构体成员必须通过“结构体变量名.成员名”的方式访问,无法通过指针访问
- [选项4] 结构体可以定义成员函数,实现特定功能
4. 下列关于指针的操作中,不合法的是( )
{{ select(4) }}
- [选项1]
int a = 10; int *p; *p = &a; - [选项2]
int a[5] = {1,2,3,4,5}; int *p = a; cout << *(p+3); - [选项3]
int a = 5; int *p = &a; int **pp = &p; cout << **pp; - [选项4]
int a = 10; void *p = &a; cout << *(int*)p;
5. 下列关于C++中循环语句的说法,错误的是( )
{{ select(5) }}
- [选项1]
for循环的初始化、条件判断、增量表达式均可省略,但分号不能省略 - [选项2]
while循环的条件判断语句后不能加分号,否则会导致循环体无法执行 - [选项3]
do-while循环的循环体至少执行一次,适合需要“先执行再判断”的场景 - [选项4] 循环嵌套时,内层循环的
break语句可以跳出外层循环
6. 关于C++中数组的使用,下列说法正确的是( )
{{ select(6) }}
- [选项1] 数组的下标从1开始,例如
int a[5]的合法下标为1~5 - [选项2] 定义数组时,数组长度可以是变量,例如
int n=5; int a[n];是合法的 - [选项3] 可以通过
sizeof(a)/sizeof(a[0])计算数组的元素个数 - [选项4] 数组名本质是普通变量,可以直接赋值给另一个数组名,例如
int a[3]={1,2,3}, b[3]; b=a;
7. 下列关于C++中条件语句的说法,错误的是( )
{{ select(7) }}
- [选项1]
if语句的条件表达式必须用括号包裹,表达式值为非0时执行判断语句 - [选项2]
if-else语句中,else总是与最近的未配对if匹配 - [选项3]
switch语句的case后必须是常量表达式,不能是变量 - [选项4]
switch语句中,每个case后都必须加break,否则会导致“case穿透”
8. 下列关于C++中函数的说法,正确的是( )
{{ select(8) }}
- [选项1] 函数的返回值类型必须与
return语句返回的值类型一致,否则会编译错误 - [选项2] 函数可以嵌套定义,即一个函数内部可以定义另一个函数
- [选项3] 函数声明时必须指定所有参数的类型,参数名可以省略
- [选项4] 调用无返回值(
void类型)的函数时,可以将其作为表达式的一部分,例如cout << func();是合法的
9. 下列关于C++中变量命名与使用的说法,错误的是( )
{{ select(9) }}
- [选项1] 变量名只能由字母、数字和下划线组成,且不能以数字开头
- [选项2] 变量名区分大小写,例如
int Age和int age是两个不同的变量 - [选项3] 关键字(如
int、if、for)不能作为变量名使用 - [选项4] 变量声明后即可直接使用,无需初始化,例如
int x; cout << x + 5;是合法的
10. 下列关于C++中运算符优先级的说法,正确的是( )
{{ select(10) }}
- [选项1] 赋值运算符(
=)的优先级高于关系运算符(如==) - [选项2] 逻辑与运算符(
&&)的优先级高于逻辑或运算符(||) - [选项3] 自增运算符(
++)的优先级低于算术运算符(如+) - [选项4] 括号运算符(
())的优先级最低,用于改变默认运算顺序
11. 下列关于C++中字符串的说法,错误的是( )
{{ select(11) }}
- [选项1] C风格字符串本质是字符数组,以
'\0'作为结束标志,例如char s[] = "abc"等价于char s[] = {'a','b','c','\0'} - [选项2] 可以用
strcmp(s1, s2)函数比较两个C风格字符串,返回0表示两字符串相等 - [选项3]
string类型字符串可以直接用==比较,无需调用函数 - [选项4] C风格字符串可以直接用
+进行连接,例如char s1[]="ab", s2[]="cd"; char s3[]=s1+s2;是合法的
12. 下列关于枚举算法的说法中,错误的是( )
{{ select(12) }}
- [选项1] 枚举算法的核心是遍历所有可能的情况,逐一验证是否符合条件
- [选项2] 枚举算法的时间复杂度通常较高,适用于问题规模较小的场景
- [选项3] 枚举算法一定能找到问题的所有解
- [选项4] 对于“判断一个数是否为质数”的问题,枚举到该数的平方根即可,无需枚举到该数本身
13. 下列关于C++中注释的说法,错误的是( )
{{ select(13) }}
- [选项1] 单行注释以
//开头,注释内容从//到行尾 - [选项2] 多行注释以
/*开头、*/结尾,注释内容可以跨多行 - [选项3] 多行注释可以嵌套,例如
/* 外层注释 /* 内层注释 */ 外层注释 */是合法的 - [选项4] 注释不会被编译器编译,仅用于提高代码可读性
14. 下列关于C++中数组初始化的说法,正确的是( )
{{ select(14) }}
- [选项1] 定义数组时若初始化了部分元素,未初始化的元素会被默认初始化为0(全局数组)或随机值(局部数组)
- [选项2]
int a[5] = {1,2,3};中,a[3]和a[4]的值均为0 - [选项3]
int a[] = {1,2,3,4};中,数组a的长度为3,因为初始化列表有3个元素 - [选项4] 二维数组初始化时,只能按行初始化,例如
int a[2][3] = {{1,2},{3,4,5}}是非法的
15. 下列关于C++中基本数据类型的说法,错误的是( )
{{ select(15) }}
- [选项1]
int类型通常占用4个字节,取值范围约为-2³¹~2³¹-1 - [选项2]
char类型既可以存储字符,也可以存储整数,例如char c=65等价于char c='A' - [选项3]
float类型是单精度浮点数,double类型是双精度浮点数,double的精度更高 - [选项4]
bool类型的取值只能是true或false,其中true等价于1,false等价于0,不能用整数赋值给bool变量