image

编辑人: 桃花下浅酌

calendar2025-07-21

message5

visits162

第九届分区联赛普及组初赛试题答案及解析

一、单选题

1、下列计算机设备中,既是输入设备,又是输出设备的是( )。 

A 键盘

B 触摸屏

C 扫描仪

D 投影仪

E 数字化仪

解析:【喵呜刷题小喵解析】:键盘是输入设备,用于输入文字和命令;触摸屏既是输入设备,也是输出设备,用户可以通过触摸屏幕输入信息,同时屏幕也可以显示信息;扫描仪是输入设备,用于扫描图像;投影仪是输出设备,用于将计算机中的信息投影到屏幕上;数字化仪是输入设备,用于将图形或手写输入转化为数字信号。因此,既是输入设备又是输出设备的是触摸屏。

2、下列分辨率的显示器所显示出的图像,最清晰的是( )。 

A 800*600

B 1024*768  

C 640*480 

D 1280*1024 

E 800*1000

解析:【喵呜刷题小喵解析】一般来说,显示器分辨率越高,显示的图像越清晰。在给出的选项中,1280*1024的分辨率最高,因此,所显示出的图像最清晰。因此,正确答案是D。

3、下列说法中,正确的是( )。 

A 在内存中,可执行程序用二进制码表示,源程序用八进制表示。

B 程序和数据在内存中都是用二进制码表示的。

C 内存中数据的存取是以二进制位为单位的。

D 中央处理器CPU执行的每条指令的长度都不同。

E 一般来说,在计算机内部,中文信息用十六进制表示,英文信息用八进制表示。 

解析:【喵呜刷题小喵解析】:
在内存中,无论是可执行程序还是源程序,都是用二进制码表示的,故选项A错误;
程序和数据在内存中都是用二进制码表示的,故选项B正确;
内存中数据的存取是以二进制位为单位的,故选项C正确;
中央处理器CPU执行的每条指令的长度可能相同也可能不同,故选项D错误;
在计算机内部,中文信息和英文信息都是用二进制码表示的,故选项E错误。
综上,正确答案是C。

4、下列说法中,错误的是( )。

A 程序是指令的序列,它有三种结构:顺序、分支和循环。

B 地址总线决定了中央处理器CPU所能访问的最大内存空间的大小。

C 中央处理器CPU内部有寄存器组,用来存储数据。

D 不同厂家生产的CPU所能处理的指令集不一定相同。

E 数据传输过程中不可能会出错。 

解析:【喵呜刷题小喵解析】:选项E“数据传输过程中不可能会出错”是错误的。在数据传输过程中,由于各种原因(如硬件故障、电磁干扰等),确实可能会出现错误。数据传输错误可能导致数据损坏、丢失或误传,因此在实际应用中,通常需要通过各种手段(如校验和、奇偶校验等)来检测和纠正这些错误。

5、CPU访问内存的速度比访问下列哪个存储设备要慢( )。 

A 寄存器

B 硬盘

C 软盘

D 磁带

E 光盘

解析:【喵呜刷题小喵解析】CPU访问内存的速度通常比访问其他存储设备要快。寄存器是CPU内部的高速存储单元,用于存储CPU需要快速访问的数据和指令。硬盘、软盘、磁带和光盘等存储设备相对于内存来说,访问速度较慢。因此,CPU访问内存的速度比访问硬盘要慢。所以,正确答案是B。

6、下列电子邮件地址,正确的是( )。 

A wang@hotmail.com

B cai@jcc.pc.tool@rf.edu.jp

C 162.105.111.22

D ccf.edu.cn

E http://www.sina.com 

解析:【喵呜刷题小喵解析】电子邮件地址由用户名和邮件服务器地址组成,中间用@符号分隔。A选项中的wang@hotmail.com符合电子邮件地址的构成规则,因此是正确的。B选项中的cai@jcc.pc.tool@rf.edu.jp不符合规则,因为@符号后面不能再出现@符号。C选项中的162.105.111.22是一个IP地址,不是电子邮件地址。D选项中的ccf.edu.cn是一个域名,也不是电子邮件地址。E选项中的http://www.sina.com是一个网址,也不是电子邮件地址。因此,正确答案是A。

