一个数组定义为 double array[3];,则这个数组占用内存的大小为( )。
A: 24。double=8字节,8×3=24
以下数组定义,符合 C++语言语法的是( )。
B: 进制叙述错。十进制可以转二进制(B错)。其他正确
在 C++语言中,长度为 的数组,合理的下标范围是从 到 ,包括 和 。
错。数组下标0..n-1,不是0..n
在 C++语言中,数组被定义时,它的大小就确定了。
正确。数组定义时大小确定(编译期)
如果数组定义为 long long array[] = {3, 5, 7, 2};,则数组 array 占用的字节数为( )。
A: 32。long long=8字节×4=32字节
一个数组定义为 double array[3];,则可合理访问这个数组的元素的下标最大为( )。
A: 2。double[3]下标0..2最大2
在下列代码的横线处填写( ),可以使得输出是 120。
01#include <iostream> 02using namespace std; 03 04int main() { 05 int array[5] = {1, 2, 3, 4, 5}; 06 int res = 0; 07 for (int i = 0; i < 5; i++) 08 ____________ ; // 在此处填入代码 09 cout << res << endl; 10 return 0; 11}
B: res*=array[i] 累乘=120
在 C++语言中,长度为 的数组,访问下标为 的元素会引起编译错误。
错。83不在0..n-1内,运行时崩编译不出错
在 C++语言中,数组下标的大小决定元素在逻辑上的先后顺序,与元素在内存中位置的先后顺序无关。
错。数组下标=逻辑=内存顺序
在 C++语言中,定义数组时,[] 中必须指定元素个数。
错。字符数组[]可省(由初始化列表推大小)
执行 C++ 代码将输出 0 5,5 之后还有一个空格。
01int list[10]={1,2,3,4,5,6,7,8,9,10}; 02for(int i=0;i<10;i++) 03{ 04 if(i%5==0) 05 { 06 cout<<list[i]<<" "; 07 } 08}
错。i%5==0 i=0,5输出list[0]=1,list[5]=6,"1 6"不是"0 5"
下面 C++ 代码将输出 1。
01int list[10]={1}; 02cout<<list<<endl;
错。cout<<list输出数组首地址(指针)
下面 C++ 程序将输出 1。
01int arr[10]={1}; 02cout<<arr[0]<<endl;
正确。arr[0]=1,初始化为{1,0,0...}
执行 C++ 代码,将输出 1 3 5 7 9,9 之后还有一个空格。
01int list[10]={1,2,3,4,5,6,7,8,9,10}; 02for(int i=0;i<10;i+=2) 03{ 04 cout<<list[i]<<" "; 05}
正确。i+=2输出i=0,2,4,6,8的list值1,3,5,7,9,末尾空格
下面 C++ 代码执行后数组中大于 的数的特征是( )。
01int main() 02{ 03 int a[20],i; 04 for(i = 0; i < 20; i++) 05 a[i] = i+1; 06 07 for(int i = 0; i < 20; i++) 08 if((a[i]%2)&&(a[i]%3)) 09 a[i] = 0; 10 for(i = 0; i < 20; i++) 11 if(a[i]) 12 cout << a[i] << " "; 13 14 cout << endl; 15 return 0; 16}
(跳,需完整选项)
执行下面 C++ 代码后输出的第一个数是( )。
01int main() 02{ 03 int a[20],i; 04 for(i = 0; i < 20; i++) 05 a[i] = i+1; 06 for( ; i > 0; i--) 07 cout << a[i-1] << " "; 08 cout << endl; 09 return 0; 10}
B: 等于。3|16=19,a+b=19
下面 C++ 程序执行的结果是( )。
01int main() 02{ 03 int a[20],i; 04 int cnt=0; 05 for(i = 0; i < 20; i++) 06 a[i] = i+1; 07 08 for( ; i > 1; i--) 09 if((a[i-1]+a[i-2])%3) 10 cnt++; 11 cout << cnt << endl; 12 cout << endl; 13 return 0; 14}
D: 12。i递减20..2,a[i-1]+a[i-2]%3非0的共12次
对定义的数组 int a[7]={2,0,2,4,3,1,6},可以用简单循环就找到其中最小的整数。
正确。简单循环遍历找最小值0
在下列代码的横线处填写( ),可以使得输出是"7"。
01#include <iostream> 02using namespace std; 03 04int main() { 05 int array[5] = {3, 7, 5, 2, 4}; 06 int max = 0; 07 for(int i=0; i<5; i++) 08 if(____________) // 在此处填入代码 09 max = array[i]; 10 cout << max << endl; 11 return 0; 12}
B: max<array[i] 找最大7
小杨在做数学题,题目要求找出从 到 中能被 整除的数字,即 ,则横线处应填入哪个代码?( )
01#include <iostream> 02using namespace std; 03int main() { 04 int arr[35]; 05 int count = 0; 06 for (int i = 1; i <= 35; i++) { 07 if (i % 7 == 0) 08 ____________ 09 // 在此处填入代码 10 } 11 12 for (int i = 0; i < count; i++) 13 cout << arr[i] << endl; 14 return 0; 15}
D: 以上均不对。count++无条件,身高135也计入
数组的所有元素在内存中可以不连续存放。
错。数组元素在内存连续存放
C++ 中可以对数组和数组的每个基础类型的元素赋值。
正确。数组和元素都可赋值
关于一维数组,下列程序能够正确执行的是( )。
C: 正确。i<10不越界且初始化数组
下面的程序中,会输出( )。
01int a[10]={1,2,3,4,5,6,7,8,9,10}; 02cout<<a[10]<<endl;
D: 不确定。a[10]越界未定义行为
下列程序将输出 。
01int a[10]={1}; 02cout<<a[1]<<endl;
错。a[1]初值0不是1
下面枚举法查找最大值索引程序中,横线处应该填写的是( )。
01#include <iostream> 02using namespace std; 03 04int main() { 05 int arr[] = {3, 7, 2, 9, 5}; 06 int maxIndex = 0; 07 for (int i = 1; i < 5; i++) { 08 ———————————————————————————————— 09 { 10 maxIndex = i; 11 } 12 } 13 cout << maxIndex; 14 return 0; 15}
(跳,需完整选项)
以下代码的功能是将数组中的奇数和偶数分别放在数组的前半部分和后半部分,横线处应该填入的是( )。
01#include <iostream> 02using namespace std; 03 04int main() { 05 int arr[] = {1, 2, 3, 4, 5}; 06 int left = 0, right = 4; 07 while (left < right) { 08 while (arr[left] % 2 == 1 && left < right) left++; 09 ———————————————————————————————————————————————————— 10 if (left < right) { 11 swap(arr[left], arr[right]); 12 } 13 } 14 for (int i = 0; i < 5; i++) { 15 cout << arr[i] << " "; 16 } 17 return 0; 18}
(跳,需完整选项)
以下关于 C++ 数组的说法,错误的是( )。
D: arr[5]越界访问不存在"最后一个元素"
执行以下 C++ 代码后,数组 arr 的内容是( )。
01int arr[4] = {1, 2, 3}; 02arr[3] = arr[0] + arr[2];
B: 1 2 3 4。arr[3]=1+3=4
以下关于标准 C++ 一维数组的描述,哪一项是错误的?( )
(跳,需完整选项)
在 C++ 中,( )正确声明了一个 行 列的二维数组。
B:int arr[3][4]。3 行 4 列二维数组,第二个 [4] 表示列数;A 用逗号语法错(不是 C++ 语法),C 是 4 行 3 列,D 是函数调用不是声明。
下面( )正确定义二维数组。
D:int a[][2] = {{1,2},{1,2},{3,4}};。二维数组有初始化时可省略第一维(编译器按初始化列表推断),列数必须指定。A/B/C 列数缺失。
假设 int arr[2][3] = {{1,2,3},{4,5,6}};,则 arr[1][2] 的值是( )。
D:6。int arr[2][3]={{1,2,3},{4,5,6}} 中 arr[1][2] 是第二行第三列 = 6。
小杨用一个二维数组表示棋盘,其中 表示有棋子, 表示没有棋子。他想知道第 行第 列有没有棋子,可采用的代码是:( )。
01int a[3][4] = { 02 {1, 0, 1, 0}, 03 {0, 1, 0, 1}, 04 {1, 1, 0, 0} 05};
B:cout << a[1][2] << endl;。C++ 二维数组访问语法是 a[i][j],A 逗号错、C 函数调用错、D 大括号错。