第一篇:《C语言程序设计》(江宝钏著)实验三答案
3.5 实验三 选择结构程序设计
一、实验目的与要求
1.理解C语言表示逻辑量的方法,学会正确使用逻辑运算符和逻辑表达式。
2.掌握利用if结构实现选择结构的方法。
3.掌握利用switch结构实现多分支选择结构。
4. 结合程序掌握一些简单的算法,学习调试程序
5. 实验4学时
二、实验内容
1.程序改错题
改正下面程序中的错误。输入实数x,计算并输出下列分段函数f(x)的值(保留1位小数)。1
x(x100)
yf(x)
x(x100)输入输出示例1(改正后程序的运行结果)
Enter x:f(100.00)= 0.1
输入输出示例2(改正后程序的运行结果)
Enter x:f(23.00)= 23.0
源程序(有错误的程序)
#include
#include
void main(void)
{
double x;
printf(“Enterx: n”);
scanf(“=%f”, x);
if(x = 100){
y = 1/sqrt(x)
}
else(x!= 100){
y = x;
}
printf(“f(%.2f)= %.1fn”,x,y);
}
答:
#include
#include
void main(void)
{
double x,y;
printf(“Enterx:n”);
scanf(“%lf”,&x);
if(x=100)
y = 1/sqrt(x);
else
y= x;
printf(“f(%.2lf)=%.1lfn”,x,y);
}
2.一般编程题
编程题1
输入任意三个整数a,b,c,求3个数中的最大值和最小值。
答:
#include
void main()
{
int a,b,c;
printf(“请输入三个整数:”);
scanf(“%d %d %d”,&a,&b,&c);
if(a>=b)
t=a,a=b,b=t;
if(a>=c)
t=a,a=c,c=t;
if(b>=c)
t=b,b=c,c=t;
printf(“最小值为:%dn”,a);
printf(“最大值为:%dn”,c);
}
编程题2
输入x,计算并输出下面分段函数f(x)的值(保留2位小数)。请调用sqrt函数求平方根,调用pow函数求幂。
2(x1)2x1
x(x0)
f(x)
x(x0)
输入输出示例(共运行3次)
Enter x:f(10.00)=3.16
Enter xf(-0.50)=-2.75
Enter x:f(0.00)=0.00
成本
答:
#include
#include
void main()
{
编程题3 double x,y;printf(“Enterx:n”);scanf(“%lf”,&x);if(x<0)y=pow(1+x,2)+2*x+1/x;else y=sqrt(x);printf(“f(%.2f)=%.2fn”,x,y);}
有一函数:
x(-5 y=x-1(x=0) x+1(0 编写程序,要求用scanf函数输入x的值,输出y的值。 具体要求如下: (1)用if语句实现分支,自变量和函数值均用实数类型。 (2)自变量用scanf函数输入,给一些输入提示。 (3)运行程序,输入x的值(分别为-5 答: #include #include void main() { double x,y; printf(“Enterx:n”); scanf(“%lf”,&x); if(x>0&&x<10) y=x+1; else if(x==0) y=x-1; else if(x>-5&&x<0) y=x; printf(“f(%.2f)=%.2fn”,x,y); } 编程题4 某服装店经营成套服装的买卖,同时也允许单件销售。若一次购买不少于70套,则每套90元;若不足70套,则每套110元;只买上衣每件70元;只买裤子每条60元。请编写程序假设用户买入x件上衣和y条裤子,请编写程序计算相应的应付款是多少? 答: #include #include void main() { double x,y,z; printf(“输入上衣x件,裤子y件:n”); scanf(“%lf%lf”,&x,&y); if(x>=y&&y>=70) z=90*y+70*(x-y); else if(y>=x&&x>=70) z=90*x+60*(y-x); else if(x>y&&y<70) z=110*y+70*(x-y); else if(y>x&&x<70) z=110*x+60*y-x; printf(“应付:%.3f(元)n”,z); } 编程题5 编写程序实现:输入一个整数,判断它能否被3、5、7整除,同时输出如下信息。 (1)能同时被3、5、7整除; (2)能同时被其中的哪二个数整除; (3)能被其中的哪一个数整除; (4)不能被3、5、7任一个数整除。 答: #include void main() { int x,a,b,c,d; scanf(“%d”,&x); a=x%3; } a=a/a*100;b=x%5;b=b/b*10;c=x%7;d=a+b+c;switch(d){ case 100:printf(“能被5,7整除n”);case 10 :printf(“能被3,7整除n”);case 1:printf(“能被3,5整除n”);case 110:printf(“能被7整除n”);case 101:printf(“能被5整除n”);case 11 :printf(“能被3整除n”);case 111:printf(“不能被3,5,7整除n”);case 0:printf(“能被3,5,7整除n”);} 3.较难编程题 编程题1 请用switch语句编程计算员工每月的薪水。(exph3_1.cpp) 已知某公司员工的保底薪水为500,某月所接工程的利润profit(整数)与提成的关系如下(计量单位:元): profit≤1000没有提成; 1000<profit≤2000提成10%; 2000<profit≤5000提成15%; 5000<profit≤10000提成20%; 10000<profit提成25%。 分析:为使用switch语句,必须将利润profit与提成的关系,转换成某些整数与提成的关系。分析本题可知,提成的变化点都是1000的整数倍(1000、2000、5000、……),如果将利润profit整除1000,则相邻两个区间的重叠。为解决相邻两个区间的重叠问题,最简单的方法就是:利润profit先减1(最小增量),然后再整除1000即可: profit≤1000对应0 1000<profit≤2000对应1 2000<profit≤5000对应2、3、4 5000<profit≤10000对应5、6、7、8、9 10000<profit对应10、11、12、…… 答: #include void main() { double p,m,t,q; int n; printf(“某月所接工程利润为:”);printf(“nn”);scanf(“%lf”,&p);m=p-1;n=(int)m/1000;switch(n){ case 0 :printf(“n薪水为:500n”);break;case 1 :q=500+p*0.1;printf(“n薪水为:%.2lfn”,q);break;case 2 : case 3 : case 4 :q=500+p*0.15;printf(“n薪水为:%.2lfn”,q);break;case 5 : case 6 : case 7 : case 8 : case 9 :q=500+p*0.2;printf(“n薪水为:%.2lfn”,q);break;default:q=500+p*0.25;printf(“n薪水为:%.2lfn”,q); } } 编程题2 编写程序实现如下功能:输入二个运算数(exp1,exp2)和一个运算符(op),计算表达式exp1 op exp2的值,其中OP可以为+、-、*、/、%五个符号中的任一种(提示:用switch语句实现)。 答: #include void main() { float exp1,exp2,x; char op; printf(“输入:”); scanf(“%f%c%f”,&exp1,&op,&exp2); switch(op) { case '+':x=exp1+exp2;break; case '-':x=exp1-exp2;break; case '*':x=exp1*exp2;break; case '/':x=exp1/exp2;break; } printf(“nnn%5.2f%c%5.2f=%5.2fnnn”,exp1,op,exp2,x);} + C语言程序设计实验 (四)[实验1] scanf()、printf()函数的使用。 1.实验题目 输入1个学生学号和4门课程成绩,输出这个学生的学号、4门课程成绩和平均成绩。 2.实验要求 (1)按表格的形式输出,以行内输出一个学生的信息。 (2)学号用长整型,各科成绩用单精度型。 3.实验目标 (1)掌握实现人机对话形式的方法,scanf()输入。 (2)体会根据需要控制输出格式的方法,printf()输出。 4.实验指导 利用格式的数据宽度控制数据的对位输出。输出如下格式: The number and score of a student is: |---| |number | score1 | score2 | score3 | sco re4 | average | |---| |10011| 67.5|88.0 |93.5 |78.0|81.75 | |---| [实验2] getchar()、putchar()函数的使用 1.实验题目 用getchar()函数读入a~v之间的一个字母,用putchar()函数输出一个5行5列的矩阵,该矩阵第一行为读入的字母,下一行为紧跟该字母后的字母,依此类推。如输入a,则输出的矩阵为: aaaaa bbbbb ccccc ddddd eeeee 2.实验要求 (1)运用getchar()进行字符输入。 (2)运用putchar()进行字符输出。 3.实验目标 (1)体会根据需要控制输出格式的方法。 [实验3] 3.6 下面程序运行时在键盘上如何输入?如果a=3,b=4,x=8.5,y=71.82,c1=’A’,c2=’a’,请写出对应每个scanf函数的输入情况。 main() { int a,b;float x,y;char c1,c2; scanf(“a=%d□b=%d”,&a,&b); scanf(“□%f %e”,&x,&y); scanf(“□%c %c”,&c1,&c2); } 3.7编一程序,从键盘输入一个圆半径值,求圆周长、圆面积、圆球表面积、圆球体积。输出结果时,要求有文字说明,保留2位小数。 提示:设圆半径为r,则圆周长=2πr,圆面积=πr2,圆球表面积=4πr2,圆球体积= 4πr3/3。 C语言实验指导 实验一 顺序结构程序设计(2学时) 一、实验目的熟悉在VC运行环境下,编辑调试C语言程序的一般步骤。掌握顺序结构程序设计的基本思想和基本方法。 二、实验要求 1. 仔细阅读下列实验内容,并编写出相应的C语言源程序。2. 在VC运行环境下,编辑录入源程序。 3. 调试运行源程序,注意观察调试运行过程中发现的错误及改正方法。4. 掌握如何根据出错信息查找语法错误。 5.最后提交带有注释的源程序文件(扩展名为.c)。要求该文件必须能够正确地编译及运行,并不得与他人作品雷同。 6.源程序注释信息可以包括以下几方面内容: ⑴ 程序功能描述。 ⑵ 程序版本号、创作日期。 ⑶ 作者信息描述:班级、学号、姓名。 ⑷ 问题分析描述。 ⑸ 算法设计描述。 ⑹ 关键语句注释说明。 ⑺ 调试运行过程中出现的错误及改正方法。 ⑻ 输入数据样例。 ⑼ 输出数据样例。 三、实验内容 以下两题,任选其一解答。 你知道淄博到北京的地面距离是多少千米吗,淄博到纽约的地面距离又是多少千米呢?说不上来了吧。还是让我们编一个程序来计算一下吧。 1.已知地球的平均半径为6371千米,假设在地球的同一纬度上,有两个处于不同经度的城市A、B,编程序求出这两个城市之间的地面距离。 输入数据样例:例如,欲求北纬30度上东经10度到东经50度的距离,输入格式应为:30 10 50 参考测试数据: 输入:0 0 180 输出:20015.08 输入:30 0 90 输出:8397.7 2输入:60 0 45 输出:2453.20 2.地球的平均半径为6371千米,已知地球上两个城市A、B的经度和纬度,编程序求出这两个城市之间的地面距离。 提示:球面上两点之间的最短距离,等于过这两点以球心为圆心的圆上,这两点之间劣弧的长度。(即这两点与球心之间的连线构成的夹角所对球面劣弧的长度)。 建议你自己一步步推导出公式,而不要照搬网上的现成公式。 四、常见问题 疑问1:这分明是两道数学题啊,能否将数学公式提供给我们呢,我们的主要任务不是编写程序吗? 答:建立数学模型也是编程序的一部分。学会分析解决现实中遇到的问题,是我们学习的重要目标。 疑问2:这个问题好像属于球面几何的范畴,用平面几何可以求解吗? 答:这个问题的确涉及到球面几何,但是也的确可以利用投影以及平面几何方法来求解。 实验二 选择结构程序设计(2学时) 一、实验目的 掌握选择结构程序设计的一般方法及选择结构程序的调试方法。 二、实验要求 1. 仔细阅读下列实验内容,并编写出相应的C语言源程序。2. 在VC运行环境下,编辑录入源程序。 3. 调试运行源程序,注意观察调试运行过程中发现的错误及改正方法。4. 掌握如何根据出错信息查找语法错误。 5.最后提交带有充分注释的源程序文件(扩展名为.c)。要求该文件必须能够正确地编译及运行,并不得与他人作品雷同。 6.源程序注释信息可以包括以下几方面内容: ⑴程序功能描述。 ⑵程序版本号、创作日期。 ⑶作者信息描述:班级、学号、姓名。 ⑷问题分析描述。 ⑸算法设计描述。 ⑹关键语句注释说明。 ⑺调试运行过程中出现的错误及改正方法。 ⑻输入数据样例。 ⑼输出数据样例。 三、实验内容 你知道你生日那天是星期几吗,还有你知道你爸爸生日那天是星期几吗?你可能会说:可以查万年历啊。那么,不查万年历你能计算出来吗? 以下两题,任选其一解答。 1.编程序实现:输入一个年份y,求出从公元1年1月1日到y年1月1日,总共有多少天,并求出y年的1月1日是星期几。 2.编程序实现:输入任意一个日期的年、月、日的值,求出从公元1年1月1日到这一天总共有多少天,并求出这一天是星期几。 四、常见问题 疑问1:闰年的规律是不是四年一闰? 答:四年一闰是儒略历(儒略也就是凯撒大帝)的置闰规则。我们现在使用的是格里高利历,置闰规则是每400年97闰。 疑问2:公元1年1月1日是星期几呢? 答:星期一。 疑问3:据说从儒略历改为格里高利历时,将1582年10月4日的下一天定为格里高利历的10月15日,中间销去了10天,这会不会影响星期几的计算? 答:这个调整是对儒略历误差的纠正,并不会影响总天数和星期几的计算。 疑问4:这里计算总天数,好像要用到循环程序吧? 答:其实根据闰年的置闰规则,不使用循环也可以计算出来总天数。当然,你想使用循环编写该程序也是可以的。 实验三 循环结构程序设计(2学时) 一、实验目的掌握循环结构程序设计的一般方法及循环结构程序的调试方法。 二、实验要求 1. 仔细阅读下列实验内容,并编写出相应的C语言源程序。2. 在VC运行环境下,编辑录入源程序。 3. 调试运行源程序,注意观察调试运行过程中发现的错误及改正方法。4. 掌握如何根据出错信息查找语法错误。 5.最后提交带有充分注释的源程序文件(扩展名为.c)。要求该文件必须能够正确地编译及运行,并不得与他人作品雷同。 6.源程序注释信息可以包括以下几方面内容: ⑴程序功能描述。 ⑵程序版本号、创作日期。 ⑶作者信息描述:班级、学号、姓名。 ⑷问题分析描述。 ⑸算法设计描述。 ⑹关键语句注释说明。 ⑺调试运行过程中出现的错误及改正方法。 ⑻输入数据样例。 ⑼输出数据样例。 三、实验内容 以下两题,任选其一解答。 1. 海萍夫妇为了彻底告别“蜗居”生活,痛下决心贷款60万元购买了一套三居室。若贷款月利率为0.5%,还款期限为120个月,还款方式为等额本金还款法(即贷款期限内每期以相等的额度偿还贷款本金,贷款利息随本金逐期递减)。试求出每个月还款的本金、每个月的利息以及总利息分别是多少元。 2. 若还款方式采用等额本息还款法(即贷款期限内每期以相等的额度偿还贷款本息,贷款利息随本金逐期递减)。试求出每个月还款的本金、每个月的利息以及总利息分别是多少元。 四、常见问题 疑问1:等额本息还款法每个月的还款额怎么计算,应该有个公式吧,要不然怎么计算出来每个月应还的利息与本金? 答:的确有一个计算公式。当然你可以自己推导出来(这样你会很有成就感!),要不然就从网上搜索出来。 实验四 循环程序综合应用(4学时) 一、实验目的: 掌握循环结构程序设计的一般方法及循环结构程序的调试方法,能够综合运用顺序、选择和循环结构解决一般难度的实际应用问题。 二、实验要求 1. 仔细阅读下列实验内容,并编写出相应的C语言源程序。2. 在VC运行环境下,编辑录入源程序。 3. 调试运行源程序,注意观察调试运行过程中发现的错误及改正方法。4. 掌握如何根据出错信息查找语法错误。 5.最后提交带有充分注释的源程序文件(扩展名为.c)。要求该文件必须能够正确地编译及运行,并不得与他人作品雷同。 6.源程序注释信息可以包括以下几方面内容: ⑴程序功能描述。 ⑵程序版本号、创作日期。 ⑶作者信息描述:班级、学号、姓名。 ⑷问题分析描述。 ⑸算法设计描述。 ⑹关键语句注释说明。 ⑺调试运行过程中出现的错误及改正方法。 ⑻输入数据样例。 ⑼输出数据样例。 三、实验内容 以下两题,任选其一解答。 1.编程序实现如下功能:输入任意一个年份和月份,按以下格式输出该月份的公历日历。 要求由程序计算出来该月份的1日是星期几,并用循环控制打印。打印样例如下: 2012年日历 ========== 9月 ---------日 一 二 三 四 五 六2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30------------------------- 2.编程序实现如下功能:输入任意一个年份,按以下格式输出该年份全年的公历日历。要求由程序计算出来每个月份的1日是星期几,并用循环控制打印。 四、常见问题 疑问1:如何控制某个月1日的打印位置? 答:先由程序计算出来该月份的1日是星期几,然后控制在打印“1”之前打印相应个数的空格。 疑问2:如何控制每周和每月的打印换行? 答:可以根据当前这一天的打印位置控制每周的打印换行,并根据该月份的天数控制每月的打印换行。 实验五 字符串处理综合应用(4学时) 一、实验目的 掌握字符串处理的一般方法及字符串处理应用程序的调试方法,能够综合运用选择、循环结构和数组、指针解决一般难度的实际应用问题。 二、实验要求 1. 仔细阅读下列实验内容,并编写出相应的C语言源程序。2. 在VC运行环境下,编辑录入源程序。 3. 调试运行源程序,注意观察调试运行过程中发现的错误及改正方法。4. 掌握如何根据出错信息查找语法错误。 5.最后提交带有充分注释的源程序文件(扩展名为.c)。要求该文件必须能够正确地编译及运行,并不得与他人作品雷同。 6.源程序注释信息可以包括以下几方面内容: ⑴程序功能描述。 ⑵程序版本号、创作日期。 ⑶作者信息描述:班级、学号、姓名。 ⑷问题分析描述。 ⑸算法设计描述。 ⑹关键语句注释说明。 ⑺调试运行过程中出现的错误及改正方法。 ⑻输入数据样例。 ⑼输出数据样例。 三、实验内容 以下两题,任选其一解答。 1.编程实现,输入一个整数的小写金额值(即不考虑角和分),转化为大写金额值并输出。先实现基本功能,如输入1002300,可以输出“壹佰零拾零万贰仟叁佰零拾零元整”。 2.编程实现,输入一个小写金额值,转化为大写金额值输出。要求实现相对完善的功能,如输入1002300.90,应该输出“壹佰万贰仟叁佰元零玖角整”。 四、常见问题 疑问1:如何才能分离出整数中的每一位数字? 答:可以利用整数的求余数和除法运算实现数字的分离,同时将分离出的数字存入到一个事先定义好的数组中,每个数组元素只存储一位数字。 疑问2:若不能确定整数的实际位数,如何控制分离过程? 答:可以通过循环控制数字的分离过程,每循环一次分离出来当前的最末一位,然后去掉最末一位,直至分离出所有的位。 疑问3:如何控制给某位数字添加合适的数量单位,如万、仟、佰、拾、元? 答:可以根据该数字在原小写数值中的位置进行控制,如第0位单位为“元”,第1位单位为“拾”,依此类推。 实验六 文件应用程序设计(2学时) 一、实验目的掌握文件应用程序设计的一般方法及其调试方法。 二、实验要求 1. 仔细阅读下列实验内容,并编写出相应的C语言源程序。2. 在VC运行环境下,编辑录入源程序。 3. 调试运行源程序,注意观察调试运行过程中发现的错误及改正方法。4. 掌握如何根据出错信息查找语法错误。 5.最后提交带有充分注释的源程序文件(扩展名为.c)。要求该文件必须能够正确地编译及运行,并不得与他人作品雷同。 6.源程序注释信息可以包括以下几方面内容: ⑴程序功能描述。 ⑵程序版本号、创作日期。 ⑶作者信息描述:班级、学号、姓名。 ⑷问题分析描述。 ⑸算法设计描述。 ⑹关键语句注释说明。 ⑺调试运行过程中出现的错误及改正方法。 ⑻输入数据样例。 ⑼输出数据样例。 三、实验内容 以下两题,任选其一解答。 1. 海萍夫妇为了彻底告别“蜗居”生活,痛下决心贷款60万元购买了一套三居室。若贷款月利率为0.5%,还款期限为120个月,还款方式为等额本金还款法(即贷款期限内每期以相等的额度偿还贷款本金,贷款利息随本金逐期递减)。试求出每个月还款的本金、每个月的利息以及总利息分别是多少元。要求将输出结果写入到数据文件中。 2. 若还款方式采用等额本息还款法(即贷款期限内每期以相等的额度偿还贷款本息,贷款利息随本金逐期递减)。试求出每个月还款的本金、每个月的利息以及总利息分别是多少元。要求将输出结果写入到数据文件中。 电子科技大学 计算机 学院 标 准 实 验 报 告 (实验)课程名称 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 运行结果: ⑵ 编写一个实现冒泡法排序的函数,并在主函数中从键盘上输入6个数后进行排序输出。 程序文件名为testf3.c,源程序清单如下: main(){ int i,j,a[7];int temp;clrscr();for(i=1;i<7;i++){ printf(“nInput a[%d]=”,i);scanf(“%d”,&a[i]);} for(i=1;i<6;i++)for(j=1;j<7;j++){ if(a[j] temp=a[j];a[j]=a[j+1];a[j+1]=temp;} } for(i=1;i<7;i++){ printf(“n%5d”,a[i]);} }_ 运行结果: ⑶ 编写一个通过函数调用把输入的小写字符串变为大写字符串的程序。 程序文件名为7_11.c,源程序清单如下: #include 运行结果: ⑷ 编写一个求三个整数中最小值整数的函数,主程序要求三个整数由命令行参数输入,调用该函数并输出结果。 程序文件名为7_15.c,源程序清单如下: #include #include 运行结果: ⑸ 编写一个程序,先定义一个将字符大写、小写和数字进行分类的带参数宏,然后对从键盘输入的一系列字符进行分类计数,并输出计数的结果,程序遇到字符‘*’结束。 程序文件名为7_24.c,源程序清单如下: #include 运行结果: ⑹ 求解汉渃塔(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');}_ 运行结果: 九、总结及心得体会: 十、对本实验过程及方法、手段的改进建议: 报告评分: 指导教师签字: 电子科技大学 计算机 学院 标 准 实 验 报 告 (实验)课程名称 C语言程序设计 电子科技大学教务处制表 电 子 科 技 大 学 实 验 报 告 四 学生姓名: 学 号: 指导教师:王瑞锦 实验地点: 实验日期: ****年**月**日 一、实验室名称: 软件实验室 二、实验项目名称:函数的应用及预处理 三、实验学时: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 运行结果: ⑵ 编写一个实现冒泡法排序的函数,并在主函数中从键盘上输入6个数后进行排序输出。 程序文件名为testf3.c,源程序清单如下:第二篇:C语言程序设计实验四(本站推荐)
第三篇:C语言程序设计实验安排
第四篇:《C语言程序设计》实验四
第五篇:《C语言程序设计》实验四