(4)找到最接近平均值的数。(提示:考虑差的绝对值)
7-2 输入一个日期(按照year-month-day格式),计算该日期为当年的第几天。
(提示:注意闰年)
7-3 输入一个正整数n(1?n?10),再输入n个整数,将这n个整数从大到小排序,
然后在已经排序后的数组中插入平均数(取整),保持数组的升序,将插入平均数后的数组输出。 (1)用冒泡法排序; (2)用选择法排序。
7-4 输入两个数组A和B(各5个元素),将其按照升序排序,然后将A和B合并
到数组C中(合并的过程中保持升序,不要合并后再排序)。输出排序后的数组A、B和C。
7-5 利用数组,求一个int型整数对应的二进制补码并输出(注意负数)。 7-6 编写程序,按照下面要求填充并显示5行5列的矩阵(要求:使用的printf语
句不多于2个) (1)左上三角为+1 (2)右下三角为-1
(3)从右到左的对角线为0。 示例: 1
1 1 1 0
1 1 1 1 0
1 0
1 0
0 -1
-1 -1
-1 -1 -1
-1 -1 -1 -1
7-7 在一个二维数组中,输出最大元素及其行下标和列下标。
7-8 输入一个4*3的矩阵(整型),计算每行中最大值的平均值(实型)。 7-9 杨辉三角形(也叫Pascal三角形)如下:
1 1 1 1 1
1 2 3 4
1 3 6
1 4
1
1 5 10 10 5 1
??
编写程序,生成一个15行的杨辉三角形,存放在一个二维数组里。输入正整数n(1~15),读取并输出杨辉三角形的前n行元素。
(提示:如果用i表示行,用j表示列,则第i行j列元素pi, j=pi-1,j-1 + pi-1, j) 7-10
矩阵A和矩阵B相乘,要求A的列数和B的行数相同。例如:m行n列的
矩阵A和n行p列的矩阵B相乘,得到m行p列的矩阵C,C中的i行j列元素cij由下列公式得到:
cij??aikbkj
k?1n其中,aik是矩阵A中的i行k列元素,bkj是矩阵B中的k行j列元素。 编写程序,输入3行4列的矩阵A和4行5列的矩阵B,输出A和B的乘积——3行5列的矩阵C。 7-11
判断一个二维数组是否存在鞍点,若存在,则输出鞍点及其行号和列号;
否则输出没有鞍点信息。“鞍点”是指这样的元素:它在本行是最大元素,而在本列是最小的元素。 7-12
编写程序,实现二叉树查找的算法。该算法是用一个查找键值与“已排序”
列表中的中间元素进行比较,然后: (1)如果匹配,结束查找
(2)如果查找键值小于中间值,那么键值在列表的前半部分,则在列表的前半部中继续查找(继续与其中的中间元素比较)
(3)如果查找键值大于中间值,那么键值在列表的后半部分,则在列表的前半部中继续查找(继续与其中的中间元素比较)
重复这种“分治”的策略,直到找到一个匹配值,输出它在列表中的位置。如果该列表减少到只有一个元素,仍没有匹配的值,那么表明该列表中没有键值。 注意:读入数组后,需要先排序。
? 第8章 字符数组与字符串
8-1 编写程序,输入你的姓名,然后输出表示你名字的ASCII码系列。
8-2 读入一行字符,统计字母、数字和其他字符的个数。 8-3 不使用字符串处理函数,完成下面任务:
(1)将字符串str1复制到字符串str2中(不使用strcpy函数),输出str2; (2)将字符串str2连接到字符串str1后(不使用strcat函数),输出str1; (3)比较字符串str1和str2的大小(不使用strcmp函数),输出较大的字符串(如果字符串一样,随便输出一个)。
8-4 从一个字符串中删除从某个特定字符开始的所有字符。
例如原字符串为\,特定字符为'd',删除后的字符串为\。 8-5 将一个字符串逆序存放,然后输出。 8-6 编写程序,完成下面任务:
(1)输出问句:\; (2)接受一个答案;
(3)如果答案正确(正确答案是Dennis),显示\并停止运行; (4)如果答案不正确,输出消息\;
(5)如果第三次尝试后答案仍不正确,显示正确答案并停止运行。
8-7 将字符串译成密码,密码规律是:若密钥为4,则用原来的字母后面第4个字
母代替原来的字母。例如字母A后面的第4个字母是E,A译为E;字每V、W、X、Y、Z分别译为Z、A、B、C、D。如\应译为\。 (1)编写一个程序,读入原字符串,当密钥为4时,输出翻译后的密码。 (2)编写一个程序,读入原字符串和密钥(1~25),输出翻译后的密码。 8-8 编写程序,从一个输入的字符串中抽取一部分(从第n个字符开始,抽取m个
字符)并输出。要求:n和m都由用户输入。
8-9 编写程序,读取一段文本(以换行作为输入的结束),然后计算某个单词或单词
的一部分(几个连续的字符)(也由用户输入)出现的次数。 8-10
某选举活动有五位候选人(用一个字符串数组记录候选人的名字),投票工
作室在选票上标记出某位候选人的编号(1~5)即可。编写程序,使用数组变量count读取选票并计算每位候选人的得票数(当输入0时,表示输入结束)。 条件:如果所读取数不在1~5的范围内,该选票被视为“废票”;若没有候选人超过总投票数的半数,则选举无效。
(1)输出每个人的姓名和得票数,和废票总数。
(2)若选举有效,票数最多的候选人当选,输出当选人的名字。 8-11
编写程序,用一个词代替给定字符串中的某个词。例如:在文本\
program in PASCAL language.\中,用C将PASCAL替代掉,变为“It is good to program in C language.”。(注意:如果需要被替换的单词出现多次,都要被替换掉。) 8-12
编写程序,从键盘读入一个字符串,判断它是否为回文。
(所谓回文是指顺读和倒读都一样的字符串,例如level、Madam和Anna都是回文字符串,忽略大小写)。 8-13
编写程序,读入5个学生的信息(学号-int型、姓名-字符串、分数-float型),
并生成如下输出:
(1)按照学号升序输出学生信息 (2)按照姓名升序输出学生信息 (3)按照分数由高到底输出学生信息。
? 第9章 自定义函数
9-1 定义space(n)函数,作用是输出n个空格。编写程序,输出读入的两个整数,并
调用space函数,在这两个整数之间输出n个空格。 9-2 定义两个函数,分别求两个数的最大公约数和最小公倍数。
编写程序,读入两个整数,通过调用函数求他们的最大公约数和最小公倍数。 9-3 读入一个整数number,统计并输出该整数中数字“1”的个数。要求定义并调
用函数countdigit(number, digit),其功能是统计整数number中数字digit的个数。例如countdigit(10090, 0)的返回值为3。
9-4 输入两个正整数m和n(m?1,n?1000),输出m~n之间的所有满足各位数字
的立方和等于它本身的数。要求定义并调用函数is(number)判断number的各位数字的立方和是否等于它本身。
9-5 定义函数round,对给定的实数按照指定的小数位数进行四舍五入。例如,给定
的实数是17.457,若指定规整到小数点后2位,则得到17.46。 编写程序,对读入的实数进行指定位数的四舍五入计算。
9-6 编写程序,定义exchange函数,用来将两个变量x和y的值进行交换(x和y
为全局变量)
9-7 定义函数prime来判断给定的整数是否为素数,若是则返回1,否则返回0。
编写程序,通过调用prime函数来确定读入的整数是否为素数。 9-8 定义函数,将给定字符串中的所有小写字母全部转换为大写字母。
编写程序,读入一个字符串,调用该函数进行转换,然后在主函数中实现输出。 9-9 定义函数p来计算n项多项式的值:
p=(?(((a0x+a1)x+a2)x+a3)x+?an
编写程序, 调用函数p来求n项多项式的值。要求:系数ai、n和x在主函数中读入。
(提示:系数ai存放在一个数组中) 9-10
定义函数ave,求一个数组的平均值。
编写程序,读入一个m行n列的数组,输出该数组,并在每行上显示相应的平均数。 9-11
定义函数,求给定的m行n列的二维数组中的最大元素。
编写程序,在主函数中读入该二维数组,并在主函数中实现最大元素的输出。 9-12
定义函数,求两个矩阵的乘积。
(有关矩阵相乘的计算,参见第7章中的习题) 9-13
定义函数fibonacci来求斐波那契数列中第n个元素的值。
编写程序,通过调用fibonacci函数,输出前40个斐波那契数列中的元素。 (提示:注意数据类型) 9-14
定义两个函数:sort函数用于给一个数组按照升序排序,join函数用于将数
组a和数组b按次序合并到数组c中。
编写程序,读入两个数组a和b,通过调用这两个函数,将a和b按照升序合并到数组c中,在主函数中将合并后的c输出。 9-15
定义函数substring(char s[ ], char sub[ ]),查找字符串sub在字符串s中第一
次出现的下标位置。 9-16
定义函数insert(char s1[ ], char s2[ ], int pos),实现在字符串s1的指定位置
pos处插入字符串s2。
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库上机练习[1](3)在线全文阅读。
相关推荐: