#J4901. 指针、数组【选择题专项练习】

指针、数组【选择题专项练习】

一、指针基础。

  1. 在 C++中,指针变量的大小(单位:字节)是? {{ select(1) }}
  • 2
  • 4
  • 6
  • 与编译器有关

  1. 下列关于C++语言中指针的叙述,不正确的是? {{ select(2) }}
  • 指针变量中存储的是内存地址。
  • 定义指针变量时必须指定其指向的类型。
  • 指针变量只能指向基本类型变量,不能指向指针变量。
  • 指针变量指向的内存地址不一定能够合法访问。

  1. 一个数组定义为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}

  1. 如果 n 为 int 类型的变量,一个指针变量定义为 int *p = &n; ,则下列说法正确的是? {{ select(4) }}
  • 指针变量 p 的值与变量 n 是相同的。
  • 指针变量 p 的值与变量 n 的地址是相同的。
  • 指针变量 p 指向的值为 'n' 。
  • 指针变量 p 指向的值与变量 n 的地址是相同的。

  1. 一个数组定义为 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}

  1. 下面C++代码最后执行后输出是?

{{ select(6) }}

  • 1
  • 2
  • 3
  • 4

  1. 如果变量x的地址是0x6ffe14,下面C++代码执行以后输出的是?

{{ select(7) }}

  • 0x6ffe11
  • 0x6ffe14
  • 0x6ffe18
  • 0x6ffe15

  1. 在C++中,执行下面代码后,输出的是?

{{ select(8) }}

  • 400
  • 200
  • 20
  • 100

  1. 下面C++代码执行后输出是?

{{ select(9) }}

  • 1
  • 1.1
  • 3
  • 3.1

  1. 下面C++代码执行后输出是?

{{ select(10) }}

  • e
  • I lov
  • e GESP!
  • GESP!

  1. 以下哪个选项是 C++中正确的指针变量声明? {{ select(11) }}
  • int *p;
  • int p*;
  • *int p;
  • int* p*;

  1. 一个变量定义为int *p = nullptr;,则下列说法正确的是? {{ select(12) }}
  • 该指针变量的类型为int。
  • 该指针变量指向的类型为int。
  • 该指针变量指向的内存地址是随机的。
  • 访问该指针变量指向的内存会出现编译错误。

  1. 在下列代码的横线处填写( ),可以使得输出是“20 10”?

{{ select(13) }}

  • int x, int y
  • int *x, int *y
  • int a, int b
  • int &a, int &b

  1. 下列关于C++语言中指针的叙述,不正确的是? {{ select(14) }}
  • 可以定义指向 int 类型的指针。
  • 可以定义指向自定义结构体类型的指针。
  • 自定义结构体类型可以包含指针类型的元素。
  • 不能定义指向void类型的指针,那没有意义。

  1. 下面C++代码执行后输出是?

{{ select(15) }}

  • 1,2,3
  • 1
  • 2
  • 3

二、多维数组。

  1. 如果有如下二维数组定义,则 a[0][3]的值为( )?

int a[2][2] = {{0, 1}, {2, 3}};

{{ select(16) }}

  • 编译出错
  • 1
  • 3
  • 0

  1. 一个二维数组定义为double array[3][10];,则这个二维数组占用内存的大小为? {{ select(17) }}
  • 30
  • 60
  • 120
  • 240

  1. 一个二维数组定义为int array[5][3];,则array[1][2]和array[2][1]在内存中的位置相差多少字节? {{ select(18) }}
  • 2字节
  • 4字节
  • 8字节*
  • 无法确定

  1. 执行以下C++语言程序后,输出结果是?

{{ select(19) }}

  • 3
  • 30
  • 33
  • 无法确定

  1. 一个三维数组定义为 long long array[6][6][6]; ,则 array[1][2][3] 和 array[3][2][1] 在内存中的位置相差多少字节? {{ select(20) }}
  • 70字节
  • 198字节
  • 560字节
  • 无法确定

  1. 对二维数组 int arr[3][16]; ,则 arr[1] 占用内存的大小为( )字节? {{ select(21) }}
  • 4
  • 16
  • 48
  • 64

  1. 对二维数组 int arr[3][16];,若 arr 的地址是 0x28cbc0 ,则 arr[1] 的值是? {{ select(22) }}
  • 0x28cbc4
  • 0x28cbd0
  • 0x28cc00
  • 不确定

  1. 以下哪个选项能正确定义一个二维数组? {{ select(23) }}
  • int a[][];
  • char b[][4];
  • double c[3][];
  • bool d[3][4];
  1. 下列关于 C++语言中数组的叙述,不正确的是? {{ select(24) }}
  • 一维数组在内存中一定是连续存放的。
  • 二维数组是一维数组的一维数组。
  • 二维数组中的每个一维数组在内存中都是连续存放的。
  • 二维数组在内存中可以不是连续存放的。

  1. 下列关于C++语言中数组的叙述,不正确的是? {{ select(25) }}
  • 一维数组可以用来表示数列。
  • 二维数组可以用来表示矩阵。
  • 三维数组可以用来表示空间中物体的形状。
  • 世界是三维的,所以定义四维数组没有意义。

  1. 一个二维数组定义为 char array[3][10]; ,则这个二维数组占用内存的大小为? {{ select(26) }}
  • 10
  • 30
  • 32
  • 48
  1. 下面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