导航菜单
首页 >  noi历年真题  > NOI 笔试 百题大过关 2020

NOI 笔试 百题大过关 2020

NOI 笔试 百题大过关 2020

Sweetlemon

2020-08-01 21:53:30

Personal# NOI 笔试 百题大过关 2020## 文章简介这篇文章主要包含 NOI 笔试题库的一些解释和延伸,也会包含一些口诀、闲话来辅助记忆。由于笔者水平有限,所以文章中可能存在不少问题,敬请指正。文章中首先包含了笔试题库 2020 版相比 2019 版的一些变化,方便已经学习过 2019 版笔试题库的选手复习;接下来是 2020 版全部题目的解释。## 题库变化*对比版本:NOI 2019 笔试题库*概述:2020 版笔试题库相比 2019 版,在一些问题的表述上有了改进;且由于 2020 年起 NOI 不再支持 C 和 Pascal,笔试题库中关于 C 和 Pascal 的内容已经在 2020 年 8 月 2 日更新后被全部删除。总的来说,题目和答案没有大的改动。**粗体**:增加内容~~删除线~~:删除内容### 竞赛环境和竞赛规则~~Linux 系统中编译 C 程序的编译器是:gcc~~~~Linux 系统中编译 Pascal 程序的编译器是:fpc~~18 . 使用 ~~gcc~~ **g++** 编译 ~~C~~ **C++** 程序时,生成调试信息的命令行选项是:`-g`19 . 使用 ~~gcc~~ **g++** 编译 ~~C~~ **C++** 程序时,生成所有警告信息的命令行选项是:`-Wall`20 . 使用 ~~gcc~~ **g++** 编译 ~~C~~ **C++** 程序时,只编译生成目标文件的命令行选项是:`-c`21 . 使用 ~~gcc~~ **g++** 编译 ~~C~~ **C++** 程序时,指定输出文件名的命令行选项是:`-o`22 . 如果 ~~C~~ **C++** 程序中使用了 math.h 中的函数,在**用 g++** 编译时需要加入选项:`-lm` 29 . **在终端中**运行自己的程序,如果进入死循环,应当如何终止:`Ctrl-C`32 . 使用 ~~Reset 键~~ **主机“重启”键**强行重新启动计算机,可能会对系统造成的后果是:文件系统损坏34 . 当前目录中有如下文件: ```text-rw-r--r-- 1 user None 8.7K Jul 2 16:35 foobar-rw-r--r-- 1 user None 93 Jul 2 16:35 foobar.c++-rwx------ 1 user None 144 Jul 2 16:35 foobar.sh```其中,可以执行的文件是:`foobar.sh`(注:原 `foobar.c` 改为 `foobar.c++`)41 . 为 ~~程序~~ **源代码文件** ~~my.c~~ my.cpp 创建一个备份 ~~myc.bak~~ mycpp.bak 时,使用的命令是:~~`cp my.c myc.bak`~~ `cp my.cpp mycpp.bak`~~Pascal 中 integer 和 long integer 类型的长度和编译选项是否有关系:有关系~~47 . NOI 考试对 C++ 语言 ~~模板~~ **标准模板库**的使用有限制吗?没有48 . NOI 考试对 ~~PASCAL~~ **C++** 语言的使用有限制吗?有~~在NOI考试中,Pascal 源文件的扩展名规定为:pas~~~~在NOI考试中,C源文件的扩展名规定为:c~~78 . 选手可以不使用**集成开发环境**(IDE)编辑程序源代码吗?可以81 . 在 NOI 上机考试中,允许选手使用的编程语言包括:~~C、C++、Pascal~~ **C++**86 . 没有**自行**复测结果**(包括结果正确性、所用时间、所用空间等)**支持的申诉是否会被受理:否### 计算机常识和 NOI、IOI 历史23 . 将十六进制数~~(AB)~~ **0xAB** 表示成二进制数是:10101011~~NOI 比赛中提供的 Pascal IDE 环境除了 GUIDE 之外,还有 Lazarus。~~27 . 在 NOI 比赛中,~~提供的编程工具~~ **编辑源代码**除了可以用 GUIDE、Lazarus、Anjuta 等**集成开发环境** (IDE)之外,还可以使用:~~Vi、Gedit~~ **vi、gedit**## 题目全解### 竞赛环境和竞赛规则1. NOI 机试使用的操作系统是:Linux我们都知道,NOI Linux 实际上是 Ubuntu 14.04 的修(yan)改(ge)版。2. Linux 中为文件改名使用的命令是:`mv `把旧的移到新的,move ... (to) ...3. 在 Linux 中返回上一级目录使用的命令是: `cd ..` 一个点是当前目录,两个点是上一级目录4. 在 Linux 中删除当前目录下的 `test` 目录的命令是: `rm -r test` 还记得 `rm -rf /`吗?其中 `-r` 是删除目录及其文件,`-f` 是强制执行。5. 当前目录下有一个编译好的可执行文件 `a.out`, 执行它使用的命令是: `./a.out` `.` 是当前目录。如果不指定 `./`,Linux 会在默认搜索目录下搜索,则找不到当前目录下的程序。6. 使用高级语言编写的程序称之为: 源程序 WC 2019 有个集体舞叫“源代码”7. 在 NOI Linux 系统中可以用来调试程序的程序是:gdb 这句话有一点绕,不过问题不大;[这里](https://blog.csdn.net/zdy0_2004/article/details/80102076)是一篇 gdb 的教程。8. 在 Linux 系统中, 文件夹中的文件可以与该文件夹同名吗: 可以 显然可以,Windows 下也可以9. Linux 系统中杀死名为 `test` 的后台进程的命令是: `killall test` 注意,`kill` 命令是在已知 `pid `的情况下才能使用的,只知道进程名字的时候要用 `killall`。10. Linux 系统中可以查看隐藏文件的命令是: `ls -a``ls` 命令在 Linux 下可以查看文件信息(通常是打印当前目录下文件的信息)。`-a` 选项可以把隐藏文件的信息也打印出来,可以理解为`list all`。13. Linux 系统中编译 C++ 程序的编译器是:g++ 这道题一定看清问的是“编译器”还是“扩展名”!14. Linux 系统中, 将当前目录下的文件名打印到 `tmp` 文件中的命令是: `ls >tmp`使用输出重定向,`>` 形象地把输出导到右边的文件。15. Linux 系统中, 测量当前目录下程序 `test` 运行时间的命令是: `time ./test`非常常用的命令,可以用来测量自己程序的运行时间。16. vim 编辑器中, 强制退出不保存修改应当输入: `:q!`注意冒号是 vim 命令的一部分。单纯输入 `:q` 会提示“已修改但未保存,可加 ! 强制执行”17. vim 编辑器中, 强制退出并保存修改可输入以下三种命令之一: `:wq`、 `ZZ`、 `:x`这三个指令可以稍微记忆一下。`:wq` 是先 `:w`(write)再 `:q`(quit),`ZZ` 是快捷键不用冒号(注意要大写),`:x` 可以认为是 `wq` 的缩写。或者随便用一个首字母缩写记忆一下,比如“为群主照相”(逃还有一个笑话,和一个惯用 vim 的同事 QQ 聊天,对面说先去赶个代码,然后突然发过来一个 `:wq`。18. vim 编辑器中, 定位到文件中第 12 行应当输入: `:12`19. vim 编辑器中, 在文件中查找字符串“12” 应当输入: `/12`这两个要加以区分,冒号是定位到行数,斜杠是查找。可以联想到 Javascript 中的正则表达式是用斜杠括起的。20. 使用 g++ 编译 C++ 程序时, 生成调试信息的命令行选项是: `-g`可以联想“gdb”是调试器,“gdb”的第一个字母是“g”。21. 使用 g++ 编译 C++ 程序时, 生成所有警告信息的命令行选项是: `-Wall`Warning All。注意大小写,例如小写的 `-w` 是关闭所有警告。22. 使用 g++ 编译 C++ 程序时, 只编译生成目标文件的命令行选项是: `-c` “目标文件”是可执行文件的前体,是

相关推荐: