NOIP2013普及组初赛试题

合集下载

NOIP普及组历届试题分析

NOIP普及组历届试题分析

对于100%的数据,3 ≤ n ≤ 100 测验题给出的正整数大小不超过10,000。
试题分析

题意大意:给你n个数,在这n个数中,找 到满足A+B=C的C的个数,注意不是这个 等式的个数。
样例中,1,2,3,4有1+2=3,1+3=4两个。

由于本题数据规模n<=100,我们可以直接
枚举C, A, B,三层循环解决问题。
扫雷游戏 (noip2015普及组第二题)
输入样例 1 33 *?? ??? ?*? 输入样例 2 23 ?*? *??
输出样例 1 mine.out *10 221 1*1 输出样例 2 mine.out 2*1 *21
对于 100%的数据,1≤n≤100,1≤m≤100
问题分析:
本题也是简单的枚举类试题。 我们从雷区的第一行第一列(1,1)开始,判断它周围 有多少个地雷。 由于本题读入的是字符,读入时需要注意: readln(n,m); for i=1 to n do begin for j=1 to m do read(a[i][j]); readln; end;
比例简化 (noip2014普及组第二题)



在社交媒体上,经常会看到针对某一个观点同意与 否的民意调查以及结果。例如,对某 一观点表示 支持的有 1498 人,反对的有 902 人,那么赞同与 反对的比例可以简单的记为1498:902。 不过,如果把调查结果就以这种方式呈现出来,大 多数人肯定不会满意。因为这个比例的数值太大, 难以一眼看出它们的关系。对于上面这个例子,如 果把比例记为 5:3,虽然与 真实结果有一定的误差, 但依然能够较为准确地反映调查结果,同时也显得 比较直观。 现给出支持人数 A,反对人数 B,以及一个上限 L, 请你将 A 比 B 化简为 A’比 B’,要求在 A’和 B’均 不大于 L 且 A’和 B’互质(两个整数的最大公约数 是 1)的前提下,A’/B’ ≥ A/B 且 A’/B’ - A/B 的值 尽可能小。

NOIP2013完整版第十九届全国奥林匹克信息学联赛初赛

NOIP2013完整版第十九届全国奥林匹克信息学联赛初赛

}
A. O(1)
B. O(n)
C. O(n²) D. O(Fn)
8. 二叉查找树具有如下性质:每个节点的值都大于其左子树上所有节点的值、小于其右子
树上所有节点的值。那么,二叉查找树的( )是一个有序序列。
A. 先序遍历 B. 中序遍历 C. 后序遍历 D. 宽度优先遍历
CCF NOIP2013 初赛提高组 C 语言试题 第 1 页,共 8 页
12 个顶点的二分图至多有( )条边。
A. 18
B. 24
C. 36
D. 66
12.( )是一种通用的字符编码,它为世界上绝大部分语言设定了统一并且唯一的二进制
编码,以满足跨语言、跨平台的文本交换。目前它已经收录了超过十万个不同字符。
A. ASCII B. Unicpde
C. GBK 2312 D.BIG5
CCF NOIP2013 初赛提高组 C 语言试题 第 5 页,共 8 页
注:本品是我据 NOIP2013C 语言初赛试题做出来的,若有侵权,请告知本人会尽快处理,若有转载,请说 明出处。
24
32
41
43
45
54
64 输出:
五、完善程序(第 1 题 15 分,第二题 13 分,共计 28 分) 1. (序列重排)全局数组变量 a 定义如下:
C. 欧拉 (Leohard Euler)
D. 克劳德·香农(Claude Shannon)
5. 已知一棵二叉树有 2013 个节点,则其中至多有( )个节点有两个子节点。
A. 1006
B. 1007
C. 1023
D.1024
6. 在一个无向图中,如果任意两点之间都存在路径相连,则称之为连通图。

noip普及组初赛试题及答案

noip普及组初赛试题及答案

noip普及组初赛试题及答案### NOIP 普及组初赛试题及答案#### 一、选择题(每题2分,共10分)1. 题目:计算机程序设计语言中,哪种语言是由Dennis Ritchie在1970年代初期开发的?- A. Java- B. C语言- C. Python- D. Ruby答案:B2. 题目:在计算机科学中,算法的时间复杂度是指什么?- A. 算法执行所需的内存大小- B. 算法执行所需的时间长短- C. 算法的可读性- D. 算法的可扩展性答案:B3. 题目:以下哪个是计算机网络中的数据交换技术?- A. TCP- B. UDP- C. FTP- D. HTTP答案:A4. 题目:在HTML中,用于定义文档类型声明的标签是哪一个?- A. `<!DOCTYPE>`- B. `<html>`- C. `<head>`- D. `<body>`答案:A5. 题目:以下哪个是操作系统的五大基本功能之一?- A. 邮件服务- B. 文件系统管理- C. 网络服务- D. 办公自动化答案:B#### 二、填空题(每空2分,共20分)1. 在C语言中,用于定义一个整型变量的关键字是 int。

2. 数据结构中的栈是一种后进先出(LIFO)的数据结构。

3. 在Java中,一个类可以继承另一个类的属性和方法,这体现了面向对象程序设计的继承特性。

4. 在数据库管理系统中,SQL代表结构化查询语言,它是用于管理关系数据库的标准语言。

5. 计算机网络中的DNS服务用于将域名解析为IP地址。

#### 三、简答题(每题10分,共20分)1. 题目:请简述什么是二叉树,并给出二叉树的两种主要遍历方式。

答案:二叉树是一种特殊的树形数据结构,其中每个节点最多有两个子节点,通常称为左子节点和右子节点。

二叉树的两种主要遍历方式是前序遍历和后序遍历。

前序遍历的顺序是先访问根节点,然后是左子树,最后是右子树。

NOIP普及组初赛历年试题及答案完善题篇

NOIP普及组初赛历年试题及答案完善题篇

} bool over(hugeint a,hugeint b) // 若大整数 a>b 则返回 true ,否则返回 false { int i; if(a.len<b.len) return false; if( a.len>b.len ) return true; for(i=a.len;i>=1;i--){ if(a.num[i]<b.num[i]) return false; if(a.num[i]>b.num[i]) return true; } return false; } int main() { string s; int i; hugeint target,left,middle,right;
cin>>s; memset(target.num,0,sizeof(target.num)); target.len=s.length(); for(i=1;i<=target.len;i++) target.num[i]=s[target.len-i]- '0'; memset(left.num,0,sizeof(left.num)); left.len=1; left.num[1]=1; right=target; do{ middle=average(left,right); if(over(times(middle,middle),target)) right=middle; else left=middle; }while(!over(plustwo(left),right) ); for(i=left.len;i>=1;i--) cout<<left.num[i]; return 0; }
NOIP2013-1. 序列重排 全局数组变量 a 定义如下: const int SIZE = 100; int a[SIZE], n; 它记录着一个长度为 n 的序列 a[1], a[2], ..., a[n]。 现在需要一个函数, 以整数 p (1 ≤ p≤ n)为参数, 实现如下功能:将序列 a 的前 p 个数与后 n – p 个数对调, 且不改变这 p 个数(或 n – p 个数)之间的相对位置。 例如,长度为 5 的序列 1, 2, 3, 4, 5,当 p = 2 时重排结果为 3, 4, 5, 1, 2。 有一种朴素的算法可以实现这一需求, 其时间复杂度为 O(n)、 空间复杂度为 O(n): void swap1(int p) { int i, j, b[SIZE]; for (i = 1; i <= p; i++) b[n–p+i] = a[i]; for (i = p + 1; i <= n; i++) b[i-p]= a[i]; for(i=1;i<= n;i++) a[i] = b[i]; } 我们也可以用时间换空间, 使用时间复杂度为 O(n2)、 空间复杂度为 O(1)的算法: void swap2(int p) { int i, j, temp; for (i = p + 1; i <= n; i++) { temp = a[i]; for(j=i;j>= i–p+1;j--) a[j] = a[j - 1]; a[i – p]= temp; } }

NOIP2013普及组模拟试题1

NOIP2013普及组模拟试题1

全国信息学奥林匹克联赛(NOIP2013)复赛模拟普及组一.题目概览中文题目名称lignment 消息传递Cow Crossings算周长英文题目名称lignment relay crossings perimeter可执行文件名lignment relay crossings perimeter 输入文件名lignment.in relay.in crossings.in perimeter.in 输出文件名lignmentout relay.out crossings.out perimeter.out 每个测试点时限1秒1秒1秒1秒测试点数目10 10 10 10每个测试点分值10 10 10 10 比较方式全文比较全文比较全文比较全文比较题目类型传统传统传统传统二.提交源程序文件名对于pascal语言alignment pas relay.pas crossings.pas perimeter.pas 对于C语言alignment.c relay.c crossings.c perimeter.c 对于C++语言alignment.cpp relay.cpp crossings.cpp perimeter.cpp三.编译命令(不包含任何优化开关)对于pascal语言fpc queue.pas fpc windows.pas fpc s4.pas fpc book.pas对于C语言gcc –o queuequeue.c gcc –o windowswindows.cgcc –o s4s4.cgcc –o bookbook.c对于C++语言g++ –o queuequeue.cpp g++ –o windowswindows.cppg++ –o s4s4.cppg++ –obookbook.cpp四.运行内存限制运行内存上限50M 50M 50M 50M注意事项:1、文件名(程序名和输入输出文件名)必须使用小写。

noip普及组初赛模拟考试题[附答案解析]

noip普及组初赛模拟考试题[附答案解析]

选择一个正确答案代码(A/B/C/D),填入每题的括号内 (每题1.5分,多选无分, 共30 分)题号 1 2 3 4 5 6 7 8 9 10选择 C D C D D B B A B C题号 11 12 13 14 15 16 17 18 19 20选择 C D D A B C C D C B 二.问题求解(共2题,每题5分,共计10分)1. 当m=4,n=4时选法数=352. 共有多少种选法 1360二. 阅读程序,并写出程序的正确运行结果:(共4题,每题8分,共32分)1. 程序的运行结果是: 1262. 程序的运行结果是: 115 1123.程序的运行结果是:114. 程序的运行结果是: DCBA CDBA CBDA CBAD BDCA BCDA BCAD BADC BACDADCB ACDB ACBD ABDC ABCDNum=14四.根据题意, 将程序补充完整 (每空2.8分,共28分)1.①readln(d,i);②d-1③x*2+1④a[x]:=(4)true;2.①j<=trunc(sqrt(k))②L-1③a[v]<=m④inc(v)⑤s=2*L-1一、选择题:共20题,每题1.5分,共计30分1. 关于计算机语言,正确的说法是(C)。

A.BASIC语言是一种高级语言,每台计算机都必须配备B.汇编语言是一种比BASIC语言更高级的计算机语言C.机器语言是计算机可以直接识别的语言,但编程比较困难D.PASCAL语言是BASIC语言的更高版本2. 计算机接入网络后,它的功能会大大拓展,主要表现在( D )。

A.共享资源与分担负荷 B.数据通讯C.可以使用他人的资源 D.以上三项功能都有【分析与解答】计算机网络能够实现的功能是:数据通讯,资源共享,实现信息的分布式处理和提高计算机系统的可靠性与实用性。

