C++第二次作业

1.为什么要用函数(设计实验、教案说明)

函数是编程的经典用法,为什么使用函数呢:

(1)函数可以使功能模块化,让程序的功能简单明了;

使用函数,让程序的目的和功能变得一目了然,

#include<stdio.h>
//求最大值 int max(int a,int b){ if(a>b)return a; return b; } int main() { int a,b; int p=max(a,b); return 0; }

(2)使用函数可以使某些重复且复杂的功能得到封装,代码更加简洁

#include<stdio.h>
#include<algorithm>
#include<iostream>
#include<vector>
#include<stack>
#include<queue>
#include<string>
using namespace std;
//计算阶乘 int jech(int k){ int sum=1; for(int i=1;i<=k;i++) sum*=k; return sum; } int main(){ cout<<jech(2)<<endl; cout<<jech(3)<<endl; return 0; }

 解释:上面代码中,阶乘被反复计算,这时如果不使用函数,代码会非常冗余,使用函数后看着代码更加简洁。

2.为什么要用函数重载(设计实验教案说明)

函数重载可以使函数的功能更加鲜明,话不多说,先上代码

#include<stdio.h>
#include<algorithm>
#include<iostream>
#include<vector>
#include<stack>
#include<queue>
#include<string>
using namespace std;
//完成加法运算,3个函数重载
int add(int x,int y){ return x+y; } int add(int x,int y,int z){ return x+y+z; } double add(double x,double y){ return x+y; } int main(){ cout<<add(3,5)<<endl; cout<<add(4,5,6)<<endl; cout<<add(3.5,4.7)<<endl; return 0; }

解释:不同数量的数据和不同类型的数据都可以使用add方法,深刻体现出重载的优越性,让使用者方便,不易混淆。

3.什么是值传递(设计实验和教案说明其过程,分析其特性)

值传递是指传递的是数值,是由内存重新分配的变量在函数中使用(注意:此时函数中的变量和实际的变量并不是同一个东西)

#include<stdio.h>
#include<algorithm>
#include<iostream>
#include<vector>
#include<stack>
#include<queue>
#include<string>
using namespace std;
//交换数值的操作
void swapm(int a,int b){ int tmp; tmp=a; a=b; b=tmp; } int main(){ int a=3; int b=5; cout<<a<<" "<<b<<endl; swapm(a,b); cout<<a<<" "<<b<<endl; return 0; }

我们可以看到,在函数使用前和使用后,变量的值并未发生交换

4.什么是地址传递(设计实验和教案说明其过程,分析其特性)

地址传参的意思是:使用者需要在函数中直接使用该变量进行一些操作(增,改)

通常使用指针。

 

#include<stdio.h>
#include<algorithm>
#include<iostream>
#include<vector>
#include<stack>
#include<queue>
#include<string>
using namespace std;
//改变数组内容
void pisi(int a[]){
    a[0]=1;
    a[1]=2;
    a[2]=3;

}
int main(){
    int a[3];
    a[0]=a[1]=a[2]=0;
    cout<<a[0] <<a[1] <<a[2]<<endl;
    pisi(a);
    cout<<a[0]<<a[1]<<a[2]<<endl;
    return 0;
}

 

可以看到,传入数组的地址(指针)结果会因为函数的调用而发生改变

 

5.设计实验和教案,分析如何编写递归函数

递归主要注意两点:

(1)出口:

递归的出口是结束的条件,同时也是边界。值得注意的是出口一定要考虑完整,否则出现未知错误

(2)递归体:

递归体是递归的主要部分,我们首先搞清楚什么时候开始递归,什么时候就不递归,在每个递归体中还会完成关键的计算操作。

(3)参数变化:

递归一个鲜明的特征就是在递归时,经常出现参数变化(比如汉诺塔) 因此这些应该提前考虑。‘’

 

#include <iostream>
using namespace std;

//计算n!
int jiech(int n)
{
    int f;
    if(n==0)出口
        f=1;
    else 
        f=jiech(n-1)*n;//调用自身
    return f;
}

int main()
{
    int n;
    cout<<"Enter an integer:";
    cin>>n;
    int y=jiech(n);
    cout<<y<<endl;
    return 0;
}

参数变化(n->n-1),出口(n==0)

 

---恢复内容结束---

转载于:https://www.cnblogs.com/lcxyjst/p/11528459.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 北邮linux的第三次上机作业是在系统管理课程中所进行的,主要涵盖了对Linux系统的进程管理、文件系统扩展、定时任务、用户和组管理等方面的学习。 在进程管理方面,我们主要掌握了如何使用ps命令、top命令和kill命令来查看、控制和关闭进程。在文件系统扩展方面,我们学习了如何使用LVM技术来管理硬盘的扩容和分区,以及如何使用fdisk命令来对磁盘进行分区管理。 此外,我们还掌握了如何使用crontab命令来进行定时任务的管理和设置,以及如何使用useradd命令和usermod命令来进行用户和组的管理和权限设置。这些技能对于如今的系统管理者而言是必须的。 在此次实验中,我们通过实际操作,更好地理解了Linux系统管理的机制和原理,掌握了课堂所学的知识点,并且对系统管理者所需要具备的能力进行了深入的思考和探讨。这些都是我们在今后的学习和工作中必不可少的技能。 ### 回答2: 北邮linux第三次上机作业是一项挑战性较高的任务,要求参与者具备一定的软件编程和计算机网络方面的知识。任务主要分为两个部分,第一部分是编写程序,第二部分是进行网络配置。 在编写程序的部分,参与者需要使用C或C++编写一个多线程的程序,并通过文件读取或用户输入来进行数据处理。该任务要求参与者能够熟练运用多线程的编程思想,以及能够对数据进行有效的处理和分析。此外,还要求程序能够稳定运行,并在遇到异常情况时给出正确的提示信息。 在网络配置的部分,参与者需要在Linux系统上配置一个网络服务,并对相应的服务进行测试。该任务要求参与者具备一定的计算机网络知识,能够熟练操作Linux系统,并能够利用相应的工具完成网络配置。此外,还要求参与者能够对配置的服务进行实际测试,并对测试结果进行分析。 总的来说,北邮linux第三次上机作业是一项涉及多个方面的任务,要求参与者具备综合的软件编程和计算机网络能力。完成该任务可以帮助参与者提高自己的技术水平,同时也有助于加强他们的团队沟通和协作能力。 ### 回答3: 北邮Linux第三次上机作业是一项关于Shell编程的实践任务,要求学生通过练习,掌握Shell脚本的基本语法和应用,加深理解Linux操作系统的特性和原理。该次实践作业旨在提高学生的实际操作能力,培养学生的团队精神和创新意识。 该作业的主要任务是实现一个小型的Shell应用程序,包括输入输出和文件操作、字符串操作和文件查找等多个功能。学生需要根据题目要求设计功能模块,编写Shell脚本程序,并进行测试和调试。实践过程中,要注意代码规范性和运行效率,以及对实验结果的记录和总结。 通过这次实践作业,学生可以更加深入地理解Shell编程语言,掌握Linux操作系统的基本操作和应用技巧,提高自己的逻辑思维和编程水平。同时,通过团队协作和分享经验,可以加强学生的交流和合作意识,培养创意和创业精神。 总之,北邮Linux第三次上机作业是一项富有挑战和创新性的实践任务,可以为学生打下深厚的理论和实践基础,提高学生的实际操作能力,激励学生的创新和创业精神,为未来的职业生涯做好充分准备。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值