试卷 NOIP 2010 普及组初赛试题
NOIP 2010 普及组初赛试题
单项选择题
第 1 题    单选题

浮点数2E+03表示( ).

A.

2.03

B.

5

C.

8

D.

2000

第 2 题    单选题

一个字节(byte)由( )个二进制位组成。

A.

8

B.

16

C.

32

D.

以上都有可能

第 3 题    单选题

以下逻辑表达式的值恒为真的是( ).

A.

B.

C.

D.

第 4 题    单选题

Linux下可执行文件的默认扩展名为( ).

A.

exe

B.

com

C.

dll

D.

以上都不是

第 5 题    单选题

如果树根算第1层,那么一棵nn层的二叉树最多有( )个结点。

A.

2^(n) - 1

B.

2^(n)

C.

2^(n) + 1

D.

2^(n+1)

第 6 题    单选题

提出“存储程序”的计算机工作原理的是( ).

A.

克劳德·香农

B.

戈登·摩尔

C.

查尔斯·巴贝奇

D.

冯·诺依曼

第 7 题    单选题

设X、Y、Z分别代表三进制下的一位数字,若等式XY + ZX = XYX在三进制下成 立,那么同样在三进制下,等式XY * ZX = ( )也成立。

A.

YXZ

B.

ZXY

C.

XYZ

D.

XZY

第 8 题    单选题

Pascal语言、C语言和C++语言都属于( ).

A.

面向对象语言

B.

脚本语言

C.

解释性语言

D.

编译性语言

第 9 题    单选题

前缀表达式+3*2+5 12的值是( )。

A.

23

B.

25

C.

37

D.

65

第 10 题    单选题

主存储器的存取速度比中央处理器(CPU)的工作速度慢得多,从而使得后者的效 率受到影响。而根据局部性原理,CPU所访问的存储单元通常都趋于聚集在一个较小的连续 区域中。于是,为了提高系统整体的执行效率,在CPU中引入了( ).

A.

寄存器

B.

高速缓存

C.

闪存

D.

外存

第 11 题    单选题

一个字长为8位的整数的补码是11111001,则它的原码是( ).

A.

00000111

B.

01111001

C.

11111001

D.

10000111

第 12 题    单选题

基于比较的排序时间复杂度的下限是( ),其中nn表示待排序的元素个数。

A.

O(n)

B.

O(n log n)

C.

O(log n)

D.

O(n^2)

第 13 题    单选题

一个自然数在十进制下有n位,则它在二进制下的位数与( )最接近。

A.

5n

B.

n * log2(10)

C.

10 * log2(n)

D.

10^n * log2(n)

第 14 题    单选题

在下列HTML语句中,可以正确产生一个指向NOI官方网站的超链接的是( )。

A.

B.

C.

D.

第 15 题    单选题

元素R1、R2、R3、R4、R5 入栈的顺序为R1、R2、R3、R4、R5,如果第1个出 栈的是R3 ,那么第5个出栈的不可能是( )。

A.

R1

B.

R2

C.

R3

D.

R4

第 16 题    单选题

双向链表中有两个指针域llink和rlink,分别指向该结点的前驱及后继。设p指向链 表中的一个结点,它的左右结点均非空。现要求删除结点p,则下面语句序列中错误的是( )。

A.

p->rlink->llink = p->rlink; p->llink->rlink = p->llink; delete p;

B.

p->llink->rlink = p->rlink; p->rlink->llink = p->llink; delete p;

C.

p->rlink->llink = p->llink; p->rlink->llink->rlink = p->rlink; delete p;

D.

p->llink->rlink = p->rlink; p->llink->rlink->llink = p->llink; delete p;

第 17 题    单选题

一棵二叉树的前序遍历序列是ABCDEFG,后序遍历序列是CBFEGDA,则根结点 的左子树的结点个数可能是( )。

A.

2

B.

3

C.

4

D.

5

第 18 题    单选题

关于拓扑排序,下面说法正确的是( )。

A.

所有连通的有向图都可以实现拓扑排序

B.

对同一个图而言,拓扑排序的结果是唯一的

C.

拓扑排序中入度为0的结点总会排在入度大于0的结点的前面

D.

拓扑排序结果序列中的第一个结点一定是入度为0的点

第 19 题    单选题

完全二叉树的顺序存储方案,是指将完全二叉树的结点从上至下、从左至右依次存 放到一个顺序结构的数组中。假定根结点存放在数组的1号位置,则第k号结点的父结点如果 存在的话,应当存放在数组的( )号位置。

A.

2k

B.

2k+1

C.

k/2下取整

D.

(k+1)/2下取整

第 20 题    单选题

全国青少年信息学奥林匹克系列活动的主办单位是( )。

A.

教育部

B.

科技部

C.

共青团中央

D.

中国计算机学会

问题求解
第 21 题    填空题

题如图

第 22 题    填空题

队列快照是指在某一时刻队列中的元素组成的有序序列。例如,当元素1、2、3入 队,元素1出队后,此刻的队列快照是"2 3"。当元素2、3也出队后,队列快照是"",即为 空。现有3个正整数元素依次入队、出队。已知它们的和为8,则共有_________种可能的不同 的队列快照(不同队列的相同快照只计一次)。例如,"5 2 1"、"4 2 2"、""都是可能的队 列快照;而"7"不是可能的队列快照,因为剩下的2个正整数的和不可能是1。

阅读程序写结果
第 23 题    填空题

阅读程序写结果:

#include <iostream>
using namespace std;
void swap(int & a, int & b) {
	int t;
	t = a;
	a = b;
	b = t;
}
int main() {
	int a1, a2, a3, x;

	cin>>a1>>a2>>a3;
	if (a1 > a2)
		swap(a1, a2);
	if (a2 > a3)
		swap(a2, a3);
	if (a1 > a2)
		swap(a1, a2);

	cin>>x;
	if (x < a2)
		if (x < a1)
			cout<<x<<' '<<a1<<' '<<a2<<' '<<a3<<endl;
		else
			cout<<a1<<' '<<x<<' '<<a2<<' '<<a3<<endl;
	else if (x < a3)
		cout<<a1<<' '<<a2<<' '<<x<<' '<<a3<<endl;
	else
		cout<<a1<<' '<<a2<<' '<<a3<<' '<<x<<endl;
	return 0;
}

输入:

91 2 20

77

输出:_________


第 24 题    填空题

阅读程序写结果:

#include <iostream>
using namespace std;
int rSum(int j) {
	int sum = 0;
	while (j != 0) {
		sum = sum * 10 + (j % 10);
		j = j / 10;
	}
	return sum;
}
int main() {
	int n, m, i;
	cin>>n>>m;
	for (i = n; i < m; i++)
		if (i == rSum(i))
			cout<<i<<' ';
	return 0;
}

输入:

90 120

输出:_______________________


第 25 题    填空题

阅读程序写结果:

#include <iostream>
#include <string>
using namespace std;
int main() {
	string s;
	char m1, m2;
	int i;

	getline(cin, s);
	m1 = ' ';
	m2 = ' ';
	for (i = 0; i < s.length(); i++)
		if (s[i] > m1) {
			m2 = m1;
			m1 = s[i];
		} else if (s[i] > m2)
			m2 = s[i];
	cout<<int(m1)<<' '<<int(m2)<<endl;
	return 0;
}

输入:Expo 2010 Shanghai China

输出:_________

提示:

字符 ASCII码

空格 32

'0' 48

'A' 65

'a' 97


第 26-27 题    组合题

阅读程序写结果:

#include <iostream>
using namespace std;
const int NUM = 5;
int r(int n) {
	int i;
	if (n <= NUM)
		return n;
	for (i = 1; i <= NUM; i++)
		if (r(n - i) < 0)
			return i;
	return -1;
}
int main() {
	int n;

	cin>>n;
	cout<<r(n)<<endl;
	return 0;
}

(1)

输入:7

输出:_________

(2)

输入:16

输出:_________

第一空(4分):________________

第二空(4分):________________


第 26 题 填空
第 27 题 填空
完善程序
第 28-32 题    组合题

完善程序:

(哥德巴赫猜想)哥德巴赫猜想是指,任一大于2的偶数都可写成两个质数之和。迄今为止,

这仍然是一个著名的世界难题,被誉为数学王冠上的明珠。试编写程序,验证任一大于2且不

超过n的偶数都能写成两个质数之和。

#include <iostream>
using namespace std;
int main() {
	const int SIZE = 1000;

	int n, r, p[SIZE], i, j, k, ans;
	bool tmp;

	cin>>n;
	r = 1;
	p[1] = 2;
	for (i = 3; i <= n; i++) {
		[ ① ];
		for (j = 1; j <= r; j++)
			if (i % [ ② ] == 0) {
				tmp = false;
				break;
			}
		if (tmp) {
			r++;
			[ ③ ] ;
		}
	}

	ans = 0;
	for (i = 2; i <= n / 2; i++) {
		tmp = false;
		for (j = 1; j <= r; j++)
			for (k = j; k <= r; k++)
				if (i + i == [ ④ ] ) {
					tmp = true;
					break;
				}
		if (tmp)
			ans++;
	}
	cout<<ans<<endl;
	return 0;
	}

若输入n为2010,则输出[ ⑤ ]时表示验证成功,即大于2且不超过2010的偶数都满足哥德巴

赫猜想。

第一空(2.5分):_______________________________

第二空(2.5分):_______________________________

第三空(2.5分):_______________________________

第四空(2.5分):_______________________________

第五空(3分):_______________________________


第 28 题 填空
第 29 题 填空
第 30 题 填空
第 31 题 填空
第 32 题 填空
第 33-37 题    组合题

完善程序:

(过河问题)在一个月黑风高的夜晚,有一群人在河的右岸,想通过唯一的一根独木桥走到河的左岸。在这伸手不见五指的黑夜里,过桥时必须借助灯光来照明,很不幸的是,他们只有一盏灯。另外,独木桥上最多承受两个人同时经过,否则将会坍塌。每个人单独过桥都需要一定的时间,不同的人需要的时间可能不同。两个人一起过桥时,由于只有一盏灯,所以需要的时间是较慢的那个人单独过桥时所花的时间。现输入n(2≤n<100)和这n个人单独过桥时需要的时间,请计算总共最少需要多少时间,他们才能全部到达河的左岸。 例如,有3个人甲、乙、丙,他们单独过桥的时间分别为1、2、4,则总共最少需要的时间为7。具体方法是:甲、乙一起过桥到河的左岸,甲单独回到河的右岸将灯带回,然后甲、丙再一起过桥到河的左岸,总时间为2+1+4=7。


第 33 题 填空
第 34 题 填空
第 35 题 填空
第 36 题 填空
第 37 题 填空
答题卡
单项选择题
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
问题求解
21 22
阅读程序写结果
完善程序
题目总数:28
总分数:100
时间:120分钟
QQ
微信