故本题答案为D。

3. 若某数的原码为A7H,则其对应的补码为( C )。

NOIP普及组初赛历年试题及答案阅读题篇

NOIP普及组初赛历年试题及答案阅读题篇

NOIP普及组初赛历年试题及答案阅读题篇NOIP普及组初赛历年试题及答案阅读题篇阅读程序写结果(共4 题,每题8 分,共计32 分)阅读程序题是得分的关键,因为不是让你上机去运行程序,所以要一步步地读程序,记录相关变量值的变化情况。

因为程序的运行结果只有输出语句才有输出,所以只写出输出语句的结果。

有时要找出规律才能写出结果,特别是循环次数多的情况,另外要注意边界值,不能多算一步也不能少算一步。

解决这类问题的关键在于能够分析程序的结构以及程序段的功能。

常见的有列表法、画流程图法等。

完成这类题目的方法和步骤如下:1、从头到尾通读程序,大致把握程序的算法、找出这个题目的即这个程序想干什么。

抓住了它,不仅得出答案变得较容易,而且对自己的结果也会比较有信心。

2、通过给程序分段、理清程序的结构和层次,达到读懂程序的目的。

3、阅读程序中特别注意跟踪主要变量的值的变化,可以用列表的方法,了解变量变化和程序的运行结果,注意发现规律。

所谓列表法,就是将各变量名作为表头,在程序的执行过程中,将各变量值的变化记录在相应变量的下方。

4、按照程序中输出格式的要求,写出运行结果,并带着结果回到程序进行检查。

在阅读程序时,要特别注意过程、函数所完成的子任务以及和主程序之间的参数传递关系。

在阅读程序中,比较好的方法是首先阅读主程序,看其需要调用的过程或函数是什么,最后要求输出变量是什么;其次在阅读程序中,将较长的程序分成几个程序段(特别注意循环结构、判断结构),阅读理解各程序段的功能以及各程序之间的关联。

