试卷 NOIP 2012 普及组初赛试题
NOIP 2012 普及组初赛试题
单项选择题
第 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.

NOI Linux

第 6 题    单选题

如果一棵二叉树的中序遍历是 BAC,那么它的先序遍历不可能是( )。

A.

ABC

B.

CBA

C.

ACB

D.

.BAC

第 7 题    单选题

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

A.

显示器

B.

CPU

C.

内存

D.

鼠标

第 8 题    单选题

使用冒泡排序对序列进行升序排列,每执行一次交换操作系统将会减少 1 个逆序 对,因此序列 5,4,3,2,1 需要执行( )次操作,才能完成冒泡排序。 小航助学 学生2173 | 返回 2024/6/25 17:11 小航助学-试卷查询 https://www.123lex.top/zk/ztres.aspx?hwID=Y9M1HW0524&hwName=2012年NOIP普及组初赛

A.

0

B.

5

C.

10

D.

15

第 9 题    单选题

1946年诞生于美国宾夕法尼亚大学的 ENIAC 属于( )计算机.

A.

电子管

B.

晶体管

C.

集成电路

D.

超大规模集成电路

第 10 题    单选题

无论是TCP/IP模型还是OSI模型,都可以视为网络的分层模型,每个网络协议都会 被归入某一层中。如果用现实生活中的例子来比喻这些“层”,以下最恰当的是( )。

A.

中国公司的经理与波兰公司的经理交互商业文件

B.

军队发布命令

C.

国际会议中,每个人都与他国地位对等的人直接进行会谈

D.

体育比赛中,每一级比赛的优胜者晋级上一级比赛

第 11 题    单选题

矢量图(Vector Image)图形文件所占的贮存空间比较小,并且无论如何放大、 缩小或旋转等都不会失真,是因为它( )。

A.

记录了大量像素块的色彩值来表示图像

B.

用点、直线或者多边形等基于数学方程的几何图元来表示图像

C.

每个像素点的颜色信息均用矢量表示

D.

把文件保存在互联网,采用在线浏览的方式查看图像

第 12 题    单选题

如果一个栈初始时为空,且当前栈中的元素从栈底到栈顶依次为a,b,c,另有元素d 已经出栈,则可能的入栈顺序是( )。

A.

a, d, c, b

B.

b, a, c, d

C.

a, c, b, d

D.

d, a, b, c

第 13 题    单选题

( )是主要用于显示网页服务器或者文件系统的 HTML 文件的内容,并让用户与 这些文件交互的一种软件。

A.

资源管理器

B.

浏览器

C.

电子邮件

D.

编译器

第 14 题    单选题

( )是目前互联网上常用的 E-mail 服务协议。

A.

HTTP

B.

FTP

C.

POP3

D.

Telnet

第 15 题    单选题

()就是把一个复杂的问题分成两个或更多的相同类似的子问题,再把子问题分解 成更小的子问题……直到最后的子问题可以简单地直接求解。而原问题的解就是子问题解的 并。

A.

动态规划

B.

贪心

C.

分治

D.

搜索

第 16 题    单选题

地址总线的位数决定了 CPU 可直接寻址的内存空间大小,例如地址总线为 16 位,其最大的可寻址空间为 64KB。如果地址总线是 32 位,则理论上最大可寻址的内存空间 为( )。

A.

128KB

B.

1MB

C.

1GB

D.

4GB

第 17 题    单选题

蓝牙和Wi-Fi都是( )设备.

A.

无线广域网

B.

无线城域网

C.

无线局域网

D.

无线路由器

第 18 题    单选题

在程序运行过程中,如果递归调用的层数过多,会因为( )引发错误。

A.

系统分配的栈空间溢出

B.

系统分配的堆空间溢出

C.

系统分配的队列空间溢出

D.

系统分配的链表空间溢出

第 19 题    单选题

原字符串中任意一段连续的字符所组成的新字符串称为子串。则字符 “AAABBBCCC” 共有( )个不同的非空子串。

A.

3

B.

12

C.

36

D.

45

第 20 题    单选题

仿生学的问世开辟了独特的科学技术发展道路。人们研究生物体的结构、功能和工 作原理,并将这些原理移植于新兴的工程技术中。以下关于仿生学的叙述,错误的是( ).

A.

由研究蝙蝠,发明雷达

B.

由研究蜘蛛网,发明因特网

C.

由研究海豚,发明声呐

D.

由研究电鱼,发明伏特电池

