11、编写程序,输出“字母塔”。以此类推共26层。 (★★)
A
ABA
ABCBA
……………
12、 旅馆里有一百个房间,从1到100编了号。第一个服务员把所有的房间门都打开了,第二个服务员把所有编号是2的倍数的房间“相反处理”,第三个服务员把所有编号是3的倍数的房间作“相反处理”,……,以后每个服务员都是如此。问第100个服务员来过后,哪几扇门是打开的。(所谓“相反处理”是:原来开着的门关上,原来关上的门打开。) (★★)
(提示:对于任何一个编号,例如8,它的因子只有1、2、4、8,并且成对出现,当此数的因子数为偶数个时将被关上,当此数的因子数为奇数个时才会被打开。考虑到因子成对出现的情况,因此只有平方数的因子是奇数个的,所以门被打开的只能是平方数的房间,如1,4等)
13、 编写程序把任意十进制整数转换成二进制整数。 (★★)
14、 所谓“幻方”,是一个行、列为奇数的方阵,把1~n2这n2个不同的数放入方阵中,使方阵的每行、每列和每个对角线上的元素的和全部相等。下面给出幻方的一种排列方法:
(1) 先把1放在第一行的中间位置;
(2) 下一个数放在上一个数的右上方;
(3) 若右上方已超出方阵的第一行,则下一个数放在下一列的最后一行上;
(4) 若右上方已超出方阵的最后一列,则下一个数放在上一行的第一列上;
(5) 若右上方已经有数,或右上方已超出方阵的第一行最后一列,则下一个数放在上一个数的正下方。
编写程序,对输入小于15的n,打印出相应的幻方。
15、 在一个字符数组LET中形成由A开始的连续26个大写字母构成的字串,并将其倒置后仍放在LET中。
16、 随机输入一个长度不超过255的字符串,将其倒置后输出。
17、 随机输入一些国家的英文名字,以end作为输入结束标志,按字母顺序排序后输出。
18、 求n个字符串的最长公共子串,n<20,字符长度不超过255。
例如n=3,由键盘依次输入三个字符串为:
what is local bus?
Name some local bus.
Local bus is high speed I/O bus close to the processor.
则最长公共子串为“local bus”。
19、文本的整版。编写一个程序,从键盘以任意的方法输入句子,然后打印出来。打印时每行宽度必须为n个字符。如果一行的最后一个单词超出了本行n个字符的范围,则应把它移到下一行去。输入一个句子测试你的程序。
#include <stdio.h>
第13题:
#include <stdio.h>第11题(已测试通过)
#include<stdio.h>
void main()
{
int i,j;
char word[26];
for(i=0;i<26;i++)
word[i]=65+i;
for(i=0;i<26;i++)
{
for(j=0;j<=i;j++)
printf("%c",word[j]);
for(j=i-1;j>=0;j--)
printf("%c",word[j]);
printf("\n");
}
}
第12题(已经测试通过):
#include<stdio.h>
void main()
{
int i,j,room[100];
for(i=0;i<100;i++)
room[i]=0;
for(i=0;i<100;i++)
{
for(j=1;j<=100;j++)
if ((i+1)%j==0)
room[i]=!room[i];
}
for(i=0;i<100;i++)
if (room[i]==1)
printf("第%d扇门是打开的;\n",i+1);
}