image

编辑人: 未来可期

calendar2025-06-05

message2

visits970

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

一、实操题

1、 我国先后自行研制成功“银河”系列的巨型计算机,其中:

“银河”于1983年问世,其运算速度为每秒___________次;

“银河Ⅱ”于1992年诞生,其运算速度为每秒__________次;

“银河Ⅲ”于1997年通过国家鉴定,其运算速度为每秒__________次。

参考答案:“银河”于1983年问世,其运算速度为每秒1亿次;“银河Ⅱ”于1992年诞生,其运算速度为每秒10亿次;“银河Ⅲ”于1997年通过国家鉴定,其运算速度为每秒30亿次。


二、单选题

2、下列软件均属于操作系统的是:()

A WPS 与 PC DOS

B Windows 与 Ms dos 

C Word 与 Windows 

D Foxbase  与 Os/2 


三、实操题

3、在MS DOS 的根目录中,有如下文件:

   TIME.EXE          TIME.COM        TIME.BAT

   试问:C:\>TIME < 回车 > 执行的是什么命令?

参考答案:执行的是TIME.COM文件。


4、设数组A[10..100,20..100] 以行优先的方式顺序存储,每个元素占4个字节,且已知A[10,20]的地址为1000,则A[50,90]的地址是()

参考答案:A[50,90]的地址是1760。


5、下面是一个求:1/1+1/2+2/3+3/5+5/8+8/13+13/21+21/32…前20项的和的程序段,试将程序补充完整:

参考答案:根据题目中的信息,我们需要补充完整的程序段来计算前20项的和。由于题目中并未给出具体的编程语言,我将使用Python语言来编写程序。以下是补充完整的程序段:```pythondef sum_sequence(n):result = 0a, b = 0, 1for i in range(n):result += a / ba, b = b, a + breturn resultprint(sum_sequence(20))```


6、一个汉字的机内码目前通常用二个字节来表示:第一个字节是区位码的区号加;第二个字节是区位码的位码加

 已知:汉字“却”的区位码是4020,试写出机内码两个字节的二进制的代码:

参考答案:汉字“却”的机内码两个字节的二进制代码为:10000010 10100000。


7、已知ASCII码表中的大写字母后有6个其它字符,接着便是小写字母。现已知:A字母的ASCII码为,试写出如下字母用十进制表示的ASCII码:

参考答案:B的ASCII码为66,C的ASCII码为67,D的ASCII码为68,E的ASCII码为69,F的ASCII码为70,G的ASCII码为71,h的ASCII码为104。


8、下图中用点表示城市,点与点之间的联系表示城市间的道路:

试问:

① 能否找出一条从A城市出发,经过图中所有道路一次后又回到出发点的通路来?

② 能否从A出发,找出去每个城市且只去一次的通路来?

若能,则写出通路,否则说明理由。

参考答案:① 不能找出一条从A城市出发,经过图中所有道路一次后又回到出发点的通路来。② 不能从A出发,找出去每个城市且只去一次的通路来。


9、为了便于处理表达式,常常将普通表达式(称为中缀表示)转换为前缀{运算符在前,如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)}

参考答案:br />① 前缀表示:+AB*C/D 或 +A/DCB*后缀表示:A+B*C/D 或 A*BC/D+② 前缀表示 +△A *B△C 还原为中缀表示:-(A)*(B)-(-C)后缀表示:△A*B△C 或 A*△BC△


10、一个将角编了号的正三角形可以绕着外心O(中心)逆时针旋转,如下图所示:

如果将这一旋转用字母a 来表示,看作运算对象,同时用aa或表示旋转后再旋转,也就是说将连续运动看作乘法运算,那么三角形状态(可简称为元素)即可与运动表达式关联起来,请回答:

①如果将图一的原始三角形连续旋转N次,简单地表示为(N为任意自然数),试求的值(指三角形旋转后的结果状态);