问题求解
第 21 题    填空题

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

第 22 题    填空题

在NOI期间,主办单位为了欢迎来自各国的选手,举行了盛大的晚宴。在第十八

桌,有5名大陆选手和5名港澳选手共同进膳。为了增进交流,他们决定相隔就坐,即每个大

陆选手左右旁都是港澳选手,每个港澳选手左右旁都是大陆选手。那么,这一桌一共有

_______种不同的就坐方案。

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

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

阅读程序写结果

#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;
	cout<<ans<<endl;
	return 0;
}

输入:1 2 5

输出:_______


第 24 题    填空题

阅读程序写结果

#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++;
	cout<<ans<<endl;
	return 0;
}

输入:18

输出:_______


第 25 题    填空题

阅读程序写结果

#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];
	u=solve(x+1,y);
	v=solve(x+1,y+1);
	if(u>v) return a[x][y]+u;
	else return a[x][y]+v;
}
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;
}

输入:

5

2

-1 4

2 -1 -2

-1 6 4 0

3 2 -1 5 8

输出:_______


第 26 题    填空题

阅读程序写结果

#include <iostream>
#include <string>
using namespace std;
int n,i,j,ans;
string s;
char get(int i) {
	if(i<n) return s[i];
	else return s[i-n];
}
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;
	}
	for(j=0; j<=n-1; j++) cout<<get(ans+j);
	cout<<endl;
	return 0;
}

输入:CBBADADA

输出:____________

完善程序
第 27-31 题    组合题

完善程序

(坐标统计)输入n个整点在平面上的坐标。对于每个点,可以控制所有位于它左下方的点

(即x、y坐标都比它小),它可以控制的点的数目称为“战斗力”。依次输出每个点的战斗

力,最后输出战斗力最高的点的编号(如果若干个点的战斗力并列最高,输出其中最大的编

号)。

#include <iostream>
using namespace std;
const int SIZE =100;
int x[SIZE],y[SIZE],f[SIZE];
int n,i,j,max_f,ans;
int main() {
	cin>>n;
	for(i=1; i<=n; i++) cin>>x[i]>>y[i];
	max_f=0;
	for(i=1; i<=n; i++) {
		f[i]= [ ① ];
		for(j=1; j<=n; j++) {
			if(x[j]<x[i] && [ ② ])
				[ ③ ] ;
		}
		if( [ ④ ]) {
			max_f=f[i];
			[ ⑤ ];
		}
	}
	for(i=1; i<=n; i++) cout<<f[i]<<endl;
	cout<<ans<<endl;
	return 0;
}

第一空(2分):______________________

第二空(2分):______________________

第三空(3分):______________________

第四空(3分):______________________

第五空(3分):_____________________


第 27 题 填空
第 28 题 填空
第 29 题 填空
第 30 题 填空
第 31 题 填空
第 32-36 题    组合题

完善程序

(排列数)输入两个正整数n,m(1<n<20,1<m<n),在1~n中任取m个数,按字典序从

小到大输出所有这样的排列。

例如: 输入:3 2

输出:

1 2

1 3

2 1

2 3

3 1

3 2

#include <iostream>
#include <cstring>
using namespace std;
const int SIZE =25;
bool used[SIZE];
int data[SIZE];
int n,m,i,j,k;
bool flag;
int main() {
	cin>>n>>m;
	memset(used,false,sizeof(used));
	for(i=1; i<=m; i++) {
		data[i]=i;
		used[i]=true;
	}
	flag=true;
	while(flag) {
		for(i=1; i<=m-1; i++) cout<<data[i]<<" ";
		cout<<data[m]<<endl;
		flag= [ ① ] ;
		for(i=m; i>=1; i--) {
			[ ② ];
			for(j=data[i]+1; j<=n; j++)
				if(!used[j]) {
					used[j]=true;
					data[i]=[ ③ ] ;
					flag=true;
					break;
				}
			if(flag) {
				for(k=i+1; k<=m; k++)
					for(j=1; j<= [ ④ ]; j++)
						if(!used[j]) {
							data[k]=j;
							used[j]=true;
							break;
						}
				[ ⑤ ];
			}
		}
	}
	return 0;
}

第一空(3分):__________________________

第二空(3分):__________________________

第三空(3分):__________________________

第四空(3分):__________________________

第五空(3分):__________________________

第 32 题 填空
第 33 题 填空
第 34 题 填空
第 35 题 填空
第 36 题 填空
答题卡
单项选择题
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
微信