#3479. E4jxhm3
E4jxhm3
一、单选题(40分,每题10分)
- 有以下C++代码:
void change(int a, int &b, int arr[]) {
a = a + 1;
b = b + 1;
arr[0] = arr[0] + 1;
}
int main() {
int x = 5, y = 5;
int num[3] = {5, 6, 7};
change(x, y, num);
cout << x << " " << y << " " << num[0] << endl;
return 0;
}
输出结果是( )。 {{ select(1) }}
- 5 5 5
- 6 6 6
- 5 6 6
- 6 5 5
- 有以下C++代码:
struct Point {
int x;
int y;
};
int main() {
Point p1 = {3, 4};
Point p2 = p1;
p2.x = 10;
cout << p1.x << " " << p2.x << endl;
return 0;
}
输出结果是( )。 {{ select(2) }}
- 3 10
- 10 10
- 10 3
- 3 3
- 有以下C++代码:
int a[2][3] = {{1, 2, 3}, {4, 5, 6}};
int *p = &a[0][0];
cout << *(p + 4) << endl;
输出结果是( )。 {{ select(3) }}
- 4
- 5
- 6
- 3
- 有以下C++代码:
int x = 10;
void func() {
x = 20;
int x = 30;
cout << x << endl;
}
int main() {
func();
cout << x << endl;
return 0;
}
输出结果是( )。 {{ select(4) }}
- 30 20
- 20 20
- 30 10
- 20 10
二、多选题(30分,每题10分)
- 关于C++中指针的使用,下列说法正确的有( )。 {{ multiselect(5) }}
- 指针变量存储的是另一个变量的地址
- 通过指针可以间接访问其所指向的变量
- 数组名可以看作指向数组首元素的指针
- 指针变量本身不占用内存空间
- 关于二维数组与指针的关系,下列说法正确的有( )。 {{ multiselect(6) }}
- 二维数组在内存中是连续存储的
&a[0][0]表示二维数组首元素的地址- 可以通过指向首元素的指针遍历二维数组的所有元素
- 对二维数组名取地址后,其类型与指向首元素的指针类型完全相同
- 关于函数参数传递,下列说法正确的有( )。 {{ multiselect(7) }}
- 值传递时,形参修改不会影响实参
- 引用传递时,形参和实参指向同一内存空间
- 数组作为参数传递时,函数内可以修改原数组的元素
- 引用传递时,形参和实参各自占用独立的内存空间
三、判断题(30分,每题10分)
- 在C++中,指针变量定义时必须立即初始化,否则编译会报错。( ) {{ select(8) }}
- 正确
- 错误
- 定义
int a[3][4];后,表达式a[1][2]等价于*(*(a + 1) + 2)。( ) {{ select(9) }}
- 正确
- 错误
- 结构体变量作为函数参数时,如果不加引用符号
&,属于值传递,函数内对结构体成员的修改不会影响原结构体变量。( ) {{ select(10) }}
- 正确
- 错误