当前位置: 首页 > news >正文

2024青少年信息素养大赛 C++智能算法初赛 小学组 全年级 真题答案详细解析

2024年信息素养大赛初赛C++真题解析

选择题15题,判断题5题,每题5分,共100分

1、有以下函数,当调用语句为long p = fun (3, 3);时,返回的p值

long fun (int x, int y)
{
    int i;
    long p = 1;
    for (i = 0; i < y; i ++)
        p *= x;
    return p;
}

A、3

B、9

C、27

D、71

答案:C

考点分析:考察阅读程序能力,函数实现的功能是x的y次方,所以是3的3次方也就是3*3*3=27,答案C

2、下列事件中的必然事件是

A、小A同学参加下周的数学考试,一定能考100分

B、射击运动员射靶10次,必定能有1次正中靶心

C、打开电视机,正好在播放新闻联播

D、口袋中有2个红球和1个白球,从中摸出2个球,必定至少有1个红球

答案:D

考点分析:考察必然事件相关知识,ABC三个选项都没办法百分百确定,D选项红球2个,白球1个,摸两个球是一定会至少有一个红球,答案D

3、二进制数0.101转换为十进制数为

A、 0.5

B、0.625

C、0.2

D、0.75

答案:B

考点分析:考察进制转换相关知识,二进制小数转十进制规则为:二进制小数点后每一位的权重分别是2的负一次方、二次方、三次方等等,101对应的值为:0.5+0.125=0.625;答案B

4、有A、B、C、D、E五个同学站成一排,如果A和B必须站在一起,则有多少种不同的排法

A、24

B、48

C、60

D、120

答案:B

考点分析:考察排列组合相关知识,可以把AB看成一个整体,也就是4个全排列就是A(4,4)=4*3*2*1=24,但是AB两个人还有两种可能,所以最后就是24*2=48;答案B

5、在DevC++中,C++源程序文件的默认扩展名为______,C++目标文件连接而成的可执行文件的默认扩展名为______

A、.c,.exe

B、.cpp,.exe

C、.exe,.cpp

D、.exe,.c

答案:B

考点分析:考察C++相关知识,源程序文件是cpp后缀,可执行文件是exe后缀,答案B

本文作者:小兔子编程 作者首页:小兔子编程-CSDN博客

6、有以下函数定义,当n传入数为10时,返回值应为

int func (int n)
{
  if (n == 1)
     return 1;
  else
     return func (n - 1) + n;
}

A、45

B、55

C、66

D、1

答案:B

考点分析:考察阅读程序能力,程序是一个递归函数,实现的功能是1到n的累加,所以输入10就是1+2+3...+10=55;答案B

7、下面哪种循环语句在条件判断之前至少会执行一次循环体

A、for

B、while

C、do-while

D、switch

答案:C

考点分析:考察循环结构相关知识,至少执行一次循环体对应的是do-while循环;答案C

8、填写以下程序,使其输出"Hello World!",横线处应填写

#include<iostream>
using namespace std;
int main() 
{
    _____<< "Hello, world!" << endl;
    return 0;
}

A、cin

B、cout

C、std::cin

D、std::cout

答案:B

考点分析:考察输出指令,程序是要输出hello,world,已经有了内容,缺少的是输出指令cout;由于第二行已经引入了命名空间std,所以使用的时候不需要再加前缀,直接用就可以;答案B

9、有两个函数fun1()和fun2()定义如下,在主函数中有:int x = 1; x = fun1(x);调用,此时x的值为

int fun1 (int x)
{
    x ++;
    fun2(x);
    return x;
}
void fun2 (int x)
{
    x ++;
}

A、1

B、2

C、3

D、4

答案:B

考点分析:考察函数相关知识,主函数中调用fun1,传递进来的是1;在fun1函数中再次调用fun2,同样以值传递形式再次传递x的值,但是fun2没有返回值,所以fun2中执行后的值并不会返回到fun1中,最后fun1返回的结果就是2;答案B

10、以下程序段运行后,输出应为

int a, b;
for (a = 1, b = 1; a <= 100; a ++)
{
	if (b > 20)
  		break;
	if (b % 4 == 1)
 	{
  		b = b + 4;
  		continue;
 	}
 	b = b - 5;
}
cout << a;

A、100

B、20

C、9

D、6

答案:D

