一维数组:
1、定义一个10个元素的整数数组,赋值为1-10,按如下格式输出数组中的全部数据。
a[0]=1 a[1]=2 …………
a[0]=1 a[1]=2 …………
2、打印出Fibonacci数列:从第3个数开始的每个数的值为前两个数之和。
1 1 2 3 5 8 ……
1 1 2 3 5 8 ……
3、输入10个学生的成绩到一个数组中,查出最低分数及最高分数,计算出总分以及平均分,计算出及格人数以及成绩在平均分以上的人数。
4、有一个数组,内放10个整数。要求出最小的数和它的下标,然后把它和数组中最前面的元素对换位置,出最大的数和它的下标,然后把它和数组中最后面的元素对换位置。
5、利用随机函数产生10个1-100随机数,并存入数组中。
注解:产生随机数的方法
1)包含库文件 #include "Stdlib.h"
使用用randomize()随机种子函数 及 随机数生产函数random(101),参数表示范围
注解:产生随机数的方法
1)包含库文件 #include "Stdlib.h"
使用用randomize()随机种子函数 及 随机数生产函数random(101),参数表示范围
2)使用用randomize()随机种子函数
随机数生产函数rand (),无参数,产生int数据类型范围内的随机数
随机数生产函数rand (),无参数,产生int数据类型范围内的随机数
6、将数组中所有元素的值向后移动一位,最后一个元素的值移动到第一个元素中;(将数组中所有元素的值向前移动一位,第一个元素的值移动到最后一个元素中)
7、将数组中元素的值先按原序输出,逆置(第一个与最后一个交换,第二个与倒数第二个交换,依次类推)后再输出一次;
8、将一个数组中的元素反向复制到另一个数组中,输出这两个数组。
9、编程输入一个小写字母,以该字母为第一个字母按字母表逆序输出字母表中所有小写字母。(例:输入 m ,则输出:mlkjihgfedcbazyxwvutsrqpon)(利用数组或不利用数组两种方式编程)
10、输入一个数,在数组中到第一个比它大的数,将输入的数据插入到这个数的前面。
11、将两个数组中的元素交叉复制到一个新的数组中。
12、定义一个整数数组,求出奇数和偶数个数
13、有30个 0-9之间的数字,分别统计0-9出现的次数
14、用筛选法求100之内的素数
筛选法又称筛法,是求不超过自然数N(N>1)的所有质数的一种方法。据说是古希腊的埃拉托斯特尼(Eratosthenes,约公元前274~194年)发明的,又称埃拉托斯特尼筛子。 具体做法是:先把N个自然数按次序排列起来。1不是质数,也不是合数,要划去。第二个数2是质数留下来,而把2后面所有能被2整除的数都划去。2后面第一个没划去的数是3,把3留下,再把3后面所有能被3整除的数都划去。3后面第一个没划去的数是5,把5留下,再把5后面所有能被5整除的数都划去。这样一直做下去,就会把不超过N的全部合数都筛掉,留下的就是不超过N的全部质数。
筛选法又称筛法,是求不超过自然数N(N>1)的所有质数的一种方法。据说是古希腊的埃拉托斯特尼(Eratosthenes,约公元前274~194年)发明的,又称埃拉托斯特尼筛子。 具体做法是:先把N个自然数按次序排列起来。1不是质数,也不是合数,要划去。第二个数2是质数留下来,而把2后面所有能被2整除的数都划去。2后面第一个没划去的数是3,把3留下,再把3后面所有能被3整除的数都划去。3后面第一个没划去的数是5,把5留下,再把5后面所有能被5整除的数都划去。这样一直做下去,就会把不超过N的全部合数都筛掉,留下的就是不超过N的全部质数。
15、下面的程序从键盘接收任意5个数放入数组A中,假设这5个数为:8 1 4 2 5,则要输出一个具有如下内容的方阵。
16、十五个猴子围成一圈选大王,依次1-7 循环报数,报到7 的猴子被淘汰,直到最后一只猴子成为大王。问,哪只猴子最后能成为大王?(有17个人围成一圈(编号为0~16),从第 0号的人开始从 1报数, 凡报到 3的倍数的人离开圈子,然后再数下去,直到最后只剩下一个人为止。 问此人原来的位置是多少号?)
17、有 N个数已按由小到大的顺序排好,要求输入一个数, 把它插入到原有序列中,而且仍然保持有序。
18、查出圆环中(一维数组)中任意四个相邻数之和的最大值,输出起始位置和终止位置以及这四个数。
19、将一个数组中序号为单和双的分别复制到另外两个数组中。
20、将一个数组中的最大数和第二大数分别出来。
21、数组中记录有一个单位200职工的年龄,编程统计出各年龄段的人数。
22、将数组中每一个数出现的次数统计出来。
字符串专题:
23、编写程序将字符串中的元音字母输出。例如字符串为“boy and girl”, 则输出为: oai
24、从键盘上任意输入一个字符串S,输出其中的数字字符。例如输入为:sd12we$*55abc8,则输出结果为:12558
25、统计26个英文字符在一个字符串中出现的次数。
26、将两个字符串连接起来。(连接到第一个字符串的后面,不使用strcat函数)
27、编程:在一字符串中查某个指定的字符,到则输出字符第一次出现的位置,未到则输出“not found”。
28、判断字符串sub是否是字符串str的子串。
29、将两个字符串合并到一个新的字符串中。
30、删除一个字符串中所有数字字符。(注意删除后字符的移位)
31、统计一个字符串中单词的个数。(以空格作为分隔符)
32、比较三个字符串,将最大的字符串输出。
33、将输入的10个字符串的字符数保存在一个数组中。
排序专题:
34、冒泡排序:
(1)从第一个开始,每相邻两个数进行比较,较小的排前面,大的放后面,第一轮后最大的排最后;第二轮除最后一个数,前面的数按第一轮方式交换,依次类推,完成排序。
(2)将数组中第一个数与后面的每一个数比较,如果较小就交换,第一轮结束后,最小的数在最前面;第二轮从第二个数开始,将第二个数与其后每一个数比较,较小就交换,依次类推,完成排序。
(1)从第一个开始,每相邻两个数进行比较,较小的排前面,大的放后面,第一轮后最大的排最后;第二轮除最后一个数,前面的数按第一轮方式交换,依次类推,完成排序。
(2)将数组中第一个数与后面的每一个数比较,如果较小就交换,第一轮结束后,最小的数在最前面;第二轮从第二个数开始,将第二个数与其后每一个数比较,较小就交换,依次类推,完成排序。
35、对100个100以内的随机数按从大到小的顺序排序,输出所有不重复的数据。(去除重复数据后输出。)
36、统计一个单位职工的年龄,要求把相同年龄最多的那个年龄出来(可能有几个这样的年龄),并统计出现的次数。
37、选择法排序:是对冒泡法排序的改进,在每一轮的比较中到最小值(或最大值),然后与最前面的元素进行交换,第二轮排除第一个元素继续上述算法,相对于冒泡排序在于减少了很多不必要的数据交换。
38、利用选择法对100个学生成绩按照从大到小的顺序排序,并统计及格与不及格成绩的人数、总分、平均分。
39、插入法排序:将10个-50到+50之间的随机数按从小到大的顺序插入到数组中。(插入法是一种比较直观的排序方法。它首先把数组头两个元素排好序,再依次把后面的元素插入适当的位置。把数组元素插完也就完成了排序)
40、利用插入法将数组a中的所有元素按顺序插入到数组b中(a数组保持不变,b数组排序),输出两个数组的值。
(shell排序法不常用到,学生自查资料;另外在函数讲解后再学习快速排序法)
二维数组:
41、定义一个五行六列的二维数组,给每一个元素赋值为一个100以内的随机数(赋值为行号与列号之和),按矩阵形式输出该数组。
42、定义a数组为三行五列,定义b数组为五行三列,将a数组的值转置后赋值给b数组。按矩阵形式打印出两个数组。
43、将含100个元素的一维数组的值按顺序复制到二维数组中,打印出两个数组出来。
44、查二维数组中最大值的行号与列号。
45、查二维数组中每一行的最大值,并求出它们的和。
46、打印杨辉三角形的前10行。
47、打印如下图所示数字方阵:
48、把一个二维实型数组a按照第0列的元素进行排序(由小到大排序,用冒泡法或选择法)。例如:如果a[i][0]大于a[i+1][0],则i行与i+1行中所有元素都要进行对换。
49、查二维数组中每一列的最小值,打印出它的位置和值。(扩展:查二维数组中的鞍点:一个数在行中是最大的,在列中是最小的)
50、有 N个国家名,要求按字母先后顺序排列(用起泡排序法)后输出。
51、输出“魔方阵(奇数)”。
介绍:
魔方阵,古代又称“纵横图”,是指组成元素为自然数1、2…n的平方的n×n的方阵,其中每个元素值都不相等,且每行、每列以及主、副对角线上各n个元素之和都相等。
介绍:
魔方阵,古代又称“纵横图”,是指组成元素为自然数1、2…n的平方的n×n的方阵,其中每个元素值都不相等,且每行、每列以及主、副对角线上各n个元素之和都相等。
如3×3的魔方阵:
8 1 6
3 5 7
4 9 2
魔方阵的排列规律如下:
(1)将1放在第一行中间一列;
(2)从2开始直到n×n止各数依次按下列规则存放;每一个数存放的行比前一个数的行数减1,列数加1(例如上面的三阶魔方阵,5在4的上一行后一列);
(3)如果上一个数的行数为1,则下一个数的行数为n(指最下一行);例如1在第一行,则2应放在最下一行,列数同样加1;
(4)当上一个数的列数为n时,下一个数的列数应为1,行数减去1。例如2在第3行最后一列,则3应放在第二行第一列;
(5)如果按上面规则确定的位置上已有数,或上一个数是第一行第n列时,则把下一个数放在上一个数的下面。例如按上面的规定,4应该放在第1行第2列,但该位置已经被占据,所以4就放在3的下面;
简单图示如下:
8 1 6
3 5 7
4 9 2
魔方阵的排列规律如下:
(1)将1放在第一行中间一列;
(2)从2开始直到n×n止各数依次按下列规则存放;每一个数存放的行比前一个数的行数减1,列数加1(例如上面的三阶魔方阵,5在4的上一行后一列);
(3)如果上一个数的行数为1,则下一个数的行数为n(指最下一行);例如1在第一行,则2应放在最下一行,列数同样加1;
(4)当上一个数的列数为n时,下一个数的列数应为1,行数减去1。例如2在第3行最后一列,则3应放在第二行第一列;
(5)如果按上面规则确定的位置上已有数,或上一个数是第一行第n列时,则把下一个数放在上一个数的下面。例如按上面的规定,4应该放在第1行第2列,但该位置已经被占据,所以4就放在3的下面;
简单图示如下:
填魔术方阵的方法以奇数最为简单,第一个数字放在第一行第一列的正中央,然后向右(左)上填,如果右(左)上已有数字,则向下填,如下图所示:
数组复习
52、从键盘输入若干个整数,其值在0至4范围内,用-1作为输入结束的标志。统计每个整数的个数。
53、定义一个含有30个整型元素的数组,按顺序分别赋予从2开始的偶数;然后按顺序每五个数求出一个平均值,放在另一个数组中并输出。
54、通过赋初值按行顺序为一个二维数组赋予2、4、6、...等偶数,然后按列的顺序输出该数组。scanf输入整型数组
55、通过循环按行顺序为一个5×5的二维数组a赋1到25的自然数,然后分别输出该数组的左下半三角、右上半三角、对角线、最外圈数值。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论