#J4901. 指针、数组【选择题专项练习】
指针、数组【选择题专项练习】
一、指针基础。
- 在 C++中,指针变量的大小(单位:字节)是? {{ select(1) }}
- 2
- 4
- 6
- 与编译器有关
- 下列关于C++语言中指针的叙述,不正确的是? {{ select(2) }}
- 指针变量中存储的是内存地址。
- 定义指针变量时必须指定其指向的类型。
- 指针变量只能指向基本类型变量,不能指向指针变量。
- 指针变量指向的内存地址不一定能够合法访问。
- 一个数组定义为int a[5] = {1,2,3,4,5};,一个指针定义为int *p = &a[2];,则执行a[1] = *p;后,数据a中的值会变为? {{ select(3) }}
- {1,3,3,4,5}
- {2,2,3,4,5}
- {1,2,2,4,5}
- {1,2,3,4,5}
- 如果 n 为 int 类型的变量,一个指针变量定义为 int *p = &n; ,则下列说法正确的是? {{ select(4) }}
- 指针变量 p 的值与变量 n 是相同的。
- 指针变量 p 的值与变量 n 的地址是相同的。
- 指针变量 p 指向的值为 'n' 。
- 指针变量 p 指向的值与变量 n 的地址是相同的。
- 一个数组定义为 int a[5] = {1, 2, 3, 4, 5}; ,一个指针定义为 int * p = &a[2]; ,则执行 *p =a[1]; 后,数组a中的值会变为? {{ select(5) }}
- {1, 2, 2, 4, 5}
- {1, 3, 3, 4, 5}
- {1, 2, 3, 3, 5}
- {1, 2, 4, 4, 5}
- 下面C++代码最后执行后输出是?
{{ select(6) }}
- 1
- 2
- 3
- 4
- 如果变量x的地址是0x6ffe14,下面C++代码执行以后输出的是?
{{ select(7) }}
- 0x6ffe11
- 0x6ffe14
- 0x6ffe18
- 0x6ffe15
- 在C++中,执行下面代码后,输出的是?
{{ select(8) }}
- 400
- 200
- 20
- 100
- 下面C++代码执行后输出是?
{{ select(9) }}
- 1
- 1.1
- 3
- 3.1
- 下面C++代码执行后输出是?
{{ select(10) }}
- e
- I lov
- e GESP!
- GESP!
- 以下哪个选项是 C++中正确的指针变量声明? {{ select(11) }}
- int *p;
- int p*;
- *int p;
- int* p*;
- 一个变量定义为int *p = nullptr;,则下列说法正确的是? {{ select(12) }}
- 该指针变量的类型为int。
- 该指针变量指向的类型为int。
- 该指针变量指向的内存地址是随机的。
- 访问该指针变量指向的内存会出现编译错误。
- 在下列代码的横线处填写( ),可以使得输出是“20 10”?
{{ select(13) }}
- int x, int y
- int *x, int *y
- int a, int b
- int &a, int &b
- 下列关于C++语言中指针的叙述,不正确的是? {{ select(14) }}
- 可以定义指向 int 类型的指针。
- 可以定义指向自定义结构体类型的指针。
- 自定义结构体类型可以包含指针类型的元素。
- 不能定义指向void类型的指针,那没有意义。
- 下面C++代码执行后输出是?
{{ select(15) }}
- 1,2,3
- 1
- 2
- 3
二、多维数组。
- 如果有如下二维数组定义,则 a[0][3]的值为( )?
int a[2][2] = {{0, 1}, {2, 3}};
{{ select(16) }}
- 编译出错
- 1
- 3
- 0
- 一个二维数组定义为double array[3][10];,则这个二维数组占用内存的大小为? {{ select(17) }}
- 30
- 60
- 120
- 240
- 一个二维数组定义为int array[5][3];,则array[1][2]和array[2][1]在内存中的位置相差多少字节? {{ select(18) }}
- 2字节
- 4字节
- 8字节*
- 无法确定
- 执行以下C++语言程序后,输出结果是?
{{ select(19) }}
- 3
- 30
- 33
- 无法确定
- 一个三维数组定义为 long long array[6][6][6]; ,则 array[1][2][3] 和 array[3][2][1] 在内存中的位置相差多少字节? {{ select(20) }}
- 70字节
- 198字节
- 560字节
- 无法确定
- 对二维数组
int arr[3][16];
,则arr[1]
占用内存的大小为( )字节? {{ select(21) }}
- 4
- 16
- 48
- 64
- 对二维数组
int arr[3][16];
,若arr
的地址是0x28cbc0
,则arr[1]
的值是? {{ select(22) }}
- 0x28cbc4
- 0x28cbd0
- 0x28cc00
- 不确定
- 以下哪个选项能正确定义一个二维数组? {{ select(23) }}
- int a[][];
- char b[][4];
- double c[3][];
- bool d[3][4];
- 下列关于 C++语言中数组的叙述,不正确的是? {{ select(24) }}
- 一维数组在内存中一定是连续存放的。
- 二维数组是一维数组的一维数组。
- 二维数组中的每个一维数组在内存中都是连续存放的。
- 二维数组在内存中可以不是连续存放的。
- 下列关于C++语言中数组的叙述,不正确的是? {{ select(25) }}
- 一维数组可以用来表示数列。
- 二维数组可以用来表示矩阵。
- 三维数组可以用来表示空间中物体的形状。
- 世界是三维的,所以定义四维数组没有意义。
- 一个二维数组定义为 char array[3][10]; ,则这个二维数组占用内存的大小为? {{ select(26) }}
- 10
- 30
- 32
- 48
- 下面C++代码执行后的结果是?
{{ select(27) }}
1 2 3
4 5 6
7 8 9
1 2 3 4 5 6 7 8 9
3 2 1
6 5 4
9 8 7
9 8 7 6 5 4 3 2 1