《C语言程序设计》实验四_c语言程序设计实验题
《C语言程序设计》实验四由刀豆文库小编整理,希望给你工作、学习、生活带来方便,猜你可能喜欢“c语言程序设计实验题”。
电子科技大学 计算机 学院
标 准 实 验 报 告
(实验)课程名称
C语言程序设计
电子科技大学教务处制表
电 子 科 技 大 学 实
验
报
告
四
学生姓名:
学 号:
指导教师:刘 勇 实验地点: 计算机学院软件306室
实验日期:
****年**月**日
一、实验室名称:
软件实验室
二、实验项目名称:函数的应用及预处理
三、实验学时:2
四、实验原理:
使用Turbo C软件(简称TC),在微型计算机上,对其程序进行编辑、编译、连接与运行。Turbo C是一个集成环境,它具有方便、直观、易用的界面和丰富的库函数。通过上机练习掌握在TC环境下编辑、编译、连接、和运行C程序的方法和过程。
五、实验目的1. 掌握C语言中定义函数的方法; 2. 掌握函数传值调用的方法; 3. 掌握函数传址调用的方法; 4. 掌握递归函数的设计方法; 5. 掌握命令行参数的使用方法;
6. 掌握函数在不同文件中的编译、链接方法。
六、实验内容
编程实验,完成以下上机内容,调试运行程序并完成报告 1)、教材第七章习题7.4;
2)、编写一个实现冒泡法排序的函数,并在主函数中从键盘上输入6个数后进行排序输出;
3)、教材第七章习题7.11; 4)、教材第七章习题7.15; 5)、教材第七章习题7.24; 6)、求解汉渃塔(tower of Hanoi)问题。在一块平板上立有3根立柱,从左到右分别标记为A,B,C。最初在A柱上放有6个大小不等的圆盘,并且大盘在下面,小盘在上面。要求将这些盘从A移到C(可以借助B柱)。条件是:每次只能移动一个盘,并且不允许把大盘放在小盘的上面。(提示:利用函数的递归调用);
七、实验器材(设备、元器件):
pc硬件要求:CPU PII 以上,64M 内存,1OOM 硬盘空间即可。
软件要求:DOS3.0以上/Windows98/Me/XP/NT/2000。
八、实验步骤: 实验编程与运行结果
⑴ 编写一个求两个整数的最小公倍数的函数,两个整数由键盘输入,用主函数调用这个函数,并输出结果。
程序文件名为7_4.c,源程序清单如下:
#include lcd(int a,int b){ int temp,num1,num2;num1=a;num2=b;while(num2!=0){ temp=num1%num2;num1=num2;num2=temp;} return(a*b/num1);} main(){ int t,x,y;printf(“Please input two integers:”);scanf(“%d,%d”,&x,&y);if(x>y){t=x;x=y;y=t;} printf(“lcd(%d,%d)=%dn”,x,y,lcd(x,y));}
运行结果:
⑵ 编写一个实现冒泡法排序的函数,并在主函数中从键盘上输入6个数后进行排序输出。
程序文件名为testf3.c,源程序清单如下:
main(){ int i,j,a[7];int temp;clrscr();for(i=1;i
temp=a[j];a[j]=a[j+1];a[j+1]=temp;} } for(i=1;i
运行结果:
⑶
编写一个通过函数调用把输入的小写字符串变为大写字符串的程序。
程序文件名为7_11.c,源程序清单如下:
#include lowch_to_upch(char *str){ while(*str!=' '){ if(*str>='a'&&*str
运行结果:
⑷ 编写一个求三个整数中最小值整数的函数,主程序要求三个整数由命令行参数输入,调用该函数并输出结果。
程序文件名为7_15.c,源程序清单如下:
#include #include
#include int search_min(int a,int b,int c){ if(a
运行结果:
⑸ 编写一个程序,先定义一个将字符大写、小写和数字进行分类的带参数宏,然后对从键盘输入的一系列字符进行分类计数,并输出计数的结果,程序遇到字符‘*’结束。
程序文件名为7_24.c,源程序清单如下:
#include #define INUP(c)c>='A'&&c='a'&&c='0'&&c
运行结果:
⑹ 求解汉渃塔(tower of Hanoi)问题。在一块平板上立有3根立柱,从左到右分别标记为A,B,C。最初在A柱上放有6个大小不等的圆盘,并且大盘在下面,小盘在上面。要求将这些盘从A移到C(可以借助B柱)。条件是:每次只能移动一个盘,并且不允许把大盘放在小盘的上面。(提示:利用函数的递归调用)
程序文件名为testf4.c,源程序清单如下:
void move(char x,char y){ printf(“%c------%c> ”,x,y);} void hanoi(int n,char one,char two,char three){ if(n==1)move(one,three);else { hanoi(n-1,one,three,two);move(one,three);hanoi(n-1,two,one,three);} } main(){ int m;printf(“Input the number of diskes: ”);scanf(“%d”,&m);printf(“The step to moving %3d diskes: n”,m);hanoi(m,'A','B','C');}_
运行结果:
九、总结及心得体会:
十、对本实验过程及方法、手段的改进建议:
报告评分:
指导教师签字: