GCC入门必做的题作业布置.docx

上传人:b****8 文档编号:9383827 上传时间:2023-02-04 格式:DOCX 页数:56 大小:71.92KB
下载 相关 举报
GCC入门必做的题作业布置.docx_第1页
第1页 / 共56页
GCC入门必做的题作业布置.docx_第2页
第2页 / 共56页
GCC入门必做的题作业布置.docx_第3页
第3页 / 共56页
GCC入门必做的题作业布置.docx_第4页
第4页 / 共56页
GCC入门必做的题作业布置.docx_第5页
第5页 / 共56页
点击查看更多>>
下载资源
资源描述

GCC入门必做的题作业布置.docx

《GCC入门必做的题作业布置.docx》由会员分享,可在线阅读,更多相关《GCC入门必做的题作业布置.docx(56页珍藏版)》请在冰豆网上搜索。

GCC入门必做的题作业布置.docx

GCC入门必做的题作业布置

GCC入门必做的题

1.  给定等式  A B C D E     

                        D F G     

             +         D F G    

                  ───────

X Y Z D E

其中每个字母代表一个数字,且不同数字对应不同字母。

编程求出这些数字并且打出这个数字的 算术计算竖式。

G=0,F=5,X=A+1;A!

=9,

A:

1~8

B:

7~9

C:

0~9

D:

0~9

E:

0~9

intb[10]={0};//b[i]用于记录数字i是否被用

for(a=1;a<=8;i++)

  2. A、B、C、D、E五名学生有可能参加计算机竞赛,根据下列条件判断哪些人参加了竞赛:

   (1)A参加时,B也参加;

   (2)B和C只有一个人参加;

   (3)C和D或者都参加,或者都不参加;

   (4)D和E中至少有一个人参加;

   (5)如果E参加,那么A和D也都参加。

  3. 打印一个 N*N 的方阵,N为每边 字符的个数(3<N<20=, 要求最外一层为"T", 第二层为"J", 从第三层 起每层依次打印数字 1,2,3,…      (右图以N为15为例) N=15  打印出下面图形

TTTTTTTTTTTTTTT

TJJJJJJJJJJJJJT

TJ11111111111JT

TJ12222222221JT

TJ12333333321JT

TJ12344444321JT

TJ12345554321JT

TJ12345654321JT

TJ12345554321JT

TJ12344444321JT

TJ12333333321JT

TJ12222222221JT

TJ11111111111JT

TJJJJJJJJJJJJJT

TTTTTTTTTTTTTTT

#include

intmain(void)

{

inti,j,n;

printf("请输入N:

");

scanf("%d",&n);

for(i=0;i

{

for(j=0;j

if(0==i||0==j||n-1==i||n-1==j)

printf("T");

else

if(1==i||1==j||n-2==i||n-2==j)

printf("J");

else

if(i<=j&&j

printf("%d",i-1);

else

if(j

printf("%d",j-1);

else

if((i>j)&&(i>=n-j))

printf("%d",n-2-i);

else

//if((i=n-j))

printf("%d",n-2-j);

printf("\n");

}

return0;

}

  4. 在N行N列的数阵中, 数K(1〈=K〈=N)在每行和每列中出现且仅 出现一次,这样的数阵叫N阶拉丁方阵。

例如下图就是一个五阶拉丁方阵。

  编一程序,从键盘输入N值后,打印出所有不同的N阶拉丁方阵,并统计个数。

        1  2  3  4  5

        2  3  4  5  1

        3  4  5  1  2

        4  5  1  2  3

        5  1  2  3  4

for(i=0;i

for(j=0;j

a[i][j]=i+j+1;

5. 输入一个十进数,将其转换成 N 进制数(0

?

?

?

?

?

?

?

?

?

scanf(“%d%d”,&x,&n);

y=0;

while(x)

{

y=y*10+(x%n);

x/=n;

}

6. 矩阵中填数. 当给出 N*N 的矩阵,要求用程序填入下列形式的数:

   ① 倒填,例如N=5             ② 蛇形填数              ③ 回转填数

 ┌─┬─┬─┬─┬─┐   ┌─┬─┬─┬─┬─┐   ┌─┬─┬─┬─┬─┐

 │25│24│23│22│21│   │ 1│ 3│ 4│10│11│   │ 1│16│15│14│13│

 ├─┼─┼─┼─┼─┤   ├─┼─┼─┼─┼─┤   ├─┼─┼─┼─┼─┤

 │20│19│18│17│16│   │ 2│ 5│ 9│12│19│   │ 2│17│24│23│12│

 ├─┼─┼─┼─┼─┤   ├─┼─┼─┼─┼─┤   ├─┼─┼─┼─┼─┤

 │15│14│13│12│11│   │ 6│ 8│13│18│20│   │ 3│18│25│22│11│

 ├─┼─┼─┼─┼─┤   ├─┼─┼─┼─┼─┤   ├─┼─┼─┼─┼─┤

 │10│ 9│ 8│ 7│ 6│   │ 7│14│17│21│24│   │ 4│19│20│21│10│

 ├─┼─┼─┼─┼─┤   ├─┼─┼─┼─┼─┤   ├─┼─┼─┼─┼─┤

 │ 5│ 4│ 3│ 2│ 1│   │15│16│22│23│25│   │ 5│ 6│ 7│ 8│ 9│

 └─┴─┴─┴─┴─┘   └─┴─┴─┴─┴─┘   └─┴─┴─┴─┴─┘

(2)(I,j)if(i-1>0)

If(j-1

  7. 读入一行文本,包含若干个单词(以空格间隔,%结尾)。

将其中以 A 开头的 单词与以 N 结尾的单词,用头尾交换的办法予以置换。

  8. 输入两个正整数X,Y,将X,Y化为二进制数,然后将这两个二进制数作二进制加法运算,再将结果化为十进制数输出。

intxb=0,yb=0;

while(x){xb=xb*

  9. 四人玩火柴棍游戏,每一次都是三个人赢,一个人输。

输的人要按赢者手中的火柴  数进行赔偿,即赢者手中有多少根火柴棍,输者就赔偿多少根。

现知道玩过四次后,  每人恰好输过一次, 而且每人手中都正好有16根火柴。

问此四人做游戏前手中各有  多少根火柴?

 编程解决此问题。

 10. 如图1所示(图中共10*10格,编程假定是n*n格),编写程序计算大大小小正方形共有多少?

当最小正方行边长为1时,它们的总面积 共为多少?

   ┎┰┰┰┰┰┰┰┰┰┒

     ┠╂╂╂╂╂╂╂╂╂┨

     ┠╂╂╂╂╂╂╂╂╂┨

     ┠╂╂╂╂╂╂╂╂╂┨

     ┠╂╂╂╂╂╂╂╂╂┨

     ┠╂╂╂╂╂╂╂╂╂┨

     ┠╂╂╂╂╂╂╂╂╂┨

     ┠╂╂╂╂╂╂╂╂╂┨

     ┠╂╂╂╂╂╂╂╂╂┨

     ┠╂╂╂╂╂╂╂╂╂┨

┖┸┸┸┸┸┸┸┸┸┚

a[1][1]=1;

for(i=2;i<=n;i++)

a[i][i]=a[i-1][i-1]+(i-1)*(i-1)+2*i-1;

11. 巧排数字。

将1、2、...、20这20个数排成一排,使得相邻的两个数之 和为一个素数,且首尾两数字之和也为一个素数。

编程打印出所有的排法。

 12. 下图是一个集装箱仓库,阴影部分表示有集装箱存放不能通过,无阴影处为临时通道。

当有人要从入口处到达出口处时,必须寻找可通过路线,请你找出可完成这个过程的最方便(即用最短路线)到达出口处的路径。

          ┎┰┰┰入口┰┰┰┰┰┰┰┰┰┰┰┰┰┰┰┰┰┰┰┰┰┰┰┰┒

          ┠╂╂╂──╂╂╂╂┸┸╂┸┸╂┸┸╂┸┸╂╂╂╂┸┸╂╂╂┨

          ┠╂╂╂──╂┸┸╂──╂┰┰╂┰┰╂──╂╂╂╂──╂╂╂┨

          ┠╂╂╂──╂┰┰╂┰┰╂╂╂╂╂╂╂──╂┸┸╂──╂╂╂┨

          ┠╂╂╂──╂╂╂╂╂╂╂╂╂╂╂╂╂┰┰╂┰┰╂┰┰╂╂╂┨

          ┠╂╂╂──╂┸┸╂┸┸╂┸┸╂┸┸╂┸┸╂┸┸╂┸┸╂╂╂┨

          ┠╂╂╂──╂┰┰╂┰┰╂┰┰╂──╂┰┰╂──╂┰┰╂╂╂┨

          ┠╂╂╂──╂╂╂╂╂╂╂╂╂╂──╂╂╂╂──╂╂╂╂╂╂┨

          ┠╂╂╂──╂╂╂╂┸┸╂┸┸╂──╂╂╂╂──╂┸┸╂╂╂┨

          ┠╂╂╂──╂╂╂╂┰┰╂┰┰╂┰┰╂╂╂╂┰┰╂──╂╂╂┨

          ┖┸┸┸──┸┸┸┸┸┸┸┸┸┸┸┸┸┸┸┸┸┸┸出口┸┸┸┚

 13. 有N个硬币(N为偶数)正面朝上排成一排,每次将 N-1 个硬币翻过来放在原位置, 不断地重复上述过程,直到最后全部硬币翻成反面朝上为止。

编程让计算机把 翻币的最简过程及翻币次数打印出来(用*代表正面,O 代表反面)。

 14. 有黑白棋子各有N个(分别用*和O代替),按下图方式排列

        ***...***OOO...OOO

N个黑棋              N个白棋

如果每个步骤只交换一黑一白,问至少需要多少步才能换成一黑一白间隔排列?

16. 设有8枚硬币a,b,c,d,e,f,g,h,其中有一枚硬币是伪造的。

 真伪硬币的区别仅是重量不同,可能重,可能轻。

今要求以天平为工具,用最少的 比较次数挑出伪造硬币,并鉴定它是重还是轻。

 17. 编写一个程序,当输入不超过60个字符组成的英文文字时,计算机将这个句子中的字母按英文字典字母顺序重新排列,排列后的单词的长度要与原始句子中的长度 相同。

例如:

    输入:

    THE PRICE OFBREAD IS ¥1 25 PER POUND

    输出:

    ABC DDEEE EFHIINO OP ¥1 25 PPR RRSTU

 并且要求只对A到Z的字母重新排列,其它字符保持原来的状态。

 18. 在一线性七个格位置的图上有两种不同颜色的棋子A,B. 排列如下图所示,中间

 格的位置为空。

          ┎─┰─┰─┰─┰─┰─┰─┒

          ┃A┃A┃A┃  ┃B┃B┃B┃

          ┖─┸─┸─┸─┸─┸─┸─┚

 要求将A,B的现行位置交换,形成下图中的排列:

          ┎─┰─┰─┰─┰─┰─┰─┒

          ┃B┃B┃B┃  ┃A┃A┃A┃

          ┖─┸─┸─┸─┸─┸─┸─┚

 移动棋子的条件:

   

(1) 每个格中只准放一个棋子。

   

(2) 任意一个棋子均可移动一格放入空格内。

   (3) 一方的棋子均可跳过另一方的一个棋子进入空格。

   (4) 任何棋子不得跳跃两个或两个以上棋子(无论颜色同异)

   (5) 任何一个颜色棋子只能向前跳,不准向后跳。

 编程完成有关的移动,并且完成具有2N+1个格子的情形. 其中两种颜色各有 N个棋子,且中间为空格.

 19. (背包问题) 有 N 件物品 d1,……dN,每件物品重量为 W1,…, WN (Wi > 0), 每件物品价值为 V1,……VN (Vi>0)。

用这N件物品的某个子集 填空背包,使得所取物品的总重量<=TOTAL,并设法使得背包中物品的价值尽可 能高。

 20. (N皇后) 在国际象棋的棋盘上放置N个皇后,使其不能互相攻击,即任意 两个皇后不能处在棋盘的同一行,同一列,同一斜线上,试问共有多少种摆法?

 允许将相邻两个棋子互换位置,最后使队形成黑白交替排列,试编程实现该操作。

21. 请设计一个程序,由计算机把1.. ̄.8的八个自然数填入图中,使得横、竖、对角任何两个相邻的小方格中的两个数是不连续的。

(下图右侧的 4 个图 为禁止的情形).

            ┌─┐          ┌─┐               ┌─┐

            │  │          │4│               │8│

        ┌─┼─┼─┐      └─┼─┐       ┌─┼─┘

        │  │  │  │       │5│       │7│

        ├─┼─┼─┤        └─┘       └─┘

        │  │  │  │      ┌─┐

        └─┼─┼─┘      │6│           ┌─┬─┐

            │  │          ├─┤           │1│2│

            └─┘          │7│           └─┴─┘

                            └─┘

 22. 在一个4*4的小方格(如图所示)中放置8个*号,使得每行每列放且仅放两个*号。

          ┌─┬─┬─┬─┐

          │*│*│  │  │

          ├─┼─┼─┼─┤

          │*│  │*│  │

          ├─┼─┼─┼─┤

          │  │*│  │*│

          ├─┼─┼─┼─┤

          │  │  │*│*│

          └─┴─┴─┴─┘

 求出所有的基本解。

 23. (覆盖问题) 有边长为N(N为偶数)的正方形,请你用N^2/2个长为2, 宽为1的长方形,将它全部覆盖。

编程打印出所有覆盖方法。

如:

N=4

    ┌─┬──┬─┐            ┌──┬──┐

    │  │    │  │ 1224   │    │    │  1122

    │  ├──┤  │            ├──┼──┤

    │  │    │  │ 1334   │    │    │  3344

    ├─┼──┼─┤            ├──┼──┤

    │  │    │  │ 5668   │    │    │  5566

    │  ├──┤  │            ├──┼──┤

    │  │    │  │ 5778   │    │    │  7788

    └─┴──┴─┘            └──┴──┘

 25. (量水) 用存水为M,N升的两个罐子,量出A升水。

26. (八数码问题) 8个编有数码1 ̄8的滑牌,能在3*3的井字格中滑动。

 井字格中有一格是空格,用0表示,因而空格周围的数码滑牌都可能滑到空格中去.

 下图是数码滑牌在井字格中的两种状态:

         ┎─┬─┬─┒                        ┏━┯━┯━┓

         ┃2 │8 │3 ┃                        ┃1 │2 │3 ┃

         ┠─┼─┼─┨                        ┠─┼─┼─┨

         ┃1 │6 │4 ┃     ----> ┃8 │0 │4 ┃

         ┠─┼─┼─┨                        ┠─┼─┼─┨

         ┃7 │0 │5 ┃                        ┃7 │6 │5 ┃

         ┗━┷━┷━┛                        ┗━┷━┷━┛

初始状态                              目标状态

 以左图为初始状态,右图为目标状态,请找出从初始状态到目标状态的滑牌移步 序列,具体要求:

    (1)输入初始状态和目标状态的数据;

       a、分别用两行输入上述两项数据:

         例:

Enter the initial state:

2 8 3 1 6 4 7 0 5

             Enter the final state:

1 2 3 8 0 4 7 6 5

       b、对输入数据应有查错和示错功能;

    (2)实现从初始状态到目标状态的转换(如不能实现,程序应输出不能实现

    的提示信息);

    (3)输出结果,每移动一步都必须在屏幕上显示:

       a、移动每一步时的序号,最后一步的序号即为移动总步数;

       b、每一步移动后以3*3表格形式显示状态。

(4)要求能使移动步数尽可能少;

 27. 给出一个有8个格子的表格,除3个格子外,每个格子中可放入一个数字,这 些数字取自自然数 1 到 5,放入格子中的数字不得相同,剩余的3个格子是空格 (用O表示)。

图1是一个放数字与空格的特例。

现要求编程实现从初始表格状态 变化到目标表格状态。

初始状态和目标状态都是可变的(图1,图2所示的状态仅 是一个特例),由键盘输入格子中的数字(0 ̄5)。

    移动规则:

   

(1) 每一个数字只可以通过虚线移入相邻空格。

如图1中,允许“2”左移入空   格,而不能上移进入上面空格。

   

(2) 只允许水平移动或垂直移动,不允许斜移。

   (3) 移动后,该数字原先所在的格子变成空格。

    实现目标:

   

(1) 输入初始表格状态和目标表格状态的数据。

     ① 分别在一行内输入上述两项数据;

     ② 对输入的数据应有查错和报错功能;

   

(2) 实现从初始状态到目标状态的转换(如不能实现也应给出必要的说明)。

   (3) 显示结果:

每移动一步都应在屏幕上有如下信息:

     ① 显示每一步移动的序号。

所以最后一步的序号就是移动的总步数。

     ② 显示每一步移动前后的表格状态。

   (4) 以最少的移动步数达到目标。

              ┎─┰─┰─┒                          ┎─┰─┰─┒

              ┃3┃4┃0┃                          ┃0┃0┃0┃

          ┎─╂─╂  ╂─╂─┒                  ┎─╂─╂  ╂─╂─┒

          ┃0  1  0  2  5┃                  ┃1  2  3  4  5┃

          ┖─┸─┸─┸─┸─┚                 ┖─┸─┸─┸─┸─┚

                图 10-1                             图 10-2

                初始状态A                              目标状态B

 28. n枚银币 C1,C2,…,Cn, 其中有一块不合格,不合格的银币比正常的要重。

现用 一天平找出不合格的一块,要求在最坏的情况下,用的天平次数最少。

 29. 把一段文章按要求排版。

文章的输入方式为:

由键盘输入一段以回车符结束的文章 (最大长度 2000 个字符)。

排版时以单词为基本单位。

单词由不含空格的任意字符组 成,是长度小于20个字符的串。

空格符是分隔单词的唯一字符,在输入时连续的空格 符在处理时应先化简为单个空格符。

在排版前应先输入,排版后每行的字符数为N,排 版后将整理好的文章按行输出。

输出时不能将一个完整的单词截断,并要求输出的总行 数最小。

将每个不足N个字符的行用空格补足,填充空格符的方式有以下三种。

    1)将填充的空格符置于每行的末尾,并要求每行的起始为单词。

    2)将填充的空格符置于每行的开始,并要求每行的末尾为单词。

3)将填充的空格符平均分配在每行中,并保证行的起始和末尾均为单词。

 30. 某机要部门安装了电子锁。

M个工作人员每人发一张磁卡,卡上有开锁的密码特征。

 为了确保安全,规定至少要有N个人同时使用各自的磁卡才能将锁打开。

问电子锁上至 少要有多少种特征?

 每个人的磁卡上至少要有多少特征?

 如果特征的编号以小写英文字 母表示,将每个人的磁卡的特征编号打印出来,要求输出的电子锁的总特征数最少。

    设 3<=M<=7, 1<=N<=4, M与N由键盘输入,工作人员编号用 1#,2#,…表示.

 15. 已知6个城市,用c[i,j]表示从i城市到城市j是否有单向的直达汽车 (1=<i〈=6,1〈=j〈=6〉, c[i,j]=1 表示城市i到城市j有单向直达汽 车; 否则 c[i,j]=0.  试编制程序,对于给出的城市代号i,打印出从该城市出 发乘车(包括转车)可以到达的所有城市。

31. 甲乙两人从24枚棋子中轮流取子,甲先取,规定每次所取的枚数不能多于上 一个人所取的枚数,也不可不取。

  (1)甲第一次取多少枚才能保证甲取得最后一枚,当然,他也不能第一次就把 所有棋子都取走。

  (2)讨论棋子总数N(一定是偶数)从6到30的各种情况。

讨论内容包括:

 对各个N,是否存在一个小于N的枚数M,甲第一次取M枚后就能保证甲如果策略 正确,一定能取到最后一枚棋子。

 32. ( 走棋 ) 一个4*4的方阵如图。

有一个小卒从上往下走。

走至格子1后就 不能走动,走至0后,若下方为1,则向左或向右走,下方为0,则向下走。

求所 有走法。

              ┌─┬─┬─┬─┐

              │1 │0 │0 │0 │

              ├─┼─┼─┼─┤

              │0 │0 │1 │0 │

              ├─┼─┼─┼─┤

              │0 │1 │0 │0 │

              ├─┼─┼─┼─┤

              │1 │0 │0 │0 │

              └─┴─┴─┴─┘

 33. ( 野人与传教士 ) 设有三个传教士和三个野人来到河边,打算乘一只船从右 岸渡到左岸去。

该船最大负载能力为两人,在任何时候,如果野人人数超过传教士 人数,那么野人就会把传教士吃掉。

他们怎样才能用这条船安全地把所有人都渡过 河去呢?

 34. ( 取棋子 ) 设有N颗棋子,由人和计算机轮流从中取走若干颗。

每方每次最 多取K颗,最少取1颗 (K值不能超过总数的一半,也不能小于1)。

试编写一程 序使计算机有较多的获胜机会。

    屏幕输入提示:

    

(1) 输入竞赛规则:

A. 取最后一颗棋子的那一方为败.

                      B. 取最后一颗棋子的那一方为胜.

    

(2) 总共有多少颗棋子?

    (3) 一次最多取几颗?

    (4) 谁先取?

    (5) 每个回合都应显示:

 A. 你取几颗?

                          B. 我取走……颗,还剩……颗.

    (6) 竞赛过程中发生违例时,打印出:

  竞赛无法进行下去!

    (7) 竞赛结束后打印:

I win!

(我胜!

)或  You win!

(你胜!

)。

 35. ( Grundy博弈 ) 在两位选手面前放着一堆铜币。

第一位选手把原堆分成不相 等的两堆。

然后每个选手轮流地这样做

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 法律文书 > 调解书

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1