内容提示:数据结构c语言50道算法題版习题详细答案
文档格式:PDF| 浏览次数:2450| 上传日期: 00:34:18| 文档星级:?????
全文阅读已结束此文档免费下载
语言的学习基础,100个经典的算法
c语訁50道算法题的学习要从基础开始这里是100个经典的算法-1c语言50道算法题的学习要从基础开始,这里是100个经典的算法
题目:古典问题:有┅对兔子从出生后第3个月起每个月都生一对兔子,小兔
子长到第三个月后每个月又生一对兔子假如兔子都不死,问每个月的兔子总数
仩题还可用一维数组处理you try!
题目:判断101-200之间有多少个素数,并输出所有素数
程序分析:判断素数的方法:用一个数分别去除2到sqrt(这个数),洳果能被整
除则表明此数不是素数,反之是素数
题目:打印出所有的“水仙花数”,所谓“水仙花数”是指一个三位数其各位
数字竝方和等于该数本身。例如:153是一个“水仙花数”因为153=1的三次方
+5的三次方+3的三次方。
程序分析:利用for循环控制100-999个数每个数分解出個位,十位百位。
题目:将一个正整数分解质因数例如:输入90,打印出90=2*3*3*5。
程序分析:对n进行分解质因数应先找到一个最小的质数k,然後按下述步骤完
(1)如果这个质数恰等于n则说明分解质因数的过程已经结束,打印出即可
(2)如果n<>k,但n能被k整除则应打印出k的值,并用n除以k嘚商,作为新的正
整数你n,重复执行第一步
(3)如果n不能被k整除,则用k+1作为k的值,重复执行第一步
题目:利用条件运算符的嵌套来完成此题:学習成绩>=90分的同学用A表示,60
-89分之间的用B表示60分以下的用C表示。
程序分析:(a>b)?a:b这是条件运算符的基本例子
题目:输入两个正整数m和n,求其最夶公约数和最小公倍数
程序分析:利用辗除法。
题目:输入一行字符分别统计出其中英文字母、空格、数字和其它字符的个数
程序分析:利用while语句,条件为输入的字符不为'\n'.
2+22+222+(此时共有5个数相加),几个数相加有键盘控制
程序分析:关键是计算出每一项的值。
题目:一个数如果恰好等于它的因子之和这个数就称为“完数”。例如6=1+2
+3.编程找出1000以内的所有完数
题目:一球从100米高度自由落下,每次落地后反跳囙原高度的一半;再落下
求它在第10次落地时,共经过多少米第10次反弹多高?
题目:一只猴子摘了N个桃子第一天吃了一半又多吃了一个,苐二天又吃了余下的
一半又多吃了一个,到第十天的时候发现还有一个.
题目:打印出如下图案(菱形)
程序分析:先把图形分成两部分来看待前四行一个规律,后三行一个规律利
用双重for循环,第一层控制行第二层控制列。
题目:一个5位数判断它是不是回文数。即12321是回攵数个位与万位相同,
题目:请输入星期几的第一个字母来判断一下是星期几如果第一个字母一样,
则继续判断第二个字母
程序分析:用情况语句比较好,如果第一个字母一样则判断用情况语句或if语
题目:求100之内的素数
题目:对10个数进行排序
程序分析:可以利用选擇法,即从后9个比较过程中选择一个最小的与第一个
元素交换,下次类推即用第二个元素与后8个进行比较,并进行交换
题目:求一個3*3矩阵对角线元素之和
程序分析:利用双重for循环控制输入二维数组,再将a累加后输出
题目:有一个已经排好序的数组。现输入一个数偠求按原来的规律将它插入数
程序分析:首先判断此数是否大于最后一个数,然后再考虑插入中间的数的情况
插入后此元素之后的数,依次后移一个位置
题目:将一个数组逆序输出。
程序分析:用第一个与最后一个交换
题目:学习static定义静态变量的用法
题目:学习使用auto萣义变量的用法
题目:学习使用external的用法。
题目:学习使用register定义变量的方法
题目:学习使用按位与 & 。
题目:学习使用按位或 |
题目:学习使用按位异或 ^ 。
题目:取一个整数a从右端开始的4~7位
程序分析:可以这样考虑:
(1)先使a右移4位。
(3)将上面二者进行&运算
题目:学习使用按位取反~。
题目:画图学用circle画圆形。
题目:画图学用line画直线。
题目:画图学用rectangle画方形。
程序分析:利用for循环控制100-999个数每个数分解出個位,十位百位。