第一篇:课内实验报告-c
一.实验目的及实验环境
实验目的
1、掌握函数定义的一般形式
2、掌握函数的参数和函数的返回值
3、掌握函数调用的一般方式和调用过程
4、掌握函数的嵌套调用和递归调用
5、分析对比不同的实现 实验环境
Windows xp + VC ++ 6.0 二.实验内容
课本P147页7.15;课本P160页7.23,7.24 三.方案设计
7.15 用函数的递归调用实现,每次递归调用,可以使盘片数减1,当递归调用到盘片数为1时结束递归。
7.23 通过循环结构和插入排序法实现,输入时使10个字符形成字符串,最后将已排序的10个字符输出。
7.24 由用户输入一个数,并选择转换为几进制数最后输出;若输入有误则系统提示出错。若输入十进制数,除N取余直到商为0,将除得的结果逆序输出;若输入非十进制数,按权 展开得到十进制数。
四.测试数据及运行结果
1.正常测试数据及运行结果; 7.15
7.23
7.24
2.非正常测试数据及运行结果。7.15
7.23
五.总结
1.实验过程中遇到的问题及解决办法; 形参与实参在对应顺序上出现差错,在进制转换输入第一个数时,下标未从1开始。
解决办法:函数的实参和形参应在个数,类型和顺序上一一对应。2.对设计及调试过程的心得体会;
编写C语言程序应该简洁,程序层次应该清晰。在调试程序的过程中,每改一处错误,编译一次。在不断调试程序和改错的过程中,可以对程序代码做进一步的简化。
六.附录:源代码(电子版)
7.15 void hanoi(int n,char x,char y,char z){ if(n==1)printf(“%c->%cn”,x,z);else { hanoi(n-1,x,z,y);printf(“%c->%cn”,x,z);
hanoi(n-1,y,x,z);} } main(){ int m;printf(“Input the number of disks:”);scanf(“%d”,&m);printf(“The steps to moving %3d disks:n”,m);hanoi(m,'A','B','C');} 7.23 #include