#G24S1C4XZ. [GESP 2024] S1 C++ 四级 选择题
[GESP 2024] S1 C++ 四级 选择题
单选题(共 15 题)
#include<iostream>
using namespace std;
int func(int x, int y)
{
int a=x,b=y;
int t;
t=a;
a=b;
b=t;
cout<<a<<" "<<b<<" ";
}
int main()
{
int c,d;
c=12;
d=24;
func(12,24);
cout<<c<<" "<<d<<endl;
}
上面代码中,输出结果是( ){{ select(1) }}
12 24 24 1224 12 12 2412 12 24 2424 24 12 12
- 下⾯函数不能正常执行的是( ){{ select(2) }}
-
#include<iostream> using namespace std; int func() { //... } int main() { //... } -
#include<iostream> using namespace std; int main() { func(); } int func() { //... } -
#include<iostream> using namespace std; int func() { //... } int main() { func(); } -
#include<iostream> using namespace std; int func(); int main() { func(); } int func() { //... }
#include<iostream>
using namespace std;
int func();
int main()
{
int i=2;
cout<<i<<endl;
for(int x=0;x<1;x++)
{
int i=10;
cout<<i<<endl;
}
i=i+1;
cout<<i<<endl;
{
i=i*i;
cout<<i<<endl;
}
}
上⾯程序输出的是(){{ select(3) }}
2 2 3 92 10 3 92 10 11 1212 10 3 100
#include<iostream>
using namespace td;
int main()
{
int *p;
int a=10;
p=&a;
p++;
cout<<p<<endl;
}
假设变量 a 的地址是 0x6ffe14,上⾯程序的输出是( ){{ select(4) }}
100x6ffe140x6ffe150x6ffe18
#include<iostream>
using namespace std;
int main()
{
int a[2][3]={0};
cout<<a<<endl;
}
如果上列程序输出的地址是 0x6ffe00 ,则 cout<<a+1<<endl; 输出的是(){{ select(5) }}
0x6ffe040x6ffe0C0x6ffe080x6ffe00
- C++中,关于文件路径说法错误的是( ){{ select(6) }}
-
"GESP.txt":指定与当前工作目录中的程序文件相同目录中的GESP.txt文件 -
"../data/GESP.txt":指定与当前工作目录中的程序文件上一级目录下的data目录中的GESP.txt 文件 -
"./data/GESP.txt":指定与当前工作目录中的程序文件同级目录下的data目录中的GESP.txt文件 -
"GESP.txt"是绝对路径
- 关于直接插入排序,下列说法错误的是( ){{ select(7) }}
-
插入排序的最好情况是数组已经有序,此时只需要进行一次比较,时间复杂度为
-
最坏情况是数组逆序排序,此时需要进行 次比较以及 次赋值操作(插入)
-
平均来说插入排序算法的复杂度为
-
空间复杂度上,直接插入法是就地排序,空间复杂度为
#include<iostream>
using namespace std;
int n, a[10001];
void swap(int &a, int &b)
{
int t=a;
a=b;
b=t;
}
int main()
{
cin>>n;
for(int i=1;i<=n;i++)
cin>>a[i];
for(int i=n;i>1;i--)
for(intj=1;j<i;j++)
if(a[j]>a[j+1])
____________________;
for(int i=1;i<=n;i++)
cout<<a[i]<<" ";
cout<<endl;
return 0;
}
上述程序横线处,应该输入的是( ){{ select(8) }}
-
swap(a[j], a[j+1]); -
swap(a[j-1], a[j]); -
swap(a[j-1], a[j+1]); -
swap(&a[j-1], &a[j+1]);
- 下⾯关于递推的说法不正确的是( ){{ select(9) }}
-
递推表现为自己调用自己
-
递推是从简单问题出发,一步步的向前发展,最终求得问题。是正向的
-
递推中,问题的n要求是在计算中确定,不要求计算前就知道
-
斐波那契数列可以用递推实现求解
- 关于几种排序算法的说法,下⾯说法错误的是( ){{ select(10) }}
-
选择排序不是一个稳定的排序算法
-
冒泡排序算法不是一种稳定的排序算法
-
插入排序是稳定的排序算法
-
如果排序前 个相等的数在序列中的前后位置顺序和排序后它们 个的前后位置顺序相同,则称为一种稳定的排序算法
- 数组
{45,66,23,1,10,97,52,88,5,33}进行从小到大的冒泡排序过程中,第⼀遍冒泡过后的序列是( ){{ select(11) }}
{45,23,1,10,66,52,88,5,33,97}{45,66,1,23,10,97,52,88,5,33}{45,66,23,1,10,52,88,5,33,97}{45,66,23,1,10,97,52,88,33,5}
int a[8] = {2,3,4,5,6,2,3,1};
for(int i=1;i<8;i++)
{
int key = a[i];
int j = i-1;
while(a[j]>key && j>=0)
{
______________;
j -= -1;
}
a[j + 1] = key;
}
上⾯的排序算法程序中,横线处应该填入的是( ){{ select(12) }}
a[j] = a[j-1];a[j] = a[j+1];a[j+1] = a[j-1];a[j+1] = a[j];
#include<iostream>
using namespace std;
double Division(int a,int b)
{
if (b == 0)
throw "Division by zero condition!";
else
return ((double)a / (double)b);
}
void func()
{
int len, time;
cin >> len >> time;
cout << Division(len, time) << endl;
}
int main()
{
try {
func();
}
catch (const char* errmsg)
{
cout << errmsg << endl;
}
catch (const int errmsg)
{
cout << errmsg << endl;
}
return 0;
}
上⾯的程序中,如果输入 10 0 ,会输出( ){{ select(13) }}
Division by zero condition!010100
- 10条直线,最多可以把平面分为多少个区域( ){{ select(14) }}
55565458
int x[10][10][10]={{0}};
int *p;
p=&x[0][0][0];
cout<<p<<endl;
cout<<++p<<endl;
上⾯程序中,如果语句 cout<<p<<endl; 输出的是 0x6ffe00 ,则 cout<<++p<<endl; 输出的是(){{ select(15) }}
0x6ffe0c0x6ffe090x6ffe060x6ffe04
判断题(共 10 题)
int& a和&a是一样的,都是取a的地址。{{ select(16) }}
- 对
- 错
#include<iostream>
using namespace std;
int main()
{
int a=20;
int &ra;
ra = &a;
cout<<ra<<endl;
}
以上代码不能够正确执行。{{ select(17) }}
- 对
- 错
- 引用是一个指针常量。{{ select(18) }}
- 对
- 错
#include<iostream>
using namespace std;
int main()
{
int a[2][3]={0};
cout<<a<<endl;
cout<<&a[0][0]<<endl;
}
上⾯程序两个输出结果是一样的。{{ select(19) }}
- 对
- 错
- 函数不可以调用自己。{{ select(20) }}
- 对
- 错
- 函数参数传递过程中,如果传常量值、常量引用和常量指针都是不能被修改的,它们可以防止函数对实参的值或地址进行修改。{{ select(21) }}
- 对
- 错
#include<iostream>
using namespace std;
int main()
{
int *p=NULL;
cout<<P<<endl;
}
上⾯代码输出的值等于 。{{ select(22) }}
- 对
- 错
#include<iostream>
using namespace std;
int main()
{
int a[10][10]={0};
for(int i=0;i<10;i++)
{
for(int j=0;j<10;j++)
{
if(i==j)
{
a[i][j] = 1;
}
}
}
}
在上⾯这个程序里, a[i][j] 和一个普通的整型变量一样使用。{{ select(23) }}
- 对
- 错
- 一个一维数组,至少含有一个自然数 ,是一个合法的数列。可以在一维数组末尾加入一个自然数 , 不能超过一维数组末尾元素的一半,形成一个新的合法的一维数组,如果,那么可以有 个不同的合法数组。{{ select(24) }}
- 对
- 错
- 插入排序算法中,平均时间复杂度是,最坏的情况逆序情况下,达到最大的时间复杂度。{{ select(25) }}
- 对
- 错