#XSYK20260502. 信息素养初赛模拟六

信息素养初赛模拟六

一.单选题(每题 5 分,共 75 分)

  1. 有关下面 C++ 代码的说法,错误的是 ( )
int tnt = 0;
for (int i = 1; i < 10; i += 2) // L1
    tnt += i; // L2
cout << tnt;

{{ select(1) }}

  • L1 的 i < 10 改为 i < 11 结果相同
  • L1 的 i = 1 改为 i = 0 结果相同
  • tnt += i 与 tnt = tnt + i 效果相同
  • tnt += i 与 tnt = i + tnt 效果相同

  1. 下面 C++ 代码执行后输出是 ( )
int i;
for (i = 10; i < 100; i += 10){
    if (i % 10 == 0)
        continue;
    printf("%d#",i);
}
if(i >= 100) printf("%d END",i);

{{ select(2) }}

  • 10#20#30#40#50#60#70#80#90#100 END
  • 100#100 END
  • 100 END
  • 没有输出

  1. 如果一个正整数能被 3 整除,或者某一位能被 3 整除,则称之为 "漂亮数"。下面的 C++ 代码用于判断正整数 N 是否为漂亮数,L1 行的横线处应该填入的代码是 ( )
int N, Flag;
cin >> N;
Flag=0; // "非漂亮数"
if(N%3==0)
    Flag=1; // "漂亮数"
else
    while (N!=0){
        if(______________) { // L1
            Flag=1;
            break;
        }
        N/=10;
    }
cout << (Flag?"漂亮数":"非漂亮数");

{{ select(3) }}

  • N%10==0
  • N%3%10==0
  • N%10%3
  • N%10%3==0

  1. 如果正整数 N 的所有奇因数(即能将 N 整除的正奇数)的和是 27 的倍数,则称 N 是 27 的神秘数。下面的 C++ 代码用于判断输入的 N 是否为 27 的神秘数,横线处应该填入的代码是 ( )
int i,N,cnt=0;
cin >> N;
for(i=1;i <=N;i++){
    if(______________)
        cnt+=i;
}
if(cnt%27==0)
    cout << 'Y';
else
    cout << 'N';

{{ select(4) }}

  • (N%i) && (i%2)
  • (N%i0) && (i%20)
  • (N%i==0) && (i%2)
  • (N%i) && (i%2==0)

  1. 执行以下 C++语言程序后,输出结果是()。
#include <iostream>
using namespace std;
int main() {
    int sum = 0;
    for(int i = 1; i <= 20; i++)
        if (i % 3 == 0 || i % 5 == 0)
            sum += i;
    cout << sum << endl;
    return 0;
}

{{ select(5) }}

  • 210
  • 113
  • 98
  • 15

  1. 在下列代码的横线处填写(),可以使得输出是5
#include<iostream>
using namespace std;
int main()
{
	int cnt = 0;
	for(char ch = '1'; ch <= '9'; ch++)
		if(______)//此处填入代码
			cnt++;
	cout << cnt << endl;
	return 0;
}

{{ select(6) }}

  • ch < '5'
  • ch >= 5
  • ch >= '4'
  • ch % 2 == 1

  1. 以下代码是一个程序的部分代码,能够正确执行,输出的结果是 ( )
int arr[5] = {1, 2, 3, 4, 5};
int p = arr[1];
cout << (p + 2) << endl;

{{ select(7) }}

  • 1
  • 2
  • 3
  • 4

  1. 以下代码执行后,数组 arr 的内容是 ( )
int arr[6] = {1, 2, 3, 4, 5, 6};
for (int i = 0; i < 6; i += 2) {
    arr[i] = arr[i] + arr[i+1];
    arr[i+1] = arr[i] - arr[i+1];
    arr[i] = arr[i] - arr[i+1];
}

{{ select(8) }}

  • {2, 1, 4, 3, 6, 5}
  • {1, 2, 3, 4, 5, 6}
  • {3, 1, 4, 2, 5, 3}
  • {1, 3, 2, 5, 4, 6}

  1. 如果字符串 s 的值是 "GESP",以下代码执行后 s 的最后结果是 ( )
for (int i = 0; i < s.length(); i++) {
    s[i] = toupper(s[i] + i);
}
cout << s;

{{ select(9) }}

  • GESP
  • HFTR
  • hesp
  • GFUS

  1. 下列代码段执行后,变量 sum 的值是 ( )
int sum = 0;
for (int i = 1; i <= 10; i++) {
    if (i % 3 == (8 >> 2))
        continue;
    sum += i;
}
cout << sum;

{{ select(10) }}

  • 12
  • 17
  • 33
  • 40

  1. 已知字符串 s = "C++ Programming",下列程序运行的结果是 ( )
cout << (int)(s.length() | 3) << endl;

{{ select(11) }}

  • 14
  • 15
  • 16
  • 17

  1. 以下代码运行后,sum 的结果是 ( )
int arr[5] = {2, 4, 6, 8, 10};
int sum = 0;
for (int i = 0; i < 5; i++) {
    switch (arr[i] % (1 | 2)) {
        case 0: sum += 1; break;
        case 1: sum += 2; break;
        case 2: sum += 3; break;
    }
}
cout << sum;

{{ select(12) }}

  • 10
  • 11
  • 14
  • 15

  1. 小杨用一个二维数组表示棋盘,其中 1 表示有棋子,0 表示没有棋子。他想知道第 2 行第 3 列有没有棋子,可采用的代码是 ( )
int a[3][4] = {
    {1, 0, 1, 0},
    {0, 1, 0, 1},
    {1, 1, 0, 0}
};

{{ select(13) }}

  • cout << a[1, 2] << endl;
  • cout << a[1][2] << endl;
  • cout << a(1, 2) << endl;
  • cout << a{1}{2} << endl;

  1. 执行完下面的代码后,sum 的值是 ( )
int arr[2][3][2] = {
    {{1,2}, {3,4}, {5,6}},
    {{7,8}, {9,10}, {11,12}}
};
int sum = 0;
for(int i = 0; i < 2; i++)
    for(int j = 0; j < 3; j++)
        for(int k = 0; k < 2; k++)
            if((i+j+k) % 2 == 0)
                sum += arr[i][j][k];

{{ select(14) }}

  • 36
  • 39
  • 78
  • 30

  1. 表达式((3 == 0) + 'A' + 1 + 3.0)的结果类型为()。 {{ select(15) }}
  • double
  • int
  • char
  • bool

二.判断题(每题 5 分,共 25 分)

  1. 下面 C++ 代码执行后将输出 0。
int i;
for(i=0;i<10;i++){
    if(i%3==0)
        continue;
    else
        break;
}
cout << i;

{{ select(16) }}

  • 正确
  • 错误

  1. 在 C++ 中,数组名不能改变,数组名不能被赋值。 {{ select(17) }}
  • 正确
  • 错误

  1. strcmp(str1, str2) 返回 0 表示 str1 大于 str2,返回正数表示两者相等。 {{ select(18) }}
  • 正确
  • 错误

  1. 在 C++ 中,定义如下二维数组:int a[3][4];,数组 a 在内存中是按行优先连续存放的,即 a[0][0]a[0][1]a[0][2]a[0][3] 在内存中是连续的。 {{ select(19) }}
  • 正确
  • 错误

  1. 整型变量 a 的值为 3,浮点数变量 b 的值为 3.5,在 C++ 编译环境下,经过 a *= b 计算后,a 的值变为 10.5,此时如果输出 a,将输出 10.5。 {{ select(20) }}
  • 正确
  • 错误