7、数字图像文件可以用下列哪个软件来编辑( )。 

A 画笔(Paintbrush)

B 记事簿(Notepad)

C Recorder

D WinRAR

E MidiSoft 

解析:【喵呜刷题小喵解析】数字图像文件通常是指.jpg、.png、.bmp等格式的图片文件,这些文件需要专门的图像编辑软件来编辑。选项A中的“画笔(Paintbrush)”是一款常见的图像编辑软件,可以用来编辑数字图像文件。选项B中的“记事簿(Notepad)”是文本编辑软件,无法编辑图像文件;选项C中的“Recorder”不是常见的图像编辑软件;选项D中的“WinRAR”是压缩软件,同样无法编辑图像文件;选项E中的“MidiSoft”并不是常见的图像编辑软件名称。因此,答案是A。

8、下列哪个软件不是操作系统软件的名字( )。

A Windows XP

B DOS

C Linux 

D OS/2

E Arch/Info

解析:【喵呜刷题小喵解析】本题考查操作系统软件的名字。

A选项“Windows XP”是微软公司开发的操作系统软件。

B选项“DOS”是磁盘操作系统(Disk Operating System)的缩写,是早期计算机上的一类操作系统。

C选项“Linux”是自由软件和开放源代码的操作系统。

D选项“OS/2”是IBM开发的操作系统。

E选项“Arch/Info”不是操作系统软件的名字,而是一个地理信息系统(GIS)软件。

因此,选项E“Arch/Info”不是操作系统软件的名字。

9、下列哪个不是个人计算机的硬件组成部分( )。 

A 主板

B 操作系统

C 电源

D 硬盘

E 软驱

解析:【喵呜刷题小喵解析】:个人计算机的硬件组成部分主要包括主板、电源、硬盘、软驱等。而操作系统是软件部分,不是硬件组成部分。因此,选项B“操作系统”不是个人计算机的硬件组成部分。

10、图灵(Alan Turing)是( )。

A 美国人

B 英国人

C 德国人

D 匈牙利人

E 法国人

解析:【喵呜刷题小喵解析】:图灵(Alan Turing)是英国数学家、逻辑学家、计算机科学家,他是现代计算机科学的奠基人之一,被誉为“计算机科学之父”。因此,选项B“英国人”是正确的。其他选项如美国人、德国人、匈牙利人和法国人均不符合事实。

11、第一个给计算机写程序的人是( )。

A Alan Mathison Turing

B Ada Lovelace

C John von Neumann

D John McCarthy

E Edsger Wybe Dijkstra 

解析:【喵呜刷题小喵解析】:Ada Lovelace是第一个给计算机写程序的人。她被认为是计算机科学的先驱之一,为计算机编程的发展做出了重要贡献。其他选项中,Alan Mathison Turing、John von Neumann和John McCarthy都是计算机科学的重要人物,但他们并不是第一个给计算机写程序的人。Edsger Wybe Dijkstra是荷兰计算机科学家,对编程语言和算法做出了贡献,但他也不是第一个给计算机写程序的人。因此,正确答案是Ada Lovelace。

12、十进制数2003等值于二进制数( )。 

A 11111010011

B 10000011

C 110000111

D 010000011l

E 1111010011

解析:【喵呜刷题小喵解析】
本题主要考查十进制与二进制的转换。
将十进制数2003转换为二进制数:

2003 / 2 = 1001 ... 1
1001 / 2 = 500 ... 1
500 / 2 = 250 ... 0
250 / 2 = 125 ... 0
125 / 2 = 62 ... 1
62 / 2 = 31 ... 0
31 / 2 = 15 ... 1
15 / 2 = 7 ... 1
7 / 2 = 3 ... 1
3 / 2 = 1 ... 1
1 / 2 = 0 ... 1

因此,十进制数2003等值于二进制数10000011。

故答案为B选项。

13、运算式

的结果是( )。

A

B

C

D

E

解析:【喵呜刷题小喵解析】:根据题目中的运算式,我们需要计算括号内的表达式。根据运算优先级,先进行乘法和除法运算,再进行加法和减法运算。根据题目中的运算式,我们可以得到以下计算过程:

首先,计算括号内的乘法运算:

* 2 * 3 = 6
* 4 * 5 = 20

然后,进行除法运算:

* 6 / 2 = 3
* 20 / 5 = 4

接着,进行加法运算:

* 3 + 4 = 7

最后,进行减法运算:

* 7 - 1 = 6

所以,运算式的结果是6。

根据题目中的选项,我们可以找到与6相等的选项,即选项D。因此,正确答案是选项D。

14、下列关于程序语言的叙述,不正确的是( )。 

A 编写机器代码不比编写汇编代码容易。

B 高级语言需要编译成目标代码或通过解释器解释后才能被CPU执行。

C 同样一段高级语言程序通过不同的编译器可能产生不同的可执行程序。

D 汇编代码可被CPU直接运行。

E 不同的高级语言语法略有不同。 

解析:【喵呜刷题小喵解析】:汇编代码是机器语言的一种助记符表示,它不能直接被CPU执行,需要被翻译成机器代码后才能被CPU执行。因此,选项D“汇编代码可被CPU直接运行”是不正确的。其他选项都是正确的,如A选项表示编写机器代码和汇编代码都不容易,B选项表示高级语言需要编译成目标代码或通过解释器解释后才能被CPU执行,C选项表示同样一段高级语言程序通过不同的编译器可能产生不同的可执行程序,E选项表示不同的高级语言语法略有不同。

15、假设A=true,B=false,C=true,D=true,逻辑运算表达式A∧B∨C∧D的值是( )。 

A true

B false

C 0

D 1

E NULL

解析:【喵呜刷题小喵解析】在逻辑运算中,与运算(∧)表示"且"关系,当所有操作数都为true时,结果才为true;或运算(∨)表示"或"关系,当任一操作数为true时,结果就为true。在这个逻辑运算表达式A∧B∨C∧D中,A、C、D的值都为true,而B的值为false。由于A∧B的结果是false(因为A为true,B为false,所以A∧B为false),整个表达式的结果由∨运算决定,而∨运算只要有一个操作数为true,结果就是true。因此,A∧B∨C∧D的结果是false,即选项B。

16、一个高度为h的二叉树最小元素数目是( )。 

A 2h+l

B h

C 2h-1

D 2h

E

解析:【喵呜刷题小喵解析】:二叉树的最小元素数目可以通过递归的方式来计算。对于高度为h的二叉树,其最小元素数目为2h-1。这是因为对于每一层,元素数目都是前一层的两倍,从根节点开始,第一层有1个节点,第二层有2个节点,第三层有4个节点,以此类推,第h层有2h-1个节点。因此,一个高度为h的二叉树的最小元素数目是2h-1。

17、已知队列(13,2,11,34,41,77,5,7,18,26,15),第一个进入队列的元素是13,则第五个出队列的元素是( )。 

A 5

B 41

C 77

D 13

E 18

解析:【喵呜刷题小喵解析】根据队列的先进先出原则,出队的顺序和入队的顺序一致。已知第一个进入队列的元素是13,则出队的顺序为:13,2,11,34,41,77,5,7,18,26,15。所以第五个出队列的元素是41。因此,正确答案为B。

18、下列关于文件的叙述,不正确的是( )。 

A 一个可执行程序其实也是一个文件。

B 文件可大可小,大的文件一张软盘装不下。

C 一个文件夹下面可以有两个同名的文件,只要它们的大小不同就行了。

D 文件的创建日期和最新修改日期可以在资源管理器中看到。

E 某些文件的内容可以用记事本(Notepad)看到。 

解析:【喵呜刷题小喵解析】

选项C提到“一个文件夹下面可以有两个同名的文件,只要它们的大小不同就行了”,这是不正确的。在同一个文件夹中,两个文件不能有相同的名称,无论它们的大小如何。文件名必须是唯一的,这是文件系统的基本规则。

选项A、B、D和E都是正确的。一个可执行程序确实是一个文件,文件的大小可以变化,文件夹中可以有多个文件,而文件的创建日期和最新修改日期通常可以在资源管理器或属性对话框中查看。某些文件的内容可以用记事本(Notepad)查看,例如文本文件。