NOIP2011-1.#includeusing namespace std;int main(){int i,n,m,ans;cin>>n>>m;i=n;ans=0;while(i<=m){//从i=10~20,共循环计数11次ans+=i;//每次循环,ans累加一次i 值i++;}cout<<ans<<endl;< p="">//此时ans值应为(10+20)*11/2,即165 return 0; }输入: 10 20输出: 165NOIP2011-2.#include#includeusing namespace std;int main(){string map= "2223334445556667778889999"; //数组中元素位置是从0开始计数的string tel;int i;cin>>tel;for(i=0;i<tel.length();i++)< p="">if((tel[i]>='0') && (tel[i]<='9') )//如果输入的tel是0~9,直接输出tel值cout<<tel[i];< p="">else if( (tel[i]>='A') && (tel[i]<='Z'))cout<<map[tel[i]-'a'];< p="">//如果输入的tel是A~Z,则输出一个map数组中对应的元素//输出元素在map数组中位置为“输入字母与A的ASCII码的差值”//如果输入的是其他字符,比如“-”,则不符合循环条件,无输出cout<<endl;< p="">return 0;}输入: CCF-NOIP-2011输出: 22366472011NOIP2011-3.#include#includeusing namespace std;const int SIZE= 100;int main(){int n,i,sum,x,a[SIZE];cin>>n;memset(a,0,sizeof(a));for(i=1;i<=n;i++){cin>>x;a[x]++;}//循环结束时数组中的值为:a[1]=1,a[2]=2,a[3]=3,a[4]=2,a[5]=1,a[6]=2 i=0;sum=0;while(sum<(n/2+1)){//当sum值大于等于n/2+1,即sum>=6的时候,循环结束i++;sum+=a[i];}cout<<i<<endl;< p="">//输出循环结束时i 的值(不是sum的值)return 0;}输入:114 5 6 6 4 3 32 3 2 1输出: 3NOIP2011-4.#includeusing namespace std;int solve(int n,int m){int i,sum;if(m==1) return 1;//递归函数solve(i,m)中m=1时返回函数值为1sum=0;for(i=1;i<n;i++)< p="">//递归函数solve(i,m)中i=1时不循环,sum=0sum+= solve(i,m-1);return sum;//可递归求得sum=solve(1,3)+(2,3)+(3,3)+(4,3)+(5,3)+(6,3)int main(){int n,m;cin>>n>>m;cout<<solve(n,m)<<="" p="" 输出函数值,即sum值return="">}输入: 7 4输出: 20NOIP2012-1.#include using namespace std; int a, b, c, d, e, ans; int main() {cin>>a>>b>>c;d = a+b;e = b+c;ans = d+e;//ans=a+b+b+ccout<<ans<<endl;< p="">return 0;}输入: 1 2 5输出: 10NOIP2012-2.#includeusing namespace std;int n, i, ans;int main()cin>>n;ans = 0;for (i = 1; i <= n; i++)if (n % i == 0)ans++;//统计1~18中18的因数个数cout<<ans<<endl;< p=""> return 0;}输入: 18输出: 6NOIP2012-3.#includeusing namespace std;int n, i, j,a[100][100];int solve(int x,int y){int u, v;if(x == n)return a[x][y];//递归边界:当x=5时,solve(5,y)=a[5][y]u= solve(x + 1, y);v= solve(x + 1, y + 1);if(u > v)return a[x][y] + u;elsereturn a[x][y] + v;//用递归最终求得solve(1,1)=a[1][1]+solve(2,2)=2+12=14 } int main(){cin>>n;for(i = 1; i <= n; i++) for (j = 1; j <= i; j++) cin>>a[i][j];cout<<solve(1,1)<<="" p="" return="">}输入:52-1 42 -1 -2-1 6 4 03 2 -1 5 8输出: 14NOIP2012-4.#include#include using namespace std; int n, ans, i, j;string s;char get(int i){if(i < n)return s[i];elsereturn s[i-n];//i<8时,get(i)返回s[i];i>=8时,get(i)返回s[i-8],从第一个开始返回}int main(){cin>>s;n= s.size();ans= 0;for(i = 1; i <= n-1; i++){for (j = 0; j <= n-1; j++)if (get(i+j) < get(ans+j)){ans = i;break;}else if (get(i+j) > get(ans+j))break;}//此循环执行完毕,ans=7for(j = 0; j <= n-1; j++)cout<<get(ans+j);< p="">//1,ans+j<8,输出s[7+0];2,ans+j=8,输出s[8-8];3,ans+j=9,输出s[9-8]……cout<<endl;< p="">return 0;}输入: CBBADADA输出: ACBBADADNOIP2013-1.#includeusing namespace std;int main(){inta, b;cin>>a>>b;cout<<a<<"+"<<b<<"="<<a+b<<endl;< p="">return 0;}//输出:3+5=8输入: 3 5输出: 3+5=8NOIP2013-2.#includeusing namespace std;int main(){int a, b, u, i, num;cin>>a>>b>>u;num = 0;for (i = a; i <= b; i++)if ((i % u) == 0)num++;//1-100之间有多少数是15的倍数cout<<num<<endl;< p=""> return 0;}输入: 1 100 15输出: 6NOIP2013-3.#includeusing namespace std;int main(){const int SIZE = 100;int n, f, i, left, right, middle, a[SIZE]; cin>>n>>f;for (i = 1; i <= n; i++)cin>>a[i];left = 1;right = n;do {middle= (left + right) / 2;if(f <= a[middle])right = middle;elseleft = middle + 1;}while (left < right);// middle=6,17>a[6],则left=7// middle=9,17// middle=7,17=a[7],则right=7 // left=right,直接输出left cout<<left<<endl;< p="">return 0;}输入:12 172 4 6 9 11 15 1718 19 20 21 25 输出: 7NOIP2013-4.#includeusing namespace std;int main(){constint SIZE = 100;intheight[SIZE], num[SIZE], n, ans; cin>>n;for(int i = 0; i < n; i++) {cin>>height[i];num[i] = 1;for (int j = 0; j < i; j++) {if ((height[j] < height[i]) && (num[j] >= num[i]))num[i] = num[j]+1;}}//两两相比,得出num[0], num[1], num[2], num[3], num[4], num[5]ans= 0;for(int i = 0; i < n; i++) {if (num[i] > ans) ans = num[i];}//得出num中最大值,即在数组height中第几位数值最大cout<<ans<<endl;< p="">return 0;}输入:62 53 11 12 4输出: 4不懂算法?跟踪变量!列表模拟!遇到递归?画树形图!注意边界!找到规律了?还会流程图?恭喜你,32分到手了!NOIP2014-1.#includeusing namespace std;int main(){int a, b, c, d, ans;cin>> a >> b >> c;d = a - b; //将a-b=-1赋值给d a = d + c; //将d+c=3赋值给a ans = a * b; //ans=a*b=3*3=9 cout<<"Ans = "<< ans << endl;return 0;}输入:2 3 4输出: Ans=9NOIP2014-2.#includeusing namespace std;int fun(int n){if (n == 1)return 1; //边界fun(1)=1if (n == 2)return 2; //边界fun(2)=2 return fun(n - 2) - fun(n - 1); } //fun(n)=fun(n-2)-fun(n-1) int main(){int n;cin >> n;cout << fun(n) << endl;//fun(7)=fun(5)-fun(6)=-11 return 0;}输入: 7输出: -11NOIP2014-3.#include#includeusing namespace std;int main(){int i, len;getline(cin, st);len = st.size();for(i = 0; i < len; i++){if (st[i] >= 'a' && st[i] <= 'z')st[i] = st[i] - 'a' + 'A';} //如果字符串st中字母小写,则替换成大写cout<< st << endl; return 0;}输入: Hello, my name is Lostmonkey.输出: HELLO, MY NAME IS LOSTMONKEY.NOIP2014-4.#includeusing namespace std;const int SIZE =100;int main(){int p[SIZE];int n, tot, i, cn;cin>> n;for(i = 1; i <= n; i++)p[i] = 1; //p[1]-p[30]中所有元素赋值1 for(i = 2; i <= n; i++){ if (p[i] == 1)tot++; //计数cn = i * 2; //找出2-30中所有2i while (cn <= n) {p[cn] = 0;cn += i; //找出2-30中所有3i}}//对2-30中素数计数,并输出个数cout<< tot << endl; return 0;}输入: 30输出: 10NOIP2015-1.#includeusing namespace std;</ans<<endl;<></left<<endl;<></num<<endl;<></a<<"+"<<b<<"="<<a+b<<endl;<> </endl;<></get(ans+j);<></solve(1,1)<</ans<<endl;<></ans<<endl;<></solve(n,m)<</n;i++)<></i<<endl;<></endl;<></map[tel[i]-'a'];<></tel[i];<></tel.length();i++)<></ans<<endl;<>。

NOIP2013普及组初赛模拟试题1(含答案)

NOIP2013普及组初赛模拟试题1(含答案)

NOIP 2013初赛模拟题一一、选择题:(本题共20题,每题1.5分,共计30分)1、在计算机内部用来传送、存贮、加工处理的数据或指令都是以()形式进行的。

A、二进制码B、八进制码C、十进制码D、智能拼音码2、计算机的软件系统通常分为()A、硬件系统和软件系统B、高级软件和一般软件C、系统软件和应用软件D、军用软件和民用软件3、关于软盘读写孔,正确的说法是()。

