2026信息素养初赛-数字守艺人-初中组C++(中等)_第1页
2026信息素养初赛-数字守艺人-初中组C++(中等)_第2页
2026信息素养初赛-数字守艺人-初中组C++(中等)_第3页
2026信息素养初赛-数字守艺人-初中组C++(中等)_第4页
免费预览已结束,剩余4页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

一、单选题(共20题)

第1题

在C++中,若要存储非遗剪纸纹样的像素坐标集合,以下哪种STL容器最适合实现快速的遍历和随机访

问?

A.list

B.vector

C.set

D.map

答案:B

解析:vector是连续存储的线性容器,支持随机访问(通过下标直接元素),遍历效率高适合存储

需要频繁遍历和随机访问的像素坐标数据;list是双向链表,不支持随机访问;set和map是有序关联容

器,主要用于去重和键值对存储,不适合单纯的坐标集合遍历。

第2题

在非遗皮影戏的动作模拟程序中,需要判断当前角色是否处于“抬手”状态,以下哪个C++条件表达

式写法正确?(假设

status

为存储状态的字符串变量)

A.if(status="抬手")

B.if(status=="抬手")

C.if(strcmp(status,"抬手")==0)

D.if(status.equals("抬手"))

答案:C

解析:C++中C风格字符串(char*)不能直接用

==

比较内容,需要用

strcmp

函数,返回0表示两个字

符串相等;选项A是赋值操作不比较;选项B对于string类对象可用,但如果

status

是char*则错误;

选项D是Java的写法,C++的string类用

==

比较即可,没有

equals

方法。

第3题

在计算非遗剪纸原材料成本时,已知每张需要0.2平方米红宣纸,单价为15元/平方米,若要

计算制作n张剪纸的总成本,以下C++代码片段正确的是?

A.doublecost=0.2*15*n;

B.intcost=0.2*15*n;

C.doublecost=(0.2*n)/15;

D.foatcost=15/0.2*n;

答案:A

解析:总成本=单张用料×单价×数量,0.2*15是单张成本,再乘以数量n,结果为浮点数用double存储

最准确;选项B用int会丢失小数部分;选项C和D的计算公式逻辑错误。

第4题

在非遗二十四节气的日期查询程序中,需要将12个节气名称存储为一数组,以下C++定义正确的是?

A.stringsolar_terms[]={"立春","雨水","惊蛰","春分","清明","谷雨","立夏","小满","芒种","夏至",

"小暑","大暑"};

B.charsolar_terms[12]={"立春","雨水",...};

C.stringsolar_terms[12]={'立春','雨水',...};

D.char*solar_terms[]={"立春","雨水",...};

答案:A

解析:C++的string类可以直接存储中文字符串,数组长度由初始化列表自动推导,也可以指定

12;选项B的char数组只能存储单个字符,不能存字串;选项C用单引号是字符面量,不

串;选项D的char*数组虽然可以存C风格字符串,但在现代C++中使用string类更安全便捷。

第5题

在模拟非遗陶瓷烧制的温度监控程序中,需要每隔1秒读取一次温度数据,以下哪个C++库函数可以实

现延时功能?

A.sleep()

B.delay()

C.wait()

D.pause()

答案:A

解析:C++标准库中,

<unistd.h>

头文件的

sleep()

函数可以让程序暂停指定的秒;

delay()

Arduino等平台的函数,不是标准C++函数;

wait()

pause()

没有延时的功能,

wait()

用于进程等

待,

pause()

用于等待信号。

第6题

在非遗匠人效率统计程序中,需要将按制作剪纸的平均工时从小到大排以下哪种算法属于

C++STL内置的标准排序函数?

A.sort()

B.bubble_sort()

C.quick_sort()

D.merge_sort()

答案:A

解析:C++STL的

<algorithm>

头文件中提供了

sort()

函数,默认实现快速排序是标准的内置

工具;其他选项都是体的排序算法名称,需要手动实现,不STL内置函数。

