青少年软件编程(C语言)等级考试试卷(二级)
分数:100 题数:5
一、编程题(共5题,共100分)
1.
冠军魔术
2018年FISM(世界魔术大会)近景总冠军简纶廷的表演中有一个情节:以桌面上一根带子为界,当他将纸牌从带子的一边推到另一边时,纸牌会变成硬币;把硬币推回另一边会变成纸牌。
这里我们假设纸牌会变成等量的硬币,而硬币变成纸牌时,纸牌的数量会加倍。那么给定纸牌的初始数量,当他来回推了 N 次(来/回各算一次)后,手里拿的是纸牌还是硬币?数量是多少?
时间限制:1000
内存限制:65535
输入
输入在一行里给出两个正整数,分别是纸牌的初始数量和魔术师推送的次数。这里假设初始状态下魔术师手里全是纸牌。
输出
如果最后魔术师手里是纸牌,输出 0 和纸牌数量;如果是硬币,则输出 1 和硬币数量。数字间须有 1 个空格。题目保证结果数值不超出整型范围(即2
31
-1)。
样例输入
样例1:
3 7
样例2:
8 4
样例输出
样例1:
1 24
样例2:
0 32
试题编号:20240622-2-01
试题类型:编程题
标准答案:
试题难度:一般
试题解析:
展示地址:点击浏览
考生答案:
#include<stdio.h>
#include<math.h>
int main()
{
int x,y,N,a;
scanf("%d %d",&x,&N);
if(N%2==0)
{
printf("0 %d",a=x*pow(2,N/2));
}
else
{
printf("1 %d",a=x*pow(2,(N-1)/2));
}
return 0;
}
考生得分:20
是否评分:已评分
评价描述:
2.
找座位
组织一场考试时,监考老师手里会有一份签到表,按座位号的顺序列出学生。但学生要根据这份表找到自己的座位编号就很麻烦了。本题就要求你编写程序,帮助学生快速找到他们的座位号。
时间限制:5000
内存限制:65535
输入
输入第一行给出一个不超过 10
3
的正整数 N,是参加考试的学生数。以下 N 行,第 i 行给出座位号为 i 的学生的学号(i=1, … , N)。学号是一个不超过8位、完全由数字组成的字符串。输入保证每个学生只分配一个座位。 接下来一行给出一个不超过 10
5
的正整数 M,是待查询的学生数。以下 M 行,每行给出一个待查询的学生的学号。
输出
对每一个待查询的学生,如果他在考场里有座位,则在一行中输出其座位号;否则输出 `NA`(Not Available 的缩写),表示座位号不存在。
样例输入
5
100013
200233
100001
520077
886759
4
520077
000000
100013
999999
样例输出
4
NA
1
NA
试题编号:20240622-2-02
试题
202406 C语言二级,2024年6月电子学会C语言编程等级考试二级真题试卷