考点分析:考察阅读程序能力,循环a的值是从1到100,作为起始和结束条件;但是循环体中有两个if语句,第一个是循环的结束条件,当b的值大于20结束;第二个if语句是b%4=1;开始b的值就是1;而if语句里面是b+=4,同时还有一个continue语句;continue语句是直接跳过这次循环,后面的语句不会执行(b-=5);所以b的值分别是:1、5、9、13、17、21;到达21的时候就退出循环结束;总共循环执行了6次;所以答案D

11、以下程序段运行后,输入:ABCdef,输出应为

char ch;
while ((ch = getchar ()) != '\n')
{
   	if (ch >= 'A' && ch <= 'Z')
      	ch = ch + 32;
  	else if (ch >= 'a' && ch <= 'z')
      	ch = ch - 32;
  	cout << ch;
}

A、ABCdef

B、abcdef

C、ABCDEF

D、abcDEF

答案:D

考点分析:考察阅读程序能力,重点考察小朋友们ASCII码值,小写字母比大写字母的ASCII码值大32;所以程序要实现的功能就是将大写转小写,同时小写转大写;答案D

12、下列代码中,哪一个选项正确的输出了num的值

int main() {
  	int num = 10;
  	cout << num++ << endl;
	cout << ++num << endl;
  	cout << num-- << endl;
  	cout << --num << endl;
 	 return 0;
}

A、10 12 12 10

B、10 12 11 9

C、11 12 12 10

D、11 12 11 9

答案:A

考点分析:考察自增自减运算,++/--在前,先对变量自身进行加一(减一),然后在把值带入表达式计算;相反先计算表达式的值在自身进行加一(减一);

第一行++在后,先输出10,然后num=11,

第二行++在前,num+1=12;同时输出12

第三行--在后,先输出12,然后num=12-1=11

第四行--在前,num-1=11-1=10,然后输出10;答案A

13、如果定义了一个函数int min (int a, int b);用来返回a和b中较小的数,那么,想求15、26、47三个数中最小的数,用int m = min (15, min (26, 47));这种调用形式

答案:正确

考点分析:考察函数相关知识,min函数是返回两个数中较小的数,求三个数,需要先求两个数的较小,然后在和另外一个数再次调用min求较小值;答案正确

14、continue语句只能出现在循环体中

答案:正确

考点分析:考察continue语句的使用,continue 语句只能出现在循环体中,它主要用于改变循环的正常执行流程。当在循环体内遇到 continue 语句时,程序会跳过本次循环剩余的代码,并开始下一次循环的迭代(如果条件允许的话);答案正确

15、在下面程序段中,循环体的循环次数为4次

int i = 0;
do
    i ++;
while (i*i < 10);

答案:正确

考点分析:考察do-while循环相关知识,第一次1=0的时候执行,接着i=1、2、3都会执行;因为条件是1*i<10,当i=4的时候i*i=16>10结束循环;所以答案正确

本文作者:小兔子编程 作者首页:小兔子编程-CSDN博客

16、有以下程序段,它的输出结果是10 8 6 4 2 0

for(int i=10;i>0;i-=2)
{
 	cout<<i<<" ";
}

答案:错误

考点分析:考察for循环相关知识,i的初始值是10,增量是每次减2;而条件是大于0;所以输出的值应该是:10 8 6 4 2,0并不会输出;答案错误

17、C++函数参数的作用域是函数体内

答案:正确

考点分析:考察函数相关知识,函数的作用域是仅限于函数内部,答案正确

18、斐波那契数列的第1和第2个数分别为0和1 ,从第三个数开始,每个数等于其前两个数之和,即F(0) = 0,   F(1) = 1,F(N) = F(N - 1) + F(N - 2), 其中 N > 1。为求斐波那契数列中的前20个数,要求每行输出5个数编写了以下程序,在3个空格处应填写哪些内容

#include<iostream>
using namespace std;
int main() {
 	int n = 20;  
   	int f1 = 0, f2 = 1;  
   	int fn;  
   	cout << "斐波那契数列前" << n << "个数为:" << endl;
   	for (int i = 1; i <= n; i++) {
       	if (i == 1) {
           	fn = f1;
      	}
       	else if (i == 2) {
           	fn = f2;
       	}
       	else {
           	fn =__①_;
           	f1 = f2;
           	f2 =__②_;
       	}
       	cout << fn << "\t";

       	if (__③_) {
           	cout << endl;
       	}
   	}
   	return 0;
}

A、f1,fn,i==5

B、fn,f1+fn,i/5==0

C、f1+f2,fn,i%5==0

D、f1+f2,f1,i%5==0

答案:C

考点分析:考察阅读程序能力,本程序以递推的方式实现斐波那契数列,根据规则可知缺省1处应该填的是递推规则:fn=f1+f2,排除AB选项,然后将加数依次往后推一位,所以f2=fn;答案C

