noip2014提高组初赛(答案+选择题题目+个人分析)

  一、单项选择题(共15题,每题1.5分,共计22.5分;每题有且仅有一个正确选项) 

 

1. 以下哪个是面向对象的高级语言(   )。 A. 汇编语言 B. C++ C. Fortran D. Basic 

 B

计算机语言具有高级语言和低级语言之分。而高级语言又主要是相对于汇编语言而言的

高级语言并不是特指的某一种具体的语言,而是包括很多编程语言,如流行的java,c,c++,C#,pascal,python,lisp,prolog,FoxPro,易语言

低级语言分机器语言(二进制语言)和汇编语言(符号语言),这两种语言都是面向机器的语言,和具体机器的指令系统密切相关。机器语言用指令代码编写程序,而符号语言用指令助记符来编写程序。

2. 1TB代表的字节数量是(   )。 A. 2的10次方 B. 2的20次方 C. 2的30次方 D. 2的40次方 

 D

1TB=2^10GB=2^20MB=2^30KB=2^40BYTE

3. 二进制数00100100和00010101的和是(   )。 A. 00101000 B. 001010100 C. 01000101 D. 00111001 

 D

送分题=w=

4. TCP协议属于哪一层协议(   )。 A. 应用层 B. 传输层 C. 网络层 D. 数据链路层 

 B

TCP(传输控制协议)

5. 下列几个32位IP地址中,书写错误的是(   )。 A. 162.105.136.27 B. 192.168.0.1 C. 256.256.129.1 D. 10.0.0.1 

 C

IP地址0~255

6. 在无向图中,所有顶点的度数之和是边数的(   )倍。 A. 0.5 B. 1 C. 2 D. 4 

 C

随便画个图看一下就行了,原理是因为无向图中,每个点的入度和=边数,每条边算了2遍

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

平均检索长度为(   )。 A. n/2 B. (n+1)/2 C. (n-1)/2 D. n/4 

 B

检索任一元素检索长度T=1+2+3+4+5+6+……+n=n(n+1)/2

因为概率相等,所以结果为T/n=(n+1)/2

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

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

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

B

这其实就是一个规定,不过,谁用谁知道=w=,估计用过的都知道=w=

9. 二进制数111.101所对应的十进制数是(   )。 A. 5.625 B. 5.5 

C. 6.125 

D. 7.625 

 D

必考的进制转换送分题=w=

 

10. 若有变量var a: integer; x, y: real;,且a := 7,x := 2.5,y := 4.7,则

表达式x + a mod 3 * trunc(x + y) mod 2 div 4的值大约是(   )。 A. 2.500000 B. 2.750000 

C. 3.500000 

D. 0.000000 

 A

运算优先级问题:

not

and * / div mod

or xor + -

同一行的同级别,按从左往右依次计算

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

续结点。 type  ptr = ^node;  

           node = record   

           data: integer;   

            next: ptr; 

        end; 

var  

p, q, r: ptr; 

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

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

只要学过链表水过就好=。=

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

A. 3(n-2)/2 

B. 4n-2 

C. 3n-2 

D. 2n-2 

C

其实我是蒙不对的,于是题解大人教导到:

前两个数比较,大的为最大值,小的为最小值,用掉1次;

还剩下2*(n-1)个数,每两个比较,大的再和最大值比较,小的再和最小值比较,一共是3*(n-1)次

所以加一起就是(3*n-2)次 

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

C. 10 

D. 15 

 C

一个图的每一对不同顶点恰有一条边相连,则称为完全图

一个完全图共有n*(n-1)/2条边,树有(n-1)条边

So,答案就出来了

其实随便画一下再数一下也就出来了=w=

 

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

A. 插入排序 

B. 归并排序 

C. 冒泡排序 

D. 选择排序 

B,显然

由于出现频率较高,所以在此总结一下:

 

15. 以下程序段实现了找第二小元素的算法。输入是n个不等的数构成的数组S,输出S中

第二小的数SecondMin。在最坏情况下,该算法需要做(   )次比较。

   if S[1] < S[2] then begin 

    FirstMin := S[1];     SecondMin := S[2]; end else begin 

    FirstMin := S[2];     SecondMin := S[1]; end; 

for i := 3 to n do 

if S[i] < SecondMin then        

 if S[i] < FirstMin then  

 