第7题

在非遗皮影角色的库存管理程序中,需要统计每种数量以下哪STL容器最适合存储“角色

名称-库存数量”的键值对?

A.vector

B.list

C.map

D.stack

答案:C

解析:map是有序关联容器,专门用于存储键值对,支持通过快速查找应的适合实现“角色名

称-库存数量”的映射;vector和list是线性容器,不适合键值对存储;stack是栈容器,遵循后进先出规

则,也不适合。

第8题

在非遗刺绣纹样的坐标生成程序中,需要100个范围在(0,0)到(800,600)之间的随机整数坐标,以下

哪个C++代码片段可以正确生成随机数?(假设已包含

<random>

头文件)

A.intx=rand()%800;

B.default_random_enginee;uniform_int_distributiond(0,799);intx=d(e);

C.intx=random(0,800);

D.intx=arc4random_uniform(800);

答案:B

解析:C++11及以上标准推荐使用

<random>

库的随机数生成器,

default_random_engine

是随机引

擎,

uniform_int_distribution

用于指定均匀分布的范围,这种方式比传统

rand()

更安全、随机

质量更高;选项A的

rand()

是C语言的函数,需要设置种子,且随机质量较低;选项C的

random()

是标准C++函数;选项D是BSD系统的函数,不是跨平台标准函。

第9题

在非遗端午粽子的配料统计程序中,需要定义一个常量表示每糯米克数以下C++定义方

式正确的是?

A.constintGLUTINOUS_RICE=100;

B.intconstGLUTINOUS_RICE=100;

C.#defneGLUTINOUS_RICE100

D.以上三种都正确

答案:D

解析:C++中定义常量有三种见方式:

const

修饰的变量(两种写法

constint

intconst

价)、

#define

宏定义,三种方式都可以实现定常量的需求,只是

const

是编译期常量,类型安

全,

#define

是预处理替换,没有类型检查。

第10题

在非遗古琴曲目的播放模拟程序中,需要存储名称、演奏时长难度等级多个属性以下哪种

C++语法最适合封装这些属性?

A.结构体(struct)

B.数组

C.指针

D.枚举(enum)

答案:A

解析:结构体可以将不同类型的相关数据封装在一起,适合存储曲目名称(string)、演奏时长(int)、

难度等级(int或enum)等多个属性;数组只能存储同一类型的数据指针是内地址,不封装

性;枚举只能定义一组相关的常量,不存储不同类型数据。

第11题

在非遗剪纸纹样的对称生成程序中,需要实现一个函数输入点坐标返回其关于y轴的对称

点,以下C++函数声明正确的是?

A.pair<int,int>getSymmetricPoint(intx,inty);

B.voidgetSymmetricPoint(intx,inty,int&rx,int&ry);

C.int[]getSymmetricPoint(intx,inty);

D.以上A和B都正确

答案:D

解析:选项A用pair返回两个整数(对称点的x和y坐标),是合理的方式;选项B用引参数返回结果,

也是C++中常用的多返回值方式;选项C的

int[]

不能作为函数返回值类型,C++中不能直接返回数

组,需要用指针或容器替代。

第12题

在非遗匠人生产数据的异常处理程序中,当检测到烧制温度超过1300℃时需要抛出异常,以下C++代码

片段正确的是?

A.if(temperature>1300)throw"温度过高";

B.if(temperature>1300)throw1300;

C.if(temperature>1300)throwruntime_error("温度过高");

D.以上三种都正确

答案:D

解析:C++中可以抛出任意类型的异常,包括字符串面量、整数标准异常类对象等;选项C使用标

准库的

runtime_error

异常类,是更规范的处理方式但A和B的写法也是语正确的。

第13题

在非遗二十四节气的物候查询程序中,需要根据名称找对应描述以下哪种STL容器的查

找效率最高?

A.vector

B.list

C.unordered_map

D.map

答案:C

解析:unordered_map是基于哈希表的无序关联容器,查找时间复杂度为O(1);map是基于红黑树的有

