NOIP2010-普及组初赛C语言解析

第十六届全国青少年信息学奥林匹克联赛初赛试题

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

1.2E+03表示(  D  )。

  A.2.03          B.5            C.8        D.2000

参考:这个式子可以在计算器中看到,“E”表示10的乘方,则“2E+03”表示2³=2000,故选D

/============================================================================================/

2.一个字节(byte)由( A  )个二进制位组成。

  A.8          B.16           C.32      D.以上皆有可能

参考:字节(Byte)是计算机信息技术用于计量存储容量和传输容量的一种计量单位,1个字节等于8位二进制,故选A

/============================================================================================/

3.以下逻辑表达式的值恒为真的是(  A  )。

  A.PV(¬PΛQ)V(¬PΛQ)          B.QV(¬PΛQ)V(PΛ¬Q)        

  C.PVQV(PΛ¬Q)V(¬PΛQ)       D. PV¬QV(PΛ¬Q)V(¬PΛ¬Q)

/============================================================================================/

4.Linux下可执行文件的扩展名为(  D  )。

  A.exe           B.com         C. dll       D.以上都不是

参考:exe是windows系统下的文件,com是dos命令,dll是动态链接库不是可执行文件,所以都不是,故选D

/============================================================================================/

5.如果树根算第1层,那么一棵n层的二叉树最多有(  A  )个结点。

  A.2ⁿ-1           B.2ⁿ          C.2ⁿ+1         D.2ⁿ+1  

参考:子节点是根节点的平方,第n层有2ⁿ-1个节点,画一个图便知,故选A

/============================================================================================/

6.提出“存储程序”的计算机原理的是(  D  )。

  A.克劳德·香农         B.戈登·摩尔     C.查尔斯·巴比奇      D.冯·诺依曼

参考:现代计算机系统工作原理的核心之一是“存储程序”,最早提出这一设计思想的是冯·诺依曼,故选D

7.设X、Y、Z分别代表三进制下的一位数字,若等式XY+ZX=XYX在三进制下成立,那么同样在三进制下,等式XY*ZX=(  B )也成立。

/============================================================================================/

  A.YXZ           B.ZXY           C.XYZ       D.XZY

8.Pascal语言、C语言和C++语言都属于(  )。 

  A.面向对象语言     B.脚本语言      C.解释性语言        D.编译性语言

参考:这些语言都是现代的高级语言,属于编译性语言,A答案面向对象语言,是计算机基础的语言,现在的语言大有进步,故选D

/============================================================================================/

9.前缀表达式“+3*2+5 12”的值是( C )。 

  A.23          B.25          C.37            D.65

参考:前缀表达式(波兰式)就是不含括号的算术表达式,而且它是将运算符写在前面,操作数写在后面的表达式,例如:- 1 + 2 3,它等价于1-(2+3),所以这题“+3*2+5 12”等价于“3+2*(5+12)”=37,故选C

/============================================================================================/

10.主存储器的存取速度比中央处理器(CPU)的工作速度慢得多,从而使得后者的效率受到影响。而根据局部性原理,CPU所访问的存储单元通常都趋于聚集在一个较小的连续区域中。于是,为了提高系统的整体执行效率,在CPU中引入( B  )。

      A.寄存器        B.高速缓存         C.闪存            D.外存

参考:

A选项:寄存器是中央处理器(CPU)内的组成部分。寄存器是有限存贮容量的高速存贮部件,它们可用来暂存指令、数据和地址。在中央处理器的控制部件中,包含的寄存器有指令寄存器(IR)和程序计数器(PC)。在中央处理器的算术及逻辑部件中,存器有累加器(ACC)。B选项:高速缓冲存储器是存在于主存与CPU之间的一级存储器, 由静态存储芯片(SRAM)组成,容量比较小但速度比主存高得多(属于高速缓存), 接近于CPU的速度。

C选项:闪存是技术人员保存安装BIOS等计算机基础设置的地方,也可以是数码相机内的数据存储卡,不属于CPU的范畴

D选项:外存是是指除计算机内存及CPU缓存以外的储存器,此类储存器一般断电后仍然能保存数据。常见的外存储器有硬盘、软盘、光盘、U盘等,故这题选B

/============================================================================================/

11.一个字长为8位的整数的补码是1111 1001,则它的原码是( )。

  A.0000 0111       B.0111 1001        C.1111 1001        D.1000 0111

参考:一个正数的原码=反码=补码,一个负数的原码=补码取反加1,本题“1111 1001”首位数是“1”,则这个数是负数,则原码=补码取反码加一=1000 0110=1000 0111,故选D

/============================================================================================/

12.基于比较的排序时间复杂度的下限是( B  ),其中n表示待排序的元素个数。

  A.Θ(n)

  B.Θ(n log n)

  C.θ( log n)

  D.Θ(n²)

参考:这题我真不知道,百度上都说是n log n,故选B

/============================================================================================/

13.一个自然数在十进制下有n位,则它在二进制下的位数与( )最接近。

  A.5n       B.n*log₂  10        C.10* log₂  n         D.10ⁿlog₂  n

参考:这题可以举例,例如53,53的二进制数为110101,可以看出与n*log₂ 10接近,故选B

/============================================================================================/

