当前位置:首页 >> 学科竞赛 >>

第三届全国青少年信息学(计算机)奥林匹克分区联赛初赛试题(高中组)


全国青少年信息学奥林匹克分区联赛历届初赛试题

第三届全国青少年信息学(计算机)奥林匹克分区联赛初赛试题(高中组) (PASCAL 语言 竞赛用时:2 小时)
一、基础部分 (1)WPS 是属于________类的软件;FOXBASE 是属于_______类的软件。 (2) 已知 ASCII 码表中的大写字母后有 6 个其他字符, 接着便是小写字母。

现已知: A 字母的 ASCII 码为(41)16{表示 16 进制数 41},试写出如下字母用十进制表示的 ASCII 码: G → ( )10 b → ( )10 t → ( )10 (3)设数组 A[10..100,20..100]以行优先的方式顺序存贮,每个元素占 4 个字节,且已知 A[10,20] 的地址为 1000,则 A[50,90]的地址是_____________。 (4)一个汉字的机内码目前常用二个字节来表示:第一字节是区位码的区号加(160)10;第二个字节 是区位码的位码加(160)10 已知:汉字“却”的区位码是 4020,试写出机内码两个字节的二进制的代码:

(5)下图中用点表示城市,点与点之间的联线表示城市间的道路:

试问:①能否找出一条从 A 城市出发,经过图中所有道路一次后又回到出发点的通路来? ②能否从 A 出发,找出去每个城市且只去一次的通路来?若能,则写出通路;

(6)为了便于处理表达式,常常将普通表达式(称为中缀表示)转换为前缀{运算符在前,如 X/Y 写为/XY}和后缀{运算符在后,如 X/Y 写为 XY/}的表达式。 在这样的表示中可以不用括号即可确定求值的顺序,如: (P+Q)*(R-S) →*+PQ-RS 或 → PQ+RS-* ①试将下面的表达式改写成前缀与后缀的表示形式: (a) A+B*C/D (b) A-C*D+B^E ②试将下面的前缀表示还原成中缀的表示形式,同时写出后缀表示: +△A*B△C {前缀式中△表示一元运算符取负号,如△A 表示(-A)}

二、根据题意,将以下程序补充完整 1. [问题描述]:一个正整数(非素数)可以表示成它的因子(1 与其本身除外)的乘积。 例如:12 有因子 2,2,3,4,6,所以可表示为: 12=2*2*3=4*3=2*6 给出任一个整数 N,求出它所有的因子乘积表达式(交换律得出的不同式子算同一种) 。 [算法说明]:读入一个整数 N,首先求出它的所有的因子以及每个因子可能的次数。 例如:整数 48: 因子:2 3 4 6 8 12 16 24
1

全国青少年信息学奥林匹克分区联赛历届初赛试题

次数:4 1 2 1 1 1 1 1 将上面的结果存入数组 A:ARRAY[0..20,1..2]中,其中: A[i,1]表示因子;A[i,2]表示次数。 然后用简单回朔的方法求出所有可能的表示: 数组 B[0..20]记录取数情况;c:ARRAY[0..20]工作单元。 [程序清单]:program exp4(input,output); var a :array[0..20,1..2] of integer; c,b :array[0..20] of integer; n,m,i,j,s,k,l : integer; Begin readln(n); for i:=1 to 20 do a[i,1]:=0; ① a[0,2]:=1; j:=0; for i:=2 to n-1 do begin s:=0; m:=n; while(m<>0) and (m mod i=0) do begin m:=m div i; ② ; end; if ③ then begin j:=j+1; ④ ; a[j,2]:= ⑤ ; end end; for i:=0 to j do b[i]:=0; while ⑥ do begin k:=j; while b[k]=a[k,2] do k:=k-1; b[k]:=b[k]+1; for L:= ⑦ do b[L]:=0; s:=1; for i:=1 to j do if b[i]<>0 then for L:=1 to b[i] do ⑧ if s=n then begin for i:=1 to j do c[i]:=b[i]; WRITE('('); M:=1; for i:=1 to j do While (c[i]>0) AND (M<>N) do begin M:=M*A[I,1]; IF M=N THEN write(a[i,1]) ELSE BEGIN WRITE(A[I,1],'*'); c[i]:=c[i]-1; END; end;
2

全国青少年信息学奥林匹克分区联赛历届初赛试题

WRITELN(')'); end end End. 2. [问题描述]:给出一个凸多边形,可以取得若干个内接三角形,同时约定内接三角形必 须有一条边(仅能有一条边)与凸多边形的边相重合,例如:下面的 5 边形中,可能有 的内接三角形有 5 种:

