noip2015普及组初赛试题+答案

合集下载

NOIP2015初赛普及组C++题目及答案 (2)

NOIP2015初赛普及组C++题目及答案 (2)

选手注意:第二十一届全国青少年信息学奥林匹克联赛初赛普及组C++语言试题竞赛时间:2015年10月11日14:3016:30试题纸共有7页,答题纸共有2页,满分100分。

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

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

一、单项选择题(共20题,每题分,共计30分;每题有且仅有一个正确选项)1. 1MB等于()。

字节字节字节字节2. 在PC机中,PENTIUM (奔腾)、酷睿、赛扬等是指()。

A.生产厂家名称B.硬盘的型号的型号 D.显示器的型号3. 操作系统的作用是()。

A.把源程序译成目标程序B.便于进行数据管理C. 控制和管理系统资源D.实现硬件之间的连接4. 在计算机内部用来传送、存贮、加工处理的数据或指令都是以()形式进行的。

A.二进制码B.八进制码C.十进制码D.智能拼音码5. 下列说法正确的是()。

A. CPU的主要任务是执行数据运算和程序控制B. 存储器具有记忆能力,其中信息任何时候都不会丢失C. 两个显示器屏幕尺寸相同,则它们的分辨率必定相同D. 个人用户只能使用Wifi的方式连接到Internet6. 二进制数00100100和00010100的和是()。

A. 00101000 010000017. 与二进制小数相等的十六进制数是()A. 0.8 0.4 所谓的“中断”是指()。

A. 操作系统随意停止一个程序的运行B. 当出现需要时,CPU暂时停止当前程序的执行转而执行处理新情况的过程C. 因停机而停止一个程序的运行D. 电脑死机9. 计算机病毐是()。

A. 通过计算机传播的危害人体健康的一种病毒B. 人为制造的能够侵入计算机系统并给计算机带来故障的程序或指令集合C. 一种由于计算机元器件老化而产生的对生态环境有害的物质D. 利用计算机的海量高速运算能力而研制出来的用于疾病预防的新型病毒可以用于()。

A.远程传输文件B.发送电子邮件C.浏览网页D.网上聊天11.下面哪种软件不属于即时通信软件()。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

