A. 2024年信息素养大赛(3)
2024年信息素养大赛(3)
该比赛已结束,您无法在比赛模式下递交该题目。您可以点击“在题库中打开”以普通模式查看和递交本题。
一. 单项选择题(共 15 题,每题 5 分,共计 75 分)
1.若定义char a[10] = "word",则数组a在内存中所占的字节数(char为1个字节)为多少?( ){{ select(1) }}
- 4
- 5
- 10
- 不定值
2.以下说法【不正确】的是?( ) {{ select(2) }}
- 人类的智能是与生俱来的
- 人工智能通过机器学习,可以自己具有智能
- 智能机器人不属于人工智能
- 人工智能技术通过智能感知设备感受环境和事物的状态
3.编写一个程序,输入一个整数n。并输入1~n的所有正整数。请补充程序中的代码?( )
#include<iostream>
using namespace std;
int main() {
int n;
cout <<"请输入一个整数:"<< std::endl;
cin >> n;
for (___){
cout << i << " ";
}
cout << std::endl;
return 0;
}
{{ select(3) }}
- int i = 0; i < n; i++
- int i = 1; i < n; i++
- int i = 0; i < = n; i++
- Int i = 1; i < = n; i++
4.有两个函数fun1()和fun2()定义如下,在主函数中有:int x= 1; x = fun1(x);调用,此时x的值为? ( )
int fun1 (int x) {
x++;
fun2(x);
return x;
}
void fun2 (int x){
x++;
}
{{ select(4) }}
- 1
- 2
- 3
- 4
5.在c++中,下列哪个是定义常量的正确方式?( ) {{ select(5) }}
- #define int MAX 100
- const int MAX =100
- static const int MAX=100
- int MAX = 100
6.以下循环语句中循环体执行的次数为?( )
for (int i = 0; i < n; i++)
if (i > n / 2) break;
{{ select(6) }}
- n
- n/2
- n /2 +1
- n/2 - 1
7.在下面的循环语句中,内层循环体S语句的执行总次数是?( )
for (int i = 0; i < n; i++){
for (int j = i; j < n;j++){
S;
}
}
{{ select(7) }}
- n 的平方
- (n + 1)/ 2
- n(n - 1)/2
- n(n + 1)/2
8.假定 reverse(int *a, int b) 函数是一个数组反转函数,a为数组指针,b为数组长度,以下程序中,(1),(2)处应填入什么代码,才能完成对数组arr的反转操作? ( )
#include<iostream>
#include<algorithm>
using namespace std;
int main() {
int arr[5] = { 1, 2, 3, 4, 5};
reverse( (1) , (2) );
for (int i = 0; i < 5; i++) {
cout << arr[i] << " ";
}
return 0;
}
{{ select(8) }}
- arr[0], 6
- arr[0], arr[5]
- arr, sizeof(arr)/sizeof(int)
- arr[0], sizeof(arr[0])/sizeof(int)
9.下面的代码片段中,p指向的地址是什么?( )
int *p = new int[10];
p += 5;
{{ select(9) }}
- p指向动态数组的第5个元素的地址
- p指向动态数组的第6个元素的地址
- p指向动态数组的第4个元素的地址
- p指向动态数组的第10个元素的地址
10.下列代码中,哪一个选项正确的输出了num 的值? ( )
int main() {
int num = 10;
cout << num++<< endl;
cout << ++num << endl;
cout << num-- << endl;
cout << --num << endl;
return 0;
}
{{ select(10) }}
- 10 12 12 10
- 10 12 11 9
- 11 12 12 10
- 11 12 11 9
11.下面哪种循环语句在条件判断之前至少会执行一次循环体?( ) {{ select(11) }}
- for
- while
- do-while
- switch
12.以下程序段运行后,输出应为?( )
int a, b;
for (a = 1, b = 1; a <= 100; a ++) {
if (b > 20)
break;
if (b % 4 == 1) {
b =b + 4;
continue;
}
b=b-5;
}
cout << a;
{{ select(12) }}
- 100
- 20
- 9
- 6
13.斐波那契数列的第1和第2个数分别为0和1,从第三个数开始,每个数等于其前两个数 之和,即F(0) = 0, F(1) = 1,F(N) = F(N - 1) + F(N-2),其中N>1。 为求斐波那契数列中的前20个数,要求每行输出5个数编写了以下程序,在3个空格处应填写 哪些内容? ( )
#include<iostream>
using namespace std;
int main() {
int n = 20; // 需要计算的项数
int f1 = 0,f2 = 1; //前两项
int fn; // 第n项
cout <<"斐波那契数列前"<<n<< "个数为:"<< endl;
// 计算斐波那契数列前n项并输出
for (int i = 1; i <= n; i++){
// 计算第i项
if (i == 1) {
fn = f1;
else if (i == 2){
fn = f2;
else{
fn = ① ;
f1 = f2;
f2 = __②___;
}
//输出第i项
cout << fn << "\t";
// 每行输出5个数
if(___③__){
cout << endl;
}
}
return 0;
}
{{ select(13) }}
- f1, fn, i==5
- fn, f1 + fn, i / 5 ==0
- f1 + f2, fn, i % 5 ==0
- f1 + f2, f1, i % 5 == 0
14.下面程序运行后输出结果应是?( )
#include<iostream>
using namespace std;
int my_sl(char * str) {
if ( * str != '\0')
return 1 + my_sl(str + 1);
else
return 0;
}
int main() {
char sarr[] = "abcd";
int num = my_sl(sarr);
cout << num;
return 0;
}
{{ select(14) }}
- abcd
- 4
- dcba
- 3
15.下面程序运行后输入4,输出结果应是?( )
#include <iostream>
using namespace std;
int fac (int n) {
if (n <= 1)
return 1;
else
return n * fac (n - 1);
}
int main() {
int n = 0;
cin >> n;
int ret = fac (n);
cout << ret;
return 0;
}
{{ select(15) }}
- 4
- 12
- 24
- 48
二. 判断题(共 5 题,每题 5 分,共计 25 分)
16.下面代码的输出结果是1 3 4 5。( )
#include <iostream>
#include <algorithm>
using namespace std;
int cmp(int a, int b) {
return a > b;
}
int main() {
int a[4] = {3, 5, 1, 4};
sort(a, a + 4, cmp);
for (int i = 0; i < 4; i++){
cout << a[i] << " ";
return 0;
}
{{ select(16) }}
- √
- ×
17.C++函数参数的作用域是函数体内。( ) {{ select(17) }}
- √
- ×
18.为了将x和y两个整数按大的在前,小的在后形式输出,下面程序是可以正确实现的。()
#include<iostream>
using namespace std;
int main() {
int x, y, tmp;
cin >> x >> y;
if (x < y) {
tmp = x;
x=y;
y= tmp;
}
cout << x << "," << y;
return 0;
}
{{ select(18) }}
- √
- ×
19.机器人技术不属于人工智能研究的内容,人工智能主要研究机器学习问题。( ) {{ select(19) }}
- √
- ×
20.在下面程序段中,循环体的循环次数为4次。( )
int i= 0;
do
i++;
while(i *i < 10);
{{ select(20) }}
- √
- ×