问题:当依次给出凸多边形的每个顶点的 2 个坐标之后,找出一个面积最大的内接三角 形,输出该三角形的面积与三个顶点的坐标。 [算法说明]:凸多边形的每个顶点用一对坐标(x,y)表示; 用数组 p:ARRAY[1..2*n] of point; 存贮输入的顶点坐标; 同时编制一个由三角形的三个顶点计算其面积的函数 SEA。 [程序清单]:program exp5(input,output); const n=6; type point=record x,y:real end; var p :array[1..2*n] of point; i,j :integer; q1,q2,q3 :point; smax :real; Function Sea(p1,p2,p3:point):real; var s1,s2,s3,p4:real; begin s1:=sqrt((p1.x-p2.x)*(p1.x-p2.x)+(p1.y-p2.y)*(p1.y-p2.y)); s2:=sqrt((p1.x-p3.x)*(p1.x-p3.x)+(p1.y-p3.y)*(p1.y-p3.y)); s3:=sqrt((p2.x-p3.x)*(p2.x-p3.x)+(p2.y-p3.y)*(p2.y-p3.y)); p4:= ① ; Sea:=sqrt(p4*(p4-s1)*(p4-s2)*(p4-s3)); end; Begin for i:=1 to n do readln(p[i].x,p[i].y); smax:=0; for i:=1 to n-1 do ② for i:=1 to n do for j:= ③ do if ④ then begin smax:=Sea(p[i],p[i+1],p[j]); q1:=p[i]; q2:= ⑤ ; q3:=p[j] end; writeln(smax,q1.x,q1.y,q2.x,q2.y,q3.x,q3.y)
3

全国青少年信息学奥林匹克分区联赛历届初赛试题

End. 3、设有一个实数,以字符串形式存放于数组 x 中,用 x:array[1..N]of char 表示。其中 x[1]若为'-', 表示负数;若为'+'、'.'或' ',则表示正数。若为数字,也认为是正数。 例如 x=(' ','2','0',' ','3','.','5','%') 则表示 203.5 x=('-','1','.',' ','2','0','%') 则表示-1.2 约定:在字符串 x 中,除 x[1]外,其后可以包含有若干个'.'与' ',但仅以第一次出现的为准,空 格不起任何作用,并以字符'%'作为结束标志。 程序要求:将输入的字符串还原成实数输出(小数点后无用的 0 应除去) ,还原的结果以下列 形式存放(不需要输出) 。 F:数符。正数放 0,负数放 1。 A:array[1..N] of integer; 存放数字,不放小数点。 K:表示 A 中有效数字的个数。 J:表示小数点后的位数。 例如:数 203.24,还原后结果的存放是: F=0 A=(2, 0, 3, 2, 4) K=5 J=2 又如:数-33.0740,还原后结果的存放是: F=1 A=(3, 3, 0, 7, 4) K=5 J=3 [算法提要]:x : array[1..10] of char;可放长度定为 10;首先读入字符串,然后处理数的符号, 在还原的过程中,需要判定整数部分与小数部分,同时去除多余的空格和小数点,并约定输入是正 确的,不用作出错检查。 程序清单:program ex3(input,output); Var i, j,f,k,b:integer;a:array[1..10] of integer;x:string; begin for i:=1 to 10 do a[i]:=0; for i:=1 to 10 do read(x[i]); j:=0; f:=0; k:=0; b:=0; if x[1]=’-’ then begin ___________________; ___________________; end else if x[1]=’ ’ then i:=2 else i:=1; while __________________ do i:=i+1; while __________________do begin if (x[i]>=’0’) and (x[i]<=’9’) then begin k:=k+1; _________________; if b=1 then ________________;
4

全国青少年信息学奥林匹克分区联赛历届初赛试题

End Else if (x[i]=’.’) and(b=0) then b:=1; i:=i+1; end; if j>0 then while a[k]=0 do begin ___________________; ___________________; End; End. 4. [问题描述]:拼图形:边长为 1 的正方形面积为 1,从边长为 1 的正方形出发可以用 2 个 边长为 1 的正方形拼成面积为 2 的长方形: 同时约定: 1.边长对应相等的长方形被认为是相同的; (所以下边的两个面积为 2 的长方形只看作 一个长方形) ;

2.长度相等的边才能拼接,且两个边必须重合。从面积为 2 的长方形出发,用 2 个面积为 2 的 长方形可拼出面积为 4 的长方形(包括正方形) ,拼法如下:

同样再从面积为 4 的长方形(包括正方形)出发,可以拼成面积为 8 的长方形,拼法如 下:

可以按上面的方法继续拼下去。 问题:输入一个数 N,输出面积不超过 N 的所有可能拼法。例如:当 N=20 时, 输出:(1,1),(2,1),(4,2),(8,2),(16,3)即面积为 1 的拼法 1 种,面积为 2 的拼法 1 种,面积为 4 的拼法 2 种,面积为 8 的拼法 2 种,面积为 16 的拼法 3 种。 [算法说明]:矩形可以用三个数 x,y,s 来表示,其中 x,y 表示边长,s 表示面积,并用数组 G[1..100,1..3]表示图形。