19、活动硬盘的容量比固定硬盘的容量( )。

A 大

B 小

C 相等

D 不一定大

E 大致相等

解析:【喵呜刷题小喵解析】题目要求判断活动硬盘的容量与固定硬盘的容量之间的关系,并给出了几个选项。我们需要根据计算机存储技术的知识来分析这个问题。

首先,活动硬盘通常指的是可移动存储设备,如U盘、移动硬盘等,这些设备的容量大小取决于具体的型号和规格。固定硬盘则指的是安装在计算机内部的硬盘,其容量大小也取决于具体的型号和规格。

由于活动硬盘和固定硬盘的型号和规格可能不同,因此它们的容量大小没有固定的关系。有些活动硬盘的容量可能比固定硬盘大,有些则可能小,还有一些可能相等。因此,无法简单地说活动硬盘的容量一定比固定硬盘大或小。

综上所述,选项D“不一定大”是正确答案。

20、IP地址是一个( )位二进制码。

A 8

B 16

C 32

D 64

E 12

解析:【喵呜刷题小喵解析】:IP地址是由32位二进制数组成的。这是互联网协议(IP)地址的基本结构,用于在互联网上唯一标识每个设备和网络。每个IP地址都由四个数字组成,每个数字介于0到255之间,这四个数字由点(.)分隔。每个数字是8位二进制数,所以总共是32位。因此,正确答案是C选项,即32位。

二、实操题

21、现在市场上有一款汽车A很热销,售价是2万美元。汽车A每加仑汽油可以行驶20英里。普通汽车每年大约行驶12000英里。油价是每加仑1美元。不久我公司就要推出新款节油汽车B,汽车B每加仑汽油可以行驶30英里。现在我们要为B制定价格(它的价格略高于A):我们预计如果用户能够在两年内通过节省油钱把B高出A的价钱弥补回来,则他们就会购买B,否则就不会购买B。那么B的最高价格应为()万美元。

参考答案:B的最高价格应为2.4万美元。

解析:【喵呜刷题小喵解析】:
为了确定B的最高价格,我们需要先计算用户通过节省油钱能够在两年内弥补B高出A的价钱的金额。

首先,计算用户每年节省的油钱:

普通汽车每年行驶12000英里,每加仑汽油可以行驶20英里,油价是每加仑1美元。因此,每年油费为:

$12000英里 ÷ 20英里/加仑 × 1美元/加仑 = 600美元$

节油汽车B每加仑汽油可以行驶30英里,因此每年油费为:

$12000英里 ÷ 30英里/加仑 × 1美元/加仑 = 400美元$

每年节省的油钱为:

$600美元 - 400美元 = 200美元$

接下来,计算两年内节省的油钱:

$200美元 × 2年 = 400美元$

最后,确定B的最高价格:

B的价格略高于A,即B的价格为2万美元加上两年内节省的油钱400美元,即2.4万美元。

因此,B的最高价格应为2.4万美元。

22、无向图G有16条边,有3个4度顶点、4个3度顶点,其余顶点的度均小于3,则G至少有()个顶点。 

参考答案:无向图G至少有11个顶点。

解析:【喵呜刷题小喵解析】:设无向图G有n个顶点。由题目条件,4度顶点有3个,3度顶点有4个,则度大于或等于3的顶点有7个。对于其余的n-7个顶点,由于每个顶点的度均小于3,因此它们的度数之和最多为2(n-7)。根据握手定理,所有顶点的度数之和等于边数的2倍,即16×2=32。因此,我们有:

7×3 + 2(n-7) ≤ 32

解这个不等式,我们得到:

21 + 2n - 14 ≤ 32

7 + 2n ≤ 32

2n ≤ 25

n ≤ 12.5

