NOIP2015普及组初赛试题及答案(Pascal)概要.doc
文本预览下载声明
第二十一届全国青少年信息学奥林匹克联赛初赛
普及组Pascal语言试题
竞赛时间:201年10月1日14:30~16:30选手注意试题纸共有页,答题纸共有2页,满分100分。请在答题纸上作答,写在试题纸上一律无效。不得使用任何电子设备(如计算器、手机、电子词典等)或查阅任何书籍资料。
输出:
2. type
point = record
x: longint;
y: longint;
end;
EX = record
a: longint;
b: longint;
c: point;
end;
var
e: EX;
begin
e.a := 1;
e.b := 2;
e.c.x := e.a + e.b;
e.c.y := e.a * e.b;
writeln(e.c.x, ,, e.c.y);
end.
输出:
3. ?var
str: string;
i: longint;
count: longint;
begin
count := 0;
readln(str);
for i := 1 to length(str) do
begin
if (str[i] = a) and (str[i] = z) then
inc(count);
end;
writeln(It has , count, lowercases);
End.
输入:NOI2016 will be held in Mian Yang.?
输出: ??
4. type
p_char = ^char;
var
c1, c2: char;
p1, p2: p_char;
procedure fun(a, b: p_char);
begin
a := b;
inc(a^);
end;
begin
c1 := A;
c2 := a;
p1 := @c1;
p2 := @c2;
fun(p1, p2);
writeln(c1, c2);
End.
输出:
完善程序 (前4空,每空3分,后4空,每空4分,共28分)
1 . (打印月历)输入月份m(),按一定格式打印2015年第m月的月历。(第三、四空2.5分,其余3分)
例如,2015年1月的月历打印效果如下(第一列为周日):
S M T W T F S
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
const
dayNum: array [1..12] of longint
= (31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31);
var
m, offset, i: longint;
begin
read(m);
writeln(S, #9, M, #9, T, #9, W, #9, T, #9, F, #9, S);
// #9 为 TAB 制表符
(1) ;
for i := 1 to m - 1 do
offset := (2) ;
for i := 1 to offset do
write(#9);
for i := 1 to (3) do
begin
显示全部