2024年BCSP-X小学低年级组初赛测试题(模拟题)

一、单项选择(共 15 题,每题 2 分,共计 30 分,每题有且仅有一个正确选项)

  1. 不可以作为c++中的变量名的是( )。
  • A. I以下loveChina
  • B. I_loveChina
  • C. I_love_China
  • D. i_loveChina
  1. 在体育课上,N(N>0 且是 3 的倍数)位同学要分成三人一组来打篮球,规则如下:

同学们按照衣服上的编号从 1 到 N 的顺序站成一队,从第一位同学开始,每三位同学为一队,其中三位同学中编号最小的为队长。例如编号为 1,2,3 的同学为一队,并且编号为 1 同学为队长。输入一个数字 N,来判断这个同学是不是队长。要实现这个功能,应该在横线处写的代码为( )。

1. int n;
2. cin >> n;
3. if(_____){
4.     cout <<"是队长";
5. }else{
6.     cout <<"不是队长";
7. }
  • A. n%2==1
  • B. n%3==0
  • C. (n-1)/3==1
  • D. (n-1)%3==0
  1. 定义一个double类型的变量,下面定义不合法的是( )。
  • A. double a = 3.14;
  • B. double a = (double)3.14;
  • C. double a = (double)(3.14);
  • D. double a = double 3.14;
  1. 执行下列c++代码,输出的是( )。
1. int x = 5,sum=0;
2. for(int i=1;i<6;i++){
3.     sum += (x - i) * (x - i);
4. }
5. cout << sum;
  • A. 30
  • B. 31
  • C. 16
  • D. 18
  1. 下面是小红同学一周的课余时间安排,当输入5时,将会输出( )。
1. int n;
2. cin >> n;
3. switch(n){
4.     case 1: cout << "写作业 " ; break;
5.     case 2:
6.     case 3: cout << "学游泳 " ; break;
7.     case 4:
8.     case 5:
9.     case 6: cout << "弹钢琴 " ;
10.    case 7: cout << "睡觉 " ;
11. }
  • A. 什么也不会输出
  • B. 弹钢琴 睡觉
  • C. 弹钢琴
  • D. 以上都不对
  1. 小华是一名设计师,他正在为一个客户设计一个网站。客户要求网站的主颜色必须是特定的蓝色,并提供了这个颜色的RGB值:(0, 105, 211)。为了在网站的CSS代码中使用这个颜色,小华需要将RGB值转换为十六进制表示。他知道,在十六进制表示中,每种颜色(红、绿、蓝)都用两位数字表示,范围从00到FF。请你帮小华计算下(0,105,211)对应的的16进制表示是( )。
  • A. #00105211
  • B. #0069D3
  • C. #0066DD
  • D. #0066D2
  1. 下列流程图输出结果是( )。
    在这里插入图片描述
  • A. 2
  • B. 1
  • C. 3
  • D. 12
  1. 根据前两个图形中数字的规律,第三个图形的空白处应该填( )。
    在这里插入图片描述
  • A. 7
  • B. 10
  • C. 12
  • D. 6‘
  1. 如图分别为1到4月的兔子情况,假设一对小兔子要一个月才到成熟期(可以生小兔子的时期),而一对成熟兔子每月会生一对小兔子。如果第一个月时只有一对成熟兔子,7个月时会有( )对小兔子。
    在这里插入图片描述
  • A. 15
  • B. 8
  • C. 12
  • D. 5
  1. 以下不属于输出设备的是( )。
  • A. 键盘
  • B. 打印机
  • C. 显示器
  • D. 音响
  1. 左边给定的是纸盒的外表面,右边哪一项是由它折叠而成( )。
    在这里插入图片描述
  1. 小明和小红玩一个数字游戏。他们轮流报数,每次可以报1个或者2个数字,谁先报到30就赢了。如果小明先报数,并且两人都采用最佳策略,谁会赢得游戏?( )
  • A. 小明肯定赢
  • B. 小红肯定赢
  • C. 平局
  • D. 先报数的人肯定输
  1. 某班级人数不知,连续输入成绩直到输入0停止,输入结束后求出总成绩。在以下C++代码横线处应填( )。
1. int score,sum=0;
2. ___①__
3.     cin >> score;
4.     sum += score;
5. __ ②_ _
6. cout << sum;
  • A. ①处填do{ ,②处填}while(score)
  • B. ①处填while(score>0){ ,②处填}
  • C. ①处填"for( ; ; ){ ,②处填if(!score) break;}
  • D. 以上都不对。
  1. 如果a和b均为int类型的变量,下列表达式能正确判断"a等于0或b不等于0"的是( )。
  • A. (!a) || (!b)
  • B. (!(a==0&&b == 0))
  • C. (!a) || (b)
  • D. (a == 0) - (b != 0) == 0
  1. '^'在C++中表示异或运算,规则是:如果异或运算左右两边的值同时为真或同时为假,那么计算结果为假,否则计算结果为真。下面程序的运行结果是( )。