14.在下列HTML语句中,可以正确产生一个指向NOI官方网站的超链接的是( B  )。 

  A.<a url="http://www.noi.cn">欢迎访问NOI网站</a>       

  B.<a href="http://www.noi.cn">欢迎访问NOI网站</a>  

  C.<a >http://www.noi.cn</a>      

  D.<a name="http://www.noi.cn">欢迎访问NOI网站</a> 

参考:HTML语句中,a href指的是这个标签a指向的链接,故选B

/============================================================================================/

15.元素R1、R2、R3、R4、R5入栈的顺序为R1、R2、R3、R4、R5。如果第一个出栈的是R3,那么第五个出栈的不可能是(  B  )。

  A.R1           B.R2          C.R4           D.R5

参考:R2是在R1上面,则第五个出栈的绝对不可能是R1,最坏的情况是R1最后一个出栈,故选B

/============================================================================================/

16.双向链表中有两个指针域llink和rlink,分别指向该结点的前驱和后继。设P指向链表中的一个结点,它的左右结点均非空。现要求删除结点P,则下面语句序列中错误的是( )。

  A.P→rlink→llink = p→rlink;

     P→llink→rlink = p→llink; dispose(p)

  B.P→llink→rlink = p→rlink;

     P→rlink→llink = p→llink; dispose(p)

  C.P→rlink→llink = p→llink;

     P→rlink→llink→rlink= p→rlink; dispose(p)

  D.P→llink→rlink = p→rlink;

     P→llink→rlink→llink = p→llink; dispose(p)

参考:P指向的是一个地址,那么P的值即为最后赋值的那个地址,A选项中“P→rlink→llink = p→rlink”最后的是llink,而不等于rlink,故选A

/============================================================================================/

17.一棵二叉树的前序遍历序列是ABCDEFG,后序遍历序列是CBFEGDA,则根结点的左子树的结点个数可能是(  A  )。

     A.2             B.3          C.4             D.5

参考:有七个节点,则最基本的是三层。首先知A是根节点 又由后序遍历知D必然是右子树的根节点D前面的ABC中A是根节点 剩下的B、C俩个节点必然是左子树的,故选A

/============================================================================================/

18.关于拓扑排序,下面说法正确的是( D  )。

  A.所有连通的有向图都可以实现拓扑排序

  B.对同一个图而言,拓扑排序的结果是唯一的   

  C.拓扑排序中入度为0的结点总会排在入度大于0的结点前面    

  D.拓扑排序结果序列中的第一个结点一定是入度为0的点

/============================================================================================/

19.完全二叉树的顺序存储方案,是指将完全二叉树的结点从上至下、从左至右依次存放到一个顺序结构的数组中。假定根结点存放在数组的1号位置,则第K号结点的父结点如果存在的话,应当存放在数组的( C  )号位置。

     A.2k       B.2k+1        C.k/2 下取整  D.(k+1)/2 下取整

参考:

对于k=1,则k为根结点,无父母结点。
对于k>1,可分两种情况讨论。
1.设完全二叉树第j层的第一个结点的编号为i,则i=2的j-1次方。其左孩子必为第j+1层的第一个结点。其编号为2的j次方,这和2*i相等。右孩子为j+1层的第二 个结点,结点编号为2*i+1。所以,在这种情况下,左孩子编号为2*i,右孩子编号为2*i+1,父母结点编号为i,2*i/2,(i*2+1)/2取 整均为i。
2.设完全二叉树第j层上的某个结点编号为i,编号为i+1的结点为编号为i的结点的右兄弟或者堂兄弟,若它有左孩子,编号为 2i+2=2(i+1),或它有右孩子,编号为2i+3=2(i+1)+1。在这种情况下,2(i+1)/2,[2(i+1)+1]/2取整均为i+1

故选C

/============================================================================================/

20.全国青少年信息学奥林匹克系列活动的主办单位是( D  )。

  A.教育部                       B.科技部

  C.共青团中央                   D.中国计算机协会

参考:这题为常识题,举办单位是中国计算机协会,故选D

/============================================================================================/

 

二.问题求解(共2题,每空5分,共计10分)

1.LZW编码是一种自适应词典编码。在编码的过程中,开始时只有一部基础构造元素的编码词典,如果在编码的过程中遇到一个新的词条,则该词条及一个新的编码会被追加到词典中,并用于后继信息的编码。

    举例说明,考虑一个待编码的信息串:“xyx yy yy xyx”。初始词典只有3个条目,第一个为x,编码为1;第二个为y,编码为2;第三个为空格,编码为3;于是串“xyx”的编码为1-2-1(其中-为编码分隔符),加上后面的一个空格就是1-2-1-3。但由于有了一个空格,我们就知道前面的“xyx”是一个单词,而由于该单词没有在词典中,我们就可以自适应的把这个词条添加到词典里,编码为4,然后按照新的词典对后继信息进行编码,以此类推。于是,最后得到编码:1-2-1-3-2-2-3-5-3-4。

    现在已知初始词典的3个条目如上述,则信息串“yyxy xx yyxy xyx xx xyx”的编码是

三.阅读程序写结果(共4题,每题8分,共计32分)

 

posted @ 2015-09-19 21:06  Memoryヾノ战心  阅读(1091)  评论(0编辑  收藏