NOIP2016信息学奥赛普及组初赛C试题及答案解析较完美版

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
if (s2[i]>='a'&&s2[i]<='z')
s2[i]-='a'-'A';
if (s1==s2) cout<<"="<< endl;
else if (s1>s2) cout <<">"<< endl;
elsecout<<"<"<<endl;
return 0;
}
输出:_________
四、完善程序(共2题,每题14分,共计28分)
#define MAXN 1000000
int n, B, A, M[MAXN], C[MAXN], l, r, ans, mid;
bool check(int nn)
{
int count = 0, i, j;
i =(1);
j = 1;
while (i <= n)
{
if ((2))
count += C[j] - M[i];
#include<iostream>
using namespace std;
int main(){
int k=4,n=0;
while(n<k){
n++;
if (n%3!=0)
学习资料整理
范文范例指导参考
conntinue;
k--;
)
cout<<k<< "," << n<<endl;
return O;
(她)的朋友B分享了某张照片,那么B就可以对该照片进行评论;如果B评论了该照片,那么他(她)
的所有朋友都可以看见这个评论以及被评论的照片,但是不能对该照片进行评论(除非A也向他(她)分
享了该照片)。现在Lucia已经上传了一张照片,但是她不想让Jacob看见这张照片,那么她可以向以下
朋友()分享该照片。
int readint()
{
int num = 0; //存储读取到的整数
int negative = 0; //负数标识
char c; //存储当前读取到的字符
c = cin.get();
while ((c < '0' || c > '9') && c != '-')
c =(1);
if (c == '-')negative = 1;
return 0;
}
2.(郊游活动)有n名同学参加学校组织的郊游活动,已知学校给这n名同学的郊游总经费为A元,与此
同时第i位同学自己携带了Mi元。为了方便郊游,活动地点提供B(≥n)辆自行车供人租用,租用第j
辆自行车的价格为Cj元,每位同学可以使用自己携带的钱或者学校的郊游经费,为了方便账务管理,每
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--;
}
for (i=0;i<6;i++)
{
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输出:
钟。注意:两道不同的菜的相同步骤不可以同时进行。例如第一道菜和第二道的菜不能同时洗,也不能同
时切。那么做完三道菜的最短时间需要()分钟。
A.90B.60C.50D.40
20.参加NOI比赛,以下不能带入考场的是()。
A.钢笔B.适量的衣服C.U盘D.铅笔
二、问题求解(共2题,每题5分,共计10分;第一题全部答对得5分,没有部分分;第二题第一空2
学习资料整理
范文范例指导参考
A.Dana, Michael, EveB.Dana, Eve, Monica
C.Michael, Eve, JacobD.Micheal, Peter, Monica
19.周末小明和爸爸妈妈三个人一起想动手做三道菜。小明负责洗菜、爸爸负责切菜、妈妈负责炒菜。假
设做每道菜的顺序都是:先洗菜10分钟,然后切菜10分钟,最后炒菜10分钟。那么做一道菜需要30分
1.(读入整数)请完善下面的程序,使得程序能够读入两个int范围内的整数,并将这两个整数分别输
出,每行一个。(第一、五空2.5分,其余3分)
输入的整数之间和前后只会出现空格或者回车。输入数据保证合法。
例如:
输入:123-789
输出:123
-789
#include <iostream>
using namespace std;
分,第二空3分)
1.从一个4×4的棋盘(不可旋转)中选取不在同一行也不在同一列上的两个方格,共有_______种方法。
2.约定二叉树的根节点高度为1。一棵结点数为2016的二叉树最少有________个叶子结点;一棵结点数
为2016的二叉树最小的高度值是___________。
三、阅读程序写结果(共4题,每题8分,共计32分)
A.00101000B.01000001C.01000100D.00111000
8.与二进制小数0.1相等的八进制数是()。
A.0.8B.0.4C.0.2D.0.1
9.以下是32位机器和64位机器的区别的是()。
A.显示器不同B.硬盘大小不同
C.寻址空间不同D.输入法不同
10.以下关于字符串的判定语句中正确的是()
cout<<a[i]<<",";
cout<<endl;
return 0;
}
输出:
4. #include <iostream>
using namespace std;
int main()
{
int i,length1, length2;
string s1,s2;
s1="I have a dream.";
同,以下设置阀门的方法中,可以让果树浇上水的是()。
A.B打开,其他都关上B.AB都打开,CD都关上
C.A打开,其他都关上D.D打开,其他都关上
18.Lucia和她的朋友以及朋友的朋友都在某社交网站上注册了账号。下图是他们之间的关系图,两个人
之间有边相连代表这两个人是朋友,没有边相连代表不是朋友。这个社交网站的规则是:如果某人A向他
1.#include <iostream>
using namespace std;
int main()
{
int max, min, sum, count=0;
int tmp;
cin>>tmp;
if (tmp==0) return 0;
max=min=sum=tmp;
count++;
while (tmp!=0)
学习资料整理
范文范例指导参考
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';
for (i=0;i<length2;i++)
for (i = 1; i <= n; i++)
cin >> M[i];
for (i = 1; i <= B; i++)
cin >> C[i];
sort(M, 1, n);
sort(C, 1, B);
l = 0;
r = n;
while (l <= r)
{
mid = (l + r) / 2;
if ((4))
6.如果开始时计算机处于小写输入状态,现在有一只小老鼠反复按照CapsLock、字母键A、字母键S
和字母键D的顺序循环按键,即CapsLock、A、S、D、CapsLock、A、S、D、⋯⋯,屏幕上输出的第81个
字符是字母()。
A.AB.SC.DD.a
7.二进制数00101100和00010101的和是()。
范文范例指导参考
NOIP2016第二十二届全国青少年信息学奥林匹克联赛初赛
普及组C++语言试题
竞赛时间:2016年10月22日14:30~16:30
一、单项选择题(共20题,每题1.5分,共计30分;每题有且仅有一个正确选项)
1.以下不是微软公司出品的软件是()。
A.PowerpointB.WordC.ExcelD. Acrobat Reader
{
ans = mid;
l = mid + 1;
}
elser =(5);
}
cout << ans << endl;
return 0;
}
学习资料整理
范文范例指导参考
第二十二届全国青少年信息学奥林匹克联赛初赛
普及组参考答案
一.选择题
DCDCDCBBCADBDADBAACC
二.问题求解
2.如果256种颜色用二进制编码来表示,至少需要()位。
A.6B.7C.8D.9
3.以下不属于无线通信技术的是()。
A.蓝牙B.WiFiC.GPRSD.以太网
4.以下不是CPU生产厂商的是()。
A.IntelB.AMDC.MicrosoftD.IBM
5.以下不是存储设备的是()。
A.光盘B.磁盘C.固态硬盘D.鼠标
A.6B.10C.12D.15
12.若有如下程序段,其中s、a、b、c均己定义为整型变量,且a、c均己赋值(c大于0)。
s=a;
for (b=1;b<=c;b++)
s=s+1;
则与上述程序段修改s值的功能等价的赋值语句是()。
A. s=a+b;B. s=a+c;C. s=s+c;D. s=b+c;
13.有以下程序:
正确的填空顺序是()。
A.c,a,bB. c,b,aC.a,b,cD.b,a,c
15.设简单无向图G有16条边且每个顶点的度数都是2,则图G有()个顶点。
A.10B.12C.8D.16
16.有7个一模一样的苹果,放到3个一样的盘子中,一共有()种放法。
A.7B.8C.21D.37
17.下图表示一个果园灌溉系统,有A、B、C、D四个阀门,每个阀门可以打开或关上,所有管道粗细相
else(2);
c=cin.get();
while ((3))
{
(4);
c=cin.get();
}
if (negative == 1)(5);
return num;
}
int main()
{
学习资料整理
范文范例指导参考
int a, b;
a = readint();
b = readint();
cout<<a<<endl<<b<<endl;
2.#include <iostream>
usinபைடு நூலகம் namespace std;
int main()
{
int i=100,x=0,y=0;
while (i>0)
{
i--;
x=i%8;
if (x==1) y++;
}
cout<<y<<endl;
return 0;
}
输出:
3. #include <iostream>
A.字符串是一种特殊的线性表B.串的长度必须大于零
C.字符串不可以用数组来表示D.空格字符组成的串就是空串
11.一棵二叉树如右图所示,若采用顺序存储结构,即用一维数组元素存储该二
叉树中的结点(根结点的下标为1,若某结点的下标为i,则其左孩子位于下标2i
处、右孩子位于下标(2i+1)处),则图中所有结点的最大下标为()。
i++;
j++;
}
return(3);
}
void sort(int a[], int l, int r)
{
int i = l, j = r, x = a[(l + r) / 2], y;
while (i <= j)
{
while (a[i] < x) i++;
while (a[j] > x) j--;
if (i <= j)
{
y = a[i]; a[i] = a[j]; a[j] = y;
i++; j--;
}
}
if (i < r) sort(a, i, r);
if (l < j) sort(a, l, j);
学习资料整理
范文范例指导参考
}
int main()
{
int i;
cin >> n >> B >> A;
位同学只能为自己租用自行车,且不会借钱给他人,他们想知道最多有多少位同学能够租用到自行车。
(第四、五空2.5分,其余3分)
本题采用二分法。对于区间[l, r],我们取中间点mid并判断租用到自行车的人数能否达到mid。判断
的过程是利用贪心算法实现的。
#include <iostream>
using namespace std;
)
程序运行后的输出结果是()。
A.2,2B.2,3C.3,2D.3,3
14.给定含有n个不同的数的数组L=<xi,x2,...,,Xn>。如果L中存在xi(1<i<n)使得
x1<x2<...<xi-1<xi>xi+1>...>xn,,则称L是单峰的,并称xi是L的“峰顶”。现在己知L是单峰的,请
把a-c三行代码补全到算法中使得算法正确找到L的峰顶。
相关文档
最新文档