1. for(int i=1;i<=4;i++){
2.     bool f = 0;
3.     for(int j=1;j<=i+1;j++){
4.         if(f ^ (j==i)){
5.             cout<<"*";
6.             f=1;
7.         }
8.         cout<<" ";
9.     }
10.    cout<<"*"<<endl;
11. }  

在这里插入图片描述

二、阅读程序(程序输入不超过数组或字符串定义的范围;判断题正确填√,错误填×;
除特殊说明外,判断题 1.5 分,选择题 3 分,共计 40 分)
第一题如下:

1. #include <iostream>
2. using namespace std;
3. int main(){
4.     int a, b;
5.     cin >> a >> b;
6.     if ((a % 2) == (b % 2)) {
7.         cout << "1";
8.     } else {
9.         cout << "0";
10.    }
11.    return 0;
12. }

假设输入的 a、b 均是不超过 10000 的正整数,完成下面的判断题和单选题:

1.判断题

  1. 将第 4 行的 int 改为 unsigned int,程序行为不变。 ( )
  2. 将第 6 行(a % 2)和(b % 2)的小括号去掉,程序行为不变。 ( )
  3. 当输入为 6666 8666 时,程序输出"1"。 ( )
  4. 当输入为 1234 4321 时,程序输出"0"。 ( )

2.选择题

  1. 若输出的结果为0,下列说法正确的是( )
  • A. a和b均为偶数
  • B. a和b是一个奇数和一个偶数
  • C. a和b的个位数相同
  • D. a和b的位数不同

第二题如下:

1. #include <iostream>
2. using namespace std;
3. int main() {
4.     int n, cnt = 0;
5.     cin >> n;
6.     for (int i = 1; i <= n; i++) {
7.         if (n % i == 0) {
8.             cnt++;
9.         }
10.    }
11.    cout << cnt;
12.    return 0;
13. }

假设输入的 n 为不超过 2000 的正整数,完成下面的判断题和单选题:

1.判断题

  1. 若输入 n 为 0,此程序可能会发生死循环或运行错误。 ( )
  2. 若输入 n 为 1,第 7 行的 if 判断语句和第 8 行的 cnt++语句执行次数不同。( )
  3. 若输入 n 为 2,输出也为 2。 ( )