A.从该孔读信息B.从该孔写信息C.当该孔处于开状态时,不能删除盘中文件。

D.该孔没有作用4、一棵二叉树的中序遍历为DGBAECHF,后序遍历为GDBEHFCA,则前序遍历是()A、ABCDFGHEB、ABDGCEFHC、ACBGDHEFD、ACEFHBGD5、下列叙述中错误的是()。

A、微机应避免置于强磁场之中B、微机使用时间不宜过长,而应隔几个小时关机一次C、微机应避免频繁关开,以延长其使用寿命D、微机应经常使用,不宜长期闲置不用6、计算机网络最主要的优点是()。

A、运算速度快B、共享资源C、精度高D、存储容量大7、下列4个不同进制表示的数中,最大的一个数是()A、(220.1)10B、(11011011.1)2C、(334.1)8D、(DC.1) 168、为了区分汉字与ASCII码,计算机中汉字编码的最高位为()A、1B、0C、-1D、29、下列不正确的文件名是()。

A. command。

ComB. command_comC. command,comD. command:com10、一般来说,TCP/IP的IP提供的服务是( )A.运输层服务B.会话层服务C.表示层服务D.网络层服务11、通信时,模拟信号也可以用数字信道来传输,能实现模拟信号与数字信号之间转换功能的是()A、D/AB、A/DC、ModemD、Codec12、一个栈的输入顺序为1、2、3、4、5,下列序列中可能是栈的输出序列是()。

A、54312B、24135C、21543D、1253413、不属于Internet的功能是()A、聊天B、远程教育C、查询资料D、传送能量14、下列描述计算机病毒的特性中,()不是正确的。

小朋友的数字(noip2013普及组第三题)参考答案

小朋友的数字(noip2013普及组第三题)参考答案
sum=shuzi[0];
for(i=1;i<n;i++)
{
sum=sum+shuzi[i];
if(sum>tezheng[i-1])
tezheng[i]=sum;
else
tezheng[i]=tezheng[i-1];
printf("%d\n",max);
}
else
{
max=max%p;
printf("%d\n",max);
}
getch();
}
{
int n,p,shuzi[1000],tezheng[1000],fenshu[1000],sum,i,max;
scanf("%d %d",&n,&p);
for(i=0;i<n;i++)
scanf("%d",&shuzi[i]);
tezheng[0]=shuzi[0];
小朋友的数字(noip2013普及组第三题)(number.cpp/c/pas)
描述
有 n 个小朋友排成一列。每个小朋友手上都有一个数字,这个数字可正可负。规定每个小朋友的特征值等于排在他前面(包括他本人)的小朋友中连续若干个(最少有一个)小朋友手上的数字之和的最大值。 作为这些小朋友的老师,你需要给每个小朋友一个分数,分数是这样规定的:第一个小朋友的分数是他的特征值,其它小朋友的分数为排在他前面的所有小朋友中(不包括他本人),小朋友分数加上其特征值的最大值。
}
for(i=0;i<n;i++)

NOIP普及组初赛历年试题及答案求解题篇

NOIP普及组初赛历年试题及答案求解题篇

NOIP普及组初赛历年试题及答案求解题篇问题求解:每次共2题,每空5分,共计10分。

每题全部答对得 5 分,没有部分分。

注:答案在文末在NOIP初赛问题求解中,经常会遇到排列组合问题。

这一类问题不仅内容抽象,解法灵活,而且解题过程极易出现“重复”和“遗漏”的错误,这些错误甚至不容易检查出来,所以解题时要注意不断积累经验,总结解题规律。

解答排列组合问题,首先必须认真审题,明确是属于排列问题还是组合问题,或者属于排列与组合的混合问题,其次要抓住问题的本质特征,灵活运用基本原理和公式进行分析解答。

同时还要注意讲究一些策略和技巧,比如采用分类、分步、捆绑等方法,也可以借助表格、方程等工具,使一些看似复杂的问题迎刃而解。

NOIP2011-1. 每份考卷都有一个8位二进制序列号。

当且仅当一个序列号含有偶数个1时,它才是有效的。

例如,0000000、01010011都是有效的序列号,而11111110不是。

那么,有效的序列号共有______个。

NOIP2011-2. 定义字符串的基本操作为: 删除一个字符、插入一个字符和将一个字符修改成另外一个字符这三种操作。

将字符串A变成字符串B的最少操作步数,称为字符串A到字符串B的编辑距离。

字符串“ ABCDEFG ”到字符串“BADECG ”的编辑距离为_______。

NOIP2012-1. 如果平面上任取n 个整点(横纵坐标都是整数) ,其中一定存在两个点,它们连线的中点也是整点,那么n至少是_____。

NOIP2012-2. 在NOI期间,主办单位为了欢迎来自全国各地的选手,举行了盛大的晚宴。

在第十八桌,有5名大陆选手和5名港澳选手共同进膳。

为了增进交流,他们决定相隔就坐,即每个大陆选手左右相邻的都是港澳选手、每个港澳选手左右相邻的都是大陆选手。

那么,这一桌共有_____种不同的就坐方案。

注意:如果在两个方案中,每个选手左边相邻的选手均相同,则视为同一个方案。

NOIP2013-1. 7 个同学围坐一圈,要选2 个不相邻的作为代表,有_____种不同的选法。

NOIP普及组初赛及答案C

NOIP普及组初赛及答案C

第十八届全国青少年信息学奥林匹克联赛初赛(普及组C++语言试题)竞赛时间:2012年10月13日14:30~16:30选手注意:●试题纸共有10页,答题纸共有2页,满分100分。