NOIP2011-1.#include<iostream>using 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;//此时ans值应为(10+20)*11/2,即165 return 0;}输入: 10 20输出: 165NOIP2011-2.#include<iostream>#include<string>using namespace std;int main(){string map= "2223334445556667778889999";//数组中元素位置是从0开始计数的string tel;int i;cin>>tel;for(i=0;i<tel.length();i++)if((tel[i]>='0') && (tel[i]<='9') )//如果输入的tel是0~9,直接输出tel值cout<<tel[i];else if( (tel[i]>='A') && (tel[i]<='Z'))cout<<map[tel[i]-'A'];//如果输入的tel是A~Z,则输出一个map数组中对应的元素//输出元素在map数组中位置为“输入字母与A的ASCII码的差值”//如果输入的是其他字符,比如“-”,则不符合循环条件,无输出cout<<endl;return 0;}输入: CCF-NOIP-2011输出: 22366472011NOIP2011-3.#include<iostream>#include<cstring>using 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;//输出循环结束时i 的值(不是sum的值)return 0;}输入:114 5 6 6 4 3 32 3 2 1输出: 3NOIP2011-4.#include<iostream>using 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++)//递归函数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)<<endl; //输出函数值,即sum值return 0;}输入: 7 4输出: 20NOIP2012-1.#include<iostream> 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;return 0;}输入: 1 2 5输出: 10NOIP2012-2.#include<iostream>using 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;return 0;}输入: 18输出: 6NOIP2012-3.#include<iostream>using 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)<<endl; return 0;}输入:52-1 42 -1 -2-1 6 4 03 2 -1 5 8输出: 14NOIP2012-4.#include<iostream>#include<string> 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);//1,ans+j<8,输出s[7+0];2,ans+j=8,输出s[8-8];3,ans+j=9,输出s[9-8]……cout<<endl;return 0;}输入: CBBADADA输出: ACBBADADNOIP2013-1.#include<iostream>using namespace std;int main(){inta, b;cin>>a>>b;cout<<a<<"+"<<b<<"="<<a+b<<endl;return 0;}//输出:3+5=8输入: 3 5输出: 3+5=8NOIP2013-2.#include<iostream>using 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;return 0;}输入: 1 100 15输出: 6NOIP2013-3.#include<iostream>using 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<a[9],则right=9 // middle=8,17<a[8],则right=8// middle=7,17=a[7],则right=7 // left=right,直接输出leftcout<<left<<endl;return 0;}输入:12 172 4 6 9 11 15 1718 19 20 21 25 输出: 7NOIP2013-4.#include<iostream>using 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;return 0;}输入:62 53 11 12 4输出: 4不懂算法?跟踪变量!列表模拟!遇到递归?画树形图!注意边界!找到规律了?还会流程图?恭喜你,32分到手了!NOIP2014-1.#include <iostream>using 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.#include <iostream>using 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 <iostream>#include <string>using 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.#include <iostream>using 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.#include <iostream>using namespace std;int main(){int a, b, c;a = 1;b = 2;c = 3;if(a > b) //不符合循环条件,不执行if(a > c)cout << a << ' ';elsecout << b << ' ';cout << c << endl;return 0;}输出: 3NOIP2015-2.#include <iostream>using namespace std;struct point{int x;int y;}; //声明结构体类型pointint main(){int a, b, c;struct EX{int a;int b;point c;}e; //声明结构体类型EXe.a = 1; //结构体变量e中变量ae.b = 2; //结构体变量e中变量be.c.x = e.a + e.b;//结构体变量e中的结构体变量c中的变量x e.c.y = e.a * e.b;//结构体变量e中的结构体变量c中的变量y cout << e.c.x << ','<< e.c.y << endl; return 0;}输出: 3,2NOIP2015-3.#include <iostream>#include <string>using namespace std;int main(){string str;int i;int count;count = 0;getline(cin, str);for(i = 0; i < str.length();i++)if(str[i] >= 'a' &&str[i] <= 'z')count++; //统计字符串中小写字母数量cout << "It has "<< count << " lowercases" << endl; return 0;}输入: NOI2016will be held in Mian Yang.输出: It has 18 lowercasesNOIP2015-4.#include <iostream>#include <string>using namespace std;void fun(char *a, char *b){a = b;(*a)++;} //指针题int main(){char c1, c2, *p1, *p2;c1 = 'A';c2 = 'a';p1 = &c1;p2 = &c2;fun(p1, p2);//p1=p2=&c2,把c2的地址赋值给指针变量p1 //p1++,则有&’a’+1=&’b’, 所以,c2=’b’,cout << c1 << c2<< endl;return 0;}输出: AbNOIP2016-1.#include <iostream>using namespace std;int main(){int max, min, sum, count = 0;int tmp;cin>> tmp;if(tmp == 0)return0; //如果输入的数字是0,程序退出max= min = sum = tmp;count++;while(tmp != 0) {cin>> tmp;if(tmp != 0) {sum += tmp; //求和count++;//计数if(tmp > max)max = tmp; //找出最大值if(tmp < min)min = tmp; //找出最小值}}cout<< max << "," << min << ","<< sum / count << endl; //输出“最大值, 最小值, 平均值”return 0;}输入: 1 2 3 4 5 6 0 7输出: 6,1,3NOIP2016-2.#include <iostream>using namespace std;int main(){int i = 100, x = 0, y = 0;while (i > 0) {i--;x = i % 8;if (x == 1)y++;} //统计1-100中有多少数是“8的倍数+1”cout << y << endl;return 0;}输出: 13NOIP2016-3.#include <iostream>using namespace std;int main(){int a[6] = {1, 2, 3, 4, 5, 6};int pi = 0;int pj = 5;int t , i;while(pi < pj) {t =a[pi];a[pi]= a[pj];a[pj]= t;pi++;pj--;} //把数组a[6]中的数字顺序颠倒过来for(i = 0; i < 6; i++)cout<< a[i] << ",";cout<< endl;return 0;}输出: 6,5,4,3,2,1,NOIP2016-4.#include <iostream>using namespace std;int main(){int i, length1, length2; strings1, s2;s1= "I have a dream.";s2 = "I Have A Dream."; length1 = s1.size();length2 = s2.size();for (i = 0; i < length1; i++)if (s1[i] >= 'a' && s1[i]<= 'z') s1[i] -= 'a' - 'A';//把s1里的小写字母全部换成大写for (i = 0; i < length2; i++)if (s2[i] >= 'a' && s2[i]<= 'z') s2[i] -= 'a' - 'A';//把s2里的小写字母全部换成大写if (s1 == s2)cout << "=" <<endl;else if (s1 > s2)cout << ">" <<endl;elsecout << "<" <<endl;return 0;}输出: =。

2015年信息学奥赛NOIP普及组初赛试题及参考答案