begin 

            SecondMin := FirstMin;             FirstMin := S[i];  

 

end 

        else 

            SecondMin := S[i]; 

A. 2n 

B. n-1 

C. 2n-3 

D. 2n-2 

 C

前两个数比较用掉1次,剩下(n-2)个数

最坏的情况剩下每个数比较两次

所以再加起来,得C

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

 

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

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

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

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

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

AB

逻辑运算,不明白每个符号表示意义的直接问度娘或者翻我前几年noip初赛题 的博客=w=

2. 下列(   )软件属于操作系统软件。 A. Microsoft Word B. Windows XP C. Android D. Mac OS X E. Oracle 

BCD

其实BC应该是都能蒙出来的,A显然是不选的(文字编译软件),至于DE姿势不够的话就只能靠人品了

典型的操作系统:Linux、Windows(XP)、Android、Mac OS X.、IOS、WP、Chrome OS

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

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

D. 改变文件系统的访问权限 E. 读写文件系统的管理信息  

ABCDE

这都是套路=。=

4. 以下哪些结构可以用来存储图(   )。 A. 邻接矩阵 B. 栈 

C. 邻接表 

D. 二叉树 

 AC

学过图的应该都没问题=w=

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

A. 296

 B. 133 

C. 256 

D. 199

BD

八位二进制表示范围[2^7,2^8) (左闭右开)

 

三、

1.102

排列组合去算或者把所有情况列出来=。=(不要上来就选后者,考虑过脑子的感受么=A=,你总也不用它合适么)

2.15

学过最短路的应该都能出答案而且还能检验着玩=。=

四.

1.8 (就是在[a,b]范围内找3的倍数)

2.20(写一写,导一导,递归)

Fun(3,1,6)=fun(2,2,6)+fun(2,3,6)+fun(2,4,6)+fun(2,5,6)+fun(2,6,6)+fun(2,7,6)=20

Fun(2,2,6)=fun(1,3,6)+fun(1,4,6)+fun(1,5,6)+fun(1,6,6)+f(1,7,6)=10

Fun(2,3,6)=fun(1,4,6)+fun(1,5,6)+fun(1,6,6)+fun(1,7,6)=6

Fun(2,4,6)=fun(1,5,6)+fun(1,6,6)+fun(1,7,6)=3

Fun(2,5,6)=fun(1,6,6)+fun(1,7,6)=1

Fun(2,6,6):=fun(1,7,6)=0

Fun(1,3,6)=fun(0,4,6)+fun(0,5,6)+fun(0,6,6)+fun(0,7,6)=4

Fun(1,4,6)=fun(0,5,6)+fun(0,6,6)+fun(0,7,6)=3

Fun(1,5,6)=fun(0,6,6)+fun(0,6,7)=2

Fun(1,6,6)=fun(0,7,6)=1

Fun(1,7,6)=0

 

3.2 5 6 3 4 7 1(看到那个冒泡排序就应 该差不多了吧,就是输出各个字符按字典序排序后应该在的位置)

4.3 6 9 1 5 10 4 11 8 2 7(约瑟夫环问题,用链表实现,11个人围一圈,从1开始报数,

报到3的出局,再从出局的下一个人开始报1,直到全部出局,依次输出出局人的编号)

 

五.

【pascal答案】

1.(1)n(入栈1)

  (2)0

  (3)stack2[top2]:=stack1[top1];(出栈1入栈2)

   (4)stack1[top1]:=stack2[top2];(出栈2入栈1)

  (5)top1-1

注意理解top1和top2的含义,是栈顶的下一个位置,即(top-1)才是栈顶(注意理解什么叫下一个位置)

2

(1)[1,1]

(2)rowsum[i,0]:=0;

(3)rowsum[i,j-1]+matrix[i,j];

(4)area:=0;

(5)rowsum[i,last]-rowsum[i,first-1]

题目对rowsum数组的描述有误,应该是i行前j个数的和,

当然我个人的做法一直都是用而为前缀和做,然而这道题并不是这样=。=

对于我这种渣渣来讲,这个程序求最大矩阵和的方法相当巧妙=。=,还有那个area<0 时归0来寻找最优解,怎么说呢,总之理解对了个人觉得还是相当优美的,然而如果是在考场上的话就另当别论了=。=

                                       ——by Eirlys

转载请注明出处=w=

 

你可能感兴趣的:(noip初赛=。=)