NOIP2014-提高组初赛C语言解析(选择填空题)

news2024/11/15 19:27:49

第二十届(2014年)全国青少年信息学奥林匹克联赛初赛

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

1. 以下哪个是面向对象的高级语言( B )

A.汇编语言 B.C++ C.Fortran D.Basic

参考:对于计算机,分为低级语言和高级语言,低级语言:机器语言(01编码),高级语言:C++,P,C等,还有反人类的易语言,都称为汇编语言,故此题的高级语言就是C++。

-----------------------------------------------------------

2. 1TB 代表的字节数量是( D )

A.2的10次方 B.2的20次方 C.2的30次方 D.2的40次方

参考:在存储单位中,每个单位的换算关系如下(从大到小):1TB=1024GB,1GB=1024KB,1KB=1024MB,1MB=1024B,所以1TB=1024*1024*1024*1024B=2^40B,故选D

-----------------------------------------------------------

3. 二进制数 00100100 和 00010101 的和是( D )

A. 00101000 B. 001010100 C. 01000101 D. 00111001

参考:列竖式,满二进一即可,00100100+00010101=00111001,故选D

-----------------------------------------------------------

4. TCP 协议属于哪一层协议( B )

A. 应用层 B. 传输层 C. 网络层 D. 数据链路层

参考:TCP协议属于网络协议中的传输层,详见:http://baike.baidu.com/link?url=gUUts6zIS3VzpGq5ZbMfGOnpEtZ2YhQscPno_7-YMSPsYrIgnT5KO-Xk5zc4-PnyAHwNDj6oxf2xGPoiRpauFK

-----------------------------------------------------------

5. 下列几个 32 位 IP 地址中,书写错误的是( C )

A. 162.105.128.27 B. 192.168.0.1 C. 256.256.129.1 D. 10.0.0.1

参考:对于一个IPv4地址,每位数中由小数点隔开,每个数字的范围为0~255,所以C中的256不符合,故选C

-----------------------------------------------------------

6. 在无向图中,所有顶点的度数之和是边数的( C )倍

A. 0.5 B. 1 C. 2 D. 4

参考:这题可以简单的画一个三角形,没有箭头就是一个无向图了,每条边的出度入度和刚好就是边数的两倍,也就是说,每个顶点产生一条边,每个顶点都有一个出度和一个入度,等量代换便可知顶点的度数之和是边数的2倍,故选C

-----------------------------------------------------------

7. 对长度为 n 的有序单链表,若检索每个元素的概率相等,则顺序检索到表中任一元素的平均检索长度为( B )

A. n/2 B. (n+1)/2 C. (n-1)/2 D. n/4

参考:对于顺序搜索单链表,平均检索长度计算为ASL=∑(i=1~n)PiCi=(1/n)*∑(i=1~n)*(1+2+3+4+5+…+n)=(1/n)*∑(i=1~n)*n(n+1)/2=(n+1)/2,在这个算式中,Pi为每个元素能被找到的几率(因为每个元素相同所以为1/n)

-----------------------------------------------------------

8. 编译器的主要功能是( B )

A. 将一种高级语言翻译成另一种高级语言 B. 将源程序翻译成指令

C. 将低级语言翻译成高级语言 D. 将源程序重新组合

参考:计算机只能够识别01编码,我们用的高级语言是不能够识别,所以要编译器将高级语言翻译成机器语言(指令)才能运行,故选C

-----------------------------------------------------------

9. 二进制数 111.101 所对应的十进制数是( D )

A. 5.625 B. 5.5 C. 6.125 D. 7.625

参考:将二进制数转换为十进制数,需要从小数点处分隔开,这样整数部分为111,小数部分为0.101,对整数部分进行转换,从后往前,1*2^0+1*2^1+1*2^2=7,对小数部分进行转换,从前往后从小数点后一位开始往后,1*2^-1+0*2^-2+1*2^-3=0.625,这样整数部分和小数部分相加起来就是7+0.625=7.625,故选D。更详细的请参考:(第二题解析)http://www.cnblogs.com/geek-007/p/4822356.html