5

全国青少年信息学奥林匹克分区联赛历届初赛试题

当给出 n 之后,可能拼接的次数为 r 满足:2r<=N<2r+1(不包括面积为 1 的拼法); 用数组 b[1..100]记录各种面积可能出现的拼法。 [程序清单]:program exp4(input,output); type g=record x,y,z:integer end; var g1 :array[1..100] of g; i,j,n,s1,jj,j1,j2,i1 :integer; b :array[1..100] of integer; gw :g; Function eq(gk:g):boolean; var jeq:integer; p:boolean; begin p:=true; jeq:=1; while (p and (jeq<=j)) do if ((gk.x=g1[jeq].x) and (gk.y=g1[jeq].y)) or ((gk.x=g1[jeq].y) and (gk.y=g1[jeq].x)) then p:=false else jeq:=jeq+1; eq:=p end; Begin readln(n); n:=n+1; s1:=1; jj:=1; while ① do begin ② ; jj:=jj+1 end; ③ ; j1:=1; j:=1; g1[j].x:=1; g1[j].y:=1; g1[j].z:=1; for i:=2 to jj do begin j2:=j; for i1:=j1 to j2 do begin gw.x:=g1[i1].x*2; gw.y:=g1[i1].y; gw.z:=g1[i1].z*2; if ④ then begin j:=j+1; g1[j]:=gw end; gw.x:=g1[i1].x; ⑤ if eq(gw) then begin j:=j+1; ⑥ end; end; j1:=j2+1 end; for i:=1 to n do b[i]:=0; for i:=1 to j do ⑦ for i:=1 to n do if ⑧ then write('(',i,',',b[i],')'); End.
6


相关文章:
第三届全国青少年信息学(计算机)奥林匹克分区联赛
第三届全国青少年信息学(计算机)奥林匹克分区联赛 辽宁赛区初赛试题 LOGO 语言 答题时间:2 小时 姓名 学校全名 年级 ___ 一、填充题(答案请写在每题下面给出的...
第三届全国青少年信息学(计算机)奥林匹克分区联赛复赛试题(高中组)
第三届全国青少年信息学(计算机)奥林匹克分区联赛复赛试题 (高中组 竞赛用时:3 小时) 一.在 N*N 的棋盘上(1<=N<=10)填入 1,2,...N*N 共 N*N 个...
全国青少年信息学奥林匹克分区联赛初赛模拟题(高中组)
全国青少年信息学奥林匹克分区联赛初赛模拟题(高中组)_互联网_IT/计算机_专业资料。计算机竞赛信息学奥林匹克分区联赛初赛模拟题 (PASCAL 语言 竞赛用时:2 小时) 竞...
第三届全国青少年信息学答案
第三届全国青少年信息学(计算机)奥林匹克分区联赛初赛 (高中组) 参一、基础部分:共 44 分(1): ①文字处理 ②数据库管理系统(DBMS) 考答案 (2)如下字母用十...
第二届奥林匹克分区联赛初赛试题(高中组)
第二届全国青少年信息学(计算机)奥林匹克分区联赛初赛试题 (高中组) ( PASCAL 语言 竞赛用时: 2 小时) ●●全部试题答案均要求写在答卷纸上,写在试卷纸上一律...
第六届全国青少年信息学(计算机)奥林匹克分区联赛试题
第六届全国青少年信息学(计算机)奥林匹克分区联赛试题 (普通组初赛 PASCAL 语言二小时完成) ●●全部试题答案均要求写在答卷纸上,写在试卷纸上一律无效●●一....
全国青少年信息学(计算机)奥林匹克分区联赛初赛模拟试题
全国青少年信息学(计算机)奥林匹克分区联赛初赛模拟试题 (普及组 PASCAL 语言 二小时完成) 一、选择一个正确答案代码(A/B/C/D),填入每题的括号内(每题 1.5 ...
第七届全国青少年信息学(计算机)奥林匹克分区联赛复赛试题
第七届全国青少年信息学(计算机)奥林匹克分区联赛复赛试题 (普及组二类试卷 三小时完成) ●●存盘文件名分别为 C21.HTM、C22、C23、C24、C25,存到软盘上,存错 ...
第七届全国青少年信息学奥林匹克分区联赛初赛试题及答案
第七届全国青少年信息学奥林匹克分区联赛初赛试题 一、选择一个正确答案代码(A/B/C/D),填入每题的括号内(每题 1.5 分,多选无分,共 30 分) 1、在计算机...
更多相关标签:
小学奥林匹克信息学 | 奥林匹克信息学竞赛 | 青少年信息学奥林匹克 | 奥林匹克信息学有用吗 | 奥林匹克信息学 | 奥林匹克信息学 江苏 | 奥林匹克信息学试题 | 福建奥林匹克信息学 |