② 如果将下面的旋转看作是a的逆元素,记为 ,则有=

试求:

参考答案:① 如果将图一的原始三角形连续旋转N次,简单地表示为(N为任意自然数),试求的值(指三角形旋转后的结果状态);解:由于每次旋转后,三角形会回到原来的位置,因此连续旋转N次后,三角形会回到初始位置。所以=初始状态。② 如果将下面的旋转看作是a的逆元素,记为,则有=解:根据逆元素的定义,如果一个元素a的逆元素b满足=,那么=初始状态。


11、[问题描述]  读入n个不相同且不为0的数(1<=n<=100),不用排序,求出其中第r个大的数(1≤r≤n),即有r-1个数比它大,其余的数都比它小。

例如:输入3,14,22,15,17,6,其中第3个大的数为15。

[算法说明]  以数组a[1..100]记录读入的n个数,并以0结束(0本身不是n个数中的数)。然后从第一个数开始,将它与其余的数进行比较并记录出比它大的数的个数(存于变量y中),若y=r-1时,得到所求结果:否则对下一个数进行同样的处理。

[程序清单]

参考答案:根据题目描述,算法的思路是从第一个数开始,将它与其余的数进行比较并记录出比它大的数的个数(存于变量y中),若y=r-1时,得到所求结果;否则对下一个数进行同样的处理。具体实现步骤如下:1. 初始化变量i和y为0,其中i表示当前处理的数的位置,y表示比当前数大的数的个数。2. 遍历数组a,对于每个数,将i和y的值分别加1,并将当前数与后面的数进行比较,如果后面的数比当前数大,则将y的值加1。3. 当y的值等于r-1时,输出当前数,即为第r个大的数。


12、[问题描述]  在进行正整数的除法运算时,可以通过减法来实现。

    例如(Q:商,R:余数)可通过下列的方式实现:

    q:=0;  r:=x;

    while r>=y do begin r:=r-y;  q:=q+1  end;

结果,商在q中,余数在r中。

 [算法说明]  上面的算法有一个缺点,就是当x比较大、y比较小时,则运算的次数非常多,速度太慢。为提高速度,下面给出改进的算法:先找一个非常接近x的数w,且满足:

然后通过减法与移位的运算,以较少的运算次数完成除法。

[程序清单]

参考答案:


13、[问题描述]  一个正整数(非素数)可表示成它的因子(1与其本身除外)的乘积。

    例如:12有因子2,3,4,6,所以可表示为:

        12=223=43=26

    给出任一个正整数N,求出它所有的因子乘积的表达式(交换律得出的不同式子算同一种)。

    [算法说明]  读入一个整数N,首先求出它的所有的因子以及每个因子可能的次数。

    例如:整数48:

    因子:2  3  4  6  8  12  16  24

    次数:4  1  2  1  1  1   1   1

将上面的结果存入数组A:ARRAY[0..20,1..2]中。其中:A[¡,1]表示因子;A[¡,2]表示次数。

然后用简单回溯的方法求出所有可能的表示。

数组B[0..20]记录取数情况;c:array[0..20]工作单元。

[程序清单]

参考答案:由于题目中未提供具体的算法代码,因此无法直接给出答案。但是,根据题目描述,可以概括出以下步骤:1. 读入一个正整数N,求出它的所有因子及每个因子的次数。2. 将结果存入数组A,其中A[i,1]表示因子,A[i,2]表示次数。3. 使用回溯算法,结合数组B记录取数情况和工作单元c,求出所有可能的因子乘积表示。具体的算法实现需要参考具体的代码实现,根据题目描述,大致的算法思路如上所述。


喵呜刷题:让学习像火箭一样快速,快来微信扫码,体验免费刷题服务,开启你的学习加速器!

创作类型:
原创

本文链接:第三届全国青少年信息学(计算机)奥林匹克分区联赛初赛试题 (初中组)参考答案

版权声明:本站点所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明文章出处。
分享文章
share