请在答题纸上作答,写在试题纸上一律无效。

●不得使用任何电子设备(如计算器、手机、电子词典等)或查阅任何书籍资料一、单项选择题(共20题,每题1.5分,共计30分;每题且仅有一个正确选项)1.计算机如果缺少(),将无法正常启动。

A.内存B.鼠标C.U盘D.摄像头2.()是一种先进先出的线性表。

A.栈B.队列C.哈希表(散列表)D.二叉树3.目前计算机芯片(集成电路)制造的主要原料是(),它是一种可以在沙子中提炼出的物质。

A.硅B.铜C.锗D.铝4.十六进制数9A在()进制下是232。

A.四B.八C.十D.十二5.()不属于操作系统。

A.Windows B.DOS C.Photoshop D.NOILinux6.如果一棵二叉树的中序遍历是BAC,那么它的先序遍历不可能是()。

A.ABC B.CBA C.ACB D.BAC7.目前个人电脑的()市场占有率最靠前的厂商包括Intel、AMD等公司。

A.显示器B.CPU C.内存D.鼠标8.使用冒泡排序对序列进行升序排列,每执行一次交换操作系统将会减少1个逆序对,因此序列5,4,3,2,1需要执行()次操作,才能完成冒泡排序。

A.0 B.5 C.10 D.159.1946年诞生于美国宾夕法尼亚大学的ENIAC属于()计算机。

A.电子管B.晶体管C.集成电路D.超大规模集成电路10.无论是TCP/IP模型还是OSI模型,都可以视为网络的分层模型,每个网络协议都会被归入某一层中。

如果用现实生活中的例子来比喻这些“层”,以下最恰当的是()。

A.中国公司的经理与波兰公司的经理交互商业文件B.军队发布命令C.国际会议中,每个人都与他国地位对等的人直接进行会谈D.体育比赛中,每一级比赛的优胜者晋级上一级比赛11.矢量图(VectorImage)图形文件所占的贮存空间比较小,并且无论如何放大、缩小或旋转等都不会失真,是因为它()。

NOIP2013第十九届普及组初赛题目C++和答案-

NOIP2013第十九届普及组初赛题目C++和答案-

第十九届全国青少年信息学奥林匹克联赛初赛普及组C++语言试题竞赛时间:2013 年10 月13 日14:30~16:30选手注意:●试题纸共有9 页,答题纸共有2 页,满分100 分。

请在答题纸上作答,写在试题纸上的一律无效。

●不得使用任何电子设备(如计算器、手机、电子词典等)或查阅任何书籍资料。

一、单项选择题(共20 题,每题1.5 分,共计30 分;每题有且仅有一个正确选项)1.一个32 位整型变量占用()个字节。

D. 128A. 4B. 8C. 322.二进制数11.01 在十进制下是()。

A. 3.25B. 4.125C. 6.25D. 11.1253.下面的故事与()算法有着异曲同工之妙。

从前有座山,山里有座庙,庙里有个老和尚在给小和尚讲故事:‚从前有座山,山里有座庙,庙里有个老和尚在给小和尚讲故事:‘从前有座山,山里有座庙,庙里有个老和尚给小和尚讲故事....’‛A.枚举B. 递归C. 贪心D. 分治4.逻辑表达式()的值与变量A 的真假无关。

A.(A ˅ B) ˄ ¬AB. (A ˅ B) ˄ ¬BC. (A ˄ B) ˅ (¬A ˄ B)D. (A ˅ B) ˄ ¬A ˄ B5.将(2, 6, 10, 17)分别存储到某个地址区间为0~10 的哈希表中,如果哈希函数h(x) =(),将不会产生冲突,其中a mod b 表示a 除以b 的余数。

A.x mod 11B. x2 mod 11C. 2x mod 11D. ,其中下取整6.在十六进制表示法中,字母A 相当于十进制中的()。

A.9B. 10C. 15D. 167.下图中所使用的数据结构是()。

压入A 压入 B 弹出B 压入CA.哈希表B. 栈C. 队列D. 二叉树8.在Windows 资源管理器中,用鼠标右键单击一个文件时,会出现一个名为“复制”的操作选项,它的意思是()。

A. 用剪切板中的文件替换该文件B.在该文件所在文件夹中,将该文件克隆一份C.将该文件复制到剪切板,并保留原文件D.将该文件复制到剪切板,并删除原文件9.已知一棵二叉树有10 个节点,则其中至多有()个节点有2 个子节点。

c03-NOIP2013初赛答案解析

c03-NOIP2013初赛答案解析

一、单选题(15*1.5)1、A,一个字节有8个bit,32位整型变量占用4个字节,故选A。

2、A,二进制11.01转为十进制,(11.01)2 = 1*2+1+0*0.5+1*0.25 = (3.25)10 。

3、B,老和尚给小和尚讲的故事里边有故事本身,递归是函数内部调用函数本身,故选B,递归。

4、D,香农信息论鼻祖。

5、A,一定是满二叉树时拥有2个字节点的节点数最多,最下一层会有2013-1023=990个节点,于是倒数第二层会有990/2=495个节点有2个字节点,从第1层到倒数第三层共有1023-2^9=511个节点,且这些节点都是用2个子节点的节点,所以共有495+511=1006个,选A。

6、B,要使图不联通,只要其中某一个节点不连通即可,所有顶点度最少是3,所以最少需要删除3条边,选B。

7、D,此题最开始一眼扫到的时候脑子进水,跟学生将选B,O(n),实际上不是,计算F1需要1次,计算F2需要一次,计算Fn需要计算F(n-1)的次数加上F(n-2)的次数,所以其实就是计算Fn次,于是答案选择D,至于这个Fn到底是多大,数学上可以计算,它等于O(((1+sqrt(5))/2)^n).8、B,这个必须是B,没有什么好说的,中序遍历保证左边都是小于根的,右边都是大于根的,所以可以保证是一个有序序列。

