试卷 2015年第二十一届NOIP信奥赛普及组初赛C++试题
2015年第二十一届NOIP信奥赛普及组初赛C++试题
一、单项选择题
第 1 题    单选题

1MB等于( )。

A.

10000字节

B.

1024字节

C.

1000×1000字节

D.

1024×1024字节

第 2 题    单选题

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

A.

生产厂家名称

B.

硬盘的型号

C.

CPU的型号

D.

显示器的型号

第 3 题    单选题

操作系统的作用是( )。

A.

把源程序译成目标程序

B.

便于进行数据管理

C.

控制和管理系统资源

D.

实现硬件之间的连接

第 4 题    单选题

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

A.

二进制码

B.

八进制码

C.

十进制码

D.

智能拼音码

第 5 题    单选题

下列说法正确的是( )。

A.

CPU的主要任务是执行数据运算和程序控制

B.

存储器具有记忆能力,其中信息任何时候都不会丢失

C.

两个显示器屏幕尺寸相同,则它们的分辨率必定相同

D.

个人用户只能使用Wifi的方式连接到Internet

第 6 题    单选题

二进制数00100100和00010100的和是( )。

A.

00101000

B.

01100111

C.

01000100

D.

00111000

第 7 题    单选题

与二进制小数0.1相等的十六进制数是( )。

A.

0.8

B.

0.4

C.

0.2

D.

0.1

第 8 题    单选题

所谓的“中断”是指( )。

A.

操作系统随意停止一个程序的运行

B.

当出现需要时,CPU暂时停止当前程序的执行转而执行处理新情况的过程

C.

因停机而停止一个程序的运行

D.

电脑死机

第 9 题    单选题

计算机病毒是( )。

A.

通过计算机传播的危害人体健康的一种病毒

B.

人为制造的能够侵入计算机系统并给计算机带来故障的程序或指令集合

C.

一种由于计算机元器件老化而产生的对生态环境有害的物质

D.

利用计算机的海量高速运算能力而研制出来的用于疾病预防的新型病毒

第 10 题    单选题

FTP可以用于( )。

A.

远程传输文件

B.

发送电子邮件

C.

浏览网页

D.

网上聊天

第 11 题    单选题

下面哪种软件不属于即时通信软件( )。

A.

QQ

B.

MSN

C.

微信

D.

P2P

第 12 题    单选题

6个顶点的连通图的最小生成树,其边数为( )。

A.

6

B.

5

C.

7

D.

4

第 13 题    单选题

链表不具备的特点是( )。

A.

可随机访问任何一个元素

B.

插入、删除操作不需要移动元素

C.

无需事物估计存储空间大小

D.

所需存储空间与存储元素个数成正比


第 14 题    单选题

线性表若采用链表存储结构,要求内存中可用存储单元地址( )。

A.

必须连续

B.

部分地址必须连续

C.

一定不连续

D.

连续不连续均可

第 15 题    单选题

今有一空栈S,对下列待进栈的数据元素序列a,b,c,d,e,f依次进行进栈,进栈,出栈,进栈,进栈,出栈的操作,则此操作完成后,栈S的栈顶元素为( )

A.

f

B.

c

C.

a

D.

b

第 16 题    单选题

前序遍历序列与中序遍历序列相同的二叉树为( )。

A.

根结点无左子树

B.

根结点无右子树

C.

只有根结点的二叉树或非叶子结点只有左子树的二叉树

D.

只有根结点的二叉树或非叶子结点只有右子树的二叉树

第 17 题    单选题

如果根的高度为1,具有61个结点的完全二叉树的高度为( )。

A.

5

B.

6

C.

7

D.

8

第 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)

第 20 题    单选题

在NOI系列赛事中参赛选手必须使用累承办单位统一提供的设备。下列物品中不允许选手自带的是( )。

A.

鼠标

B.

C.

身份证

D.

准考证

二、问题求解
第 21 题    填空题

重新排列1234使得每一个数字都不在原来的位置上,一共有              种排法。

第 22 题    填空题

一棵结点数为 2015 的二叉树最多有                个叶子结点。

三、阅读程序写结果
第 23 题    填空题
#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 << ' ';
		else
			cout << b << ' ';
	cout << c << endl;
	return 0;
}

输出:                     

第 24 题    填空题
#include <iostream>

using namespace std;

struct point
	{
		int x;
		int y;
	};

int main()
	{
		int a, b, c;
		struct EX
			{
				int a;
				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;
}

输出:                       

第 25 题    填空题
#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;

输入: NOI2016 will be held in Mian Yang.

输出:                                                 

第 26 题    填空题
#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);
		cout << c1 << c2 << endl;
		return 0;
	}

输出:              

四、完善程序
第 27 题    问答题

完善程序: (打印月历)输入月份 m(1≤m≤12),按一定格式打印 2015 年第 m 月的月历。 (第三、四空 2.5 分,其余 3 分)

例如,2015 年 1 月的月历打印效果如下(第一列为周日):


#include <iostream>

#include <string>


using namespace std;


const int dayNum[] = {-1, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};

int m, offset, i;


int main()

{

cin >> m;

cout << "S\tM\tT\tW\tT\tF\tS" << endl;  //'\t'为 TAB 制表符

                         ⑴        ;

for(i = 1; i < m; i++)

offset =      ⑵      ;

for(i = 0; i < offset; i++)

cout << '\t';

for(i = 1; i <=     ⑶     ; i++)

{

cout <<    ⑷    ;

if(i == dayNum[m] ||    ⑸   == 0)

cout << endl;

else

cout << '\t';

}

return 0;

}

第 28 题    问答题

完善程序:(中位数 median)给定 n(n 为奇数且小于 1000)个整数, 整数的范围在 0~m(0<m<2^31)之间, 请使 用二分法求这 n 个整数的中位数。所谓中位数,是指将这 n 个数排序之后,排在正中间的数。 (第五空 2分,其余 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(       ⑴          )

{

mid = (lbound + rbound) / 2;

                             ⑵       ;

for(i = 0; i < n; i++)

if(     ⑶       )

                                                 ⑷       ;

if(count > n / 2)

lbound = mid + 1;

else

                                       ⑸        ;

cout << mid << " " << lbound << " " << rbound << " " << count << endl;

}

cout << rbound << endl;

return 0;

}

答题卡
一、单项选择题
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
二、问题求解
21 22
三、阅读程序写结果
四、完善程序
27 28
题目总数:28
总分数:100
时间:不限时
QQ
公众号
客服
扫一扫