论坛交流
首页办公自动化| 网页制作| 平面设计| 动画制作| 数据库开发| 程序设计| 全部视频教程
应用视频: Windows | Word2007 | Excel2007 | PowerPoint2007 | Dreamweaver 8 | Fireworks 8 | Flash 8 | Photoshop cs | CorelDraw 12
编程视频: C语言视频教程 | HTML | Div+Css布局 | Javascript | Access数据库 | Asp | Sql Server数据库Asp.net  | Flash AS
当前位置 > 文字教程 > C语言程序设计教程
Tag:新手,函数,指针,数据类型,对象,Turbo,入门,运算符,数组,结构,二级,,tc,游戏,试题,问答,编译,视频教程

C语言入门必做习题100例

文章类别:C语言程序设计 | 发表日期:2009-6-19 10:02:43

C语言的学习其实很简单的,下面是我整理的关于C语言的试题,希望对C语言的初学者有所帮助!

1. 在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


2. 输入一个十进数,将其转换成 N 进制数(0<N<=16)。

3. 读入一行文本,包含若干个单词(以空格间隔,%结尾)。将其中以 A 开头的
  单词与以 N 结尾的单词,用头尾交换的办法予以置换。

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

5. 巧排数字。将1、2、...、20这20个数排成一排,使得相邻的两个数之
  和为一个素数,且首尾两数字之和也为一个素数。编程打印出所有的排法。

6. 有N个硬币(N为偶数)正面朝上排成一排,每次将 N-1 个硬币翻过来放在原位
 置, 不断地重复上述过程,直到最后全部硬币翻成反面朝上为止。编程让计算机把
 翻币的最简过程及翻币次数打印出来(用*代表正面,O 代表反面)。

7. 已知6个城市,用c[i,j]表示从i城市到城市j是否有单向的直达汽车

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

8. (背包问题) 有 N 件物品 d1,......dN,每件物品重量为 W1,..., WN
 (Wi > 0), 每件物品价值为 V1,......VN (Vi>0)。用这N件物品的某个子集
 填空背包,使得所取物品的总重量<=TOTAL,并设法使得背包中物品的价值尽可能高。

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

10. (覆盖问题) 有边长为N(N为偶数)的正方形,请你用N^2/2个长为2,
 宽为1的长方形,将它全部覆盖。编程打印出所有覆盖方法。如:N=4

    ┌─┬──┬─┐            ┌──┬──┐
    │  │    │  │ 1224   │    │    │  1122
    │  ├──┤  │            ├──┼──┤
    │  │    │  │ 1334   │    │    │  3344
    ├─┼──┼─┤            ├──┼──┤
    │  │    │  │ 5668   │    │    │  5566
    │  ├──┤  │            ├──┼──┤
    │  │    │  │ 5778   │    │    │  7788
    └─┴──┴─┘            └──┴──┘

11. 某地街道把城市分割成矩形方格,每一方格叫作块,某人从家中出发上班,
 向东要走M块,向北要走N块,(见图)。请设计一个程序,由计算机寻找并
 打印出所有的上班的路径。

                                               单位

           ┬   ┌─┬─┬─┬─┬─┬─┬─┐
           │   │  │  │  │  │  │  │  │
           │   ├─┼─┼─┼─┼─┼─┼─┤
           ↓   │  │  │  │  │  │  │  │
           N   ├─┼─┼─┼─┼─┼─┼─┤
           ↑   │  │  │  │  │  │  │  │
           │   ├─┼─┼─┼─┼─┼─┼─┤
           │   │  │  │  │  │  │  │  │
           ┴   └─┴─┴─┴─┴─┴─┴─┘
           家   ├─────→M←─────┤

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

13. (八数码问题) 8个编有数码1 ̄8的滑牌,能在3*3的井字格中滑动。
 井字格中有一格是空格,用0表示,因而空格周围的数码滑牌都可能滑到空格中去.

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

14. n枚银币 C1,C2,...,Cn, 其中有一块不合格,不合格的银币比正常的要重。现用
 一天平找出不合格的一块,要求在最坏的情况下,用的天平次数最少。

15. 把一段文章按要求排版。文章的输入方式为:由键盘输入一段以回车符结束的文章
 (最大长度 2000 个字符)。排版时以单词为基本单位。单词由不含空格的任意字符组
 成,是长度小于20个字符的串。空格符是分隔单词的唯一字符,在输入时连续的空格
 符在处理时应先化简为单个空格符。在排版前应先输入,排版后每行的字符数为N,排
 版后将整理好的文章按行输出。输出时不能将一个完整的单词截断,并要求输出的总行
 数最小。将每个不足N个字符的行用空格补足,填充空格符的方式有以下三种。

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


         ┎─┬─┬─┒                        ┏━┯━┯━┓
         ┃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)要求能使移动步数尽可能少;

(未完待续)

上一篇:C语言中的抽象与函数指针 人气:2938
下一篇:{教程}C语言编程函数集(二) 人气:2637
视频教程列表
文章教程搜索
 
C语言程序设计推荐教程
C语言程序设计热门教程
看全部视频教程
购买方式/价格
购买视频教程: 咨询客服
tel:15972130058