2015年信息学奥赛NOIP普及组初赛试题及参考答案
│ 26
│ 20
一、选择题
⒛在 NOI 系列赛事中参赛选手必须使用累承办单位统一提供的设备。下列物品中不允 许选手自带的是( )。 A.鼠标 B.笔 C.身份证 D.准考证
│ 21
二、问题解答
⒈重新排列 1234 使得每一个数字都不在原来的位置上,一 共有________种排法。
│ 22
二、问题解答
⒉一棵结点数为 2015 的二叉树最多有______个叶子结点。
│ 18
一、选择题
⒙下列选项中不属于视频文件格式的是( )。 A.TXT B.AVI C.MOV D.RMVB
│ 19
一、选择题
⒚设某算法的计算时间表示为递推关系式 T(n)=T(n-1)+n(n 为正整数)及 T(0)=1,则该算法的时间复 杂度为( )。 A.O(logn) B.O(nlogn) C.O(n) D.O(n2)
⒌下列说法正确的是( )。 A.CPU 的主要任务是执行数据运算和程序控制 B.存储器具有记忆能力,其中信息任何时候都不会丢失 C.两个显示 Wifi 的方式连接到 Internet
│6
一、选择题
⒍二进制数 00100100 和 00010100 的和是( )。 A.00101000 B.01100111 C.01000100 D.00111000
│ 14
一、选择题
⒕线性表若采用链表存储结构,要求内存中可用存储单元地址( )。 A.必须连续 B.部分地址必须连续 C.一定不连续 D.连续不连续均可
│ 15
一、选择题
⒖今有一空栈 S,对下列待进栈的数据元素序列 a,b,c,d,e,f 依次进行进栈,进栈,出栈,进栈,进栈,出栈的操作,则此操作 完成后,栈 S 的栈顶元素为 A.f B.c C.a D.b

noip2015初赛普及组答案分析

noip2015初赛普及组答案分析

单项选择题1.A。

计算机内部的用来传送、存贮、加工处理的数据或指令都是以二进制形式进行的。

2.A。

写这题我用的是排除法,B选项显然不对,内存在断电后数据会丢失,C选项也是,屏幕的分辨率是可以手动调整的,D选项,当年我们都用宽带连接Internet的。

3.A。

二进制小数转化为十六进制小数时,每四位二进制数转化为以为十六进制数,故0.10002可以转化为0.816。

4.D。

我的做法是将每个数都化为二进制形式,因为十六进制数和八进制数转化为二进制数很容易,最后求得答案是D。

5.D。

在链表中,每个结点包括两个部分:一个是存储数据元素的数据域,另一个是存储下一个结点地址的指针域,结点与结点之间是用指针连接的,故地址不必连续。

6.B。

模拟一下进栈出栈的过程就行了,共有6次操作:进栈,进栈,出栈,进栈,进栈,出栈,每次操作后栈内元素分别为”a”,”ab”,”a”,”a b c”,”a b c d”,”a b c”,故最后栈顶元素是c。

7.B。

前序遍历的顺序是”根->左->右”,后序遍历的顺序是”左->右->根”,对照四个答案,只有B能满足题目要求。

8.B。

我们知道树高为n的满二叉树的结点个数为2n−1,当树高为5时结点个数为31,当树高为6时结点个数为63,故答案是B。

9.B。

画一张图的事情,就不说了。

10.D。

由递推公式可得T(n)=1+(1+2+…+n)=n2+n2+1,故算法时间的复杂度为O(n2)。

11.D。

用vector存边,由一个顶点的边引到另一个顶点,再不断引出别的顶点,过程中每个顶点和每条边都只用到一遍,故复杂度为O(n+e)。

12.A。

哈夫曼算法用来求哈夫曼树,此树的特点就是引出的路程最短,求的过程运用到贪心思想,具体的请参考一下别的文章。

13.D。

llink和rlink分别指向前驱和后继,不妨设p的前驱为o,在未插入前p->llink就是o,o->rlink就是p,插入时,先将o->rlink赋为q,再将q->rlink赋为p,然后将q->llink赋为o,最后将p->llink赋为q。

noip2015普及组题解最终

noip2015普及组题解最终

本次试题前2题比较简单,34题容易拿到部分分,但满分有难度1. 金币(coin.cpp/c/pas)【问题描述】国王将金币作为工资,发放给忠诚的骑士。

第一天,骑士收到一枚金币;之后两天(第二天和第三天),每天收到两枚金币;之后三天(第四、五、六天),每天收到三枚金币;之后四天(第七、八、九、十天),每天收到四枚金币……;这种工资发放模式会一直这样延续下去:当连续N天每天收到N枚金币后,骑士会在之后的连续N+1天里,每天收到N+1枚金币。

请计算在前K天里,骑士一共获得了多少金币。

【输入格式】输入文件名为coin.in。

输入文件只有1行,包含一个正整数K,表示发放金币的天数。

【输出格式】输出文件名为coin.out。

输出文件只有1行,包含一个正整数,即骑士收到的金币数。

