信息学奥赛初赛天天练-71-NOIP2016普及组-基础题2-进制转换、二进制转八进制、八进制转二进制、二叉树数组存储、寻址空间

本文主要是介绍信息学奥赛初赛天天练-71-NOIP2016普及组-基础题2-进制转换、二进制转八进制、八进制转二进制、二叉树数组存储、寻址空间,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

NOIP 2016 普及组 基础题2

4 以下不是 CPU 生产厂商的是( )
A Intel
B AMD
C Microsoft
D IBM

8 与二进制小数 0.1相等的八进制数是( )
A 0.8
B 0.4
C 0.2
D 0.1

9 以下是 32 位机器和 64 位机器的区别是( )
A 显示器不同
B 硬盘大小不同
C 寻址空间不同
D 输入法不同

11一棵二叉树如右图所示,若采用顺序存储结构,即用一 维数组元素存储该二叉树中的结点(根结点的下标为 1, 若某结点的下标为 i,则其左孩子位于下标 2i 处、右孩 子位于下标 (2i+1) 处,则图中所有结点的最大下标为( )


A 6
B 10
C 12
D 15

12 若有如下程序段,其中 s,a,b,c均已定义为整型变量,且 a,c均已赋值 (c大于 0)

s = a;
for (b = 1;b <= c; b++ )s = s + 1;

则与上述程序段修改 s 值的功能等价的赋值语句是( )

A s = a + b;
B s = a + c;
C s = s + c;
D s = b + c;

2 相关知识点

1) 进制转换

二进制转八进制

二进制转换成八进制的方法是,取三合一法,即从二进制的小数点为分界点,向左(或向右)每三位取成一位

(1010 0100)B = (010 001 100 )B=(244)O

二进制带小数转八进制

(0010.0110)B = (000 010.011 000)B=(2.3)O

八进制转二进制

二进制转换成八进制的反向操作

(244)O=(010 100 100 )B=(1010 0100)B

八进制带小数转二进制

(24.4)O=(010 100. 100 )B=(10100.1)B

2) 二叉树数组存储

完美二叉树,我们将所有节点按照层序遍历的顺序存储在一个数组中,则每个节点都对应唯一的数组索引

若节点的索引为 𝑖 ,则该节点的左子节点索引为 2𝑖 + 1 ,右子节点索引为 2𝑖 + 2

任意二叉树数组存储

任意二叉树有些节点是不满的,因此把不满的二叉树对应节点空出来,或者使用特殊数字表示,比如使用-1表示

3) 寻址空间

寻址空间(Addressing Space)是指在计算机系统中可以被处理器(CPU)访问的内存地址范围。它决定了计算机可以访问多少内存以及如何访问这些内存。寻址空间的大小取决于处理器的地址总线宽度

物理寻址空间:这是指实际存在的物理内存(RAM)的大小。例如,如果一个计算机有1GB的物理内存,那么它的物理寻址空间就是1GB

例如,一个32位的处理器可以寻址2^32 个不同的内存地址,即4GB的寻址空间。而一个64位的处理器理论上可以寻址2^64个不同的内存地址,即16EB(Exabytes)的寻址空间。然而,实际的可用寻址空间可能受到操作系统和硬件限制的影响

3 思路分析

4 以下不是 CPU 生产厂商的是( C )
A Intel
B AMD
C Microsoft
D IBM

分析

A Intel:Intel 是全球最大的半导体生产厂商之一,主要生产 CPU(中央处理器),如酷睿系列,Intel 是一个 CPU 生产厂商
B AMD:AMD(Advanced Micro Devices)是一家美国的跨国半导体公司,主要生产 CPU 和 GPU(图形处理器),AMD是一个CPU生产厂商
C Microsoft:Microsoft 是一家美国的跨国科技公司,主要业务包括操作系统、办公软件、云计算服务等。虽然 Microsoft 生产了一些硬件产品,如 Surface 系列,但它并不生产 CPU,Microsoft 不是一个 CPU 生产厂商。
D IBM:IBM(International Business Machines Corporation)是一家美国的跨国科技公司,业务范围广泛,包括硬件、软件、云计算服务等。IBM 曾经生产过 CPU,如 PowerPC 系列,IBM 是一个 CPU 生产厂商。
所以选 C

8 与二进制小数 0.1相等的八进制数是( B )
A 0.8
B 0.4
C 0.2
D 0.1

分析

二进制转换成八进制的方法是,取三合一法,即从二进制的小数点为分界点,向左(或向右)每三位取成一位
0.1
左边取3为000,右边去3为100,对应8进制4
所以为0.4

9 以下是 32 位机器和 64 位机器的区别是( C )
A 显示器不同
B 硬盘大小不同
C 寻址空间不同
D 输入法不同

分析

32 位机器和 64 位机器的主要区别在于它们的寻址空间和数据处理能力
A 不正确,因为显示器的类型和尺寸与计算机的位数无关,而是取决于显卡和显示器本身的规格。
B 不正确,硬盘的大小与计算机的位数无关,而是取决于硬盘本身的容量。
C 正确。32 位机器的最大寻址空间为 2^32 字节,约为 4GB;而 64 位机器的最大寻址空间为 2^64 字节,远远大于 4GB。这意味着 64 位机器可以处理更大的内存空间,从而提高性能。
D 不正确,输入法的类型和功能与计算机的位数无关,而是取决于操作系统和输入法软件本身
所以选C