-----------------------------------------------------------

10. 若有变量 int a,float x,y,且 a=7,x=2.5,y=4.7,则表达式 x+a%3*(int)(x+y)%2/4的值大约是( A )

A. 2.500000 B. 2.750000 C. 3.500000 D. 0.000000

参考:将表达式从前往后扫描,遇到x记录,然后计算a%3=1,然后遇到(x+y)=7.2,强制类型转换为int=7,7%2=1,1/4=0.25,但是由于C语言中 整数/整数计算结果是整数,不保留小数,所以为0,加上前面的x,表达式的值=2.5+0=2.5,故选A

-----------------------------------------------------------

11. 有以下结构体说明和变量定义,如图所示,指针 p、 q、 r 分别指向一个链表中的三个连续结点。

struct node {

int data;

struct node *next;

} *p, *q, *r;

现要将 q 和 r 所指结点的先后位置交换,同时要保持链表的连续,以下程序段中错误

的是( D )

A. q->next = r->next; p->next = r; r->next = q;

B. p->next = r; q->next = r->next; r->next = q;

C. q->next = r->next; r->next = q; p->next = r;

D. r->next = q; q->next = r->next; p->next = r;

参考:模拟一下交换的过程即可,但是D选项由于没有保存上一步的地址,所以会丢失,导致无法链起来,故选D

-----------------------------------------------------------

12. 同时查找 2n 个数中的最大值和最小值,最少比较次数为( C )

A. 3(n-2)/2 B. 4n-2 C. 3n-2 D. 2n-2

参考:这题的关键就是知道所用的查找方法,经过不懈推理,可以得出查找方法(这里我就不说我怎么推的了):将2n个数每两个数分成一个数对,大的存放在一个数组中,小的存放在另一个数组里①,扫描大的数组,寻找出最大的数②,扫描小的数组,寻找出小的数③,就可以得出答案,①步需要n次,②步需要n-1次,③步也需要n-1次,所以三步加起来刚好就是3n+1,故选C

-----------------------------------------------------------

13. 设 G 是有 6 个结点的完全图,要得到一棵生成树,需要从 G 中删去( C ) 条边

A. 6 B. 9 C. 10 D. 15

参考:这题呢,可以直接画六个点出来,形成一个完全图,然后计算有多少条边记为n,删去只剩下5条边,则需要删去n-5=15-5=10条边,故选C

N个节点完全图,删去(N-1)(N-2)/2条边变树,6*(6-1)/2-(6-1)

因为,N个节的完全图有N(N-1)/2条边,有N个顶点的树有N-1条边,相减即得

-----------------------------------------------------------

14. 以下时间复杂度不是 O(n2)的排序方法是( B )

A. 插入排序 B. 归并排序 C. 冒泡排序 D. 选择排序

参考:归并排序作为很快的排序,是不会出现n^2级别的,而其他三个都需要n^2,故选B

-----------------------------------------------------------

15. 以下程序段实现了找第二小元素的算法。 输入是 n 个不等的数构成的数组 S,输出 S 中第二小的数 SecondMin。在最坏情况下,该算法需要做( C )次比较

if (S[1] < S[2]) {

FirstMin = S[1];

SecondMin = S[2];

} else {

FirstMin = S[2];

SecondMin = S[1];

}

for (i = 3; i <= n; i++)

if (S[i] < SecondMin)

if (S[i] < FirstMin) {

SecondMin = FirstMin;

FirstMin = S[i];

} else {

SecondMin = S[i];

}A. 2n B. n-1 C. 2n-3 D. 2n-2

参考:去掉前面两个,即(n-2),然后再扫描两次,即2*(n-1),再加上最后一个=2*(n-1)+1=2n-3,故选C

-----------------------------------------------------------

