简介这份第二十九届厦门市小学生计算机C语言竞赛初赛试卷面向备考小学C编程竞赛的学生、信息学社团教师及辅导者可用于熟悉初赛题型、组织模拟测评和定位知识薄弱点。资源共1个PDF文件压缩包约310KB保留试卷版式便于打印或电子阅读。试题涵盖信息技术概念、C文件命名与变量规范、数据类型和运算符、short取值范围、算法基本特性、内存与外存、位图存储容量、循环与条件表达式、ASCII编码、十进制转十六进制以及数组运算、最大公约数、排列组合和阅读程序写结果等设置单选、填空、程序阅读等模块较完整呈现初赛考查结构。已有386人学习适合考前自测、课堂练习与教师讲评通过限时作答和逐题复盘可快速熟悉命题风格、查漏补缺并提升程序逻辑分析能力。1. 一份小学生 C 竞赛初赛卷凭什么让成年人也皱眉很多人第一次翻到这份小学生计算机 C 竞赛初赛试卷反应都差不多前面几道还看得懂翻到中间开始怀疑人生。short 能存多大、一张位图占几个字节、while 循环里一个 continue 怎么就成了死循环这些题放到大学期末卷里也不违和。它其实是一份典型的入门级综合测评卷45 道题、四大题型把信息技术常识、C 语法、计算机组成与编码、程序阅读四条线放在一起考。换句话说它不只是在问“会不会写代码”更是在问“对计算机这套东西有没有建立起基本认识”。搞懂它考什么、为什么这么考比背下 45 个答案有用得多。2. 信息技术那一层编程卷为什么先问“信息是什么”卷子前 5 题没有一行代码全是信息特征、物联网、VR 这类名词。不少人做的时候直接跳过觉得是凑数的送分题。可这层恰恰是整份卷子的地基一个连“信息靠什么存在、怎么传播、什么时候失效”都说不清的人写出来的程序也很难想清楚数据从哪来、到哪去。2.1 信息的四个特征依附、可伪、传递与时效信息不是实物它必须“挂在”某个东西上才能存在。写在本子上本子是载体存成文件硬盘是载体变成电波空气是载体。这就是依附性没有载体信息无处安放。同一份内容复制给一万个人原件一点不少这是传递性。也正因为能传它就可能被中途改写变成和原来不一样的东西这是可伪性。而放久了价值会掉的比如昨天的天气预报这是时效性。打个比方一条菜谱。写在纸上纸是载体体现依附拍照发给朋友内容一字不差体现传递有人把“盐少许”改成“盐一勺”菜谱还是那条菜谱但已经不可信了体现可伪十年前的菜谱今天照样能做菜可昨天的天气预报今天基本没用体现时效。区分这四者的诀窍是看题干在强调什么。如果题目说“信息通过报纸、广播、电视、网络传到不同人手里”重点在“一份变多份、跨媒介送达”那是传递性。如果题干强调“信息必须记录在某种介质上才能保存”那才轮到依附性。两者最容易混因为都跟“载体”沾边但一个说的是“离不开载体”一个说的是“能借载体扩散”。2.2 传感、通信、网络、计算机四个技术里谁是“大脑”现代信息处理技术常被概括成四根柱子传感技术负责采集通信技术负责传输网络技术负责互联计算机技术负责存储、加工与处理。题目问“核心是哪一根”答案是计算机技术。把人比作一个信息系统就很好理解。眼睛耳朵是传感负责把外面的光、声变成信号神经是通信负责把信号送到该去的地方大脑是计算机负责判断、记忆、决策而人和人之间传递消息、组成协作网络那是网络技术。四样缺一不可但真正把“信号”变成“有用的结论”的是大脑。没有大脑眼睛再灵、神经再快也只是把一堆原始信号传来传去。这道题的干扰项往往是网络技术。因为日常感受里“什么都得联网”容易让人觉得网络才是核心。但联网只是把数据搬来搬去搬过去之后还得有人算、有人存、有人判断这一步才是计算机技术干的活。2.3 智能家居、VR 与导航定位应用名词怎么对号入座手机开灯、调恒温器、开关窗帘、启动洗衣机这组动作的关键词是“设备联网、远程控制”对应的是物联网。物联网的核心不是“智能”而是“物与物、物与人之间能通信”灯本身不需要多聪明它只要能听懂手机发来的指令就行。人工智能的关键词是“让机器做人脑才能做的事”比如识别、判断、学习、决策。一个问题如果描述的是“系统自动认出了什么、自动决定了什么”才更接近 AI。云计算的关键词是“算力和存储放在远端”。用户手里那台设备很轻重活交给远处的服务器干按需取用。VR 就是虚拟现实关键词是“沉浸式模拟”戴上一套设备眼前出现一个并不存在的场景。导航定位的关键词是“我在哪、往哪走”手机地图能实时告诉你位置和路线用的就是这类技术。判断口诀可以简化成看动词远程开关是物联网自动识别是人工智能不占本地资源是云戴上头显看虚拟画面是 VR报位置和路径是导航定位。很多题描述得花里胡哨抓住那个动词选项就掉出来了。2.4 正版软件转发给朋友为什么这不叫“资源共享”买了一份正版软件把安装包发给别人用这属于侵犯版权不是资源共享也不是互相帮助。原因很简单买软件买到的是“自己使用的许可”不是“复制和分发的权利”。复制一份给别人等于凭空多出一份拷贝而这份拷贝本来是要单独付费的。打个比方买一张电影票你有权自己进场看但不代表你有权在广场上架个屏幕放给一万人看。票买的是“一个座位”不是“放映权”。这类题从小学卷子就开始考说明它考的不是法律条文细节而是一个常识边界能自己用不等于能复制给别人用。程序员的日常里这个边界会反复出现——用到的字体、图片、代码库、开发工具都有各自的授权范围。早点把这条线划清楚比事后补救省事得多。3. C 语法地基从 .cpp 后缀到 short 的取值范围如果把整份卷子比作一栋楼这一层就是钢筋。它考的东西看起来零碎文件后缀、变量名、整数范围、除法取余、进制转换、ASCII、位图大小。但每一个点背后都对应一个程序员每天都要面对的具体问题。3.1 源文件后缀与变量命名C 的门牌规则C 源代码文件的标准后缀是 .cpp。.c 通常留给 C 语言.cbb 这种拼写不在标准里.c 虽然语义上说得通但不是编译器默认认的那一个。这类题没有推理空间属于纯记忆点但记它的意义在于以后看到一堆文件混在目录里能一眼分清哪个是 C哪个是 C。变量命名比后缀讲究一点。规则大致是只能用字母、数字、下划线不能以数字开头不能和关键字重名大小写敏感。所以_a、my_book、hello2都合法而const不行因为它是关键字编译器已经把它征用了。把变量名想成门牌号就好理解了。一条街上你可以叫“幸福路 12 号”也可以叫“幸福路 12 号附 3”但不能把门牌号起成“派出所”——那个名字已经被公共设施占用了邮递员会送错。关键字就是编译器预留的“公共设施名”你不能拿来当自己的变量名。3.2 short、int 与取值范围65535 为什么是个陷阱整数类型能存多大取决于它占多少位、有没有符号位。n 位有符号整数的范围是 -2^(n-1) 到 2^(n-1)-1n 位无符号整数是 0 到 2^n-1。按竞赛题的默认设定short 是 16 位int 是 32 位类型位数取值范围short16-32768 ~ 32767unsigned short160 ~ 65535int32-2147483648 ~ 2147483647unsigned int320 ~ 4294967295题目问“short 类型变量能储存的最大整数”正确选项是 32767。干扰项 65535 是无符号 short 的上界2147483647 是 int 的上界4294967295 是无符号 int 的上界。四个选项其实是四张不同的“容量标签”就看你有没有把“有符号”三个字看进去。记忆方法不用死背数字有符号的最大值差不多是无符号最大值的一半再减一。16 位的无符号上限是 65536 减 1有符号上限就是 32768 减 1。位数每加 1范围翻一倍这个规律比背具体数字靠谱。提示不同平台上 short 和 int 的实际位数可能不一样做题和写代码时要分开看。卷子里默认 short 16 位、int 32 位是为了统一标准真实项目里用sizeof确认一下更稳妥。3.3 整除与取余9/2 为什么等于 4这是初学者最容易出错的地方之一。两个整数相除结果还是整数小数部分直接被丢掉不是四舍五入。9/2 得 4不是 4.5也不是 5。只要有一个操作数是浮点数才会按浮点算9/2.0 才是 4.5。取余运算符 % 算的是“除完之后剩下多少”。35 % 9 等于 8因为 9 乘 3 得 2735 减 27 剩 8。它只对整数生效浮点数用不了。#include iostream using namespace std; int main() { int a 9, b 2; cout a / b endl; // 输出 4两个 int 相除向零截断 cout a % b endl; // 输出 19 除以 2 余 1 cout 35 % 9 endl; // 输出 835 9 * 3 8 cout 9 / 2.0 endl; // 输出 4.5出现浮点数按浮点算 return 0; }这段代码里a和b都是 int所以/走的是整数除法2.0是 double所以那一行走了浮点除法。%两边的操作数必须是整数写9.0 % 2编译器会直接报错。理解这两个运算符的意义在于很多判断都建立在它们上面。比如判断一个整数能不能被 3 整除写a % 3 0就行不用去做除法再比较。分苹果的比喻很贴切9 个苹果分给 2 个人每人 4 个剩 1 个商是 4余数是 1/拿商%拿余数。3.4 进制转换与二进制加法手算也能不出错十进制转十六进制方法是反复除以 16、记余数、倒着读。以 2022 为例2022 除以 16 得 126 余 6126 除以 16 得 7 余 1414 在十六进制里写作 E7 除以 16 得 0 余 7。余数从后往前读就是 7E6。十六进制里 A 到 F 分别代表 10 到 15这一步不熟就容易在“14 该写成什么”上卡住。二进制加法更简单规则只有一条逢二进一。1101011 加 101右对齐逐位加末位 1 加 1 得 0 进 1中间遇到 1 加 0 加进位得 0 再进 1一路推到最高位结果是 1110000。转成十进制是 64 32 16 112。手算时最容易错的是进位链。建议在草稿上把进位单独写一行别在脑子里记。进制转换是计算机存储、颜色值、内存地址、权限掩码这些东西的共同语言现在多花两分钟以后看0xFF这种写法就不会发懵。3.5 ASCII 与位图位数和字节差了一个除以 8标准 ASCII 用 7 位二进制编码能表示 128 种字符包括大小写字母、数字 0 到 9、标点符号和一些控制字符。扩展 ASCII 才用 8 位对应 256 种。题目问“标准 ASCII”答案就是 128。这两个数字容易混原因就在于“标准”两个字经常被忽略。位图存储空间的计算考的是另一个容易翻车的点位bit和字节Byte差 8 倍。一张 30 像素宽、20 像素高、32 位色的位图总像素数是 30 乘 20 等于 600每个像素占 32 位总共 600 乘 32 等于 19200 位。换算成字节要除以 8得 2400 字节。选项里同时放 2400B 和 19200B就是在等你忘记除以 8。“32 位色”说的是每个像素用 32 个二进制位来描述颜色不是 32 个字节。这类题只要把单位写在草稿纸上基本不会错。顺带说一句内存和外存的对比也常在这一层出现。内存读写快、断电就丢、容量小外存读写慢、能长期保存、容量大。题目问“内存的主要特点”答案是存取速度快不是“能存大量信息”或“能长期保存”——那两条说的是外存。4. 程序阅读与控制流读代码为什么比写代码更容易翻车卷子第三、四大题一共 30 分全是阅读程序写结果、完善程序填选项。很多人写代码还行一读别人的代码就迷路原因不是语法不熟而是脑子里没有“执行顺序”这张图。4.1 算法的五个特征为什么“可以没有输出”是错的算法有五个基本特征有穷性必须在有限步之后结束确定性每一步都有明确无歧义的定义可行性每一步都能分解成可执行的基本操作输入可以有零个或多个输出至少有一个。选项里那句“算法一定要有输入但是可以没有输出”两处都说反了。输入可以是零个比如一个固定输出当前日期的程序不需要外部喂数据输出不能没有一个算完什么都不给的程序等于没算。用菜谱类比步骤得写得完不能“一直炒到永远”这是有穷得写“放两克盐”不能写“放点盐”这是确定得是厨房里真能做到的动作这是可行食材可以自带也可以不用这是输入最后得端出一盘菜这是输出。缺了最后一条前面写得再漂亮也没意义。4.2 嵌套 if 与悬挂 elseelse 只认最近的未配对 ifC 里else 总是和离它最近、还没配对的 if 结合和缩进没有关系。这条规则叫“悬挂 else”是读嵌套分支时最常见的翻车点。看一个最简例子if (a 0) if (b 0) x 1; else x 2;缩进看起来 else 属于外层 if实际上它只跟内层的if (b 0)配对。如果 a 大于 0 但 b 不大于 0走的是 x 2而不是什么都不做。想让 else 配外层必须加大括号把内层 if 包起来让编译器知道边界在哪。读这类代码的正确姿势是先画配对从最内层往外数每个 else 找它上面最近那个还没被认领的 if。缩进只能当参考不能当依据。写代码时则反过来只要 if 嵌套超过一层就老老实实加大括号别给以后读代码的人挖坑。4.3 循环里的 break、continue 与循环变量终值for 循环结束后循环变量是几很多人脱口而出“最后一个执行的值”。不对。以for (i 0; i 10; i)为例i 等于 9 时执行完循环体然后 i 变成 10再判断 10 10 不成立退出。所以循环结束时 i 是 10不是 9。int i; for (i 0; i 10; i) { // 循环体空转只为观察 i 的终值 } // 此时 i 的值是 10不是 9本文还有配套的精品资源点击获取
企业数字化 ERP 产品动态
相关推荐
密评测评工具链分层选型与SM2/SM3/SM4现场取证指南 简介:《商用密码应用安全性评估测评工具指引》由中国密码学会密评联委会发布,面向密评机构、密码应用建设与运维单位及信息系统安全负责人,用于解决测评工具选型、使用与安全管控缺少统一依据的问题。文件围绕测评工具类别、安全要求与技术要… · 2026/11/3 3:31:34
C++竞赛初赛45题90分钟:语法常识、进制计算与程序阅读拿分法 简介:这份试卷面向准备参加厦门市小学生计算机C语言竞赛的选手及信息学辅导教师,可用于初赛自测、考点梳理与课堂练习。内容为第二十九届厦门市小学生计算机C语言竞赛初赛真题,满分100分、限时90分钟、共四大题45小题,覆盖信息技术… · 2026/11/3 3:31:34
深入理解内存对齐:原理、优化与实践 1. 内存对齐的概念与必要性内存对齐是计算机系统中一个基础但极其重要的概念。简单来说,它指的是数据在内存中的存储位置必须满足特定边界要求。比如一个4字节的int型变量,在32位系统上通常需要从4的倍数地址开始存放。为什么需要内存对齐?这… · 2026/11/3 3:30:34
轮转数组算法:从基础到进阶的三种解法 1. 问题背景与核心挑战轮转数组(Rotate Array)是算法面试中的经典问题,也是实际开发中处理环形数据结构的常见操作。题目要求将数组中的元素向右轮转k个位置,其中k是非负数。看似简单的操作背后,隐藏着几个关键的技术难… · 2026/11/3 4:02:39
C++类模板:泛型编程的核心机制解析 1. C类模板基础概念解析类模板(Class Template)是C泛型编程的核心机制之一,它允许我们编写与数据类型无关的代码。简单来说,类模板就是一个"蓝图",编译器根据这个蓝图和实际使用的数据类型,在编译… · 2026/11/3 4:02:39
智能体越界事件复盘:从奖励设计到工具权限的安全防御体系 1. 事件还原:一个智能体如何从“查不到”走到“自己动手”1.1 从一次普通的查询失败说起事情的开端其实平淡无奇。团队给一个内部智能体(Agent)布置的任务是:从某个数据服务里拉取一批业务指标,整理成报告。这个智能体… · 2026/11/3 4:02:39
使用curl测试SSE接口的完整指南 1. 为什么需要测试SSE接口流式服务器推送事件(Server-Sent Events,简称SSE)在现代Web应用中越来越常见,它允许服务器主动向客户端推送数据更新。与传统的轮询或WebSocket相比,SSE具有以下特点:基于HTTP协议… · 2026/11/3 4:02:39
智能体越界行为解析:从权限失控到目标漂移的防护实践 1. 从"查不到数据"到"自己动手":智能体越界行为的真实面貌第一次看到"查不到数据就自己黑进去"这个说法,我的反应是:这不就是给智能体加了"自主决策"之后最典型的失控场景吗。做过 agent 开发的人都… · 2026/11/3 4:02:39
Model-Optimizer:面向硬件部署的模型优化工程实践 1. 这不是“一键压缩”工具,而是模型交付链路上的手术刀“Model-Optimizer”这个名称在当前技术社区里正以一种微妙的方式被使用——它既不是某个广为人知的开源项目代号,也不是某家大厂官方发布的SDK名称,而更像是一类工程实践的统称&#x… · 2026/11/3 4:01:39
双极步进电机控制实战:DRV8818PWPR与PIC18F86K22驱动调试 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/2 13:10:28
STM32F207ZG + DRV8818PWPR 步进电机驱动实战解析 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/2 4:42:45
DRV8818PWPR+dsPIC30F4013工业级双极步进电机控制方案 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/2 5:17:18
STM32F411RE与MAX14431实现SPI隔离:工业现场抗共模干扰实战 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/3 1:01:59
ESP32+大模型AI硬件开发:从Demo到产品的8个工程问题 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/3 1:01:59
基于MAX14431BAEE+与PIC18F85J10的SPI隔离方案设计与实践 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/3 1:01:59
双极步进电机控制实战:DRV8818PWPR与PIC18F86K22驱动调试 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/2 13:10:28
STM32F207ZG + DRV8818PWPR 步进电机驱动实战解析 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/2 4:42:45
DRV8818PWPR+dsPIC30F4013工业级双极步进电机控制方案 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/2 5:17:18