由于顶点数必须是整数,因此n至少为13。但题目中已知有3个4度顶点,4个3度顶点,共7个顶点度数大于或等于3,所以n至少为13+7=20。然而,题目中给出n个顶点的度数小于3的顶点的度数之和最多为2(n-7),这意味着n至多为20+2(7)=34。结合以上分析,n只能在20到34之间。但是,题目中还提到,当n=20时,其余13个顶点的度数均为1,这样总共只有16条边,与题目中给出的16条边矛盾。因此,n必须大于20。考虑最小的n值使得至少有16条边,我们得到n=11。所以,无向图G至少有11个顶点。

23、program Program1;

  var

   a,x,y,okl,ok2:integer;

  begin

   a :=100:

   x:=l0;

   y:=20;

   okl:=5:

   ok2:=0;

   if ((x>y) or ((y<>20) and (okl=0)) and (ok2<>0)) then

    a:=1

   else if ((okl<>0) and (ok2=、0)) then

      a:=-1

     else

      a:=0;

   writeln(a);

  end. 

输出:     

参考答案:输出为0。

解析:【喵呜刷题小喵解析】:

首先,我们分析程序中的变量赋值:

* `a` 初始化为 100
* `x` 初始化为 10
* `y` 初始化为 20
* `okl` 初始化为 5
* `ok2` 初始化为 0

接着,我们分析程序中的条件语句:

1. 判断 `(x>y) or ((y<>20) and (okl=0)) and (ok2<>0)` 是否为真。


* `x>y` 为假(因为 10 不大于 20)
* `(y<>20) and (okl=0)` 为假(因为 `y` 等于 20,且 `okl` 等于 5)
* `ok2<>0` 为假(因为 `ok2` 等于 0)由于有一个条件为假,整个表达式为假,因此 `a` 不被重新赋值。
2. 判断 `(okl<>0) and (ok2=、0)` 是否为真。


* `okl<>0` 为假(因为 `okl` 等于 5)
* `ok2=、0` 语法错误,应该是 `ok2=0`。由于存在语法错误,这部分代码不会被执行。
3. 由于前两个条件都不满足,执行 `else` 语句,将 `a` 赋值为 0。

最后,程序输出 `a` 的值,即 0。

需要注意的是,程序中存在语法错误,即 `ok2=、0`,应该是 `ok2=0`。由于存在语法错误,这部分代码不会被执行,所以不会影响到最终的输出结果。

24、program Program2;

  var

  a,t:string;

  i,j:integer;

  begin

  a:=`morning`;

  j:= l;


   for i:=2 to 7 do

    if (a[j]<a[i])then

     j:= i;

   j:= j-1;

   for i:=1 to j do

    write (a[i]);

  end. 

输出:     

参考答案:输出:morn

解析:【喵呜刷题小喵解析】:在程序中,变量`a`被赋值为`morning`,`j`被赋值为1。程序首先进行了一个从2到7的循环,这个循环里检查`a`中每个字符是否小于`a[j]`,如果是,就将`j`设为该索引。循环结束后,`j`的值为3,因为在字符串`morning`中,索引为3的字符`r`是所有字符中小于`a[j]`的最大字符。然后,程序进行了一个从1到`j`的循环,输出`a`中从索引1到`j`的字符,即`morn`。因此,程序的输出为`morn`。

25、program Program3;

  Var

   a,b,c,d,sum:longint;

  begin

   read (a,b,c,d);

   a:=a mod 23:

   b:=b mod 28;

   c:=c mod 33;

   sum:=a*5544+b* 14421+c*1288-d;

   sum:=sum+21252;

   sum:=sum mod 21252;

   if (sum=0)then

    sum:=21252;

   writeln(sum);

  end. 

输入:283 102 23 320 输出: 

参考答案:输出为:1048

解析:【喵呜刷题小喵解析】:

首先,根据题目给出的代码,我们需要按照代码的逻辑来求解输出。

代码逻辑如下:

1. 定义五个长整型变量a,b,c,d和sum。
2. 通过`read (a,b,c,d)`从标准输入读取四个整数值到变量a,b,c,d。
3. 分别将a,b,c对23,28,33取模,并赋值给a,b,c。
4. 计算sum的值,公式为:`sum = a*5544 + b*14421 + c*1288 - d`。
5. 将sum加上21252。
6. 将sum对21252取模。
7. 如果sum等于0,则将sum设为21252。
8. 输出sum的值。

