NOIP普及组初赛复习内容
可多了,可以找大纲。
全国青少年信息学奥林匹克竞赛联赛
试题大纲
一、试题形式
每次联赛的试题分四组:普及组初赛题A1、普及组复赛题A2、提高组初赛题B1和提高组复赛题B2。其中,A1和B1类型相同,A2和B2类型相同,但题目不完全相同,提高组难度高于普及组。(一般初中学生参加普及组,高中或中专学生参加提高组)
初赛:初赛全部为笔试,满分100分。试题由四部分组成:
1、选择题:共20题,每题1.5分,共计30分。每题有5个备选答案,前10个题为单选题(即每题有且只有一个正确答案,选对得分),后10题为不定项选择题(即每题有1至5个正确答案,只有全部选对才得分)。
2、问题求解题:共2题,每题5分,共计10分。试题给出一个叙述较为简单的问题,要求学生对问题进行分析,找到一个合适的算法,并推算出问题的解。考生给出的答案与标准答案相同,则得分;否则不得分。
3、程序阅读理解题:共4题,每题8分,共计32分。题目给出一段程序(不一定有关于程序功能的说明),考生通过阅读理解该段程序给出程序的输出。输出与标准答案一致,则得分;否则不得分。
4、程序完善题:共2题,每题14分,共计28分。题目给出一段关于程序功能的文字说明,然后给出一段程序代码,在代码中略去了若干个语句或语句的一部分并在这些位置给出空格,要求考生根据程序的功能说明和代码的上下文,填出被略去的语句。填对则得分;否则不得分。
复赛:复赛的题型和考试形式与NOI类似,全部为上机编程题,但难度比NOI低。题目包括4道题,每题100分,共计400分。每一试题包括:题目、问题描述、输入输出要求、样例描述及相关说明。测试时,测试程序为每道题提供了5-10组测试数据,考生程序每答对一组得10-20分,累计分即为该道题的得分。
二、试题的知识范围
1.初赛内容与要求:
基本
常识 1.计算机和信息社会(信息社会的主要特征、计算机的主要特征、数字通信网络的主要特征、数字化);
2.信息输入输出基本原理(信息交换环境、文字图形多媒体信息的输入输出方式);
3.信息的表示与处理(信息编码、微处理部件MPU、内存储结构、指令,程序,和存储程序原理、程序的三种基本控制结构);
4.信息的存储、组织与管理(存储介质、存储器结构、文件管理、数据库管理);
5.信息系统组成及互连网的基本知识(计算机构成原理、槽和端口的部件间可扩展互连方式、层次式的互连结构、互联网络、TCP/IP协议、HTTP协议、WEB应用的主要方式和特点);
6.人机交互界面的基本概念(窗口系统、人和计算机交流信息的途径(文本及交互操作));
7.信息技术的新发展、新特点、新应用等。
基本
操作 1. WINDOWS和LINUX的基本操作知识;
2. 互联网的基本使用常识 (网上浏览、搜索和查询等);
3. 常用的工具软件使用(文字编辑、电子邮件收发等)。
程序设计基本知识 数据
结构 1.程序语言中基本数据类型(字符、整数、长整数、浮点);
2. 浮点运算中的精度和数值比较;
3.一维数组(串)与线性表;
4.记录类型(PASCAL)/ 结构类型(C)。
程序
设计 1.结构化程序设计的基本概念;
2.阅读理解程序的基本能力;
3.具有将简单问题抽象成适合计算机解决的模型的基本能力;
4.具有针对模型设计简单算法的基本能力;
5.程序流程描述(自然语言/伪码/NS图/其他);
6.程序设计语言(PASCAL/C/C++,2003仍允许BASIC)。
基本算法
处理 1.初等算法(计数、统计、数学运算等);
2.排序算法(冒泡法、插入排序、合并排序、快速排序);
3.查找(顺序查找、二分法);4.回溯算法。
2、复赛内容与要求:在初赛的内容上增加以下内容
数据
结构 1.指针类型;
2.多维数组;
3.单链表及循环链表;
4.二叉树;
5.文件操作(从文本文件中读入数据,并输出到文本文件中)。
程序
设计 1.算法的实现能力;
2.程序调试基本能力;
3.设计测试数据的基本能力;
4.程序的时间复杂度和空间复杂度的估计。
算法
处理 1.离散数学知识的应用(如排列组合、简单图论、数理逻辑);
2.分治思想;
3.模拟法;
4.贪心法;
5.简单搜索算法(深度优先 广度优先)搜索中的剪枝;
6.动态规划的思想及基本算法。
noip初赛试题 c语言
第十届全国青少年信息学奥林匹克联赛初赛试题
( 普及组 C 语言 二小时完成 )
●● 全部试题答案均要求写在答卷纸上,写在试卷纸上一律无效 ●●
一.选择一个正确答案代码(A/B/C/D/E),填入每题的括号内 (每题1.5分,共30分)
1. 美籍匈牙利数学家冯·诺依曼对计算机科学发展所做出的贡献是( )。
A. 提出理想计算机的数学模型,成为计算机科学的理论基础。
B. 是世界上第一个编写计算机程序的人。
C. 提出存储程序工作原理,并设计出第一台具有存储程序功能的计算机EDVAC。
D. 采用集成电路作为计算机的主要功能部件。
E. 指出计算机性能将以每两年翻一番的速度向前发展。
2. 下列哪个不是CPU(中央处理单元)( )。
A. Intel Itanium B. DDR SDRAM C. AMD Athlon64
D. AMD Opteron E. IBM Power 5
3. 下列网络上常用的名字缩写对应的中文解释错误的是( )。
A. WWW(World Wide Web):万维网。
B. URL(Uniform Resource Locator):统一资源定位器。
C. HTTP(Hypertext Transfer Protocol):超文本传输协议。
D. FTP(File Transfer Protocol):快速传输协议。
E. TCP(Transfer Co
ntrol Protocol):传输控制协议。
4. 下面哪个部件对于个人桌面电脑的正常运行不是必需的( )。
A. CPU B. 图形卡(显卡) C. 光驱 D. 主板 E. 内存
5. 下列哪个软件属于操作系统软件( )。
A. Microsoft Word B. 金山词霸 C. Foxmail D. WinRAR E. Red Hat Linux
6. 下列哪个不是计算机的存储设备( )。
A. 文件管理器 B. 内存 C. 高速缓存 D. 硬盘 E. U盘
7. 下列说法中错误的是( )。
A. CPU的基本功能就是执行指令。
B. CPU访问内存的速度快于访问高速缓存的速度。
C. CPU的主频是指CPU在1秒内完成的指令周期数。
D. 在一台计算机内部,一个内存地址编码对应唯一的一个内存单元。
E. 数据总线的宽度决定了一次传递数据量的大小,是影响计算机性能的因素之一。
8. 彩色显示器所显示的五彩斑斓的色彩,是由红色、蓝色和( )色混合而成的。
A. 紫 B. 白 C. 黑 D. 绿 E. 橙
9. 用静电吸附墨粉后转移到纸张上,是哪种输出设备的工作方式( )。
A. 针式打印机 B. 喷墨打印机 C. 激光打印机 D. 笔式绘图仪 E. 喷墨绘图仪
10. 一台计算机如果要利用电话线上网,就必须配置能够对数字信号和模拟信号进行相互转换的设备,这种设备是( )。
A. 调制解调器 B. 路由器 C. 网卡 D. 网关 E. 网桥
11. 下列哪个不是数据库软件的名称( )。
A. MySQL B. SQL Server C. Oracle D. 金山影霸 E. Foxpro
12. 下列哪个程序设计语言不支持面向对象程序设计方法( )。
A. C++ B. Object Pascal C. C D. Smalltalk E. Java
13. 由3个a,1个b和2个c构成的所有字符串中,包含子串“abc”的共有( )个。
A. 20 B. 8 C. 16 D. 12 E. 24
14. 某个车站呈狭长形,宽度只能容下一台车,并且只有一个出入口。已知某时刻该车站状态为空,从这一时刻开始的出入记录为:“进,出,进,进,出,进,进,进,出,出,进,出”。假设车辆入站的顺序为1,2,3,……,则车辆出站的顺序为( )。
A. 1,2,3,4,5 B. 1,2,4,5,7 C. 1,3,5,4,6 D. 1,3,5,6,7 E. 1,3,6,5,7
15. 二叉树T,已知其前序遍历序列为1 2 4 3 5 7 6,中序遍历序列为4 2 1 5 7 3 6,则其后序遍历序列为( )。
A. 4 2 5 7 6 3 1 B. 4 2 7 5 6 3 1 C. 4 2 7 5 3 6 1 D. 4 7 2 3 5 6 1 E. 4 5 2 6 3 7 1
16. 满二叉树的叶结点个数为N,则它的结点总数为( )。
A. N B. 2 * N C. 2 * N – 1 D. 2 * N + 1 E. 2N – 1
17. 十进制数2004等值于八进制数( )。
A. 3077 B. 3724 C. 2766 D. 4002 E. 3755
18. (2004)10 + (32)16的结果是( )。
A. (2036)10 B. (2054)16 C. (4006)10 D. (100000000110)2 E. (2036)16
19. 在下图中,从顶点( )出发存在一条路径可以遍历图中的每条边一次,而且仅遍历一次。
A. A点 B. B点 C. C点 D. D点 E. E点
20. 某大学计算机专业的必修课及其先修课程如下表所示:
课程代号 C0 C1 C2 C3 C4 C5 C6 C7
课程名称 高等数学 程序设计语言 离散数学 数据结构 编译技术 操作系统 普通物理 计算机原理
先修课程 C0,C1 C1,C2 C3 C3,C7 C0 C6
请你判断下列课程安排方案哪个是不合理的( )。
A. C0,C6,C7,C1,C2,C3,C4,C5 B. C0,C1,C2,C3,C4,C6,C7,C5
C. C0,C1,C6,C7,C2,C3,C4,C5 D. C0,C1,C6,C7,C5,C2,C3,C4
E. C0,C1,C2,C3,C6,C7,C5,C4
二.问题求解 (每题5分,共10分)
1. 一个家具公司生产桌子和椅子。现在有113个单位的木材。每张桌子要使用20个单位的木材,售价是30元;每张椅子要使用16个单位的木材,售价是20元。使用已有的木材生产桌椅(不一定要把木材用光),最多可以卖 元钱。
2. 75名儿童到游乐场去玩。他们可以骑旋转木马,坐滑行铁道,乘宇宙飞船。已知其中20人这三种东西都玩过,55人至少玩过其中的两种。若每样乘坐一次的费用是5元,游乐场总共收入700,可知有 名儿童没有玩过其中任何一种。
三.阅读程序 (每题8分,共32分)
1.#include <stdio.h>
int main(){
int a = 79,b = 34,c = 57,d = 0,e = -1;
if (a < c || b > c) d = d + e;
else if (d + 10 < e) d = e + 10;
else d = e - a;
printf("%dn",d);
return 0;
}
输出:。
2.#include <stdio.h>
int main(){
int i,j;
char str1[] = "pig-is-stupid";
char str2[] = "clever";
str1[0] = 'd'; str1[1] = 'o';
for (i = 7,j = 0; j < 6; i++,j++)
str1[i] = str2[j];
printf("%sn",str1);
return 0;
}
输出:。
3.#include <stdio.h>
int main(){
int u[4],a,b,c,x,y,z;
scanf("%d %d %d %d",&(u[0]),&(u[1]),&(u[2]),&(u[3]));
a = u[0] + u[1] + u[2] + u[3] - 5;
b = u[0] * (u[1] - u[2] / u[3] + 8);
c = u[0] * u[1] / u[2] * u[3];
x = (a + b + 2) * 3 - u[(c + 3) % 4];
y = (c * 100 - 13) / a / (u[b % 3] * 5);
if ((x + y) % 2 == 0) z = (a + b + c + x + y) / 2;
z = (a + b + c – x - y) * 2;
printf("%dn",x + y - z);
return 0;
}
输入:2 5 7 4
输出:。
4.#include <stdio.h>
char c[3][200];
int s[10],m,n;
void numara(){
int i,j,cod,nr;
for (j = 0; j < n; j++){
nr = 0; cod = 1;
for (i = 0; i < m; i++){
if (c[i][j] == '1'){
if (!cod){cod = 1; s[nr]++; nr = 0;}
}
else{
if (cod){nr = 1; cod = 0;}
else nr++;
}
}
if (!cod) s[nr]++;
}
}
int main(){
int i;
scanf("%d %dn",&m,&n);
for (i = 0; i < m; i++) gets(c[i]);
numara();
for (i = 1; i <= m; i++)
if (s[i] != 0) printf("%d %d ",i,s[i]);
return 0;
}
输入:
3 10
1110000111
1100001111
1000000011
输出:。
四、完善程序 (前4空,每空2分,后5空,每空4分,共28分)
1.三角形内切圆的面积
题目描述:
给出三角形三边的边长,求此三角形内切圆(如下图所示,三角形的内切圆是和三角形三边都相切的圆)的面积。
输入:
三个正实数a、b、c(满足a+b>c,b+c>a,c+a>b),表示三角形三边的边长。
输出:
三角形内切圆的面积,结果四舍五入到小数点后面2位。
输入样例:
3 4 5
输出样例:
3.14
程序:
#include <stdio.h>
#include <math.h>
int main(){
float a,b,c,r,s,t;
scanf("%f %f %f",&a,&b,&c);
s = ( ① ) / 2;
t = ② (s * (s - a) * (s - b) * (s - c));
r = t / s;
printf(" ③ n",3.1415927 * r * ④ );
return 0;
}
2.Joseph
题目描述:
原始的Joseph问题的描述如下:有n个人围坐在一个圆桌周围,把这n个人依次编号为1,…,n。从编号是1的人开始报数,数到第m个人出列,然后从出列的下一个人重新开始报数,数到第m个人又出列,…,如此反复直到所有的人全部出列为止。比如当n=6,m=5的时候,出列的顺序依次是5,4,6,2,3,1。
现在的问题是:假设有k个好人和k个坏人。好人的编号的1到k,坏人的编号是k+1到2k。我们希望求出m的最小值,使得最先出列的k个人都是坏人。
输入:
仅有的一个数字是k(0 < k <14)。
输出:
使得最先出列的k个人都是坏人的m的最小值。
输入样例:
4
输出样例:
30
程序:
#include <stdio.h>
long k,m,begin;
int check(long remain){
long result = ( ① ) % remain;
if ( ② ){
begin = result; return 1;
}
else return 0;
}
int main(){
long i,find = 0;
scanf("%ld",&k);
m = k;
while( ③ ) {
find = 1; begin = 0;
for (i = 0; i < k; i++)
if (!check( ④ )){
find = 0; break;
}
m++;
}
printf("%ldn",⑤ );
return 0;
}
赛区 市 学校 姓名
========================== 密 封 线 =======================
第九届全国青少年信息学奥林匹克联赛初赛试题
普及组答卷纸
阅 卷 记 录
总阅卷人 总 得 分
第 一 大 题 得 分 第二大题得分
题号 1 2 3 4 5 6 7 8 9 10 第三大题得分
得分 1) 2) 3) 4)
题号 11 12 13 14 15 16 17 18 19 20 第四大题得分
得分 (1) (2)
============================ 以下由考生填写 ==============================
答卷部分
一. 选择一个正确答案代码(A/B/C/D),填入每题的括号内 (每题1.5分,多选无分,共30 分)
题号 1 2 3 4 5 6 7 8 9 10
选择
题号 11 12 13 14 15 16 17 18 19 20
选择
二.问题解答 (每题5分,共10分)
1. 答:
2. 答:
三. 阅读程序,并写出程序的正确运行结果:(每题8分,共32分)
(1) 程序的运行结果是:
(2) 程序的运行结果是:
赛区 市 学校 姓名
========================== 密 封 线 =======================
(3) 程序的运行结果是:
(4)程序的运行结果是:
四.根据题意,将程序补充完整 (前4空,每空2分,后5空,每空4分,共28分)
C 语言
=================
1.
①
②
③
④
2.
①
②
③
④
⑤
第九届全国青少年信息学奥林匹克联赛初赛试题
普及组参考答案
一. 选择一个正确答案代码(A/B/C/D/E),填入每题的括号内 (每题1.5分,多选无分,共30 分)
题号 1 2 3 4 5 6 7 8 9 10
选择 C B D C E A B D C A
题号 11 12 13 14 15 16 17 18 19 20
选择 D C D E B C B D E D
二.问题解答 (每题5分,共10分)
1. 答: 160
2. 答: 10
三. 阅读程序,并写出程序的正确运行结果:(每题8分,共32分)
(1)程序的运行结果是: -80
(2) 程序的运行结果是: dog-is-clever
(3)程序的运行结果是: 263
(4)程序的运行结果是: 1 4 2 1 3 3
四.根据题意,将程序补充完整 (前4空,每空2分,后5空,每空4分,共28分)
C 语言
=================
1.
① a+b+c
② sqrt
③ %.2f
④ r
2.
① begin+m-1
② result>=k (或者k<=result)
③ !find (或者 find==0)
④ 2*k-i
⑤ m-1
第十二届全国青少年信息学奥林匹克联赛初赛试题(1)
普及组(Pascal语言)参考答案与评分标准
一、单项选择题:(每题1.5分)
1. D 2. B 3. B 4. C 5. B 6.B 7. C 8. A 9. D 10. D
11. C 12. D 13. C 14. B 15. C 16. B 17. B 18. A 19. C 20. B
二、问题求解:(每题 5分)
1. 4次 (1分),
第一步:分成3组:27,27,26,将前2组放到天平上(4分)。
2.有获胜策略(1分),,第1次在第5堆中取32颗石子(4分),。
三、阅读程序写结果
1. 10,10 (对1个数给4分,无逗号扣1分)
2. 6 28 496 8128 33550336
(前2个对1个数给1分,后3个对1个数给2分)
3. 5
4. 6 2 5 4 3 7 9 9 7 3 4 5 2 6(数字之间无空格扣2分)
四、完善程序(前4空(①--④),每空2.5分,后6空(⑤--⑩),每空3分)
1.① k=n (或n=k)
② count mod 5=0
③ perm(k+1)
④ a[k]:=a[j];a[j]:=t
⑤ perm(1)
2.⑥ break
⑦ t mod 50=0
⑧ a-p*b(或a-b*p)
⑨ c*10+1 (或10*c+1)
⑩ n
(我考了)
求noip2009普及组初赛试卷?
第十五届全国青少年信息学奥林匹克联赛初赛试题
( 普及组 Pascal语言 二小时完成 )
● ● 全部试题答案均要求写在答卷纸上,写在试卷纸上一律无效 ●●
一. 单项选择题 (共20题,每题1.5分,共计30分。每题有且仅有一个正确答案。)
1、 关于图灵机下面的说法哪个是正确的:
A) 图灵机是世界上最早的电子计算机。
B) 由于大量使用磁带操作,图灵机运行速度很慢。
C) 图灵机是英国人图灵发明的,在二战中为破译德军的密码发挥了重要作用。
D) 图灵机只是一个理论上的计算模型。
2、关于计算机内存下面的说法哪个是正确的:
A) 随机存储器(RAM)的意思是当程序运行时,每次具体分配给程序的内存位置是随机而不确定的。
B) 1MB内存通常是指1024*1024字节大小的内存。
C) 计算机内存严格说来包括主存(memory)、高速缓存(cache)和寄存器(register)三个部分。
D) 一般内存中的数据即使在断电的情况下也能保留2个小时以上。
3、关于BIOS下面说法哪个是正确的:
A) BIOS是计算机基本输入输出系统软件的简称。
B) BIOS里包含了键盘、鼠标、声卡、显卡、打印机等常用输入输出设备的驱动程序。
C) BIOS一般由操作系统厂商来开发完成。
D) BIOS能供提各种文件拷贝、复制、删除以及目录维护等文件管理功能。
4、关于CPU下面哪个说法是正确的:
A) CPU全称为中央处理器(或中央处理单元)。
B) CPU可以直接运行汇编语言。
C) 同样主频下,32位的CPU比16位的CPU运行速度快一倍。
D) CPU最早是由Intel公司发明的。
5、关于ASCII,下面哪个说法是正确的:
A) ASCII码就是键盘上所有键的唯一编码。
B) 一个ASCII码使用一个字节的内存空间就能够存放。
C) 最新扩展的ASCII编码方案包含了汉字和其他欧洲语言的编码。
D) ASCII码是英国人主持制定并推广使用的。
6、下列软件中不是计算机操作系统的是:
A) Windows B) Linux C) OS/2 D) WPS
7、关于互联网,下面的说法哪一个是正确的:
A) 新一代互联网使用的IPv6标准是IPv5标准的升级与补充。
B) 互联网的入网主机如果有了域名就不再需要IP地址。
C) 互联网的基础协议为TCP/IP协议。
D) 互联网上所有可下载的软件及数据资源都是可以合法免费使用的。
8、关于HTML下面哪种说法是正确的:
A) HTML实现了文本、图形、声音乃至视频信息的统一编码。
B) HTML全称为超文本标记语言。
C) 网上广泛使用的 Flash动画都是由HTML编写的。
D) HTML也是一种高级程序设计语言。
9、关于程序设计语言,下面哪个说法是正确的:
A) 加了注释的程序一般会比同样的没有加注释的程序运行速度慢。
B) 高级语言开发的程序不能使用在低层次的硬件系统(如:自控机床)或低端手机上。
C) 高级语言相对于低级语言更容易实现跨平台的移植。
D) 以上说法都不对。
10、已知大写字母A的ASCII编码为65(十进制),则大写字母J的十进制ASCII编码为:
A) 71 B) 72 C) 73 D) 以上都不是
11、十进制小数125.125对应的八进制数是
A) 100.1 B) 175.175 C) 175.1 D) 100.175
12、有六个元素FEDCBA 从左至右依次顺序进栈,在进栈过程中会有元素被弹出栈。问下列哪一个不可能是合法的出栈序列?
A) EDCFAB B) DECABF C) CDFEBA D) BCDAEF
13、 表达式a*(b+c)-d的后缀表达式是:
A) abcd*+- B) abc+*d- C) abc*+d- D) -+*abcd
14、一个包含n个分支结点(非叶结点)的非空二叉树,它的叶结点数目最多为:
A) 2n + 1 B) 2n-1 C) n-1 D) n+1
15、快速排序最坏情况下的算法复杂度为:
A) O(log2n) B) O(n) C) O(nlog2n) D) O(n2)
16. 有一个由4000个整数构成的顺序表,假定表中的元素已经按升序排列,采用二分查找定位一个元素。则最多需要几次比较就能确定是否存在所查找的元素:
A) 11次 B) 12次 C) 13次 D) 14次
17、排序算法是稳定的意思是关键码相同的记录排序前后相对位置不发生改变,下列哪种排序算法是不稳定的:
A) 冒泡排序 B) 插入排序 C) 归并排序 D) 快速排序
18、已知n个顶点的有向图,若该图是强连通的(从所有顶点都存在路径到达其他顶点),则该图中最少有多少条有向边?
A) n B) n+1 C) n-1 D) n*(n-1)
19、全国信息学奥林匹克的官方网站为参与信息学竞赛的老师同学们提供相关的信息和资源,请问全国信息学奥林匹克官方网站的网址是:
A) http://www.noi.com/ B) http://www.noi.org/
C) http://www.noi.cn/ D) http://www.xinxixue.com/
20、在参加NOI系列竞赛过程中,下面哪一种行为是 不 被严格禁止的:
A) 携带书写工具,手表和不具有通讯功能的电子词典进入赛场。
B) 在联机测试中通过手工计算出可能的答案并在程序里直接输出答案来获取分数。
C) 通过互联网搜索取得解题思路。
D) 在提交的程序中启动多个进程以提高程序的执行效率。
二.问题求解(共2题,每空5分,共计10分)
1.小陈现有2个任务A,B要完成,每个任务分别有若干步骤如下:A=a1->a2->a3,B=b1->b2->b3->b4->b5。在任何时候,小陈只能专心做某个任务的一个步骤。但是如果愿意,他可以在做完手中任务的当前步骤后,切换至另一个任务,从上次此任务第一个未做的步骤继续。每个任务的步骤顺序不能打乱,例如……a2->b2->a3->b3……是合法的,而……a2->b3->a3->b2……是不合法的。小陈从B任务的b1步骤开始做,当恰做完某个任务的某个步骤后,就停工回家吃饭了。当他回来时,只记得自己已经完成了整个任务A,其他的都忘了。试计算小陈饭前已做的可能的任务步骤序列共有 种。
2.有如下的一段程序:
1. a:=1;
2. b:=a;
3. d:=-a;
4. e:=a+d;
5. c:=2*d;
6. f:=b+e-d;
7. g:=a*f+c;
现在要把这段程序分配到若干台(数量充足)用电缆连接的PC上做并行执行。每台PC执行其中的某几个语句,并可随时通过电缆与其他PC通讯,交换一些中间结果。假设每台PC每单位时间可以执行一个语句,且通讯花费的时间不计。则这段程序最快可以在 单位时间内执行完毕。注意:任意中间结果只有在某台PC上已经得到,才可以被其他PC引用。例如若语句4和6被分别分配到两台PC上执行,则因为语句6需要引用语句4的计算结果,语句6必须在语句4之后执行。
三.阅读程序写结果(共4题,每题8分,共计32分)
1.
var
a,b: integer;
function work(a,b: integer): integer;
begin
if a mod b <> 0 then
work := work(b,a mod b)
else
work := b;
end;
begin
read(a,b);
writeln(work(a,b));
end.
输入:20 12
输出:_______
2.
var
a,b: array[0..2] of integer;
i,j,tmp: integer;
begin
for i := 0 to 2 do
read(b[i]);
for i := 0 to 2 do
begin
a[i] := 0;
for j := 0 to i do
begin
inc(a[i],b[j]);
inc(b[a[i] mod 3],a[j]);
end;
end;
tmp := 1;
for i := 0 to 2 do
begin
a[i] := a[i] mod 10;
b[i] := b[i] mod 10;
tmp := tmp * (a[i] + b[i]);
end;
writeln(tmp);
end.
输入:2 3 5
输出:_______
3.
co
nst c = 2009;
var
n,p,s,i,j,t: integer;
begin
read(n,p);
s := 0; t := 1;
for i := 1 to n do
begin
t := t * p mod c;
for j := 1 to i do
s := (s + t) mod c;
end;
writeln(s);
end.
输入:11 2
输出:
4.
var
a: string;
n: integer;
procedure getnext(var str: string);
var
l,i,j,k: integer;
temp: char;
begin
l := length(str);
k := l - 1;
while (k>=1) and (str[k]>str[k+1]) do
dec(k);
i := k + 1;
while (i<=l) and (str[i]>str[k]) do
inc(i);
temp := str[k];
str[k] := str[i-1];
str[i-1] := temp;
for i := l downto k + 1 do
for j := k + 1 to i - 1 do
if str[j] > str[j+1] then
begin
temp := str[j];
str[j] := str[j+1];
str[j+1] := temp;
end;
end;
begin
read(a);
read(n);
while n > 0 do
begin
getnext(a);
dec(n);
end;
write(a);
end.
输入:NOIP 3
输出:
四.完善程序 (前8空,每空3分,后2空,每空2分,共28分)
1.(最大连续子段和)给出一个数列(元素个数不多于100),数列元素均为负整数、正整数、0。请找出数列中的一个连续子数列,使得这个子数列中包含的所有元素之和最大,在和最大的前提下还要求该子数列包含的元素个数最多,并输出这个最大和以及该连续子数列中元素的个数。例如数列为4,-5,3,2,4时,输出9和3;数列为1 2 3 -5 0 7 8时,输出16和7。
var
a: array[1..100] of integer;
n,i,ans,len,tmp,beg: integer;
begin
read(n);
for i := 1 to n do
read(a[i]);
tmp := 0;
ans := 0;
len := 0;
beg := ① ;
for i := 1 to n do
begin
if tmp + a[i] > ans then
begin
ans := tmp + a[i];
len := i - beg;
end
else if ( ② ) and (i - beg > len) then
len := i - beg;
if tmp + a[i] ③ then
begin
beg := ④ ;
tmp := 0;
end
else
⑤ ;
end;
writeln(ans,' ',len);
end.
2. (国王放置) 在n*m的棋盘上放置k个国王,要求k个国王互相不攻击,有多少种不同的放置方法。假设国王放置在第(x,y)格,国王的攻击的区域是:(x-1,y-1),(x-1,y),(x-1,y+1),(x,y-1),(x,y+1),(x+1,y-1),(x+1,y),(x+1,y+1)。读入三个数n,m,k,输出答案。题目利用回溯法求解。棋盘行标号为0~n-1,列标号为0~m-1。
var
n,m,k,ans: integer;
hash: array[0..4,0..4] of integer;
procedure work(x,y,tot: integer);
var
i,j: integer;
begin
if tot = k then
begin
inc(ans);
exit;
end;
repeat
while hash[x,y] <> 0 do
begin
inc(y);
if y = m then
begin
inc(x);
y := ① ;
end;
if x = n then
exit;
end;
for i := x - 1 to x + 1 do
if (i >= 0) and (i < n) then
for j := y - 1 to y + 1 do
if (j >= 0) and (j < m) then
② ;
③ ;
for i := x - 1 to x + 1 do
if (i >= 0) and (i < n) then
for j := y - 1 to y + 1 do
if (j >= 0) and (j < m) then
④ ;
inc(y);
if y = m then
begin
inc(x);
y := 0;
end;
if x = n then
exit;
until false;
end;
begin
read(n,m,k);
ans := 0;
fillcha
r(hash,sizeof(hash),0);
⑤ ;
writeln(ans);
end.
求2012十八届NOIP普及组初赛试题(有选择题也行)最快者加分
第十八届全国青少年信息学奥林匹克联赛初赛
普及组参考答案
一、单项选择题(共20题,每题1.5分,共计30分)
1 2 3 4 5 6 7 8 9 10
A B A B C C B C A A
11 12 13 14 15 16 17 18 19 20
B D B C C D C A C B
二、问题求解(共2题,每题5分,共计10分)
1. 5
2. 2880
三、阅读程序写结果(共4题,每题8分,共计32分)
1. 10
2. 6
3. 14
4. ACBBADAD
四、完善程序(前2空每空2分,后8空每空3分,共计28分)以下各程序填空可能还有一些等价的写
法,各省赛区可请本省专家审定和上机验证,可以不上报CCF NOI科学委员会检查。
Pascal语言
1 ① 0
② y[j] < y[i](或y[i] > y[j])
③
inc(f[i])
(或f[i] := f[i] + 1)
④ f[i] >= max_f(或max_f <= f[i],两种答案均必须有等号)
⑤ ans := i
2 ① false
② used[data[i]] := false
③ j
④ n
⑤ break
其中,false可以用0代替。
谁有NOIP的测试题(经典的)初赛复赛都行
NOI’95 “同创杯”全国青少年信息学(计算机)奥林匹克竞赛
分区联赛初赛试题(高中组) 竞赛用时:2小时
一、基础题:
<1> 执行①C>DIR 命令后,屏幕上显示如下画面:
FORMAT COM 12145
SYS COM 4878
PUC BAT 126
XCOPY EXE 11216
4 FILE(S) 123456 bytes free
接着又顺序执行了如下几条DOS 命令:
② C>DIR> DF.TXT //表示将列表显示的目录作为文件写盘 //
③C>TYPE DF.TXT
④C>DIR
试问:执行命令③和④ 在屏幕上显示的结果是否与①相同?
<2> 列举一个问题,使问题的解能对应相应的算法。
例如对算法: X:=10;
Y:=5;
READ(M,N);
S:=X*M-Y*N;
可列举出如下的问题:
学生答题,答对一题可得10分,答错一题则要扣去5分,输入答对的题数(M)与答错的题数(N),求最后得分(S)是多少?
现有以下算法: K:=0 ;
FOR I:=0 TO 10 DO
K:=K+(50-I*5)DIV 2+1
请列出一个相应的问题。
<3> 有标号为A、B、C、D和1、2、3、4的8个球,每两个球装一盒,分装4盒。标号为字母的球与标号为数字的球有着某种一一对应的关系(称为匹配),并已知如下条件:
① 匹配的两个球不能在一个盒子内。
② 2号匹配的球与1号球在一个盒子里。
③ A号和2号球在一个盒子里。
④ B匹配的球和C号球在一个盒子里。
⑤ 3号匹配的球与A号匹配的球在一个盒子里。
⑥ 4号是A或B号球的匹配球。
⑦ D号与1号或2号球匹配。
请写出这四对球匹配的情况。
<4> 从入口(1)到出口(17)的可行路线图中,数字标号表示关卡:
现将上面的路线图,按记录结构存储如下:
1 2 18 7 3 12 4 19 8 5 13 16 6 14 15 9 17 …
0 1 1 1 2 2 2 3 4 5 6 8 10 11 11 11 12 …
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
请设计一种能从存储数据中求出从入口到出口经过最少关卡路径的算法。
二、根据题目要求,补充完善以下伪代码程序:
<1> 求出二个整形数组错位相加的最大面积。
1.数组面积的定义:(限定数组头尾不为0)
设有一个数组C=(4,8,12,0,6)
则C的面积为:
Sc=(4+8)/2 + (8+12)/2 + 12/2 + 6/2
也就是说,Sc=各梯形面积之和(其中
梯形的高约定为1,三角形作为梯形的特殊
情况处理)。
又如D=(12,24,6)是,其面积的定义为
2.数组错位相加的定义
设有2个正整数的数组a,b,长度为n,当n=5时:
a=(34,26,15,44,12) b=(23,46,4,0,18)
对a、b进行错位相加,可能有下列情况
34 26 15 44 12
+) 23 46 4 0 18
34 26 15 44 12 23 46 4 0 18
或:
34 26 15 44 12
+) 23 46 4 0 18
34 26 15 44 35 46 4 0 18
或:
34 26 15 44 12
+) 23 46 4 0 18
34 26 15 67 58 4 0 18
或:……
最后有:
34 26 15 44 12
+) 23 46 4 0 18 -
23 46 4 0 18 34 26 15 44 12
可以看到:由于错位不同,相加的结果也不同。
程序要求:找出一个错位相加的方案,使得输出的数组面积为最大。
[算法提要]: 设a,b的长度为10,用a,b: array[1..10] of integer表示,其结果用数组C,D: array[1..30] of integer表示。
错位相加的过程可以从开始不重叠,然后逐步重叠,再到最后的不重叠。
梯形面积的计算公式为:(上底+下底)×高÷2
其中由于约定高为1,故可写为(上底+下底)÷2。
程序: n = 10;
Function sea : real; {计算数组C面积}
Begin
J1 := 1;
While _______①______ do
j1 := j1 + 1;
ENDWHILE;
If j1 = 3 * n then sea := 0
Else begin
J2 := 3 * n;
While _______②______ do
j2 := j2 - 1;
If j1 = j2 then sea := 0
Else begin
J3 := c[j1] + c[j2];
For j4 := j1 + 1 to j2 - 1 do
INC(j3,c[j4]*2);
ENDFOR;
Sea := j3 / 2
end
ENDIF;
End;
//主程序//
For i := 1 to n do read(a[I]); endfor;
For j := 1 to n do read(b[j]); endfor;
__________③____________;
for i := 1 to 2 * n + 1 do
for j := 1 to 3 * n do ________④__________ endfor;
for j := 1 to n do c[j + n] := a[j] endfor;
for j := 1 to n do
_________⑤__________;
endfor;
p := sea;
if p > s then begin
d := c;
s := p
end;
endif;
endfor;
for I := 1 to 3 * n do write(d[I],' '); endfor;
write(s);
End. //主程序结束//
<2> 表的操作:设有一个表,记为L=(a1,a2,…,an),其中:
L:表名
a1,a2,…,an为表中的元素
当ai为0~9数字时,表示元素,ai为大写字母时,表示是另一个表,但不能循环定义。
例如下列表的定义是合法的。(约定L是第一个表的表名)
L=(1,3,K,8,0,4)
K=(3,P,4,H,7)
P=(2,3)
H=(4,0,5,3)
程序要求:当全部表给出之后,求出表中所有元素的最大元素,以及表中全部元素的和。
[算法提要]:表用记录类型定义:
长度(LENGTH)
表体(是元素为字符类型的数组ELEMENT)
队列用数组ba
se表示;
队列指针用整型变量 FRONT 与REAR。
为此,设计一个字符入队的过程inqueue,出队函数outqueue,表中最大元素及元素求和均采用递归计算。
程序:
PROCEDURE INQUEUE(Q,C); //过程需要二个参数,Q记录类型,C字符类型//
Q.REAR := _________①__________;
Q.ba
se[Q.REAR] := C;
END; //过程结束//
FUNCTION OUTQUEUE(Q) //函数需要一个参数,Q记录类型//
Q.FRONT := _________②__________;
OUTQUEUE := Q.ba
se[Q.FRONT]
END; //函数结束//
FUNCTION MAXNUMBER(C) //函数需要一个参数,C字符类型//
Max := CHR(0);
FOR i:=1 to T[C].LENGTH DO
CH := T[C].ELEMENT[i];
IF _______③________ THEN
M := MAXNUMBER(CH)
ELSE
M := CH
ENDIF;
IF MAX < M THEN
MAX := M
ENDIF;
ENDFOR;
___________④____________
END; //函数结束//
FUNCTION TOTAL(C) //函数需要一个参数,C:字符类型//
K := 0;
FOR i:= 1 TO T[C].LENGTH DO
CH := T[C].ELELMENT[i];
IF _________⑤__________ THEN
M := TOTAL(CH);
ELSE
M := OR
d(CH)-OR
d('0');
ENDIF
K := K + M
ENDFOR;
TOTAL := K;
END; //函数结束//
//主程序//
MAX := 36;
FOR TABNO := 'A' TO 'Z' DO
T[TABNO].LENGTH := 0;
ENDFOR;
Q.FRONT := 0; Q.REAR := 0;
INQUEUE(Q,'L');
WHILE (Q.FRONT <>Q .REAR ) DO
TABNO := OUTQUEUE(Q);
WRITE(TABNO,'=');
READLN(S);
i := 1;
WHILE S[i] <> '(' DO
i := i+ 1;
ENDWHILE;
WHILE S[i] <> ')' DO
IF (S[i]>='A') AND (S[i]<='Z') THEN
S[i]:=CHR(OR
d(S[i])+OR
d('A')-OR
d('a'));
IF (S[i]>='A') AND (S[i]<='Z') THEN
INC(T[TABNO].LENGTH);
T[TABNO].ELEMENT[T[TABNO].LENGTH] := S[i];
INQUEUE(Q,S[i]);
ENDIF;
ELSE
IF (S[i]>='0') ANDN (S[i]<='9') THEN
INC(T[TABNO].LENGTH);
T[TABNO].ELEMENT[T[TABNO].LENGTH] := S[i]
ENDIF;
INC(i)
ENDIF;
ENDWHILE;
ENDWHILE;
WRITE('The max number in table L is:',maxnumber('L'));
WRITE('Total is:',total('L'))
END. //主程序结束//
<3> 设有一个实数,以字符串形式存放于数组x中,用x:array[1..N]of char表示。其中x[1]若为'-',表示负数;若为'+'、'.'或' ',则表示正数。若为数字,也认为是正数。
例如 x=(' ','2','0',' ','3','.','5','%') 则表示203.5
x=('-','1','.',' ','2','0','%') 则表示-1.2
约定:在字符串x中,除x[1]外,其后可以包含有若干个'.'与' ',但仅以第一次出现的为准,空格不起任何作用,并以字符'%'作为结束标志。
程序要求:将输入的字符串还原成实数输出(小数点后无用的0应除去),还原的结果以下列形式存放(不需要输出)。
F:数符。正数放0,负数放1。
A:array[1..N] of integer; 存放数字,不放小数点。
K:表示A中有效数字的个数。
J:表示小数点后的位数。
例如:数203.24,还原后结果的存放是:
F=0
A=(2,0,3,2,4)
K=5
J=2
又如:数-33.0740,还原后结果的存放是:
F=1
A=(3,3,0,7,4)
K=5
J=3
[算法提要]:x : array[1..10] of char;可放长度定为10;首先读入字符串,然后处理数的符号,在还原的过程中,需要判定整数部分与小数部分,同时去除多余的空格和小数点,并约定输入是正确的,不用作出错检查。
程序:
FOR I := 1 TO 10 DO A[I] := 0; ENDFOR;
FOR I := 1 TO 10 DO READ(X[I]); ENDFOR;
J := 0; F := 0; K := 0; B := 0;
IF X[1] = '-' THEN BEGIN
____________①____________
____________②____________
END
ELSE IF X[1] := ' ' THEN I := 2
ELSE I := 1;
ENDIF;
ENDIF;
WHILE ________③_________ DO
I := I + 1;
ENDWHILE
WHILE __________④___________ DO
IF (X[I] >= '0') AND (X[I] <= '9') THEN
K := K + 1;
_________⑤____________;
IF B = 1 THEN
______⑥_________
ENDIF
ELSE IF (X[I]='.') AND (B=0) THEN
B := 1;
ENDIF
I := I + 1
ENDIF;
ENDWHILE;
IF J > 0 THEN WHILE A[K]=0 DO
__________⑦_________
__________⑧_________
ENDWHILE;
ENDIF.
END. //程序结束//
以上就是小编为大家整理的关于NOIP普及组初赛复习内容的全部内容,更多相关知识请持续关注培训啦!
985大学 211大学 全国院校对比 专升本