试卷 2022年9月青少年软件编程C语言等级考试试卷(六级)真题
2022年9月青少年软件编程C语言等级考试试卷(六级)真题
编程题
第 1 题    问答题

C语言等级考试六级真题:stack or queue。

栈和队列都是常用的线性结构,它们都提供两个操作:

Push:加入一个元素。

Pop:弹出一个元素。

不同的是,栈是”先进后出”,而队列则是”先进先出”。给出一个线性结构的进出顺序,判定这个结构是栈还是队列。

 

时间限制:1000

内存限制:65535

 

输入

第一行输入一个整数t,代表有t组测试数据 对于每组测试数据,第一行输入一个整数n,代表操作的次数。 随后输入n行,每行包含两个整数 type val type = 1时,表示该次操作为push操作,val表示进入的数字。当type=2时,表示该次操作为pop操作,val代表出来的数字。 3<=n<=2000

 

输出

每组测试数据输出一行。 输出该组数据对应的线性结构,”Stack 或者 Queue”。 题目保证是栈或者队列的一种。

 

样例输入

2

6

1 1

1 2

1 3

2 3

2 2

2 1

4

1 1

1 2

2 1

2 2

 

样例输出

Stack

Queue

第 2 题    问答题

C语言等级考试六级真题:栈的基本操作。

栈是一种重要的数据结构,它具有push kpop操作。push k是将数字k加入到栈中,pop则是从栈中取一个数出来。栈是后进先出的:把栈也看成横向的一个通道,则push k是将k放到栈的最右边,而pop也是从栈的最右边取出一个数。

假设栈当前从左至右含有12两个数,则执行push 5pop操作示例图如下:

push 5 pop

 1 2 -------> 1 2 5 ------> 1 2

现在,假设栈是空的。给定一系列push kpop操作之后,输出栈中存储的数字。若栈已经空了,仍然接收到pop操作,

则输出error

 

时间限制:1000

内存限制:65536

 

输入

第一行为m,表示有m组测试输入,m<100 每组第一行为n,表示下列有npush kpop操作。(n<150 接下来n行,每行是push k或者pop,其中k是一个整数。 (输入保证同时在栈中的数不会超过100个)

输出

对每组测试数据输出一行。该行内容在正常情况下,是栈中从左到右存储的数字,数字直接以一个空格分隔,如果栈空,则不作输出;但若操作过程中出现栈已空仍然收到pop,则输出error

 

样例输入

2

4

push 1

push 3

pop

push 5

1

pop

样例输出

1 5

error

第 3 题    问答题

C语言等级考试六级真题:发型糟糕的一天。

农夫John N(1  N  80,000)只奶牛中,有一些也许正在经历发型糟糕的一天。每只奶牛对自己乱糟糟的发型都有自知之明,农夫John想知道所有奶牛能看到其他奶牛头顶的数量之和。

任意奶牛i身高记为 hi (1  hi  1,000,000,000),所有奶牛面向东方(本题示意图的右面)依次站成一条线。因此,奶牛i能够看到在它前面的(奶牛i+1i+2…)所有身高比它低的奶牛,直到被一头比它高的奶牛挡住

考虑如下的例子:

=

= =

= - = Cows facing right ->

= = =

= - = = =

= = = = = =

1 2 3 4 5 6 奶牛#1 可以看见奶牛#2, 3, 4的头顶

奶牛#2 无法看到任何奶牛的头顶

奶牛#3可以看见奶牛#4的头顶

奶牛#4无法看到任何奶牛的头顶

奶牛#5可以看见奶牛#6的头顶

奶牛#6无法看到任何奶牛的头顶!

ci表示奶牛i能够看到头顶的奶牛个数;请计算c1 cN的和。对于上面这个例子,其和为:3 + 0 + 1 + 0 + 1 + 0 = 5

 

时间限制:2000

内存限制:65536

 

输入

1行:奶牛数N

2行至N+1行:第i+1行包含一个整数,表示奶牛i的高度

 

输出

1行:c1 cN的累加和

 

样例输入

6

10

3

7

4

12

2

 

样例输出

5

第 4 题    问答题

C语言等级考试六级编程题:合影效果。

小云和朋友们去爬香山,为美丽的景色所陶醉,想合影留念。如果他们站成一排,男生全部在左(从拍照者的角度),并按照从矮到高的顺序从左到右排,女生全部在右,并按照从高到矮的顺序从左到右排,请问他们合影的效果是什么样的(所有人的身高都不同)?

 

时间限制:1000

内存限制:65536

 

输入

第一行是人数n2 <= n <= 40,且至少有1个男生和1个女生)。 后面紧跟n行,每行输入一个人的性别(男male或女female)和身高(浮点数,单位米),两个数据之间以空格分隔。

 

输出

n个浮点数,模拟站好队后,拍照者眼中从左到右每个人的身高。每个浮点数需保留到小数点后2位,相邻两个数之间用单个空格隔开。

 

样例输入

6

male 1.72

male 1.78

female 1.61

male 1.65

female 1.70

female 1.56

 

样例输出

1.65 1.72 1.78 1.70 1.61 1.56

答题卡
编程题
1 2 3 4
题目总数:4
总分数:100
时间:90分钟