二、 不定项选择题(共 5 题,每题 1.5 分,共计 7.5 分;每题有一个或多个正确选项, 多选或少选均不得分)

1. 若逻辑变量 A、 C 为真, B、 D 为假, 以下逻辑运算表达式为真的有( AB )

A. (B ˅ C ˅ D) ˅ D ˄ A B. ((¬A ˄B) ˅ C) ˄ ¬B

C. (A ˄ B) ˅ (C ˄ D ˅ ¬A) D. A ˄ (D ˅ ¬C) ˄ B

参考:逻辑运算中,˅表示与,˄表示或,¬表示非

A项,从前往后,(B ˅ C ˅ D)假与真与假,结果为假,假与假或真,结果为真

B项,从前往后,(非真(假)或假)与真->假,假或非假(真)为真

C项,从前往后,(假或真)与(真或假与非真(假)->假),结果为假

D项,从前往后,真或(假与非真(假)->假)或假,结果为假

-----------------------------------------------------------

2. 下列( BCD )软件属于操作系统软件。

A. Microsoft Word

B. Windows XP

C. Android

D. Mac OS X

E. Oracle

参考:Windows XP是微软推出的操作系统,现在国内大部分的用户使用的都是这个系统,A项的Microsoft Word是这个系统下的软件,Android系统是目前国内大部分手机的操作系统,Mac OS是苹果公司推出的操作系统,故此题选BCD。

-----------------------------------------------------------

3. 在 NOI 比赛中,对于程序设计题,选手提交的答案不得包含下列哪些内容( ABCDE ) 。

A. 试图访问网络

B. 打开或创建题目规定的输入/输出文件之外的其他文件

C. 运行其他程序

D. 改变文件系统的访问权限

E. 读写文件系统的管理信息

参考:在NOI比赛中,程序设计题目,能上传的只有源代码,其余的都不行,故选ABCDE。

-----------------------------------------------------------

4. 以下哪些结构可以用来存储图( AC )

A. 邻接矩阵 B. 栈 C. 邻接表 D. 二叉树

参考:一般用来存储图的结构为邻接矩阵和邻接表,而栈和二叉树不能存储图,故选AC

-----------------------------------------------------------

5. 下列各无符号十进制整数中,能用八位二进制表示的数有( BD )

A. 296 B. 133 C. 256 D. 199

参考:八位二进制,十进制的范围为:27~28-1,即:128~255,那么在这个区间的只有BD。

-----------------------------------------------------------

三、 问题求解(共 2 题,每题 5 分,共计 10 分;每题全部答对得 5 分,没有部分分)

1. 由数字 1,1,2,4,8,8 所组成的不同的四位数的个数是___102___。

参考:

一、1、1、2、4组成,有A(4,2)=4×3=12(种);同理:1、1、2、8;1、1、4、8;1、2、8、8;1、48、8;2、4、8、8组成,各有12种;共有12×6=72种。

二、1、2、4、8组成,有A(4,4)=4×3×2×1=24(种)

三、1、1、8、8组成,有C(4,2)=6(种)

-----------------------------------------------------------

2. 如图所示,图中每条边上的数字表示该边的长度,则从 A 到 E 的最短距离是___15____。

参考:这题可以使用狄杰特斯拉算法来求解,从A点开始,寻找与之相关的所有点,链接路径最短的(B),再从B开始,找与之相关所有点,链接路径最短的(C),这样下去,就找到了最短路径:A-B-C-F-H-D-E,总长度为:3+1+1+2+3+5=15

-----------------------------------------------------------

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/355644.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【opencv源码解析0.4】如何使用cmake来管理项目

如何使用cmake来管理项目 【opencv源码解析0.1】VS如何优雅的配置opencv环境 【opencv源码解析0.2】如何编译opencv库源码 【opencv源码解析0.3】调试opencv源码以及使用cmake来管理项目 前面几篇文章我们都是围绕Visual Studio 2019这个IDE来展开的&#xff0c;IDE为我们做了…