9、D,A项6和17对11取余都是6发生冲突,B项10的平方和17的平方对11取余都是1发生冲突,C项6的两倍和17的两倍对11取余都是1发生冲突,D 项分别为1,2,3,4,不冲突。

10、D,IPV6地址是128位的。

谢谢网友指正!11、C,二分为6个和6个的顶点,此时边最多,有36条边。

12、B,我的学生几乎全选A去了,因为之前讲题只介绍过ASCII码,但是看到统一二字也应该想到Uni...前缀啊。

13、D,64位非零浮点数强制转换成32位浮点数,两个数会有大小上的细微差别,但不会发生符号变化,因为有专门的符号位。

信息学奥赛NOIP普及组历届试题分析演示文稿

信息学奥赛NOIP普及组历届试题分析演示文稿
第14页,共31页。
金币 (noip2015普及组第一题)
国王将金币作为工资,发放给忠诚的骑士。第一天,骑士收到一枚金币;之后两 天(第二天和第三天),每天收到两枚金币;之后三天(第四、五、六天),每 天收到三枚金币;之后四天(第七、八、九、十天),每天收到四枚金币……;
这种工资发放模式会一直这样延续下去:当连续N天每天收到N枚金币后,骑士会在 之后的连续N+1天里,每天收到N+1枚金币。 请计算在前K天里,骑士一共获得了多少金币。
输入格式: 输入文件只有1行,包含一个正整数K,表示发放金币的天数。
输出格式:
输出文件只有1行,包含一个正整数,即骑士收到的金币数。 输入输出样例
输入样例:
1000
输出样例: 29820
第15页,共31页。
螺旋方阵 (noip2014普及组第三题)
一个n行n列的螺旋矩阵可由如下方法生成: 从矩阵的左上角(第1行第1列)出发,初始时向右移动;
如果前方是未曾经过的格子,则继续前进,否则右转;重 复上述操作直至经过矩阵中所有格子。根据经过顺序,在
格子中依次填入1,2,3,....,便构成了一个螺旋矩阵。 现给出矩阵大小n以及i和j,请你求出该矩阵中第i行第j
列的数是多少。
下图是一个n=4时的螺旋矩阵。
第16页,共31页。
螺旋方阵 (noip2014普及组第三题)
请统计某个给定范围[L, R]的所有整数中,数字2出现的次数。 比如在给定范围[2, 22],数字2在数2中出现了1次,在数12 中出现了1次,在数20中出现了1次,在数21中出现了1次, 在数22中出现了2次,所以数字2在该范围内一共出现了6次。 输入格式 输入共一行,为两个正整数L和R,之间用一个空格隔开。 输出格式
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

2013年第十九届全国青少年信息学奥林匹克联赛初赛普及组 Pascal 语言试题一、单项选择题(共 20 题,每题 1.5 分,共计 30 分;每题有且仅有一个正确选项)1. 一个 32 位整型变量占用( A )个字节。

A. 4 B. 8 C. 32 D. 1282. 二进制数 11.01 在十进制下是(A )。

A.3.25 B.4.125 C. 6.25 D. 11.1253. 下面的故事与( B )算法有着异曲同工之妙。

从前有座山,山里有座庙,庙里有个老和尚在给小和尚讲故事:“从前有座山,山里有座庙,庙里有个老和尚在给小和尚讲故事:‘从前有座山,山里有座庙,庙里有个老和尚给小和尚讲故事........................’”A. 枚举B. 递归C. 贪心D. 分治4. 逻辑表达式()的值与变量 A 的真假无关。

A. (A ˅ B) ˄¬AB. (A ˅ B) ˄¬BC. (A ˄ B) ˅(¬A ˄ B)D. (A ˅ B) ˄¬A ˄5. 将(2, 6, 10, 17)分别存储到某个地址区间为 0~10 的哈希表中,如果哈希函数h(x) =( D ),将不会产生冲突,其中 a mod b 表示 a 除以 b 的余数。

A. x mod 11B. x2 mod 11C. 2x mod 11D. [X] mod 11,其中[X]表示X下取整6. 在十六进制表示法中,字母 A 相当于十进制中的( B )。

A. 9B. 10C. 15D. 167. 下图中所使用的数据结构是( B )。

8. 在 Windows 资源管理器中,用鼠标右键单击一个文件时,会出现一个名为“复制”的操作选项,它的意思是( C )。

A. 用剪切板中的文件替换该文件B. 在该文件所在文件夹中,将该文件克隆一份C. 将该文件复制到剪切板,并保留原文件D. 将该文件复制到剪切板,并删除原文件9. 已知一棵二叉树有 10 个节点,则其中至多有( A )个节点有 2 个子节点。

A. 4B. 5C. 6D. 710.在一个无向图中,如果任意两点之间都存在路径相连,则称其为连通图。

下图是一个有4 个顶点、6 条边的连通图。

若要使它不再是连通图,至少要删去其中的(c )条边。

A. 1B. 2C. 3D. 411. 二叉树的(A )第一个访问的节点是根节点。

A. 先序遍历B. 中序遍历C. 后序遍历D. 以上都是12. 以 A0 作为起点,对下面的无向图进行深度优先遍历时,遍历顺序不可能是( C )。

A. A0, A1, A2, A3B. A0, A1, A3, A2C. A0, A2, A1, A3D. A0, A3, A1,A213. IPv4 协议使用 32 位地址,随着其不断被分配,地址资源日趋枯竭。