【样例输入】coin.in6【样例输出】coin.out14【输入输出样例1说明】骑士第一天收到一枚金币;第二天和第三天,每天收到两枚金币;第四、五、六天,每天收到三枚金币。

因此一共收到1+2+2+3+3+3=14枚金币。

【数据范围】对于100%的数据,1 ≤K ≤10,000。

【题解】关注到K的范围是10000后,就不需要考虑数学公式,纯模拟就行,考点就是for循环了var i,j,count,n,ans:longint;beginassign(input,'coin.in');reset(input);assign(output,'coin.out');rewrite(output);readln(n);for i:=1 to 1000 dofor j:=1 to i dobegininc(count);inc(ans,i);if count=n then beginwriteln(ans);close(input);close(output);halt;end;end;end.2.扫雷游戏(mine.cpp/c/pas)【问题描述】扫雷游戏是一款十分经典的单机小游戏。

NOIP普及组初赛及答案Pascal

NOIP普及组初赛及答案Pascal

第十八届全国青少年信息学奥林匹克联赛初赛(普及组Pascal语言试题)选手注意:试题纸共有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.十5.()不属于操作系统。

A.WindowsB.DOSD.十二C.PhotoshopD.NOI Linux6.如果一棵二叉树的中序遍历是BAC,那么它的先序遍历不可能是()。

A.ABCB.CBAC.ACBD.BAC7.目前个人电脑的()市场占有率最靠前的厂商包括Intel、AMD等公司。

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

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

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

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

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

noip普及组初赛试题及答案

noip普及组初赛试题及答案

noip普及组初赛试题及答案一、选择题(每题5分,共50分)1. 在计算机系统中,CPU的中文意思是什么?A. 中央处理器B. 存储器C. 输入输出设备D. 操作系统答案:A2. 下列关于二进制数的描述,错误的是?A. 二进制数只有0和1两个数字B. 二进制数的每一位代表2的幂次C. 二进制数的运算规则与十进制数相同D. 二进制数可以表示计算机中的数据答案:C3. 在编程语言中,用于控制程序流程的语句是?A. 赋值语句B. 条件语句C. 循环语句D. 所有选项答案:D4. 下列哪种数据结构不属于线性数据结构?A. 数组B. 链表C. 树D. 图答案:D5. 在计算机程序中,用于存储临时数据的存储区域是?A. 硬盘B. 内存C. 缓存D. 寄存器答案:B6. 以下哪个算法的时间复杂度是O(n^2)?A. 快速排序B. 归并排序C. 插入排序D. 线性查找答案:C7. 在数据库中,用于存储数据的表之间的关系称为?A. 索引B. 视图C. 外键D. 触发器答案:C8. 下列关于递归函数的描述,正确的是?A. 递归函数不能包含循环B. 递归函数必须有终止条件C. 递归函数可以无限递归D. 递归函数可以没有递归调用答案:B9. 在操作系统中,用于管理内存的机制是?A. 文件系统B. 进程调度C. 内存管理D. 网络通信答案:C10. 在网络通信中,TCP协议的主要作用是?A. 传输文件B. 建立连接C. 错误检测D. 路由选择答案:B二、填空题(每题5分,共30分)1. 在计算机中,一个字节由____位二进制数组成。

答案:82. 一个完整的算法应该包含输入、____和输出三个基本部分。

答案:处理3. 在编程中,____是一种常用的数据结构,用于存储具有相同数据类型的元素集合。

答案:数组4. 在面向对象编程中,封装、继承和____是三个基本特征。

答案:多态5. 在关系型数据库中,____是一种特殊的表,用于定义表之间的关系。

noip普及组初赛试题及答案

noip普及组初赛试题及答案

noip普及组初赛试题及答案1.在8位二进制补码中,表示的数是十进制下的( )。

A。

43 B。

-85 C。

-43 D。

-842.计算机存储数据的基本单位是( )。

A。

bit B。

Byte C。

GB D。

KB3.下列协议中与电子邮件无关的是( )。

A。

POP3 B。

SMTP C。

WTO D。

IMAP4.分辨率为800x600、16位色的位图,存储图像信息所需的空间为( )。

A。

900KB B。

1200KB C。

2400KB D。

2880KB5.计算机应用的最早领域是( )。

A。

数值计算 B。

人工智能 C。

机器人 D。

过程控制6.下列不属于面向对象程序设计语言的是( )。

A。

C B。

C++ C。

Java D。

C#7.NOI的中文意思是( )。

A。

中国信息学联赛 B。

全国青少年信息学奥林匹克竞赛C。

中国青少年信息学奥林匹克竞赛 D。

XXX8.2017年10月1日是星期日,1999年10月1日是( )。