矩阵中的路径-剑指Offer-java深度优先

一、题目描述给定一个 m x n 二维字符网格 board 和一个字符串单词 word 。如果 word 存在于网格中&#xff0c;返回 true &#xff1b;否则&#xff0c;返回 false 。单词必须按照字母顺序&#xff0c;通过相邻的单元格内的字母构成&#xff0c;其中“相邻”单元格是那些水平相…

k8s部署mysql+初始化数据

1. 准备工作 1.k8s的前置内容需要提前了解 2.mysql的初始化数据 3.docerk相关知识点需要了解 2. 部署步骤 初始化数据文件准备&#xff0c;准备了nacos的一张表sql脚本&#xff0c;需要修改一点点内容 文件名称&#xff1a;init-nacos.sql 部分内容显示&#xff1a; 主要创建…

潘长江张杰再现狂飙名场面,一般人把握不住

潘长江张杰再现狂飙名场面&#xff0c;一般人把握不住#我们的客栈#高启强#老墨我饿了 在昨晚播出的《我们的客栈》在猜人游戏的环节中&#xff0c;张杰和潘长江商量了一番&#xff0c;决定还原《狂飙》某一名场面&#xff0c;没想到被张维伊一秒猜出&#xff0c;张维伊还说这是…

图像分类竞赛进阶技能:OpenAI-CLIP使用范例

OpenAI-CLIP 官方介绍 尽管深度学习已经彻底改变了计算机视觉&#xff0c;但目前的方法存在几个主要问题:典型的视觉数据集是劳动密集型的&#xff0c;创建成本高&#xff0c;同时只教授一组狭窄的视觉概念;标准视觉模型擅长于一项任务且仅擅长于一项任务&#xff0c;并且需要大…

【QT专栏】QT中实现多线程的四种方式总结(金针菇般细)

目录 一、继承QThread 1&#xff0c;基本概念 2&#xff0c;操作流程 二、继承QObject&#xff08;推荐&#xff09; 1&#xff0c;基本概念 2&#xff0c;操作流程 三、继承QRunnable&#xff0c;配合QThreadPool实现多线程 1&#xff0c;外界通信 2&#xff0c;QMet…

SpringSecurity的安全认证的详解说明(附完整代码)

SpringSecurity登录认证和请求过滤器以及安全配置详解说明 环境 系统环境&#xff1a;win10 Maven环境&#xff1a;apache-maven-3.8.6 JDK版本&#xff1a;1.8 SpringBoot版本&#xff1a;2.7.8 根据用户名密码登录 根据用户名和密码登录&#xff0c;登录成功后返回Token数据…

狂神聊Redis复习笔记一

目录目前一个基本的互联网项目&#xff01;NoSQL 特点Redis 是什么&#xff1f;Redis 能干嘛&#xff1f;特性测试性能基础的知识Redis 是单线程的&#xff01;Redis 为什么单线程还这么快&#xff1f;五大数据类型Redis-KeyString&#xff08;字符串&#xff09;List&#xff…

[软件工程导论(第六版)]第3章 需求分析(复习笔记)

文章目录3.1 需求分析的任务3.2 与用户沟通获取需求的方法3.3 分析建模与规格说明3.4 实体-联系图&#xff08;E-R图&#xff09;3.5 数据规范化3.6 状态转换图3.7 其他图形工具3.8 验证软件需求需求分析是软件定义时期的最后一个阶段&#xff0c;需求分析的基本任务是准确的回…

EASYui+C#web

第一步创建一个web应用程序。 选择web应用程序。 第二步选择mvc框架 创建完成项目目录。 如图引入easyui包。 记住复制到content文件夹&#xff0c;否则无法识别。 easyui下载&#xff0c;官网。 如何用 引入jscss文件 <link rel"stylesheet" type"text…

Guitar Pro8手机电脑免费版吉他软件下载

