01./*
02. *Copyright (c)2016,烟台大学计算机与控制工程学院
03. *All rights reserved.
04. *文件名称:aaa.cpp
05. *作 者:秦超
06. *完成日期:2016年3月23日
07. *版 本 号:v1.0
08. *
09. *问题描述:分析以下程序运行机制
10. */
11.
(1)
#include <iostream>
14.using namespace std;
15.
16.void fun(int k)
17.{
18. if(k > 0)
19. fun(k-1);
20. cout << k;
21.}
22.
23.int main()
24.{
25. int w = 5;
26. fun(w);
27. cout << endl;
28. return 0;
29.}
运行结果:
(2):
问题(2)
#include <iostream>
using namespace std;
void recur(char);
int main()
{
recur('0');
return 0;
}
void recur(char c)
{
cout << c;
if(c < '5')
recur(c+1);
cout << c;
}
运行结果:
(3):
问题(3)
#include <iostream>
using namespace std;
int fun2(int a,int b)
{
int c;
c = a*b%3;
return c;
}
int fun1(int &a,int &b)
{
int c;
a += a;
b += b;
c = fun2(a,b);
return c*c;
}
int main()
{
int x = 11,y = 19;
cout << fun1(x,y) << endl;
return 0;
}
运行结果:
(4):
问题(4)
#include <iostream>
using namespace std;
const double pi = 3.1415926;
float area(float r = 6.5);
float volume(float h,float r = 6.5);
int main()
{
cout << area() << endl;
cout << area(7.5) << endl;
cout << volume(45.6) << endl;
cout << volume(34.2,10.4) << endl;
return 0;
}
float area(float r)
{
return pi*r*r;
}
float volume(float h,float r)
{
return pi*r*r*h;
}
分析:
(1):去掉第四行的“=6.5” r没有值,无参数,第一次调用出错。
(2):将第十四行改为“float area(float r = 6.5)”会出错,原因是 在area函数声明的时候已经给r赋值。
(3):将第五行“float h,float r = 6.5”改为“float h,float r”会出错,原因是在调用第九行的volume函数时,缺少一个参数
(4):h有初始值,调用volume函数时可以不加参数。