A。

星期三 B。

星期日 C。

星期五 D。

星期二9.甲、乙、丙三位同学选修课程,从4门课程中,甲选修2门,乙、丙各选修3门,则不同的选修方案共有( )种。

A。

36 B。

48 C。

96 D。

19210.设G是有n个结点、m条边(n ≤m)的连通图,必须删去G的( )条边,才能使得G变成一棵树。

A。

n-1 B。

m-n C。

m+n+1 D。

m+1-n11.对于给定的序列{ak},我们把(i。

j)称为逆序对当且仅当i。

aj。

那么序列1.7.2.3.5.4的逆序对数为()个。

A。

4 B。

5 C。

6 D。

712.表达式a * (b + c) * d的后缀形式是()。

A。

abcd*+* B。

abc+*d* C。

a*bc+*d D。

b+c*a*d13.向一个栈顶指针为hs的链式栈中插入一个指针s指向的结点时,应执行( )。

A。

hs->next=s。

s->next=hs。

hs=s;B。

s->next=hs。

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++语言试题竞赛时间:2015 年10 月11 日14:30-16:30一、单项选择题(共20 题,每题1.5 分,共计30 分;每题有且仅有一个正确选项)⒈1MB 等于( )。

A.10000 字节B.1024 字节C.1000×1000字节D.1024×1024字节⒉在PC 机中,PENTIUM(奔腾)、酷睿、赛扬等是指( )。

A.生产厂家名称 B.硬盘的型号 C.CPU 的型号 D.显示器的型号⒊操作系统的作用是( )。

A.把源程序译成目标程序B.便于进行数据管理C.控制和管理系统资源D.实现硬件之间的连接⒋在计算机内部用来传送、存贮、加工处理的数据或指令都是以( )形式进行的。

A.二进制码B.八进制码C.十进制码D.智能拼音码⒌下列说法正确的是( )。

A.CPU 的主要任务是执行数据运算和程序控制B.存储器具有记忆能力,其中信息任何时候都不会丢失C.两个显示器屏幕尺寸相同,则它们的分辨率必定相同D.个人用户只能使用Wifi 的方式连接到Internet⒍二进制数00100100 和00010100 的和是( )。

A.00101000B.01100111C.01000100D.00111000⒎与二进制小数0.1 相等的十六进制数是( )。

A.0.8B.0.4C.0.2D.0.1⒏所谓的“中断”是指( )。

A.操作系统随意停止一个程序的运行B.当出现需要时,CPU 暂时停止当前程序的执行转而执行处理新情况的过程C.因停机而停止一个程序的运行D.电脑死机⒐计算机病毒是( )。

A.通过计算机传播的危害人体健康的一种病毒B.人为制造的能够侵入计算机系统并给计算机带来故障的程序或指令集合C.一种由于计算机元器件老化而产生的对生态环境有害的物质D.利用计算机的海量高速运算能力而研制出来的用于疾病预防的新型病毒⒑FTP 可以用于( )。

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. 题目:请简述什么是二叉树,并给出二叉树的两种主要遍历方式。

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

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

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

NOIP2015年初赛普和组C 题目和答案解析

NOIP2015年初赛普和组C  题目和答案解析

第二十届全国青少年信息学奥林匹克联赛初赛普及组C++语言试题2014年一、快单项选择题(共20题,每题1.5分,共计30分;每题有且仅有一个正确选项)⒈以下哪个是面向对象的高级语言( )。

A.汇编语言B.C++C.FortranD.Basic⒉1TB代表的字节数是( )。

A.2的10次方B.2的20次方C.2的30次方D.2的40次方⒊二进制数00100100和00010101的和是( )。

A.00101000B.001010100C.01000101D.00111001⒋以下哪一种设备属于输出设备( )。

A.扫描仪B.键盘C.鼠标D.打印机⒌下列对操作系统功能的描述最为完整的是( )。

A.负责外设与主机之间的信息交换B.负责诊断机器的故障C.控制和管理计算机系统的各种硬件和软件资源的使用D.将没有程序编译成目标程序⒍CPU、存储器、I/O设备是通过( )连接起来的。

A.接口B.总线C.控制线D.系统文件⒎断电后会丢失数据的存储器是( )。

A.RAMB.ROMC.硬盘D.光盘⒏以下哪一种是属于电子邮件收发的协议( )。

A.SMTPB.UDPC.P2PD.FTP⒐下列选项中不属于图像格式的是( )。

A.JPEG格式B.TXT格式C.GIF格式D.PNG格式⒑链表不具有的特点是( )。

A.不必事物估计存储空间B.可随机访问任一元素C.插入删除不需要移动元素D.所需空间与线性表长度成正比⒒下列各无符号十进制整数中,能用八位二进制表示的数中最大的是( )。

