#XSY20260501. 信息素养初赛模拟五

信息素养初赛模拟五

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

  1. 下面有关 C++ 变量的说法,正确的是 ( ) {{ select(1) }}
  • 不可以用 for 作为变量名,因为 for 是 C++ 的关键字(保留字)
  • _tnt 不可以是变量名,因为变量名的第一个字符必须是英文字母
  • tnt 不可以是变量名,因为最后一个字符容易与减号混淆
  • 可以用 printf 作为变量名,因为 printf 是关键字,但这不是好习惯,因为 printf 有约定的功能与含义

  1. C++ 表达式 2 + 3 * 4 % 5 的值为 ( ) {{ select(2) }}
  • 0
  • 4
  • 14
  • 50

  1. 下面的 C++ 代码执行时如果先输入 10 回车后输入 20 并回车,其输出是 ( )
int N,M;
printf("第一个数:");
scanf("%d", &N);
printf("第二个数:");
scanf("%d", &M);
printf("%%(N+M)=%d", N+M);

{{ select(3) }}

  • 30=30
  • 10+20=30
  • %(N+M)=30
  • 错误提示

  1. 下面 C++ 代码执行后的输出是 ( )
int i, tnt = 0;
for (i = 0; i < 100; i++)
    tnt += 1;
cout << tnt << ' ' << i;

{{ select(4) }}

  • 99 99
  • 100 99
  • 99 100
  • 100 100

  1. 两个正整数,只要不相等,就一直进行如下操作:最大数减去最小数得到一个值,该值和两个数的最小数构成新的两个正整数,重复操作,直到两个数相等,此时输出该数。下面的 C++ 代码用于实现该操作,横线处应该填写的代码是 ( )
int N,M;
cin >> N >> M;
while (N!=M){
    if(N>M)
        _____________;
    else
        _____________;
}
cout << N;

{{ select(5) }}

  • N=N-M; M=M-N;
  • M=M-N; N=N-M;
  • M=N-M; N=M-N;
  • N,M=M,N; M,N=N,M;

  1. 执行下面 C++ 代码可以找出千位与个位的和恰好等于中间两位的四位数,横线处应该填入 ( )
int count=0;
int a, bc, d, tmp;
for (int i=1000;i<=9999;i++) {
    a=(tmp=i)/1000;
    ______________;
    bc=tmp/10;
    d=tmp-bc*10;
    if(a+d==bc) {
        count++;
    }
}
cout << count;

{{ select(6) }}

  • tmp=i/10;
  • tmp=i%100;
  • tmp-=a*1000;
  • tmp=i-i%1000;

  1. 常量 7.0 的数据类型是()。 {{ select(7) }}
  • double
  • float
  • void
  • int

  1. 如果 a 和 b 均为 int 类型的变量,下列表达式不能正确判断"a 等于 0 且 b 等于 0"的是() {{ select(8) }}
  • (a == 0) && (b == 0)
  • (a == b == 0)
  • (!a) && (!b)
  • (a == 0) + (b == 0) == 2

  1. 在下列代码的横线处填写(),可以使得输出是"1248"。
#include <iostream>
using namespace std;
int main() {
    for (int i = 1; i <= 8; ____) // 在此处填入代码
        cout << i;
    return 0;
}

{{ select(9) }}

  • i++
  • i *= 2
  • i += 2
  • i * 2

  1. 下列流程图,属于计算机的哪种程序结构?( )。

{{ select(10) }}

  • 顺序结构
  • 循环结构
  • 分支结构
  • 数据结构

  1. 如果 a 为 char 类型的变量,下列哪个表达式可以正确判断"a 是小写字母"? {{ select(11) }}
  • a <= a <= z
  • a - 'a' <= 'z' - 'a'
  • 'a' <= a <= 'z'
  • a >= 'a' && a <= 'z'

  1. 执行以下 C++语言程序后,输出结果是()。
#include<iostream>
using namespace std;
int main()
{
	int n = 17;
	bool isprime = true;
	for(int i = 2; i <= n; i++)
		if(n % i == 0)
			isprime = false;
	cout << isprime << endl;
	return 0;
}

{{ select(12) }}

  • false
  • true
  • 0
  • 1

  1. 以下关于标准 C++ 一维数组的描述,哪一项是错误的?( ) {{ select(13) }}
  • 数组的下标从0开始
  • 数组在内存中是连续存放的
  • 数组的长度只能在运行时才能确定
  • 可以在程序中修改数组某个元素的值

  1. 根据下面的流程图,如果成绩 score 输入 60,输出的结果是 ( )
开始
输入成绩score
score≥90? → 是→输出"优秀"
        → 否→score>60? → 是→输出"及格"
                    → 否→输出"不及格"
结束

{{ select(14) }}

  • 优秀
  • 及格
  • 不及格
  • 没有输出

  1. 某个整数很长很长,形如:1232123212321……,其规律是从 1 开始逐一升高到 3 然后逐一降低到 1,然后又逐一升高到 3,一直到很长很长。假设最高位编号为 1,要求判断从左边最高位开始的第 N 位数是几?在横线处应该填入的代码是 ( )
int N, M;
cout << "请输入编号:";
cin >> N;
M = _____________;
if (M != 0)
    cout << M;
else
    cout << 2;

{{ select(15) }}

  • N % 4
  • N / 4
  • N % 3
  • N / 3

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

  1. C++ 表达式 10*4%610*2%3 的结果相同。 {{ select(16) }}
  • 正确
  • 错误

  1. 在 C++语言中,标识符中可以有数字,但不能以数字开头。 {{ select(17) }}
  • 正确
  • 错误

  1. for 语句的循环体至少会执行一次。 {{ select(18) }}
  • 正确
  • 错误

  1. while 语句的循环体至少会执行一次。 {{ select(19) }}
  • 正确
  • 错误

  1. 在 C++ 中,int a[] = {1, 2, 3, 4, 5}; 可以定义一个包含 5 个元素的整型数组。 {{ select(20) }}
  • 正确
  • 错误