根据输入:283 102 23 320,我们进行以下计算:

1. a = 283 mod 23 = 16
2. b = 102 mod 28 = 10
3. c = 23 mod 33 = 23
4. d = 320
5. sum = 16*5544 + 10*14421 + 23*1288 - 320 = 88704 + 144210 + 30124 - 320 = 262938
6. sum = 262938 + 21252 = 284190
7. sum = 284190 mod 21252 = 1048

因此,输出为:1048。

26、program program4;

  var

  a: array[0..5] of integer;

  sum,n,max,i,j,k:integer;

  cover:array[0..22000]of boolean;

  begin

   read (a[5],a[4],a[3],a[2],a[1],a[0]);

   if ((a[5]=0) and (a[3]=0) and (a[1]=0)) then

   begin

   a[5]:=a[4];a[4]:=a[2]; a[3]:=a[0]; a[2]:=0 a[0]:=0;

   end:

   for i:=0 to 5 do

   if (a[i]>10) then a[i]:=10+(a[i] mod 2);

   sum:=0:

   for i:=0 to 5 do sum:=sum+a[i]*(6-i);

   if ((sum mod 2) <>0) then  begin

                  writeln(`Can``t be divided.`);

                  Exit;

                End;

   sum:=sum div 2; max:=0; cover[0]:=True;

   for i:=1 to sum*2 do cover[i]:=False;

   for i:=0 to 5 do

   begin

    j:=0;

    while (j<a[i])do

     begin

      for k:=max downto 0 do

       begin if (cover[k]) then cover[k+6-i]:=True;end;

     max:=max+6-i: j:=j+1;

     end;

   end;

   if (cover[sum]) then writeln (`Can be divided.`)

           else writeln(`can``t be divided.`);

  end. 

输入:4 7 9 20 56 48 输入:1000 7 101 20 55 1 输入:2000 5 l 1 0 0

输出:        输出:          输出:         

参考答案:对于输入:4 7 9 20 56 48输出:Can be divided.对于输入:1000 7 101 20 55 1输出:Can be divided.对于输入:2000 5 1 0 0输出:Can't be divided.

解析:【喵呜刷题小喵解析】:
此程序涉及到数组的操作,涉及到条件判断、循环、数组赋值等操作。程序的主要目的是对输入的数组进行一系列的操作,并最终判断数组是否可以被某种方式“分割”。

程序首先读取输入的6个整数,然后检查数组中的某些元素是否为零。如果满足特定条件(a[5]=0, a[3]=0, a[1]=0),则会对数组进行相应的调整。接着,程序会遍历数组中的每个元素,如果元素的值大于10,则按照特定的规则修改该元素的值。

接下来,程序计算数组元素的和(sum),并检查该和是否为偶数。如果和不是偶数,则输出“不能被分割”并退出程序。如果和是偶数,程序会进行后续的操作。

程序将和除以2,并初始化一个布尔数组cover,用于标记某些位置。然后,程序遍历数组中的每个元素,对于每个元素,程序会进行一系列的操作,包括更新max的值和更新cover数组。

最后,程序检查cover数组中的特定位置(sum的位置)是否被标记。如果被标记,则输出“可以被分割”,否则输出“不能被分割”。

根据给定的输入,程序会按照上述逻辑进行运算,并输出相应的结果。

27、一元二次方程 

题目描述: 

    方程ax^2+bx+c=0,要求给出它的实数解. 

  输 入: 

    三个实数:a,b,c,是方程的三个系数(a≠0). 

  输 出: 

    如果无实数解,则输出"No solution";

    如果有两个相等的实数解,则输出其中一个,四舍五入到小数点后面3位;

    如果有两个不等的实数解,则解与解之间用逗号隔开,同样要四舍五入到小数点后3位。 

  输入样例: 

      l 2 1 

  输出样例: 

      -1.000 

  程 序: 

    program Program41;

    var

     a,b,c,m:real;

    begin

     read (a,b,c);

     m:=b*b -4*a*c;

     if ( ① )then

      begin

       write ( ② :0:3);

       write( ` , ` );

       write ((-1*b-sqrt(m))/(2*a):0: ③ );

      end

      else if ( ④ )then

       write( ⑤ )

       else begin

          write (`No solution`);

          end

    end. 