序容器,查找时间复杂度为O(logn);vector和list是线性容器,查找需要遍历时间复杂度为O(n),所以

unordered_map的查找效率最高。

第14题

在模拟非遗蜡染的色时长计算程序中,已知与布料厚度成正比例系数为2.5分钟/毫米,

若布料厚度为t毫米,以下C++表达式正确的是?

A.doubletime=2.5*t;

B.inttime=2.5*t;

C.doubletime=t/2.5;

D.foattime=2.5+t;

答案:A

解析:时长=比例系数×厚度,2.5是浮点数,乘以t后结果为浮点数,用double存储最准确;选项B用int

会丢失小数部分;选项C和D的计算公式逻辑错误。

第15题

在非遗剪纸纹样的旋转程序中,需要将一个点(x,y)绕原点顺时针旋转90度,以下C++代码片段正确的

是?(旋转公式:x'=y,y'=-x)

A.intnx=y;intny=-x;

B.intnx=-y;intny=x;

C.intnx=x;intny=-y;

D.intnx=-x;intny=y;

答案:A

解析:顺时针旋转90度的坐标变换公式为新x=原y,新y=-原x;选项B是逆时针旋转90度的公式;选项C

和D是关于坐标轴的对称变换,不旋转。

第16题

在非遗匠人产量统计程序中,需要计算10个匠人每月制作剪纸的平均数量,以下C++代码片段正确的

是?(假设

counts

是存储10个匠人产量的vector)

A.intsum=0;for(intc:counts)sum+=c;doubleavg=sum/10;

B.intsum=0;for(inti=0;i<10;i++)sum+=counts[i];doubleavg=(double)sum/10;

C.doubleavg=accumulate(counts.begin(),counts.end(),0)/10;

D.doubleavg=accumulate(counts.begin(),counts.end(),0.0)/10;

答案:D

解析:选项A中sum是int,10是int,除法为整数会丢失小数部分;选项B强制转换sum为double

后除法正确,但如果counts的长度不是10会出错;选项C的accumulate初始值是0(int),返回值是int,

同样会有整数除法问题;选项D的accumulate初始值是0.0(double),返回值是double,除法结果准

确,且不依赖固定长度,更健壮。

第17题

在非遗皮影角色的动画程序中,需要存储一系列动作帧以下哪种STL容器最适合实现先进先出

的动作播放顺序?

A.queue

B.stack

C.vector

D.set

答案:A

解析:queue是队列容器,遵循先进先出(FIFO)规则,适合按顺序播放动作帧;stack是栈,遵循后进

先出(LIFO);vector是线性容器,虽然也可以顺序访问但没有内置的FIFO操作;set是有序容器,不

适合存储顺序播放的动作帧。

第18题

在非遗陶瓷烧制的温度统计程序中,需要找出一组数据最大值以下C++代码片段正确的是?

(假设

temperatures

是vector)

A.intmax_temp=*max_element(temperatures.begin(),temperatures.end());

B.intmax_temp=max(temperatures);

C.intmax_temp=temperatures.max();

D.intmax_temp=max_element(temperatures);

答案:A

解析:STL的

<algorithm>

头文件中的

max_element

函数返回容器中最大值的迭代,需要用

*

解引

用得到值;选项B的

max

函数用于比较两个值,不能直接传入容器;选项C的vector没有

max()

成员函

数;选项D没有解引用迭代器,得到的是迭代器地址,不是最大值。

第19题

在非遗剪纸原材料的库存预警程序中,当库低于50张时需要输出警告信息,以下C++条件语句写法正

确的是?

A.if(stock<50)cout<<"库存不足,需补货!"<<endl;

B.if(stock<=50)cout<<"库存不足,需补货!"<<endl;

C.if(stock>50)cout<<"库存充足";

D.if(stock>=50)cout<<"库存充足";

答案:A

解析:题目要求库存低于50张时预警,即stock<50;选项B是小于等

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论