当前位置:文档之家› 浙师大 C语言 实验10函数2+答案

浙师大 C语言 实验10函数2+答案


学号姓名
一.目的要求
1.掌握函数声明、定义和调用的基本方法
2.掌握用递归函数解决问题的方法。
3.掌握局部变量与全局变量的作用域区别
4.掌握数组作为函数参数的基本方法。
二.实验内容
【实验题1】
分析如下:
Line 2中的变量k是_全局_变量;而Line 10中的k是__局部_变量。程序输出结果是k=1,k=1,k=1。
要求用函数调用的形式ቤተ መጻሕፍቲ ባይዱ提示:
主函数的功能:输入字符串,输入字符,调用count()函数统计次数,输出结果。
count()函数功能:统计出次数,将结果返会主函数。
【实验题4】程序填空:定义递归函数reverse(n),功能是实现对一个整数逆序输出,如输入整数153,则输出351.
算法分析:(1)递归函数reverse(int n)的基本思想:首先直接输出整数n的最低位(n%10),然后检查去除该最低位之后,n是否还存在高数位,若有,则对去除最低位的剩余部分(n/10)用递归函数reverse()予以输出;
【实验题2】程序填空:输入一个整数n (1≤n≤10),再输入n个整数,将它们按升序排列后输出。
程序分析_选择法:
(1)由于n最大是10,需要定义一个长度为10的整型数组a;
(2)整个排序只需要确定前n-1个元素(a[0]~a[n-2]),最后一个元素a[n-1]无需另外处理;
(3)在确定a[i](i=0,1,…,n-2)时,先将a[i]本身看成最小,即令k=i,并将a[k]与后面的元素a[j](j=i+1, i+2,…, n-1)一一比较,
(2)主函数main()负责:输入整数n;若n为负数,取相反数;调用reverse().
运行程序,并输入:12345,则输出:5 4 3 2 1
【实验题5】编程题:输入3个学生的4门课成绩,调用score函数计算得到个人最高总分,最后在主函数中输出个人最高总分
【算法分析】用一个二维数组s[3][4]存放学生成绩,一行对应一个学生,一列对应一门课程。
[思考题]程序填空:
将上述的程序用函数调用的方式去实现。定义一个sort()函数来实现数组的排序;
在main()函数中调用sort()函数来实现数组的排序,并将结果输出。
【编程题3】:输入一个以回车结束的字符串(有效长度少于80),再输入一个字符,统计其在字符串中出现的次数。
如:输入asdabc再输入a答案为2
如果a[j]< a[k],则更新k的值:k =j。找出对应于下标i的最小元素a[k]后,交换a[i]与a[k]。
(4)上述排序算法的代码:
运行程序,输入n:5,输入5个整数:23 -9 14 0 -3,显示结果为:
如果是按从大到小的降序排列,语句行Line 13应改为:if(a[k]> a[j])k=j;
如果将第10行改为“static int k=1;”,该k是_局部静态_变量,程序输出结果是k=1,k=2,k=1。
如果将第10行改为“k=1;”,该k是_全局//Line 2__变量,程序输出结果是k=1,k=1,k=2。
如果将第10行改为空语句“;”后,此时Fun中的k是_全局//Line 2_变量,程序输出结果是k=1,k=2,k=3。
相关主题