因此,它正逐渐被使用(D )位地址的 IPv6 协议所取代。

A. 40B. 48C. 64D. 12814. (A )的平均时间复杂度为 O(n log n),其中 n 是待排序的元素个数。

A. 快速排序B. 插入排序C. 冒泡排序D. 基数排序15. 下面是根据欧几里得算法编写的函数,它所计算的是 a 和 b 的( b )。

function euclid(a, b : longint) : longint;Begin if b = 0 then euclid := a else euclid := euclid(b, a mod b);end;A. 最大公共质因子B. 最小公共质因子C. 最大公约数D. 最小公倍数16. 通常在搜索引擎中,对某个关键词加上双引号表示( C )。

A. 排除关键词,不显示任何包含该关键词的结果C. 精确搜索,只显示包含整个关键词的结果B. 将关键词分解,在搜索结果中必须包含其中的一部分D.站内搜索,只显示关键词所指向网站的内容17. 中国的国家顶级域名是( A )。

A. .cnB. .chC. .chnD. .china18. 把 64 位非零浮点数强制转换成 32 位浮点数后,不可能(d )。

A. 大于原数B. 小于原数C. 等于原数D. 与原数符号相反19. 下列程序中,正确计算 1, 2, …, 100 这 100 个自然数之和 sum (初始值为 0) 的是( a )。

20. CCFNOIP 复赛全国统一评测时使用的系统软件是( b )。

A. NOI WindowsB. NOI LinuxC. NOI Mac OSD. NOI DOS二、问题求解(共 2 题,每题 5 分,共计 10 分;每题全部答对得 5 分,没有部分分)1. 7 个同学围坐一圈,要选 2 个不相邻的作为代表,有__14______种不同的选法。

2. 某系统自称使用了一种防窃听的方式验证用户密码。

密码是 n 个数 s1, s2, …, sn ,均为 0或 1。

该系统每次随机生成 n 个数 a1, a2, …, an , 均为 0 或 1, 请用户回答(s1a1 + s2a2 + …+ snan)除以 2 的余数。

如果多次的回答总是正确,即认为掌握密码。

该系统认为,即使问答的过程被泄露,也无助于破解密码——因为用户并没有直接发送密码。

然而,事与愿违。

例如,当 n = 4 时,有人窃听了以下 5 次问答:就破解出了密码 s1 = ____0_____, s2 = ____1_____, s3 = ____1_____, s4 = ____1_____。

三、阅读程序写结果(共 4 题,每题 8 分,共计 32 分)1. Var a,b: integer;beginreadln(a, b); A. i := 1; repeat sum := sum + i; inc(i); until i > 100; B. i := 1; repeat sum := sum + i; inc(i); until i <= 100; C. i := 1; while i < 100 do begin sum := sum + i; inc(i); end; D. i := 1; while i >= 100 do begin sum := sum + i; inc(i); end;writeln(a, '+', b, '=', a+b); end.输入:3 5 输出:___3+5=8______2. Var a, b, u, i, num : integer;beginreadln(a, b, u);num := 0;for i:= a to b dobeginif (i mod u = 0) then inc(num);end;writeln(num);end.输入:1 100 15输出:____6_____3. const SIZE = 100;Var n, f, i, left, right, middle : integer; a:array[1..SIZE] of integer;beginreadln(n, f);for i := 1 to n do read(a[i]);left := 1;right := n;repeatmiddle := (left+right) div 2;if (f <= a[middle]) then right := middle Else left := middle+1;until (left >= right);writeln(left);end.输入:12 17 2 4 6 9 11 15 17 18 19 20 21 25输出:____7_____4. const SIZE = 100;Var n, ans, i, j : integer;height, num : array[1..SIZE] of integer; beginread(n);for i := 1 to n dobeginread(height[i]);num[i] := 1;for j := 1 to i-1 dobeginif ((height[j] < height[i]) and(num[j] >= num[i])) then num[i] := num[j]+1;end;end;ans := 0;for i := 1 to n dobeginif (num[i] > ans) then ans := num[i];end;writeln(ans);end.输入:62 53 11 12 4输出:_____4____四、完善程序(共 2 题,每题 14 分,共计 28 分)1. (序列重排)全局数组变量 a 定义如下:const int SIZE = 100;int a[SIZE], n;它记录着一个长度为 n 的序列 a[1], a[2], …, a[n]。

现在需要一个函数,以整数 p (1 ≤ p ≤ n)为参数,实现如下功能:将序列 a 的前 p个数与后 n –p 个数对调,且不改变这 p 个数(或 n – p 个数)之间的相对位置。

例如,长度为 5 的序列 1, 2, 3, 4, 5,当 p = 2 时重排结果为 3, 4, 5, 1, 2。

有一种朴素的算法可以实现这一需求,其时间复杂度为 O(n)、空间复杂度为 O(n):procedure swap1(p : longint);Var i : longint;b : array[1..SIZE] of longint;beginfor i := 1 to p do b[ n-p+i ] := a[i]; //(3 分)for i := p + 1 to n do b[i - p] :=a[i]; (2) ; //(3 分)for i := 1 to n do a[i] := b[i]; //(2 分)end;我们也可以用时间换空间,使用时间复杂度为 O(n2)、空间复杂度为 O(1)的算法:procedure swap2(p : longint);Var i, j, temp : longint;beginfor i := p + 1 to n dobegintemp := a[i];for j := i downto i-p+1(4) do a[j] := a[j - 1]; //(3 分)(5)a[i-p] := temp; //(3 分)end;end;2. (二叉查找树)二叉查找树具有如下性质:每个节点的值都大于其左子树上所有节点的值、小于其右子树上所有节点的值。

相关文档
最新文档