#XSYK20260502. 信息素养初赛模拟六
信息素养初赛模拟六
一.单选题(每题 5 分,共 75 分)
- 有关下面 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 效果相同
- 下面 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
- 没有输出
- 如果一个正整数能被 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
- 如果正整数 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)
- 执行以下 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
- 在下列代码的横线处填写(),可以使得输出是
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
- 以下代码是一个程序的部分代码,能够正确执行,输出的结果是 ( )
int arr[5] = {1, 2, 3, 4, 5};
int p = arr[1];
cout << (p + 2) << endl;
{{ select(7) }}
- 1
- 2
- 3
- 4
- 以下代码执行后,数组
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}
- 如果字符串
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
- 下列代码段执行后,变量 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
- 已知字符串
s = "C++ Programming",下列程序运行的结果是 ( )
cout << (int)(s.length() | 3) << endl;
{{ select(11) }}
- 14
- 15
- 16
- 17
- 以下代码运行后,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 表示有棋子,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;
- 执行完下面的代码后,
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
- 表达式((3 == 0) + 'A' + 1 + 3.0)的结果类型为()。 {{ select(15) }}
- double
- int
- char
- bool
二.判断题(每题 5 分,共 25 分)
- 下面 C++ 代码执行后将输出 0。
int i;
for(i=0;i<10;i++){
if(i%3==0)
continue;
else
break;
}
cout << i;
{{ select(16) }}
- 正确
- 错误
- 在 C++ 中,数组名不能改变,数组名不能被赋值。 {{ select(17) }}
- 正确
- 错误
strcmp(str1, str2)返回 0 表示str1大于str2,返回正数表示两者相等。 {{ select(18) }}
- 正确
- 错误
- 在 C++ 中,定义如下二维数组:
int a[3][4];,数组a在内存中是按行优先连续存放的,即a[0][0]、a[0][1]、a[0][2]、a[0][3]在内存中是连续的。 {{ select(19) }}
- 正确
- 错误
- 整型变量
a的值为 3,浮点数变量b的值为 3.5,在 C++ 编译环境下,经过a *= b计算后,a的值变为 10.5,此时如果输出a,将输出 10.5。 {{ select(20) }}
- 正确
- 错误