论坛交流
首页办公自动化| 网页制作| 平面设计| 动画制作| 数据库开发| 程序设计| 全部视频教程
应用视频: 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-22 8:49:42

 C语言入门必做习题100例(三)

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

1. (数列的最小代价) 给定一个正整数序列,例如:4,1,2,3, 不改变数的位置把
 它们相加, 并且由括号来标记每一次加法所得到的和。例如:((4+1)+(2+3))=
 ((5)+(5))=10. 除去原数4、1、2、3之外,其余都为中间结果,如:5,5,10, 将中
 间结果相加,得到:5+5+10=20, 数 20 称为此数列的一个代价。对于另一种算法:
 (4+((1+2)+3))=(4+((3+3))=(4+(6))=10, 得到数列的另一个代价为:3+6+10=19.
 若给出 N 个数的数列,求出此数列的最小代价。

2. 设有一个字符串,长度小于 100,且全部以英文字母组成。对字串中的每个字 母可用 0,1,2 三个数字进行编码,且数字可以重复使用。
 程序要求:(1) 输入字符串,并能判断输入是否有错;
           (2) 输出对应的编码表及码长,要求字串的编码总长度为最短;
           (3) 根据上述编码表,给出一些编码,然后求出其原字符串。
 例如:输入的字符为:ABCBAAADDEF
     其对应的编码表为:
         A:   2                B:  10
         C:  11                D:  12
         E:  00                F:  O1
 对应的编码为:210111022212120001       总码长为:18

3. 某些密码由 N 个英文字母组成(N〈26), 每个字母的平均使用率为:W1,W2,...
 ,Wn, 要求编程完成下列任务:
    ① 键入英文字母及个数;
    ② 键入N个英文字母的使用频率;
    ③ 用二进制数对该N个英文字母进行编码(最短,无二义性);
    ④ 键入字母短文(单词用空格区分),输出相应编码;
    ⑤ 键入二进制编码短文,输出译文。

 4. 将4个红球,3个白球与3个黄球排成一排,共有多少种排法?

5. 有面值为 M..N 的邮票各一枚,共能拼出多少不同的面额。

6. 有一个四阶方阵,随机产生 1..16 这 16 个自然数(不重复),依次填入每
 个方格中。要求用最少的对调次数,使每一行、每一列以及对角线上的四个数之和 均相等。打印每一次对调的过程。

7. 微型蓝球赛. 甲,乙两队进行蓝球比赛,结果甲队以S:T 获胜.(T<S<=10, S,T
 由键盘输入). 比赛中, 甲队得分始终领先(严格大于乙队). 规定以任何方式进一
 球都只得一分. 编程序打印该比赛的每一种可能的不同的得分过程, 以及所有不同 过程的总数.

8. 求两整型数组错位相加的最大面积.
    设整型数组 C 具有 N 个分量: C=(C1,C2,...,CN), 两相连分量(C[I],C[I+1])
 可计算一个面积: 若C[I],C[I+1]同号, 则面积 SI=abs(C[I]+C[I+1])/2, 否则,面
 积等于 (abs(a*C[I])+abs(b*C[I+1]))/2, 其中, a>0,b>0,a+b=1 (详见下图),数
 组 C 的面积 A=S[1]+S[2]+...+S[N-1].
     编程要求如下:
  从键盘输入 N, 再输入两个具有 N 个分量的数组: A1,A2:ARRAY [1..N] OF
 INTEGER; 将 A1,A2 错位相加(详见后面的例子)得数组A3, 求 A3 的面积.编程给
 出一个错位相加的方案, 使 A3 的面积最大.
    例: 设 N=3, A1=(3,7,2), A2=(-5,7,-4), 则应考虑 9 种情况:
                    (1)                         (2)
        A1  3  7  2                       3  7  2
        A2              -5  7  -4                  -5  7  -4
        A3  3  7  2  0  -5  7  -4         3  7  2  -5  7  -4
                    (3)                         (9)
        A1  3  7  2                                     3  7  2
        A2       -5  7 -4       ......     -5  7  -4
        A3  3  7 -3  7 -4                  -5  7  -4  0 3  7  2

9. 用N*N(1<=N<=8)的格点阵代表海,其中*号代表岛。给你一组编 码信息,让你重构一张地图。这组信息是按垂直方向,水平方向岛的情况摘取的。
 下例中,每行右边的数字按顺序表示该行中“岛组”的大小,如第一行数字为
 “12”,表示该行第一“岛组”由一个岛组成,第二“岛组”由两个岛组成,而 第四列下面的“23”则表示本列由两个“岛组”组成,第一个“岛组”由两个岛 组成,第二个“岛组”由三个岛组成。
    任务:编程执行以下步骤,直到给定的输入 (ASCII) 文件中的信息组全部读完 为止,步骤如下:
   (1)从输入文件 (ASCII 文件)中读入下一个信息块,并将它显示在屏幕上。
 每个信息块组成为:
    格点阵大小 (N),以后是行的约束条件(N行的),列的约束条件(N列的), 每行(或每列)的约束条件是
    一行数字,数字间有空格,最后用0结束。上面的例子如图所示。
   (2)重构这张地图(若有多个解,要逐个构成地图),并显示。
   (3)将重构的地图以ASCII文件形式输出。每岛以*后加一个空格表示; 空白处用连续的两个空格表示。若同一已知条件可画出多张地图,相互间用空行隔 开;若一组已知条件画不出地图,用“NO  MAP(占一行)表示。由不同的信 息组求得的解用“NEXT  PROBLEM”(占一行表示)1<=N<=8.

 10. 一个餐厅在相继的N天里,第 i 天需要 Ri 块餐巾(i=1,2,...,N)。餐厅
 可以从三种途径得到餐巾:
   (1) 购买新的餐巾,每块需P分;
   (2) 把用过的餐巾送到快洗部,洗一块需M天,费用需F分(F<P);
   (3) 把餐巾送到慢洗部,洗一块需N天(N>M),费用需S分(S<F)。
 在每天结束时,餐厅必须决定将多少块用过的餐巾送到快洗部,多少块送慢洗部, 多少块保存起来延期送洗。在每天开始时,餐厅必须决定是否购买新餐巾及购买多 少,使洗好的和新购的餐巾之和满足当天的需求量Ri,并使N天总的费用最小。请 编程输入总天数,每天所需的餐巾块数以及每块餐巾的新购费用P,快,慢洗费用 F,S,和所需天数M,N,输出每天开始时需购新餐巾数,结束时送快,慢洗部 和延期送洗的餐巾数。

 11. ( 旅行商 ) 一个推销员计划做一次旅行,他必须访问如图所示每个城市。每
 两个城市的路径旁标有路径。要求从城市A出发,访问每个城市一次,且只访问一 次,最后返回城市A,求一条距离最短的路线。

 12. (tic__tac__toe 游戏) tic__tac__toe 游戏的规则是:从一个空的 (N*N) 的
 棋盘(例如N=3)开始,甲乙二人轮流将棋子放置在棋盘上未被占据的方格中,
 例如甲第一个放,他把棋子放在中央的方格里, 然后轮到乙放,他把棋子放在第
 一行中间的方格里。于是又轮到甲放,......如此进行下去。判定胜负的方法是:
 若某一游戏者有N枚棋子占据了一横行,或一竖列,或一对角线,则此人获胜;若 直至整个棋盘被占满还没有一方获胜,则为平局。
     ┏━┯━┯━┓         ┏━┯━┯━┓         ┏━┯━┯━┓
     ┃  │  │  ┃         ┃  │  │  ┃         ┃  │O│  ┃
     ┠─┼─┼─┨         ┠─┼─┼─┨         ┠─┼─┼─┨
     ┃  │  │  ┃         ┃  │X│  ┃         ┃  │X│  ┃
     ┠─┼─┼─┨         ┠─┼─┼─┨         ┠─┼─┼─┨
     ┃  │  │  ┃         ┃  │  │  ┃         ┃  │  │  ┃
     ┗━┷━┷━┛         ┗━┷━┷━┛         ┗━┷━┷━┛

13. (工作安排问题) 现有 N (N≤8) 件工作, 分别由 N 个人完成, 每人都完成一
 件,且只完成一件, 每人完成不同工作的时间不同. 试设计一种分配工作方案, 使
 完成 N 件工作所需的总时间最少.
    原始数据由文本文件 EXAM1.TXT 给出, 其格式如下:
    第 1 行:        工作任务数(N)
    第 2 -- N+1 行: 第 i+1 行为第 i 个人完成各件工作所需的时间. 以上各数
 均为不超过 1000 的正整数.
    计算结果可直接在屏幕上输出: 第一行为工作分配方案, 共 N 组, 每组数据的
 形式为 a-b, 其中 a 为工作人员编号, b 为他应完成的工作序号.
    例: 设 EXAM1.TXT 的数据为:
         4
         2  15  13  4
         10  4  14  15
         9  14  16  13
         7  8  11  9
     对此, 一个正确的输出可以是
         1-4, 2-2, 3-1, 4-3
         TOTAL=28

14. 求N个字符串的最长公共子串,N<=20,字符串长度不超过255。
    例如:N=3,由键盘依次输入三个字符串为
      What is local bus ?
      Name some local buses.
      local bus is a high speed I/O bus close to the processer.
 则最长公共子串为"local bus"。
 ( 参看程序 9 )

 15. (液晶显示) 下图是用液晶七笔阿拉数字表示的十个数字,我们把横和竖的一 个短划都称为一笔,即7有3笔,8有7笔等。请把这十个数字重新排列,要做到 两相邻数字都可以由另一个数字加上几笔或减去几笔组成,但不能又加又减。比如
 7→3是允许的,7→2不允许。编程打印出所有可能的排列。
    如:4107395682。

上一篇:C语言中的图形函数介绍 人气:4209
下一篇:C语言中指针的奥秘 人气:2295
视频教程列表
文章教程搜索
 
C语言程序设计推荐教程
C语言程序设计热门教程
看全部视频教程
购买方式/价格
购买视频教程: 咨询客服
tel:15972130058