2025年6月
选择题
第10题
如何正确定义一个长度为5的整型数组()
A. int array = new int[5];B. array int[5];
C. int[] array = {1,2,3,4,5};
D. int array[5];
2025年3月
选择题
第11题
下面枚举法查找最大值索引程序中,横线处应该填写的是()
#include <iostream>
using namespace std;
int main() {
int arr[] = {3, 7, 2, 9, 5};
int maxIndex = 0;
for (int i = 1; i < 5; i++) {
_________________________ {
maxIndex = i;
}
}
cout << maxIndex;
return 0;
}
A. if (arr[maxIndex] > arr[i])B. if (arr[i]-1 > arr[maxIndex])
C. if (arr[i]+1 > arr[maxIndex])
D. if (arr[i] > arr[maxIndex])
第12题
以下代码的功能是将数组中的奇数和偶数分别放在数组的前半部分和后半部分,横线处应该填入的是()
#include <iostream>
using namespace std;
int main() {
int arr[] = {1, 2, 3, 4, 5};
int left = 0, right = 4;
while (left < right) {
while (arr[left] % 2 == 1 && left < right) left++;
// 在此处填入代码
if (left < right) {
swap(arr[left], arr[right]);
}
}
for (int i = 0; i < 5; i++) {
cout << arr[i] << " ";
}
return 0;
}
A. while (arr[left] % 2 == 0 && left < right) right--;B. while (arr[right] % 2 == 0 && left < right) left--;
C. while (arr[right] % 2 != 0 && left < right) right--;
D. while (arr[right] % 2 == 0 && left < right) right--;
2024年12月
选择题
第10题
下列程序中,假设一个字符占用的内存空间是1,ch占用的内存空间是()
char ch[] = "hello world";
size_t ret=strlen(ch);
cout<<ret<<endl;
A. 11B. 10
C. 13
D. 12
第12题
想要计算从数字n到数字m之间(包含n和m)有多少个数字d出现,下列程序哪个能够实现()。
(注:此题虽然是数字问题,但其核心解法是遍历数字并分解各位,与数组的遍历思想相通,因此归入此范畴。正确的代码应初始化res,并使用包含n和m的循环。)
编程题
第1题
数字替换
小杨有一个包含n个数字的序列A,他想将其中大于k的数字都替换为序列的最大值,将其中小于k的数字都替换为序列的最小值,请你帮他计算出替换后的序列。
核心思路:
使用一个一维数组存储序列。先遍历一遍数组找出最大值和最小值。再遍历一遍数组,根据与k的比较关系,进行替换并输出。
5 0
-2 -1 0 1 2
样例输出:
-2 -2 0 2 2
2024年9月
选择题
第12题
关于一维数组,下列程序能够正确执行的是()。
A. 循环条件 `i<=10` 导致数组越界int a[10]; int sum=0; for(int i=0;i<=10;i++) { sum=sum+a[i]; }
B. 循环条件 `i<=10` 导致数组越界int a[10]={1,2,3,4,5,6,7,8,9,10}; int sum=0; for(int i=0;i<=10;i++) { sum=sum+a[i]; }
C. 正确执行int a[10]={1,2,3,4,5,6,7,8,9,10}; int sum=0; for(int i=0;i<10;i++) { sum=sum+a[i]; }
D. 循环条件 `i<=10` 导致数组越界int a[10]={0}; int sum=0; for(int i=0;i<=10;i++) { sum=sum+a[i]; }
第13题
下面的程序中,会输出()。
int a[10]={1,2,3,4,5,6,7,8,9,10};
cout<<a[10]<<endl;
A. 1B. 0
C. 10
D. 不确定的值
判断题
第7题
下列程序将输出1。()
int a[10]={1};
cout<<a[1]<<endl;
(说明: `a[0]`被初始化为1, 其他元素默认为0, 所以`a[1]`输出0)
编程题
第1题
平衡序列
小杨有一个包含n个正整数的序列,他认为一个序列是平衡的当且仅当存在一个正整数i (1 <= i < n) 使得序列第1个到第i个数字的总和等于第i+1个到第n个数字的总和。请你判断序列是否是平衡的。
核心思路:
使用一维数组存储序列。先计算出整个数组的总和sum。然后从头开始遍历数组,累加前缀和tot,在每一步判断 `tot * 2 == sum` 是否成立。
3
3
1 2 3
4
2 3 1 4
5
1 2 3 4 5
样例输出 1:
Yes
Yes
No
2024年6月
选择题
第9题
如果字符串定义为char str[] = "GESP";,则字符数组str的长度为()。
A. 0B. 4
C. 5
D. 6
第10题
在下列代码的横线处填写(),可以使得输出是“7”。
#include <iostream>
using namespace std;
int main() {
int array[5] = {3, 7, 5, 2, 4};
int max = 0;
for(int i=0; i<5; i++)
if( ________ ) // 在此处填入代码
max = array[i];
cout << max << endl;
return 0;
}
A. max > array[i]B. max < array[i]
C. max == array[i]
D. 以上均不对
第11题
小杨在做数学题,题目要求找出从1到35中能被7整除的数字...则横线处应填入哪个代码?()
int arr[35];
int count = 0;
for (int i=1; i<= 35; i++) {
if (i % 7 == 0)
// 在此处填入代码
}
A. arr[count++] = i;B. arr[i] = count++;
C. arr[i] = count;
D. arr[count] = count++;
第13题
完善以下代码,求出本次篮球队能够招募到新成员的人数?()
int arr[10] = {125, 127, 136, 134, 137, 138, 126, 135, 140, 145};
int count = 0;
for(int i=0; i<10; i++)
// 在此处填入代码
cout << count << endl;
A. count = arr[i]>135 ? 1: 0;B. count += arr[i]>135 ? 1: 0;
C. count++;
D. 以上都不对
判断题
第5题
数组的所有元素在内存中可以不连续存放。
第6题
C++中可以对数组和数组的每个基础类型的元素赋值。
编程题
第2题
寻找倍数
小杨有一个包含n个正整数的序列A,他想知道是否存在a_i (1 <= i <= n) 使得a_i是序列A中所有数的倍数。
核心思路:
使用一维数组存储序列。先遍历一遍数组找到最大值max_val。然后再遍历一遍数组,检查max_val是否能被数组中每一个元素整除。如果都可以,则存在,否则不存在。
2
3
1 2 4
5
1 2 3 4 5
样例输出 1:
Yes
No
2024年3月
选择题
第6题
下面C++代码执行后数组中大于0的数的特征是( )。
int a[20],i;
for(i=0; i < 20; i++)
a[i]=i+1;
for(int i=0; i<20; i++)
if((a[i]%2)&&(a[i]%3))
a[i]=0;
for(i=0; i < 20; i++)
if(a[i])
cout << a[i] << " ";
A. 2的倍数B. 3的倍数
C. 能被2或3整除的数
D. 能被2和3同时整除的数
第7题
执行下面C++代码后输出的第一个数是()。
int a[20],i;
for(i=0; i < 20; i++)
a[i]=i+1;
for(; i > 0; i--)
cout << a[i-1] << " ";
A. 20B. 19
C. 1
D. 不确定
判断题
第7题
在C++语言中,字符数组被定义时,它的大小可以调整。()
第8题
对定义的数组 int a[7]={2,0,2,4,3,1,6},可以用简单循环就找到其中最小的整数。()
编程题
第2题
完全平方数
小杨同学有一个包含n个非负整数的序列A,他想要知道其中有多少对下标组合<i,j> (1 <= i, j <= n, i < j), 使得 A_i + A_j 是完全平方数。
核心思路:
使用一维数组存储序列。通过两层嵌套循环遍历所有满足 i < j 的数对 (a[i], a[j])。对于每一个数对,计算它们的和,然后判断这个和是不是完全平方数。
5
1 4 3 3 5
样例输出 1:
3
2023年12月
选择题
第1题
下面C++数组的定义中,会丢失数据的是()。
A. char dict_key[] = {'p', 't', 'o'};B. int dict_value[] = {33, 22, 11};
C. char dict_name[]={'chen', 'wang', 'zhou'};
D. float dict_value[] = {3,2,1};
第8题
下面C++代码执行后的输出是( )。
char ch[10]={'1'};
cout<<ch[2]<<endl;
A. 0B. 1
C. 输出空格
D. 什么也不输出
判断题
第5题
执行C++代码将输出1 6,6之后还有一个空格。()
int list[10]={1,2,3,4,5,6,7,8,9,10};
for(int i=0;i<10;i++)
{
if(i%5==0)
{
cout<<list[i]<<" ";
}
}
第6题
下面C++代码将输出1()
int list[10]={1};
cout<<list<<endl;
第7题
下面C++程序将输出1。()
int arr[10]={1};
cout<<arr[0]<<endl;
第8题
执行C++代码,将输出1 3 5 7 9,9之后还有一个空格。()
int list[10]={1,2,3,4,5,6,7,8,9,10};
for(int i=0;i<10;i+=2)
{
cout<<list[i]<<" ";
}
2023年9月
选择题
第5题
如果数组定义为long long array[] = {3, 5, 7, 2};,则数组 array 占用的字节数为()。
A. 32B. 16
C. 8
D. 4
第6题
一个数组定义为 double array [3];,则可合理访问这个数组的元素的下标最大为()。
A. 2B. 3
C. 23
D. 24
第7题
以下数组定义,符合C++语言语法的是()。
A. double a[];B. double b[] = {1, 2.0, '3'};
C. double c[3.0];
D. double[] d = new double[3];
第9题
下列关于C++语言中数组的叙述,不正确的是()。
A. 可以定义0个元素的数组。B. 不能定义-1个元素的数组。
C. 数组下标越界访问会产生编译错误。
D. 程序运行时发生数组下标的越界访问,程序依然可能正常结束。
第14题
在下列代码的横线处填写(),可以使得输出是“120”。
int array [5] = {1,2,3,4,5};
int res = 1; // 注意:为计算乘积,res应初始化为1
for (int i=0; i < 5; i++)
//在此处填入代码
cout << res << endl;
A. res += array[i];B. res *= array[i];
C. res -= array[i];
D. 以上均不对。
第15题
在下列代码的输出是()。
int main() {
int array [10];
for (int i=0; i<10; i++)
array[i] = i;
for (int p=2; p<10; p++)
if (array[p] == p)
for (int n=p; n<10; n+=p)
array[n] = array[n] / p * (p - 1);
int res = 0;
for (int n = 1; n < 10; n++)
res += array[n];
cout << res << endl;
return 0;
}
A. 15B. 28
C. 45
D. 55
判断题
第4题
在C++语言中,长度为n的数组,访问下标为n的元素会引起编译错误。
第6题
在C++语言中,数组下标的大小决定元素在逻辑上的先后顺序,与元素在内存中位置的先后顺序无关。
第7题
在C++语言中,定义数组时,[]中必须指定元素个数。
编程题
第1题
小杨的储蓄
小杨共有N个储蓄罐,编号从0到N-1。从第1天开始,小杨每天都会往存钱罐里存钱。具体来说,第i天他会挑选编号为a_i的存钱罐,并存入i元钱。过了D天后,他已经忘记每个储蓄罐里都存了多少钱了,你能帮帮他吗?
核心思路:
定义一个大小为N的整型数组jar,并全部初始化为0。然后进行D次循环,在第i次循环时(i从1到D),读入当天选择的储蓄罐编号a,执行 `jar[a] += i`。循环结束后,依次输出数组jar中的每个元素。
2 3
0 1 0
样例输出 1:
4 2
样例输入 2:
3 5
0 0 0 2 0
样例输出 2:
11 0 4
2023年6月
选择题
第5题
如果字符串定义为char str[] = "Hello";,则字符数组str的长度为( )。
A. 0B. 5
C. 6
D. 7
第6题
一个数组定义为 double array [3];,则这个数组占用内存的大小为( )。
A. 24B. 12
C. 6
D. 3
第7题
以下数组定义,符合C++语言语法的是( )。
A. int a[];B. int b['3'];
C. int c[3.0];
D. int[3] d;
第9题
下列关于C++语言中数组的叙述,不正确的是( )。
A. 数组必须先定义后使用。B. 数组的所有元素在内存中是连续存放的。
C. 除了字符数组,在定义数组时“[]”内必须有常数。
D. 不能对数组赋值,但可以对数组的每个基础类型的元素赋值。
第14题
在下列代码的横线处填写(),可以使得输出是“2”。
#include <iostream>
using namespace std;
int main() {
int array[5] = {3, 7, 5, 2, 4};
int min = array[0]; // 注意:min应初始化为数组的第一个元素
for (int i=1; i < 5; i++)
if ( ________ ) //在此处填写代码
min = array[i];
cout << min << endl;
return 0;
}
A. min > array[i]B. min < array[i]
C. min == array[i]
D. 以上均不对。
第15题
在下列代码的横线处填写(),可以使得输出是“31”。
int array[5] = {1, 2, 4, 8, 16};
int res = 0;
for (int i=0; i < 5; i++)
//在此处填入代码
cout << res << endl;
A. res = res + array[i]B. res = res & array[i]
C. res = res | array[i]
D. res = res ^ array[i]
判断题
第4题
在C++语言中,长度为n的数组,合理的下标范围是从0到n,包括0和n。
第6题
在C++语言中,可以使用字符(如'0')作为数组下标。
第7题
在C++语言中,数组被定义时,它的大小就确定了。
编程题
第1题
春游
老师带领N位同学春游,同学编号从0到N-1。M次报数后,有的同学报了多次,有的没报。你能帮老师找出有哪些同学没有到达吗?
核心思路:
定义一个大小为N的布尔数组`arrive[]`,并全部初始化为`false`。接下来进行M次循环,每读入一个报到的编号`code`,就将`arrive[code]`置为`true`。最后,遍历`arrive`数组,输出所有值仍为`false`的下标。
3 3
0 2 1
样例输出 1:
3
样例输入 2:
3 5
0 0 0 0 0
样例输出 2:
1 2