2.选择题

  1. 下列语句中可以替换第 6 行程序的是:( )
  • A. for (int i = 1; i < n; i++) {
  • B. for (int i = 0; i <= n; i++) {
  • C. for (int i = n; i > 0; i–) {
  • D. for (int i = n; i >= 0; i–) {
  1. 当输入为 24 时,输出为:( )
  • A. 8
  • B. 6
  • C. 4
  • D. 3
  1. 当输入为 484 时,输出为:( )
  • A. 9
  • B. 7
  • C. 5
  • D. 4

第三题如下:

1. #include <iostream>
2. using namespace std;
3. int main() {
4.     int n;
5.     long long sum = 0;
6.     cin >> n;
7.     do {
8.         long long i = 1, x = 1;
9.         do {
10.            sum += x;
11.            x *= ++i;
12.        } while (i <= n);
13.    } while (--n);
14.    cout << sum;
15.    return 0;
16. }

假设输入的 n 为不超过 20 的正整数,完成下面的判断题和单选题:

1.判断题

  1. 将第 5 行的 long long 改为 long,程序行为不变。 ( )
  2. 在程序运行的任意时刻,sum 的值都永远小于等于 x。 ( )
  3. 若不按输入规则,输入 n 为 0,此程序可以在 1s 内完成计算。 ( )

2.选择题

  1. 当输入 n 为 4,程序的输出为:( )
  • A. 33
  • B. 34
  • C. 46
  • D. 47
  1. 当输入 n 为 6,程序的输出为:( )
  • A. 1074
  • B. 1073
  • C. 1072
  • D. 1071
  1. 以下哪段代码的功能和第 10、11 行相同。( )
  • A. sum += x; x *= i++;
  • B. sum += (x *= i++);
  • C. x *= ++i; sum += x;
  • D. sum += (x *= ++i);
  1. (4分)已知阶乘表示为n!,阶乘的计算n!=n*(n-1)*…21;特别的,0!=1。则此程序的目的为:( )
  • A. 计算0!+1!+…+n!的和
  • B. 计算1!+2!+…+n!的和
  • C. 计算0!+(0!+1!)+…+(0!+…+n!)的和
  • D. 计算1!+(1!+2!)+…+(1!+…+n!)的和

三、 完善程序(单选题,每小题 3 分,共计 30 分)

(统计1的个数) 统计给定范围从x到y(x<y,包括x和y)的所有正整数中,数字1出现的次数

1. #include<iostream>
2. using namespace std;
3. int main(){
4.     int x=0,y=0;
5.     cin >> x >> y;
6.     int cnt=0;
7.     for(int i=x;; i++){
8.         int num=;
9.         while()
10.        {
11.            if(num%10==1)
12.            {
13.14.            }
15.16.        }
17.    }
18.    cout << cnt;
19.    return 0;
20. }
  1. ①处应该填( )
  • A. i <= y
  • B. i < y
  • C. i >= y
  • D. i > y
  1. ②处应该填( )
  • A. 0
  • B. i
  • C. x
  • D. y
  1. ③处应该填( )
  • A. num >= 0
  • B. num > 0
  • C. num <= y
  • D. num >= x
  1. ④处应该填( )
  • A. cnt=1
  • B. cnt+1
  • C. cnt++
  • D. num++;
  1. ⑤处应该填( )
  • A. num -= 10
  • B. num -= num % 10
  • C. num %= 10
  • D. num /= 10

第二题如下:

(最长连续天数) 妈妈每天都会给小明发零花钱,每天的钱数不同,要求统计零花钱一直下降的最长连续天数

1.  #include<iostream>
2.  using namespace std;
3.  int main()
4.  {
5.      int n = 0;
6.      cin >> n;
7.      int head = 0;
8.      cin >> head;
9.      int money = 0; 
10.     int days = 0;
11.     int num =;
12.     for(int i = 1;; i++){
13.         cin >> money;
14.         if(){
15.             num++;
16.;
17.         }
18.         else{
19.             num = 1;
20.         }
21.;
22.     }
23.     cout << days;
24.     return 0;
25. }
  1. ①处应该填( )
  • A. 0
  • B. 1
  • C. 365
  • D. -7
  1. ②处应该填( )
  • A. i <= n
  • B. i < n
  • C. i < n + 1
  • D. i < n - 1
  1. ③处应该填( )
  • A. money <= head
  • B. money >= head
  • C. money < head
  • D. money > head
  1. ④处应该填( )
  • A. days = max(days, num)
  • B. days = min(days, num)
  • C. num = max(days, num)
  • D. num = min(days, num)
  1. ⑤处应该填( )
  • A. head = 0
  • B. cin >> head
  • C. money = head
  • D. head = money
  • 4
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
### 回答1: CSP(中国计算机科学会议)是中国著名的计算机科学研究机构。CSP J2021 初赛模拟试题是CSP织为了选拔优秀学而设计的一种测评方式。 CSP J2021初赛模拟试题的主要目的是通过一系列的计算机科学相关考题,评估考在计算机科学领域的知识掌握程度和解决问题的能力。这些题目涵盖了数据结构、算法设计与分析、编程思维等方面,要求考具备扎实的计算机基础和编程能力。 模拟试题的设计不仅考察了考的理论知识,还注重考察考的实际动手能力。试题通常包括多道编程题和理论题,考需要根据题目要求编写代码,解决实际问题。同,考还需要写出思路分析、算法设计以及间复杂度和空间复杂度的分析等理论方面的回答。 参加CSP J2021初赛模拟试题有助于考了解自己在计算机科学领域的不足之处,进而提升自己的学习和技能水平。同,通过参加模拟试题,考也能提前了解到CSP选拔过程中的考点和难度,有利于充分准备真实的CSP考试。 对于参加CSP J2021初赛模拟试题的考来说,需要充分利用模拟试题对自己进行评估,并结合评估结果进行针对性的学习和训练。通过大量的练习和实际编程项目的经验积累,考可以提升自己的编程能力和解决问题的能力,为未来的CSP考试做好充分准备。 ### 回答2: CSP-J2021初赛模拟试题是一套为了评估学的计算机科学素养和编程能力而设计的试题。试题包含多个题目,涵盖了计算机科学的基础知识以及算法和数据结构的应用。 这套试题注重帮助学培养解决问题的能力和编程思维。试题中的问题旨在考察学对于特定问题的分析能力和抽象能力,以及他们运用所学知识解决问题的能力。 对于每个题目,学需要阅读题目描述,根据题目要求设计并实现一个相应的算法或程序。题目中可能会给出输入输出的格式要求,学需要根据要求编写程序并正确处理输入和输出。在实现算法或程序之前,学需要首先理解题目的要求,分析问题的特点,设计一个合适的解决方案,然后才能进行编码实现。 模拟试题在难度上参考了真实的CSP(计算机科学课程能力竞赛)的水平,因此对于学来说可能具有一定的挑战性。解答试题需要学具备扎实的编程基础知识和良好的编程实践能力。 通过参加CSP-J2021初赛模拟试题的练习,学可以更好地了解自己在计算机科学和编程方面的能力水平。对于准备参加CSP的学来说,这套试题是一个很好的复习和准备工具。即使不打算参加CSP,通过解答试题也可以帮助学提升编程能力和解决问题的能力。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

天秀信奥编程培训

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值