#G1163. [GESP四级202312] 四级理论
[GESP四级202312] 四级理论
2023 年 12 月 C++ 四级
一、单选题(每题 2 分,共 30 分)
第 1 题 下面有关函数参数的说法,正确的是( )。
{{ select(1) }}
- 函数参数传递时,主函数当中采用值传递方式将参数传递给子函数时,若子函数将参数值改变,主函数当中的参数值不变。
- 函数参数传递时,主函数当中采用值传递方式将参数传递给子函数时,若子函数将参数值改变,主函数当中的参数值将随子函数一样改变而改变。
- 函数参数传递时,主函数如果将参数的地址传递给子函数,若子函数将参数值改变,主函数当中的参数值将不改变。
- 函数参数传递可以不满足子函数的参数个数要求。
第 2 题 下面C++代码执行后,输出的是( )。
int arr[10] = {1};
string strArr = "chen a dai";
cout << strArr[arr[1]] << endl;
{{ select(2) }}
chencchen a daidai
第 3 题 下面C++代码最后执行后输出是( )。
int fun1(int *n){
return *n**n;
}
int main() {
int arr[10] = {2};
arr[1] = fun1(arr);
cout << arr[1] << endl;
}
{{ select(3) }}
- 1
- 2
- 3
- 4
第 4 题 下面C++代码执行后的结果是( )。
int arr[3][3] = {{1, 2, 3}, {4, 5, 6}, {7, 8, 9}};
for (int i = 0; i < 3; i++){
for (int j = 2; j >= 0; j--){
cout << arr[i][j] << " ";
}
cout << endl;
}
1 2 3
A.4 5 6
7 8 9
B.1 2 3 4 5 6 7 8 9
3 2 1
C.6 5 4
9 8 7
D.9 8 7 6 5 4 3 2 1
{{ select(4) }}
- A
- B
- C
- D
第 5 题 下面C++代码执行后输出是( )。
int arr[3] = {1, 2, 3};
int *p = NULL;
p = arr;
p++;
cout << *p << endl;
{{ select(5) }}
1,2,3123
第 6 题 如果变量x的地址是0x6ffe14,下面C++代码执行以后输出的是( )。
int *p= NULL;
int x = 2;
p = &x;
p++;
cout << p << endl;
{{ select(6) }}
0x6ffe110x6ffe140x6ffe180x6ffe15
第 7 题 在C++中,执行下面代码后,输出的是( )。
int point(int *p){
return *p**p;
}
int main() {
int a = 20;
int *p = &a;
*p = point(p);
cout << *p << endl;
}
{{ select(7) }}
- 400
- 200
- 20
- 100
第 8 题 下列C++语句执行以后结果是true的是( )。
{{ select(8) }}
3&&false5&&2101&&0004&true
第 9 题 在如下的C++代码中实现了对字符串中出现的26个字母的个数统计,横线处应填入是( )。
string str = "HELLO CHEN A DAI";
int strlen = str.length();
char alpha[26] = {65};
int cnt[26] = {0};
for (int i = 1; i < 26; i++){
________;
}
for (int i = 0; i < 26; i++){
cout << alpha[i] << " ";
}
cout << endl;
for (int i = 0; i < 26; i++){
for (int j = 0; j < strlen; j++){
if (alpha[i] == str[j]){
cnt[i]++;
}
}
}
for (int i = 0; i < 26; i++){
cout << cnt[i] << " ";
}
{{ select(9) }}
alpha[i]=alpha[i-1]+1;alpha[i]=alpha[i]+1;alpha[i+1]=alpha[i]+1;alpha[i-1]=alpha[i]+1;
第 10 题 下面C++代码执行后生成的文件其字节数为( )。
ofstream fout;
fout.open("1.txt");
for (int i = 1; i <= 10; i++){
if (i % 5 == 0){
int x = 6;
fout << x;
}else{
char ch = 'A';
fout << ch;
}
}
{{ select(10) }}
- 10
- 16
- 40
- 24
第 11 题 下列C++代码输入 1,2,3,4 ,执行后,将输出的是( )。
string str = "";
cin >> str;
int strlen = str.length();
for (int i = 0; i < strlen; i++){
if (str[i] <= '9' && str[i] >= '0'){
cout << str[i];
}else{
cout << "#";
}
}
{{ select(11) }}
1#4#1#3#1#2#3#4#1#2#3#4
第 12 题 以下C++代码用于实现每个整数对应的因数,如输入 12 ,则输出 1 2 3 4 6 12 ;如输入 18 ,则输出 1 2 3 6 9 18 。横线处应填入代码是( )。
int n;
cin >> n;
for (int i = 1; i <= n; i++){
____{
cout << i << " ";
}
}
{{ select(12) }}
if(n%i==0)if(n/i==0)if(n%i!=0)if(n/i!=0)
第 13 题 某公司新出了一款无人驾驶的小汽车,通过声控智能驾驶系统,乘客只要告诉汽车目的地,车子就能自动选择一条优化路线,告诉乘客后驶达那里。请问下面哪项不是驾驶系统完成选路所必须的。( )
{{ select(13) }}
- 麦克风
- 扬声器
- 油量表
- 传感器
第 14 题 现代计算机是指电子计算机,它所基于的是( )体系结构。
{{ select(14) }}
- 艾伦·图灵
- 冯·诺依曼
- 阿塔纳索夫
- 埃克特-莫克利
第 15 题 输入一个正整数N,想找出它所有相邻的因数对,比如,输入12,因数对有(1,2)、(2,3)、(3,4)。下面哪段代码 找不到 所有的因数对?( )
{{ select(15) }}
for(i=1;i<N;i++) if(!(N%i) && !(N%(i+1))) printf("(%d,%d)\n", i, i+1);for(i=2;i<N;i++) if(!(N%i) && !(N%(i+1))) printf("(%d,%d)\n", i, i+1);for(i=2;i<N/2;i++) if(!(N%(i-1)) && !(N%i)) printf("(%d,%d)\n", i-1, i);for(i=1;i<N/2;i++) if(!(N%i) && !(N%(i+1))) printf("(%d,%d)\n", i, i+1);
2 判断题(每题 2 分,共 20 分)
第 16 题 C++的内置函数 sort() 支持数组的局部排序。例如 int a={10,9,8,7,6,5,4,3,2,1} ,可以用sort(a,a+5) ,排序成 {6,7,8,9,10,5,4,3,2,1} 。( )
{{ select(16) }}
- 对
- 错
第 17 题 用递归法求 的阶乘,时间复杂度是 。
{{ select(17) }}
- 对
- 错
第 18 题 [(1,2)*2]*3 在C++中是合法的表达式。( )
{{ select(18) }}
- 对
- 错
第 19 题 在下面的C++代码中,将对1.txt文件写入 hello 。( )
ifstream filein;
ofstream fileout;
filein.open("1.txt");
fileout << "hello";
{{ select(19) }}
- 对
- 错
第 20 题 文本文件 1.txt 第1行由 01234 共5个字符组成其间没有空格,当用C++代码正常打开文件成功并执行如下代码以后,第1行长度为5( )
ifstream filein;
int buff;
filein.open("1.txt");
filein >> buff;
cout << buff << endl;
{{ select(20) }}
- 对
- 错
第 21 题 执行C++代码 cout<<(5||2); 后将输出 1 。( )
{{ select(21) }}
- 对
- 错
第 22 题 在C++中,两个字符串相加的运算符为+相当于字符串的合并运算。下面C++代码执行后,将输出chenadai 。( )
string a = "chen";
string b = "a";
string c = "dai";
string name = a + b + c;
cout << name << endl;
{{ select(22) }}
- 对
- 错
第 23 题 C++内置函数 sort() 可以对整数、浮点数、字符数组进行从大到小,从小到大,局部排序。( )
{{ select(23) }}
- 对
- 错
第 24 题 小杨最近在准备考GESP,他用的Dev C++来练习和运行程序,所以Dev C++也是一个小型操作系统。( )
{{ select(24) }}
- 对
- 错
第 25 题 任何一个while循环都可以转化为等价的for循环( )。
{{ select(25) }}
- 对
- 错