全文预览

(信息学奥赛辅导)程序设计试题汇集(答案)

上传者:读书之乐 |  格式:doc  |  页数:54 |  大小:347KB

文档介绍
i:=1 to n do read(a[i]);Р for i:=1 to n-1 doР for j:=1 to n-i doР if a[j]>a[j+1] then begin t:=a[j]; a[j]:=a[j+1]; a[j+1]:=t; end;Р for i:=1 to n do write(a[i]:5);Рend.Р折半查找。(二分法查找) (★★)Р旅馆里有一百个房间,从1到100编了号。第一个服务员把所有的房间门都打开了,第二个服务员把所有编号是2的倍数的房间“相反处理”,第三个服务员把所有编号是3的倍数的房间作“相反处理”,……,以后每个服务员都是如此。问第100个服务员来过后,哪几扇门是打开的。(所谓“相反处理”是:原来开着的门关上,原来关上的门打开。) (★★)Р(提示:对于任何一个编号,例如8,它的因子只有1、2、4、8,并且成对出现,当此数的因子数为偶数个时将被关上,当此数的因子数为奇数个时才会被打开。考虑到因子成对出现的情况,因此只有平方数的因子是奇数个的,所以门被打开的只能是平方数的房间,如1,4等)Р编写程序把任意十进制整数转换成二进制整数。(★★)Р所谓“幻方”,是一个行、列为奇数的方阵,把1~n2这n2个不同的数放入方阵中,使方阵的每行、每列和每个对角线上的元素的和全部相等。下面给出幻方的一种排列方法:Р先把1放在第一行的中间位置;Р下一个数放在上一个数的右上方;Р若右上方已超出方阵的第一行,则下一个数放在下一列的最后一行上;Р若右上方已超出方阵的最后一列,则下一个数放在上一行的第一列上;Р若右上方已经有数,或右上方已超出方阵的第一行最后一列,则下一个数放在上一个数的正下方。Р编写程序,对输入小于15的n,打印出相应的幻方。(★★★)Р在一个字符数组LET中形成由A开始的连续26个大写字母构成的字串,并将其倒置后仍放在LET中。

收藏

分享

举报
下载此文档