欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 新闻 > 国际 > 2024青少年信息素养大赛 C++智能算法初赛 小学组 全年级 真题答案详细解析

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

2025/4/4 22:14:02 来源:https://blog.csdn.net/frank2102/article/details/146971556  浏览:    关键词: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;elsereturn 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;
doi ++;
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;elsereturn 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等级四级真题解析【电子学会】

    版权声明:

    本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

    我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

    热搜词