A. 2024年信息素养大赛(8)
2024年信息素养大赛(8)
该比赛已结束,您无法在比赛模式下递交该题目。您可以点击“在题库中打开”以普通模式查看和递交本题。
一. 单项选择题(共 15 题,每题 5 分,共计 75 分)
1.C++表达式 3 - 3 * 3 / 5 的值是( )。 {{ select(1) }}
- -1.2
- 1
- 0
- 2
2.在C++中,假设N为正整数,则表达式 cout << (N % 3 + N % 7) 可能输出的最大值是( )。 {{ select(2) }}
- 6
- 8
- 9
- 10
3.下面C++代码执行时输入10后,正确的输出是( )。
int N;
cout<< ”请输入正整数:";
cin >> N;
if(N % 3)
printf(”第5行代码%2d“, N % 3);
else
printf(”第6行代码%2d“, N % 3);
{{ select(3) }}
- 第5行代码1
- 第6行代码1
- 第5行代码 1
- 第6行代码 1
4.执行下面C++代码后输出的cnt的值是( )。
int cnt=0;
for(int i = 0; i*i < 64; i+=2)
cnt++;
cout<<cnt;
{{ select(4) }}
- 8
- 7
- 4
- 1
5.下面C++代码执行后的输出是( )。
int loopCount = 0;
for(int i=0; i < 10; i++)
for(int j=1; j < i; j++)
loopCount += 1;
cout << loopCount;
{{ select(5) }}
- 55
- 45
- 36
- 28
6.在C++中,下列不可做变量的是( )。 {{ select(6) }}
- five-Star
- five_star
- fiveStar
- _fiveStar
7.在C++中,与 for(int i=0; i<10; i++) 效果相同的是( )。 {{ select(7) }}
- for(int i=0; i<10; i+=1)
- for(int i=1; i<=10; i++)
- for(int i=10; i>0; i--)
- for(int i=10; i<1; i++)
8.假设下面C++代码执行过程中仅输入正负整数或0,有关说法错误的是( )。
int N,sum = 0;
cin >> N;
while(N){
sum += N;
cin >> N;
}
cout << sum;
{{ select(8) }}
- 执行上面代码如果输入0,将终止循环
- 执行上面代码能实现所有非0整数的求和
- 执行上面代码第一次输入0,最后将输出0
- 执行上面代码将陷入死循环,可将 while(N) 改为而(N==0)
9.执行下面的C++代码,有关说法正确的是( )【质数是指仅能被1和它本身整除的正整数】。
int N;
cin >> N;
bool flag = true;
for(int i = 2; i < N; i++){
if(i * i > N)
break;
if(N % i == 0){
flag = false;
break;
}
}
if(flag)
cout << N << “是质数” << endl;
else
cout << N <<“不是质数” << endl;
{{ select(9) }}
- 如果输入正整数,上面代码能正确判断N是否为质数
- 如果输入整数,上面代码能正确判断N是否为质数
- 如果输入大于等于0的整数,上面代码能正确判断N是否质数
- 如将 flag = true 修改为 flag = N>=2?true:flase 则能判断所有整数包括负整数、0、正整数是否为质数
10.有以下函数,当调用语句为 ;时,返回的 值是? ( )
long fun (int x, int y) {
int i;
long p= 1;
for (i = 0; i < y; i ++)
p *= x;
return p;
}
{{ select(10) }}
- 3
- 9
- 27
- 71
11、下面哪种循环语句在条件判断之前至少会执行一次循环体?( ) {{ select(11) }}
- for
- while
- do-while
- switch
12、以下程序段运行后,输入: ,输出应为?( )
char ch;
while ((ch = getchar()) != '\n') {
if (ch >= 'A' && ch <= 'Z'){
ch = ch + 32;
cout << ch;
}
else if (ch >= 'a' && ch <= 'z'){
ch = ch - 32;
cout << ch;
}
}
{{ select(12) }}
- ABCdef
- abcdef
- ABCDEF
- abcDEF
13、斐波那契数列的第 1 和第 2 个数分别为 0 和 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 = __(1)__;
f1 = f2;
f2=__(2)__;
}
}
//输出第i项
cout << fn << "\t";
// 每行输出5个数
if (__(3)__){
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.数字直角三角形:给出n,输出一个直角边长为 n 的数字直角三角形。所有数字都是 2 位组成的,如果没有 2 位则加上前导 0 。补全(1)和(2)处的代码?( ) 例如: n 为 5 时,数字直角三角形为:
01
0203
040506
07080910
1112131415
#include <iostream>
using namespace std;
int main() {
int n;
cin >> n;
int cnt = 0;
for(int i=1; i<=n; i++) {
for(int j=1;___(1)___;j++){
cnt ++;
if(___(2)___){
cout << 0;
}
cout << cnt;
}
cout << endl;
}
return 0;
}
{{ select(14) }}
- j <= n cnt < 10
- j <= n cnt > 10
- j <=i cnt < 10
- j <=i cnt > 10
15、要在 C++ 中打印 "Hello,World!" ,以下语句正确的是( ) {{ select(15) }}
- cout << "Hello, World!";
- cout "Hello,World!";
- cout << Hello, World!;
- cout >> "Hello, World!";
二. 判断题(共 5 题,每题 5 分,共计 25 分)
16.执行C++代码 cout << '9'+'1'; 的输出为10。( ) {{ select(16) }}
- √
- ×
17.C++表达式 -12 % 10 的值为2。( ) {{ select(17) }}
- √
- ×
18.C++表达式 整数(12.56) 的值为13。( ) {{ select(18) }}
- √
- ×
19.C++的整型变量N被赋值为10,则语句 cout << N / 3 << “-” << N % 3 执行后输出是3-1。 ( ) {{ select(19) }}
- √
- ×
20.在C++代码中,不可以将变量命名为scanf,因为scanf是C++语言的关键字。( ) {{ select(20) }}
- √
- ×