A.296B.133C.256D.199⒓下列几个32位IP地址中,书写错误的是( )。

A.162.105.135.27B.192.168.0.1C.256.256.129.1D.10.0.0.1⒔要求以下程序的功能是计算:s=1+1/2+1/3+...+1/10。

#include <iostream>using namespace std;int main(){int n;float s;s = 1.0;for(n = 10; n > 1; n--)s = s + 1 / n;cout << s << endl;return 0;}程序运行后输出结果错误,导致错误结果的程序行是( )。

NOIP普及组初赛完善题:看最近六年有无规律可循?

NOIP普及组初赛完善题:看最近六年有无规律可循?

NOIP普及组初赛完善题:看最近六年有无规律可循?完善程序,每年两题,每题每空2-4分,共28分。

【解题步骤】1、仔细读题,尤其是题目给你的解题思路:解决什么问题?用的什么算法?输入输出是什么?……2、要知道变量的含义,也可通过变量单词的意思知道,比如sum 表示和,que表示队列等等。

3、在充分了解前两点的基础上,先根据自己的想法大致想想:如果让你实现程序,你会怎么做。

4、通读程序,理顺程序结构,千万不要因为程序很长而觉得气馁,有时程序越长,填空越简单。

5、按照程序执行的顺序做,遇到难的先放一边,继续往下做。

有些空格很简单,一下就能看出来的。

6、到这步为止,程序大概意图就知道了,然后就是填比较难的几格了。

这一点就靠你对程序的理解了。

7、填完了以后,再执行一遍程序,有样例就结合样例,没样例就自己造数据模拟。

【解题技巧】1、变量初始化:这个得结合后面的运算确定,不过有些也很简单,如sum=0之类的。

2、for循环初、终值:如果是嵌套的循环,可结合父循环或子循环确定。

3、更新最优解:比较或赋值。

4、要填的空格与某句对应,这样的例子在下面能找到很多。

NOIP2011-1.子矩阵给输入一个n1*m1 的矩阵a,和n2*m2的矩阵b ,问a 中是否存在子矩阵和b 相等。

若存在,输出所有子矩阵左上角的坐标:若不存在输出“There isno answer ”。

#include<iostream>using namespace std;const int SIZE = 50;int n1,m1,n2,m2,a[SIZE][SIZE],b[SIZE][SIZE];int main(){int i,j,k1,k2;bool good ,haveAns;cin>>n1>>m1;for(i=1;i<=n1;i++)for(j=1;j<=m1;j++)cin>>a[i][j];cin>>n2>>m2;for(i=1;i<=n2;i++)for(j=1;j<=m2;j++)cin>>b[i][j];haveAns=false;for(i=1;i<=n1-n2+1;i++)for(j=1;j<=m1-m2+1;j++){good=true;for(k1=1;k1<=n2;k1++)for(k2=1;k2<=m2;k2++){if(a[i+k1-1][j+k2-1]!=b[k1][k2])good=false;}if(good){cout<<i<<''<<j<<endl;haveAns=true;}}if(!haveAns)cout<<"Thereis no answer"<<endl;return 0;}NOIP2011-2. 大整数开方输入一个正整数n ( 1 ≤n≤10^100),试用二分法计算它的平方根的整数部分。

学科竞赛-noip2015普及组初赛试题+答案

学科竞赛-noip2015普及组初赛试题+答案

noip2015普及组初赛试题+答案NOIP2015第二十一届全国青少年信息学奥林匹克联赛初赛普及组C++语言试题竞赛时间:2015年10月11日14:30~16:30选手注意:1、试题纸共有5 页,答题纸共有2 页,满分100 分。

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

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

一、单项选择题(共20题,每题1.5分,共计30分;每题有且仅有一个正确选项)1. 1MB 等于()。

A. 1000 字节B. 1024 字节C.1000 X 1000 字节D. 1024 X 1024 字节2. 在P C 机中,PENTIUM (奔腾)、酷睿、赛扬等是指()。

A.生产厂家名称B.硬盘的型号C. CPU 的型号D.显示器的型号3. 操作系统的作用是()。

A.把源程序译成目标程序B.便于进行数据管理C. 控制和管理系统资源D.实现硬件之间的连接4. 在计算机内部用来传送、存贮、加工处理的数据或指令都是以()形式进行的。

A. 二进制码B.八进制码C.十进制码D.智能拼音码5. 下列说法正确的是()。

A. CPU 的主要任务是执行数据运算和程序控制B. 存储器具有记忆能力,其中信息任何时候都不会丢失C. 两个显示器屏幕尺寸相同,则它们的分辨率必定相同D. 个人用户只能使用W ifi 的方式连接到I nternet6. 二进制数00100100 和00010100 的和是()。