19、以下程序输出多组数字,其中包括下列选项中的哪个选项

#include<iostream>
using namespace std;
int main()
{
  	int g,s,b;
	for(int n=100;n<1000;n++)
	{
		b = n / 100;
		s = n / 10 % 10;
		g = n % 10;
		if(g*g*g+s*s*s+b*b*b==n)
		{
		  	cout<<n<<endl;
		}
    }
    return 0;
}

A、407,153

B、408,154

C、408,153

D、407,159

答案:A

考点分析:考察阅读程序能力,本题要实现的功能是求1000以内的水仙花数,从程序也可以看出要实现的是三位数的每一位上数字的立方之和相加等于这个三位数;答案A

20、下面程序运行后输入4,输出结果应是

#include <iostream>
using namespace std;
int fac (int n)
{
  	if (n <=1)
        return 1;
    else
        return n * fac (n - 1);
}
int main ()
{
    int n = 0;
    cin >> n;
    int ret = fac (n);
    cout << ret;
    return 0;
}

A、4

B、12

C、24

D、48

答案:C

考点分析:考察阅读程序能力,本程序实现的功能是求阶乘,4的阶层=4*3*2*1=24;答案C

推荐资料

  • 所有考级比赛学习相关资料合集【推荐收藏】

1、C++资料 

  • 电子学会C++一级历年真题解析
  • 电子学会C++二级历年真题解析
  • 蓝桥杯C++选拔赛真题解析

    2、Scratch资料

    • Scratch3.0系列视频课程资料
    • 零基础学习scratch3.0【入门教学 免费】
    • 零基础学习scratch3.0【视频教程 114节 免费】
    • 历届蓝桥杯scratch国赛真题解析
    • 历届蓝桥杯scratch省赛真题解析
    • 历届蓝桥杯scratch STEMA选拔赛真题解析
    • 历届蓝桥杯科技素养计算思维真题解析
    • 蓝桥杯专项训练考前集训100题
    • 画图-scratch编程考级99图
    • 电子学会历年scratch等级考试一级真题解析
    • 电子学会历年scratch等级考试二级真题解析
    • 电子学会历年scratch等级考试三级真题解析
    • 电子学会历年scratch等级考试四级真题解析

    3、Python资料

    • 蓝桥杯python选拔赛真题详解
    • 蓝桥杯python省赛真题详解

    • 蓝桥杯python国赛真题详解

    • python等级一级真题解析【电子学会】

    • python等级二级真题解析【电子学会】

    • python等级三级真题解析【电子学会】

    • python等级四级真题解析【电子学会】

    http://www.dtcms.com/a/108902.html

    相关文章:

  • Android 搜索蓝牙界面禁止横屏
  • 【计算机网络应用层】
  • 如何根据用户活跃时间调整邮件发送策略?
  • Python爬虫第4节-请求库urllib的request模块使用
  • 自抗扰ADRC之二阶线性扩展状态观测器(LESO)推导
  • 循环神经网络 - 机器学习任务之异步的序列到序列模式
  • # 使用 Dlib 和 OpenCV 实现基于深度学习的人脸检测
  • Linux命令-vmstat
  • 使用 Spring Boot 和 GraalVM 的原生镜像
  • 算法 | 神教优化算法(Divine Religions Algorithm, DRA)原理,公式,应用,算法改进研究综述,matlab代码
  • 利用AI与设计原则,对复杂性业务抽象的一次实战
  • Linux文件系统选择指南:XFS or EXT4
  • MCP Servers是什么?
  • 数学复习(12)关于三角函数极限和求导
  • Jackson 处理 JSON 生成与解析指南
  • 逆透视投影 torch
  • 全面解析 Mybatis 与 Mybatis-Plus:深入原理、实践案例与高级特性对比
  • XXS漏洞零基础学习到入门
  • 通用的动态定时任务系统
  • 【动态规划】二分优化最长上升子序列
  • 34、web前端开发之JavaScript(三)
  • 将图表和表格导出为PDF的功能
  • ThreadLocalMap的作用和特点
  • cobbler自动最小化安装centos,并配置地址
  • springboot+easyexcel实现下载excels模板下拉选择
  • Spring Boot 的配置文件
  • 网络空间安全(50)JavaScript基础语法
  • C#:重构(refactoring)
  • 【Spring Cloud Alibaba】:Nacos 使用全详解
  • CExercise04_1位运算符_1 用位运算符判断某个整数是否为奇数