11一棵二叉树如右图所示,若采用顺序存储结构,即用一 维数组元素存储该二叉树中的结点(根结点的下标为 1, 若某结点的下标为 i,则其左孩子位于下标 2i 处、右孩 子位于下标 (2i+1) 处,则图中所有结点的最大下标为( D )

A 6
B 10
C 12
D 15

分析

如果下图所示
1的下标为1
2的下标为2*1+1=3
3的下标为2*3+1=7
4的下标为2*7+1=15

12 若有如下程序段,其中 s,a,b,c均已定义为整型变量,且 a,c均已赋值 (c大于 0)

s = a;
for (b = 1;b <= c; b++ )s = s + 1;

则与上述程序段修改 s 值的功能等价的赋值语句是( B )

A s = a + b;
B s = a + c;
C s = s + c;
D s = b + c;

分析

s=a ,s一开始赋值为a
如下循环从1开始一直累加到c,每次s加1
for (b = 1;b <= c; b++ )s = s + 1;
循环结束总共加了c次1,所以s累加了c
所以s=a+c

这篇关于信息学奥赛初赛天天练-71-NOIP2016普及组-基础题2-进制转换、二进制转八进制、八进制转二进制、二叉树数组存储、寻址空间的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1094102

相关文章

异构存储(冷热数据分离)

异构存储主要解决不同的数据,存储在不同类型的硬盘中,达到最佳性能的问题。 异构存储Shell操作 (1)查看当前有哪些存储策略可以用 [lytfly@hadoop102 hadoop-3.1.4]$ hdfs storagepolicies -listPolicies (2)为指定路径(数据存储目录)设置指定的存储策略 hdfs storagepolicies -setStoragePo

HDFS—存储优化(纠删码)

纠删码原理 HDFS 默认情况下,一个文件有3个副本,这样提高了数据的可靠性,但也带来了2倍的冗余开销。 Hadoop3.x 引入了纠删码,采用计算的方式,可以节省约50%左右的存储空间。 此种方式节约了空间,但是会增加 cpu 的计算。 纠删码策略是给具体一个路径设置。所有往此路径下存储的文件,都会执行此策略。 默认只开启对 RS-6-3-1024k

hdu2241(二分+合并数组)

题意:判断是否存在a+b+c = x,a,b,c分别属于集合A,B,C 如果用暴力会超时,所以这里用到了数组合并,将b,c数组合并成d,d数组存的是b,c数组元素的和,然后对d数组进行二分就可以了 代码如下(附注释): #include<iostream>#include<algorithm>#include<cstring>#include<stack>#include<que

usaco 1.2 Palindromic Squares(进制转化)

考察进制转化 注意一些细节就可以了 直接上代码: /*ID: who jayLANG: C++TASK: palsquare*/#include<stdio.h>int x[20],xlen,y[20],ylen,B;void change(int n){int m;m=n;xlen=0;while(m){x[++xlen]=m%B;m/=B;}m=n*n;ylen=0;whi

零基础学习Redis(10) -- zset类型命令使用

zset是有序集合,内部除了存储元素外,还会存储一个score,存储在zset中的元素会按照score的大小升序排列,不同元素的score可以重复,score相同的元素会按照元素的字典序排列。 1. zset常用命令 1.1 zadd  zadd key [NX | XX] [GT | LT]   [CH] [INCR] score member [score member ...]

uva 10061 How many zero's and how many digits ?(不同进制阶乘末尾几个0)+poj 1401

题意是求在base进制下的 n!的结果有几位数,末尾有几个0。 想起刚开始的时候做的一道10进制下的n阶乘末尾有几个零,以及之前有做过的一道n阶乘的位数。 当时都是在10进制下的。 10进制下的做法是: 1. n阶位数:直接 lg(n!)就是得数的位数。 2. n阶末尾0的个数:由于2 * 5 将会在得数中以0的形式存在,所以计算2或者计算5,由于因子中出现5必然出现2,所以直接一

hdu 1166 敌兵布阵(树状数组 or 线段树)

题意是求一个线段的和,在线段上可以进行加减的修改。 树状数组的模板题。 代码: #include <stdio.h>#include <string.h>const int maxn = 50000 + 1;int c[maxn];int n;int lowbit(int x){return x & -x;}void add(int x, int num){while

【Linux 从基础到进阶】Ansible自动化运维工具使用

Ansible自动化运维工具使用 Ansible 是一款开源的自动化运维工具,采用无代理架构(agentless),基于 SSH 连接进行管理,具有简单易用、灵活强大、可扩展性高等特点。它广泛用于服务器管理、应用部署、配置管理等任务。本文将介绍 Ansible 的安装、基本使用方法及一些实际运维场景中的应用,旨在帮助运维人员快速上手并熟练运用 Ansible。 1. Ansible的核心概念

AI基础 L9 Local Search II 局部搜索

Local Beam search 对于当前的所有k个状态,生成它们的所有可能后继状态。 检查生成的后继状态中是否有任何状态是解决方案。 如果所有后继状态都不是解决方案,则从所有后继状态中选择k个最佳状态。 当达到预设的迭代次数或满足某个终止条件时,算法停止。 — Choose k successors randomly, biased towards good ones — Close

leetcode105 从前序与中序遍历序列构造二叉树

根据一棵树的前序遍历与中序遍历构造二叉树。 注意: 你可以假设树中没有重复的元素。 例如,给出 前序遍历 preorder = [3,9,20,15,7]中序遍历 inorder = [9,3,15,20,7] 返回如下的二叉树: 3/ \9 20/ \15 7   class Solution {public TreeNode buildTree(int[] pr