第12周项目一 程序阅读题(4)

本文通过一个C++程序实例详细解析了如何使用函数的默认参数,并探讨了不同情况下默认参数的使用及其对程序运行结果的影响。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

问题描述:

  阅读下列程序,写出程序的运行结果。上机时运行程序,与你的预期进行对
照、理解。如果对运行结果和其背后的原理仍不理解,请通过单步执行的手段跟踪理解。

(4)理解函数的默认参数。

i)

#include <iostream>
using namespace std;
const double pi=3.1415926;
float area(float r=6.5);//指定r的默认值为6.5
float volume(float h,float r=6.5); //指定r的默认值为6.5
int main( )
{
    cout<<area()<<endl; //相当于area(6.5);
    cout<<area(7.5)<<endl; //形参得到的值为7.5,而不是6.5
    cout<<volume(45.6)<<endl; //相当于volume(45.6,6.5)
    cout<<volume(34.2,10.4)<<endl; //h的值为34.2,r的值为10.4
    return 0;
}
float area(float r)
{
    return pi*r*r;
}
float volume(float h,float r)
{
    return pi*r*r*h;
}

1 去掉第 4 行的“=6.5”试试,出错的原因是:第八行错误因为没有给r赋值


2 将第 14 行改为“float area(float r=6.5)”,出错的原因是:在自定义函数时候r不能赋值不然无法调用



3 将第 5 行“float h,float r=6.5”改为“float h=1,float r”,出错的原因是:当给自定义函数里面的参数在声明时赋初值。一定要把赋予初值的类型放在最后不然会有歧义无法跑出程序


4 将第 5 行改为“float volume(float h=0,float r=6.5)”,带来的改变将是:没有改变在当前程序



知识点与学习心得:

  对于自定义函数内部参数的赋值要注意,不要颠倒顺序不然会出现歧义促使程序无法运行!!!看来细心对猿类”的我们还是很重要的。


根据网络上的相关信息,以下是关于第十二届省赛第场比赛的详细资料整理: --- ### 关于第十二届省赛第场的比赛详情 #### 1. 比赛背景 第十二届省赛是项面向高校学生的科技创新竞赛活动,旨在提升学生的技术能力、团队协作能力创新能力。比赛分为多个阶段,其中第场通常作为初赛或选拔赛。 #### 2. 参赛对象 主要面向省内各高等院校的学生,包括本科生研究生。每支参赛队伍需由若干名队员组成,并配备名指导教师。 #### 3. 比赛形式 第场比赛的形式可能因具体赛事而异,但般包括以下几个方面: - **理论测试**:考察选手的基础知识掌握程度,例如编程基础、算法设计等。 - **实践操作**:提供实际问场景,要求选手完成特定的任务,比如程序开发、硬件调试等。 - **案例分析**:给出个具体的业务需求或技术难,让选手提出解决方案并进行演示。 #### 4. 报名方式 报名通常通过官方网站或指定平台进行,参赛者需要提交个人信息、团队成员名单以及初步方案(如有)。 #### 5. 时间安排 以过往经验为例,第场比赛的时间大致如下: - 报名截止日期:距离正式比赛前约个月左右。 - 初赛时间:每年春季学期中期至期末之间。 - 结果公布:赛后内发布晋级名单及相关通知。 #### 6. 注意事项 - 认真阅读官方发布的比赛规则技术文档; - 准备好所需的软硬件环境,确保能够顺利完成各项任务; - 加强团队沟通与合作,合理分配工作职责; - 若遇到疑问及时联系组委会工作人员寻求解答。 --- ### 示例目解析 以下是道典型的第十二届省赛第场模拟及其解法: **目描述**:给定组整数数组nums=[3,5,-2,8],求出最大子序列之。 **解决思路**:可以采用动态规划的方法来实现这目标。定义状态dp[i]表示以元素i结尾的最大连续子段,则递推关系为`dp[i]=max(dp[i−1]+numsi,numsi)`。最终答案即为所有dp值中的最大者。 ```python def max_subarray_sum(nums): if not nums: return 0 dp = [0]*len(nums) dp[0] = nums[0] for i in range(1,len(nums)): dp[i] = max(dp[i-1]+nums[i], nums[i]) return max(dp) # 测试用例 print(max_subarray_sum([3,5,-2,8])) # 输出应为14 ``` --- ### 其他参考资料推荐 为了更好地备战第十二届省赛第场,建议参考以下资源: - 官方提供的历届真汇编及详解; - 各类开源项目代码库,如GitHub上类似主的仓库; - 相关领域的经典教材书籍或者在线课程视频教程。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值