c语言主程序算法,《C语言》程序算法练习题.doc

完成下列训练题的基本步骤是:

问题分析及解决方案框架确定

充分地分析和理解问题本身,明确问题到底要做什么。(what to do?)

在确定解决问题框架过程中(how to do?),考虑怎样使程序结构清晰、合理、简单和易于调试,并确定每个函数的简单功能,以及函数之间的调用关系。

详细设计和编码

确定算法的主要流程,在此基础上进行代码设计(coding),一般来讲,每个明确的功能模块程序不超过60行代码,否则,功能要继续分解。

上机前编写程序与检查

上机前检查程序可有效提高调试效率,减少上机调试程序时的无谓错误。

程序检查主要有两种途径:用一组测试数据手工执行程序;或者通过阅读或给别人讲解自己的程序而深入、全面地理解程序逻辑,把程序中的明显错误事前排除。

4、上机调试程序

提供的结果应当包括:

算法、数据结构的设计、程序清单

1、猜数游戏

游戏的开始由机器产生一个随机数(1~100之间,用库函数random()取值),然后游戏者在程序的提示下猜数,若输入的数比这个数大,程序提示“your answer is HIGH,try again!”否则,程序提示“your answer is LOW,try again!”直到猜对为止。程序可以实现连续猜数,直到游戏者退出。

程序输出要求:累计游戏者猜对这个数所需的次数n,当n<=7时,给出“congratulation!”,当715时,用exit(0)库函数退出程序。

2、百钱百鸡问题(穷举算法)

我国古代数学家张丘建在《算经》中出了一道题“鸡翁一,值钱五;鸡母一,值钱三;鸡雏三,值钱一。百钱买百鸡,问鸡翁、鸡母、鸡雏各几何?”

注:穷举法是最简单、最常见的一种程序设计方法,它充分利用了计算机处理的高速特性。使用穷举法的关键是确定正确的穷举范围,即不能过分扩大,也不能过分缩小穷举的范围。

3、请编写一个程序,计算表达式:data1 op data2的值。其中,op为运算符+、-、*、/、%。

4、打印所有的水仙花数

5、编写一个程序,实现将输入的一个无符号整数转换为二进制和八进制表示,分别存入字符数组中并输出。(提示:算法采用模拟人工法)

注:计算机模拟人功法是编程中常用的算法,这种方法要求编程者首先分析在人工方式下解决问题的过程,从中找出步骤和规律,然后编写程序,按照人工解决问题的步骤和规律进行操作。

6、判断一个数是否是数组中的成员(用二分查找法)

已知数组a中一共有10个已经排好序的整数(由小到大排序)。现在从键盘上输入一个数,判断这个数是否是数组a中的数,如果是的话,打印出此数在数组a中的位置,否则打印“can’t find!”。

提示:①设待查找的数为x,设置三个位置变量l、m、h分别代表查找范围的顶部、中间位置和底部,m=(l+h)/2,把数组分成a[m]为中点的两段范围。②判断x是否等于a[m],若是,则找到。③若大于a[m],则x必定在后半段范围,即在a[m+1]到a[h],则舍弃前半段,再在后半段重新划分两段范围,定出l、m、h,重复以上步骤,逐步缩小查找范围。

7、位数大小排序(掌握数值排序算法)

输入一个五位整数,对此整数中的五个数值进行从大到小的顺序排序,形成一个新的五位整数,并输出这个整数。 要求:用函数调用

8、有一行字符,要求将其中每个单词中的第一个字母改成大写字母(如果原来已是大写字母则不变)。

9、设计一个函数,要求删去指定文字行中的某个字符。此行文字和要删去的字符均由键盘在主函数中输入。删去之后的文字行也要求在主函数中输出。

10、将螺旋方阵存放到n×n的二维数组中并把它打印输出。要求由程序自动生成如下图所示的螺旋方阵(而不是人为地初始化或逐个赋值)。n由程序读入。

11、请编写函数fun,函数的功能是求出二维数组周边元素之和,作为函数值返回。二维数组中的值在主函数中赋予。(数组维数用宏定义)

12、矩阵乘法(数值求解算法)

编写一个函数,实现矩阵A(2行3列)与矩阵B(3行2列)相乘,乘积放在C数组中。在主函数中定义矩阵A和矩阵B,并输出结果。

13、求所有不超过200的N值,N的平方是具有对称性质的回文数。回文数就是将一个数从左往右读都是一样的,如:满足题意要求的数有:N=11,11的平方为121,121为一个回文数。

14、计算分数的精确值

使用数组精确计算m/n(0

由于计算机内字长有限,常规的浮点运算都有精度

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值