Guitar Pro8是专业的吉他软件&#xff0c;具有可视化的五线谱编辑器&#xff0c;涵盖常用的乐器和特殊乐器单元&#xff0c;内置海量吉他音色效果和1000多个乐器音色&#xff0c;成为一个小型音乐站&#xff0c;制作出动听的音乐&#xff0c;支持边看边听&#xff0c;添加音频轨…

【论文阅读】 Few-shot object detection via Feature Reweighting

Few-shot object detection的开山之作之一 ~~ 特征学习器使用来自具有足够样本的基本类的训练数据来 提取 可推广以检测新对象类的meta features。The reweighting module将新类别中的一些support examples转换为全局向量&#xff0c;该全局向量indicates meta features对于检…

使用MindSpore20.0的API快速实现深度学习模型之数据变换

文章目录前言一. 实验环境二. 安装ubuntu虚拟机2. 1.下载ubuntu镜像2.2 配置虚拟机2.3 安装操作系统三. 安装MindSpore20.0-alpha3.1 下载需要的安装程序脚本3.2 安装MindSpore 2.0.0-alpha和Python 3.73.3 开始手动安装3.4. 安装gcc3. 5.安装MindSpore3.6. 验证是否成功&#…

【opencv源码解析0.3】调试opencv源码的两种方式

调试opencv源码的两种方式 上两篇我们分别讲了如何配置opencv环境&#xff0c;以及如何编译opencv源码方便我们阅读。但我们还是无法调试我们的代码&#xff0c;无法以我们的程序作为入口来一步一步单点调试看opencv是如何执行的。 【opencv源码解析0.1】VS如何优雅的配置ope…

有效提升英语论文写作的方法

这里结合我的一些经验&#xff0c;分享一些练习英语论文写作的方法。 论文是由单词&#xff0c;句子&#xff0c;还有逻辑三部分组成&#xff0c;每个部分的要求都不太一样&#xff0c;这里分成三个部分练习讨论: 1炼词, 2 炼句,3 炼逻辑. 炼词 首先&#xff0c;炼词就是首先…

发布npm库遇到的

&#xff08;1&#xff09;首先首先要检查源是npm还是淘宝镜像源&#xff0c;因为本地设置了淘宝镜像源的原因&#xff0c;会导致npm login出错&#xff0c;需要修改&#xff1a; npm config set registry https://registry.npmjs.org 查看是否修改成功&#xff1a;得到上面源…

SpringCloud - Eureka注册发现

目录 提供者与消费者 Eureka原理分析 搭建Eureka服务 服务注册 服务发现 提供者与消费者 服务提供者&#xff1a; 一次业务中&#xff0c;被其它微服务调用的服务(提供接口给其它微服务)服务消费者&#xff1a; 一次业务中&#xff0c;调用其它微服务的服务(调用其它微服务…

基于jeecgboot的flowable流程增加节点自动跳过功能

为了满足有时候需要在某个节点没有人员处理的时候需要自动跳过&#xff0c;所以增加了这个功能。 一、FlowComment意见里增加一个类型8&#xff0c;跳过流程 /** * 流程意见类型 * */ public enum FlowComment { /** * 说明 */ NORMAL("1", "…

Java8新特性全面

文章目录一、函数式接口二、Java内置函数式接口三、接口内允许添加默认实现的方法四、Lambda表达式五、方法引用六、Stream API七、Stream API示例1. Filter过滤2. Sorted排序3. Map转换4. Match匹配5. Count计数6. Reduce7. Parallel-Streams并行流8. Map集合八、新时间日期接…

天津+发展得到的权重

添加评分添加评分的依据高德地图找到如图数据&#xff0c;容积率体现楼层高度近似反映人口密度&#xff0c;繁华程度近似等价霓虹灯照明时长住房容积率具体是指在城市规划区的某一宗地内&#xff0c;房屋的总建筑面积与宗地面积的比值&#xff0c;分为实际容积率和规划容积率两…