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) }}

  • ×

2025年信息素养大赛(三)

未参加
状态
已结束
规则
IOI
题目
1
开始于
2025-4-6 9:15
结束于
2025-4-6 9:45
持续时间
0.5 小时
主持人
参赛人数
22