第二章课后习题
2-28
源码:
1 #include<iostream> 2 using namespace std; 3 int main() 4 { 5 char c; 6 cout<<"Menu: A(dd) D(elete) S(ort) Q(uit),Select one:"; 7 while(cin>>c){ 8 if(c==‘Q‘) 9 { 10 return 0; 11 } 12 else 13 { 14 switch(c) 15 { 16 case ‘A‘: cout<<"数据已经增加"<<endl;break; 17 case ‘D‘: cout<<"数据已经删除"<<endl;break; 18 case ‘S‘: cout<<"数据已经排序"<<endl;break; 19 } 20 } 21 22 } 23 return 0; 24 }
运行结果:
2-29
源码:
1 #include<iostream> 2 #include<cmath> 3 using namespace std; 4 int main() 5 { 6 int i,j; 7 for(i=2;i<=100;i++) 8 { 9 for(j=2;j<=sqrt(i);j++) 10 { 11 if(i%j==0)break; 12 } 13 if(j>=sqrt(i)) 14 cout<<i<<" "; 15 } 16 return 0; 17 }
运行结果:
2-32
源码:
1 #include<iostream> 2 #include<ctime> 3 #include<cstdlib> 4 using namespace std; 5 int main() 6 { 7 srand((unsigned)time(NULL)); \\\\使用系统计数器的值作为随机数种子 8 int x=1+rand()%100,y; \\\\使范围控制在1~100 9 cout<<"请输入您猜测的数字(1-100):"<<endl; 10 while(cin>>y) 11 { 12 if(y<=0&&y>=100) 13 { 14 cout<<"输入的数据范围不正确"; 15 exit(0); 16 } 17 if(y>x) 18 cout<<"您输入的数据偏大"<<endl; 19 else if(y<x) 20 cout<<"您输入的数据偏小"<<endl; 21 else 22 { 23 cout<<"猜测结果正确"<<endl; 24 break; 25 } 26 } 27 return 0; 28 }
运行结果:
2-34
源码:
1 #include<iostream> 2 using namespace std; 3 double fun(int,int); 4 int main() 5 { 6 int x; 7 x=fun(5,3); 8 cout<<x; 9 return 0; 10 } 11 double fun (int x,int y) 12 { 13 double sum=1; 14 for(int i=1;i<=x;i++) 15 sum*=i; 16 for(int i=1;i<=y;i++) 17 sum/=i; 18 for(int i=1;i<=x-y;i++) 19 sum/=i; 20 return sum; 21 }
运行结果:
实参是在实际调用时传递给函数的参数,实参可以是常量,变量,表达式等。无论是何种类型的量,在进行函数调用时,它们必须有确定的值,以便把这些值传递给形参。
形参是定义函数名和函数体的时候使用的参数,目的是用来接收调用该函数时传入的参数。
值传递:调用时,将实参的值传递对应的形参。由于形参有自己独立的存储空间,又作为函数的局部变量使用,因此在函数中对任意形参的修改都不会改变实参变量的值。
引用传递:引用传递是一种特殊的变量,它被认为是一个变量的别名。当定义一个引用时,其实是为目标变量起一个别名,引用并不分配独立的内存空间,它与目标变量共用其内存空间,当定义一个引用时,如果该引用不是用作函数的参数或返回值,则必须提供该引用的初始值。