历年NOIP提高组初赛选择解析

匿名 (未验证) 提交于 2019-12-03 00:13:02

  • 编译型语言是编译一次就可以转成计算机可以直接运行的机器语言程序(如.exe文件)但是由于他们是直接编译的,依赖于计算机的不同,所以跨平台能力比较差,但是运行速度高。

  • 解释性语言则是每次运行前编译,先解释再运行,导致运行效率降低,但是因为其依托于虚拟机/解释器所以跨平台性能好。

  • 高级语言还可分为面向过程语言和面向对象语言。(区别自然是有没有对象)
  • 于 1967 年出现的 Simula67 是历史上第一个面向对象语言
  • Smalltalk 被公认为第二个面向对象的程序设计语言,和第一个IDE
  • C 和 Pascal 是纯面向过程语言
  • 就算没有对象也可以学面向对象的程序设计语言 C++

  • 第一个高级语言是fortran,Ada是美国军方发明的语言,取名Ada是为了纪念第一个女程序员
  • 第一个支持面向对象的语言是simula67
1 NOIP-2004T19-多选)下列哪个(些)程序设计语言支持面向对象程序设计方法( ABDE )。 A. C++     B. Object Pascal     C. C     D. Smalltalk     E. Java  C++,object PascalVBsmalltalk(第一个支持动态类型的语言),simula67(第一个面向对象的语言),Java是面向对象的 free PascalC是面向过程的

模型:

  • Catalan数
  • stirling数
  • 容斥原理和错排
  • 不定方程的整数解(可重排列)
    • 正整数解
    • 非负整数解
  • 插空法
  • 捆绑法


A. 40320     B. 39600     C. 840     D. 780     E. 60

有一定难度的组合数学题,由于要出现“abc”,用捆绑法,把 1 个 a,1 个 b,1 个 c 捆绑起来,这样相当于现在有 1 个“abc”,2 个“a”,4 个“b”,1 个“c”进行排列,根据“不尽相异元素的全排列”的公式(重排)知道,总的情况是8!/(2!*4!)=840,但是 2 个“a”,4 个“b”,1 个“c”也有可能组成“abc”,840里有重复的情况,比如(abc)abcabbb 和 abc(abc)abbb 其实是一种情况,所以要减去 2 个“a”,4 个“b”,1 个“c”也组成 abc 的情况(其实就是只有两个元素的容斥原理),那么这就相当于 2 个“abc”,一个“a”,3 个“b”的全排列数=6!/(2!*3!)=60,所以总的情况数是 840-60=780。



  • 满二叉树的节点个数=2*子节点个数-1
  • 满二叉树的节点个数=2^树的深度-1
  • 满二叉树的叶结点个数=2^(树的深度-1)


A. 6     B. 7     C. 8     D. 9     E. 10


A. 没有区别     B. 有一些区别,但机器处理速度很快,可忽略不计
C. 按行读的方式要高一些     D. 按列读的方式要高一些     E. 取决于数组的存储方式。

这个还是真的要看怎么存的,Pascal在开数组的时候不知道怎么开,但是c++就是一行开下去地址连续的,所以c++在读取的时候还是行优先读要稍微快一点。所以还是取决于地址怎么分配了。


A. CPU 的基本功能就是执行指令。
B. CPU 的主频是指 CPU 在 1 秒内完成的指令周期数,主频越快的 CPU 速度一定越快。
C. 内部构造不同的 CPU 运行相同的机器语言程序,一定会产生不同的结果。
D. 在一台计算机内部,一个内存地址编码对应唯一的一个内存单元。
E. 数据总线的宽度决定了一次传递数据量的大小,是影响计算机性能的因素之一。

B的话主频的定义对的,但是CPU速度还跟其他东西有关;C大部分情况下都是对的但不排除特殊的情况…


A. 8088      B. 8086      C. 80386      D. 80486      E. Pentium

这个也是古董了…但由于比较特殊还是记一笔吧…8086是首颗16位的,80386是第一颗32位


A. 硬盘     B. 寄存器     C. 显存     D. 内存     E. 高速缓存

  • 寄存器、高速缓存、RAM,读取速度很快但是断电后数据会丢失,显存是内存的一种,主要是在显卡和GPU当中处理图像的orz
标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!