资源描述:
《变量的存储属性-浙江长征职业技术学院.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、主讲:相方莉浙江长征职业技术学院—计算机与信息技术系—相方莉制作1.在调用函数时,如果实参是简单变量,它与对应形参之间的数据传递方式是()地址传递单向值传递由实参传给形参,再由形参传回实参传递方式由用户指定对不起!答错了!恭喜您!答对了!对不起!答错了!对不起!答错了!B答案浙江长征职业技术学院—计算机与信息技术系—相方莉制作2.以下函数值的类型是()fun(floatx){floaty;y=3*x-4;returny;}int不确定voidfloat恭喜您!答对了!对不起!答错了!A对不起!答错了!对不起!答错了!答案浙江长征
2、职业技术学院—计算机与信息技术系—相方莉制作3.设有以下函数,则输出结果是f(inta){intb=0;intc=3;b++;c++;return(a+b+c);}main(){inta=2,i;printf("%d",f(a));}7浙江长征职业技术学院—计算机与信息技术系—相方莉制作函数的嵌套调用函数的递归调用浙江长征职业技术学院—计算机与信息技术系—相方莉制作浙江长征职业技术学院—计算机与信息技术系—相方莉制作汉诺塔汉诺塔是一种古老的数学问题,是指在“A”柱上从下向上依次放着从大到小的一叠盘子,要把该柱上的盘子全
3、部搬到指定的“C”柱,在搬运过程中,可以利用“B”柱来协助搬移,但每次只允许移动一个盘子,且在移动过程中始终保持大盘在下,小盘在上。试问怎样搬移盘子?最少需要搬几次才能把“A”柱上的全部盘子移至“C”柱?ABC浙江长征职业技术学院—计算机与信息技术系—相方莉制作intf1(intx)intf2(intt){inty,z;{inta,c;z=f2(y);}c=f1(a);}一、函数的递归调用intf(intx){inty,z;z=f(y);return(2+z);}递归调用:在调用一个函数的过程中又出现直接或间接的调用该函数本身的过程.间
4、接调用:直接调用:浙江长征职业技术学院—计算机与信息技术系—相方莉制作10voidmove(charx,chary){printf(“%c-->%c”,x,y);}main(){intm;printf(“请输入盘子的个数:”);scanf(“%d”,&m);printf(“搬运这%3d个盘子的具体步骤如下:”,m);hanoi(m,’A’,’B’,’C’);}浙江长征职业技术学院—计算机与信息技术系—相方莉制作ABCvoidhanoi(intn,charA,charB,charC)将n个盘从A座借助B座,移到C座{if(n==1
5、)move(A,C);需要搬的盘子的个数起始位置借助位置目的地浙江长征职业技术学院—计算机与信息技术系—相方莉制作ABCvoidhanoi(intn,charA,charB,charC)将n个盘从A座借助B座,移到C座{if(n==1)move(A,C);else{hanoi(n-1,A,C,B);需要搬的盘子的个数起始位置借助位置目的地浙江长征职业技术学院—计算机与信息技术系—相方莉制作ABCvoidhanoi(intn,charA,charB,charC)将n个盘从A座借助B座,移到C座{if(n==1)move(A,C);else
6、{hanoi(n-1,A,C,B);move(A,C);需要搬的盘子的个数起始位置借助位置目的地浙江长征职业技术学院—计算机与信息技术系—相方莉制作ABCvoidhanoi(intn,charA,charB,charC)将n个盘从A座借助B座,移到C座{if(n==1)move(A,C);else{hanoi(n-1,A,C,B);move(A,C);hanoi(n-1,B,A,C);}}需要搬的盘子的个数起始位置借助位置目的地浙江长征职业技术学院—计算机与信息技术系—相方莉制作#includeinti=0;voidm
7、ove(charx,chary){printf("%c-->%c",x,y);i++;}voidhanoi(intn,charA,charB,charC){if(n==1)move(A,C);else{hanoi(n-1,A,C,B);move(A,C);hanoi(n-1,B,A,C);}}main(){intm;printf("请输入盘子的个数:");scanf("%d",&m);printf("搬运这%3d个盘子的具体步骤如下:",m);hanoi(m,'A','B','C');printf("至少需要搬%d次",i)
8、;}浙江长征职业技术学院—计算机与信息技术系—相方莉制作有5个人坐在一起,问第五个人几岁?他说比第4个人大2岁。问第4个人,他说比第3个人大2岁。问第3个人,他说比第2个人大2岁。问第2个人,他说比第1个人