A. 00101000B. 01000001C. 01000100D. 001110007. 与二进制小数0.1 相等的十六进制数是()A. 0.8B. 0.4C. 0.2D. 0.18. 所谓的“中断”是指()。

A. 操作系统随意停止一个程序的运行B. 当出现需要时,CPU 暂时停止当前程序的执行转而执行处理新情况的过程C. 因停机而停止一个程序的运行D. 电脑死机9. 计算机病毐是()。

noip普及组初赛试题及答案

noip普及组初赛试题及答案

noip普及组初赛试题及答案一、选择题(每题5分,共50分)1. 在计算机系统中,CPU的中文意思是什么?A. 中央处理器B. 存储器C. 输入输出设备D. 操作系统答案:A2. 下列关于二进制数的描述,错误的是?A. 二进制数只有0和1两个数字B. 二进制数的每一位代表2的幂次C. 二进制数的运算规则与十进制数相同D. 二进制数可以表示计算机中的数据答案:C3. 在编程语言中,用于控制程序流程的语句是?A. 赋值语句B. 条件语句C. 循环语句D. 所有选项答案:D4. 下列哪种数据结构不属于线性数据结构?A. 数组B. 链表C. 树D. 图答案:D5. 在计算机程序中,用于存储临时数据的存储区域是?A. 硬盘B. 内存C. 缓存D. 寄存器答案:B6. 以下哪个算法的时间复杂度是O(n^2)?A. 快速排序B. 归并排序C. 插入排序D. 线性查找答案:C7. 在数据库中,用于存储数据的表之间的关系称为?A. 索引B. 视图C. 外键D. 触发器答案:C8. 下列关于递归函数的描述,正确的是?A. 递归函数不能包含循环B. 递归函数必须有终止条件C. 递归函数可以无限递归D. 递归函数可以没有递归调用答案:B9. 在操作系统中,用于管理内存的机制是?A. 文件系统B. 进程调度C. 内存管理D. 网络通信答案:C10. 在网络通信中,TCP协议的主要作用是?A. 传输文件B. 建立连接C. 错误检测D. 路由选择答案:B二、填空题(每题5分,共30分)1. 在计算机中,一个字节由____位二进制数组成。

答案:82. 一个完整的算法应该包含输入、____和输出三个基本部分。

答案:处理3. 在编程中,____是一种常用的数据结构,用于存储具有相同数据类型的元素集合。

答案:数组4. 在面向对象编程中,封装、继承和____是三个基本特征。

答案:多态5. 在关系型数据库中,____是一种特殊的表,用于定义表之间的关系。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

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

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

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

一、单项选择题(共 20 题,每题 1.5 分,共计 30 分;每题有且仅有一个正确选项)1. 1M B 等于( 。

A. 1000 字节 B. 1024 字节 C.1000 X 1000 字节 D. 1024 X 1024 字节2. 在P C 机中,P E N T I U M (、酷睿、赛扬等是指( 。

A.生产厂家名称 B.硬盘的型号 C. CPU 的型号 D.显示器的型号3. 操作系统的作用是( 。

A.把源程序译成目标程序 B.便于进行数据管理 C. 控制和管理系统资源 D.实现硬件之间的连接4. 在计算机内部用来传送、存贮、加工处理的数据或指令都是以( )形式进行的。

A. 二进制码 B.八进制码 C.十进制码 D.智能拼音码5. 下列说法正确的是(。

A. CPU 的主要任务是执行数据运算和程序控制 B. 存储器具有记忆能力,其中信息任何时候都不会丢失 C. 两个显示器屏幕尺寸相同,则它们的分辨率必定相同 D. 个人用户只能使用 W ifi 的方式连接到 I nternet6.二进制数 00100100 和00010100 的和是( 。

A. 00101000 B. 01000001 C. 01000100 D. 001110007. 与二进制小数 0.1 相等的十六进制数是( ) A. 0.8 B. 0.4 C. 0.2 D. 0.18. 所谓的“中断”是指( 。

A. 操作系统随意停止一个程序的运行 B. 当出现需要时,CPU 暂时停止当前程序的执行转而执行处理新情况的过程 C. 因停机而停止一个程序的运行 D. 电脑死机9. 计算机病毐是( 。

A. 通过计算机传播的危害人体健康的一种病毒 B. 人为制造的能够侵入计算机系统并给计算机带来故障的程序或指令集合 C. 一种由于计算机元器件老化而产生的对生态环境有害的物质 D. 利用计算机的海量高速运算能力而研制出来的用于疾病预防的新型病毒 10. F T P 可以用于( 。

A.远程传输文件 B.发送电子邮件 C.浏览网页 D.网上聊天 11.下面哪种软件不属于即时通信软 A. QQ B. MSN C.微信 D. P2P 12. 6 个顶点的连通图的最小生A. 6B. 5C. 7D. 4 13. 链表具备的特点是( A. 可随机访问任何一个元素 B. 插入、删除操作不需要移动元素 C. 无需事先估计存储空间大小 D. 所需存储空间与存储元素个数成正比 14. 线性表若采用链表存储结构,要求内存中可用存储单元地址( ) A.必须连续 B.部分地址必须连续 C. 一定不连续 D.连续不连续均可 15. 今有一空栈 S ,对下列待进栈的数据元素序列 a ,b,c,d,e,f 依次进行进栈,进栈,出栈,进栈,进 栈,出栈的操作,则此 A. f B. c C. a D. b 16. 前序 A. 根结点无左子树的二叉树 B. 根结点无右子树的二叉树 C. 只有根结点的二叉树或非叶子结点只有左子树的二叉树 D. 只有根结点的二叉树或非叶子结点只有右子树的二叉树A. 5B. 6C. 7D. 8 18 .下列选项中不属于视频文件格式的是(A. TXT B. AVI C. MOV D. RMVB19. 设某算法的计算时间表示为递推关系式T(n)=T(n-1)+n(n 为正整数)及T(0) = 1,则该算法的时间复杂度为(A. O(logn) B. O(n log n) C. O(n) D. O(n2)2 0 .在N O I 系列赛事中参赛选手必须使用由承办单位统一提供的设备。

下列物品中不允许选手自带的A.鼠标 B.笔 C.身份证 D.准考证二、问题求解(共2题,每题5分,共计10分;每题全部答对得5分,没有部分分)1. 重新排列1234 使得每一个数字都不在原来的位置上,一共9种排法。

2. —棵结点数为2015 的二叉树最多1008个叶子结点。

三、阅读程序写结果(共4题,每题8分,共计32分)1.#include<iostream>using namespacestd; int main() {int a,b,c;a=1;b=2;c=3;if (a > c){if(a>c)cout << a <<" ";else cout << b <<" ";}cout << c << endl;return 0;}输出:32.#include <iostream>using namespace std;struct point {int x;int y;};int main() {struct EX { inta; int b;point c;} e;e.a=1;e.b=2;e.c.x = e.a + e.b;e.c.y = e.a * e.b;cout << e.c.x << ","<< e.c.y <<endl;return 0; }输出:3,23.#include <iostream>#include <string>using namespacestd; int main() {string str;int i;int count;count = 0;getline(cin,str);for (i = 0; i < str.length(); i++) {if(str[i] >= 'a' && str[i] <= 'z')count++;}cout << "It has " << count << " lowercases" << endl;return 0;} 输入:NOI2016 will be held in Mian Yang.输出:It has 18 lowercases4.#include <iostream>using namespace std;void fun(char *a, char *b) {a = b;(*a)++;}int main() {char cl, c2, *p1, *p2;cl = 'A'; c2 = 'a'; p1 = &cl; p2 = &c2; fun(p1, p2); cout << cl << c2 << endl;return 0;}输出:Ab四、完善程序(共 2 题,每题 14 分,共计 28 分)1.(打例如,S M TW T F S1 2 34 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 2425 26 27 28 29 30 31#include <iostream> using namespace std;const int dayNum[]= {-l, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}; int mj offset, i;int main() {cin >> m;cout << " S\tM\tT\tW\tT\tF\tS " endl; // '\t'为 TAB 制表符offset=4; for (i = 1; i < m; i++)offset = (offset+dayNum[i])%7;for (i = 0; i < offset; i++)cout << '\t';for (i = 1; i <= dayNum[m];i++) { cout <<i ;if (i == dayNum[m] ||(offset+i)%7== 0)cout << endl;else cout << '\t'; }return 0;}2. (中位数)给定 n (n 为奇数且小于 1000)个整数,整数的范围在 0〜m (0 < m < 231)之间,请使用二分法求这 n个整数的中位数。

所谓中位数,是分,其余 3 分)#include <iostream>using namespace std;const int MAXN = 1000;int n, i, lbound, rbound, mid, m, count;int x[MAXN];int main(){cin >> n >> m;for (i = 0; i < n; ++i)cin >> x[i];lbound=0;rbound=m; while (lbound<rbound) {mid = (lbound + rbound )/2;count=0;for (i = 0; i < n; i++) if (mid<x[i] )count++;if (count > n / 2) lbound = mid + 1;elserbound=mid ;}cout << rbound << endl;return 0;}。

相关文档
最新文档