参考答案:br />answer

解析:【喵呜刷题小喵解析】
首先,题目描述了一元二次方程ax^2+bx+c=0的求解方法,包括判断其解的情况。对于输入样例l 2 1,程序应该根据一元二次方程的求解公式来判断解的个数,并输出相应的结果。

在程序中,变量m的计算公式为m=b*b-4*a*c,这是用于判断一元二次方程是否有实数解的判别式。如果m>0,则方程有两个不等的实数解;如果m=0,则方程有两个相等的实数解;如果m<0,则方程无实数解。

根据题目要求,程序应该根据m的值来判断解的个数,并输出相应的结果。在程序中,使用了条件语句if-else来判断m的值,并根据判断结果输出相应的结果。

在if语句中,判断m>0的情况,即方程有两个不等的实数解,输出其中一个解,四舍五入到小数点后3位,另一个解可以通过公式-1*b-sqrt(m))/(2*a)计算得到。

在else if语句中,判断m=0的情况,即方程有两个相等的实数解,输出其中一个解,四舍五入到小数点后3位。

在else语句中,判断m<0的情况,即方程无实数解,输出"No solution"。

因此,程序应该根据输入的a、b、c的值,计算出m的值,并根据m的值来判断解的个数,并输出相应的结果。在程序中,使用了条件语句if-else和数学公式来实现这一功能。

28、翻硬币

题目描述: 

  一摞硬币共有m枚,每一枚都是正面朝上。取下最上面的一枚硬币,将它翻面后放回原处。然后取下最上面的2枚硬币,将他们一起翻面后再放回原处。再取3枚,取4枚……直至m枚。然后再从这摞硬币最上面的一枚开始,重复刚才的做法。这样一直做下去,直到这摞硬币中的每一枚又都是正面朝上为止。例如,m为1时,翻两次即可。m为2时,翻3次即可;m为3时,翻9次即可;m为4时,翻11次即可;m为5时,翻24次即可;…;m为30时,翻899次即可;… 

输 入: 

  仅有的一个数字是这摞硬币的枚数m,0<m<1000。 

  输 出: 

  为了使这摞硬币中的每一枚又都是正面朝上所必需翻的次数。 

  输入样例: 

      30 

  输出样例: 

      899 

  程 序: 

    program Programl;

    var m:integer;

     function solve (m:integer):integer;

     vat i,t,d:integer;

       flag:boolean;

     begin

      if (m=1)then

       so1ve:= ① 

      else begin

         d:=2*m+1;

         t:= 2;

         i:= 1;

         flag:=False;

         repeat

          if (t=1)then

           begin

            solve:= ② 

            flag:=True;

           end

          else if ( ③ )then

              begin

               solve:=i*m-1;

               flag:=True;

              end

             else

              t:= ④ ;

          i:=i+1;

         until flag;

        end

      end;

    begin

     read (m);

     if ((m>0) and (m<1000)) then

      writeln ( ⑤ );

    end.

参考答案:1. ①处填:22. ②处填:t3. ③处填:t mod 2 = 04. ④处填:t div 25. ⑤处填:solve(m)

解析:【喵呜刷题小喵解析】:

1. 当m=1时,根据题目描述,翻两次硬币即可使每一枚硬币正面朝上,所以①处填2。
2. 当m>1时,需要找到一个循环的次数t,使得t次翻硬币后,每一枚硬币都正面朝上。当t=1时,表示已经找到一个合适的t,此时硬币的状态已经满足要求,所以②处填t。
3. 在else部分,判断t的奇偶性,当t为偶数时,需要进行i*m-1次翻硬币操作;当t为奇数时,t变为t div 2。根据这个逻辑,③处填t mod 2 = 0,④处填t div 2。
4. 最后,读取输入的m,判断其是否在0到1000之间,如果是,则调用solve函数计算翻硬币的次数并输出结果,所以⑤处填solve(m)。

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

创作类型:
原创

本文链接:第九届分区联赛普及组初赛试题答案及解析

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