首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
使用VC6打开考生文件夹下的源程序文件modi2.cpp。请完成以下两个函数: (1)funl(intn);求出n的阶乘,必须使用递归调用。 (2)ftm2(mtn);求出n的阶乘,不能使用递归调用。 如果n小于l则返回0。 注意:请勿改动主函数main与
使用VC6打开考生文件夹下的源程序文件modi2.cpp。请完成以下两个函数: (1)funl(intn);求出n的阶乘,必须使用递归调用。 (2)ftm2(mtn);求出n的阶乘,不能使用递归调用。 如果n小于l则返回0。 注意:请勿改动主函数main与
admin
2015-07-20
71
问题
使用VC6打开考生文件夹下的源程序文件modi2.cpp。请完成以下两个函数:
(1)funl(intn);求出n的阶乘,必须使用递归调用。
(2)ftm2(mtn);求出n的阶乘,不能使用递归调用。
如果n小于l则返回0。
注意:请勿改动主函数main与其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。
#include
//必须使用递归
int funl(int n)
{
};
//不能使用递归
int fun2(int n)
{
}
void main()
{
int i;
cout<<“请输入一个整数’<
cin>>i;
cout<<”输入数字的阶乘是:n<
cout<<”输入数字的阶乘是:”<<
fun2(i)<
return;
}
选项
答案
int funl(intn)//使用递归计算阶乘 { if(n<=0) //n小于等于0,直 接返回0 return 0; if(n==1) //n等于1直接返回1 return 1; return n*funl(n一1);//n大于等 于1,通过递归计算n 1 }; //不使用递归计算阶乘 int fun2(intn) { if(n<=0) //n小于0,直接 返回0 return 0 ; int res=1 ; //初始化阶乘存 放变量res for(int i=1 ; i<=n; i++) //通过 循环计算n 1 { res*=i; } return res; }
解析
(1)该程序功能是对阶乘的实现。其中,阶乘的计算公式定义为:
f n!=n*(c一1)*(c一2)*…*1 n>1
n<
“n=1计算公式:n!=1
公式分为参数n是1和大于l的两种情况,例如:1的
阶乘1 1=1:5的阶乘5 1=5×4×3×2×1。
【解题思路】
(1)进入funl函数,根据前面的定义,它对阶乘算法的实现可以分为三种情况,一是当n小于或等于0时,返回0即可:二是当n大于1时应该用什么程序来实现阶乘的计算;三是当n=1时,函数直接返回1即可。
(2)计算n!的值,先定义一个放阶乘值的变量res,初值为1,通过循环的方法,用累乘器“res*=i;”实现n!。
转载请注明原文地址:https://kaotiyun.com/show/23Np777K
本试题收录于:
二级C题库NCRE全国计算机二级分类
0
二级C
NCRE全国计算机二级
相关试题推荐
不属于结构化程序设计方法的四条原则是______。
按照“后进后出”原则组织数据的数据结构是______。
关于链式存储结构和顺序存储结构的说法正确的是______。
下列______是正确的语句。
下列各种函数中,______不是类的成员函数。
下面程序的输出是()。#defineN3#defineM(n)((N+1)*n)#include<iostrearn.h>voidmain(){intz=2*(N+M(5+1));cout<<z<<end1;}
下面关于继承机制的描述中,不正确的是()。
创建对象数组时,对数组的每一个元素都将调用一次构造函数,如果没有显式给出数组元素的初值,则调用缺省构造函数。下列程序涉及对象数组的创建和单个对象的创建,其输出结果是【】。#include<iostream>usingnamespace
下列程序的输出结果是【】。#include<iostream>usingnamespacestd;classTest{public:Test(){cnt++;)~Test(){cnt--;)statici
类中数据成员和成员函数的默认访问级别为【】。
随机试题
管理幅度也称之为()
各类调制主体在享有宏观调控权和市场规制权等职权的同时,也要履行相关的职责。这些职责的核心是【】
男,38岁。诊断为慢性肾炎,有明显水肿,尿蛋白(+++),尿素氮18mmol/L,应给予哪种饮食()
慢性支气管炎伴小气道阻塞时最早出现的肺功改变是
队列研究的对象是( )。
在公诉案件的审理过程中,下列的哪些选项是合议庭应当决定延期审理的情形?
居住于我国台湾地区的当事人张某在大陆某法院参与民事诉讼。关于该案,下列哪一选项是不正确的?
纳税人的银行存款账户发生变化的,应当自变化之日起()日内,向主管税务机关书面报告。
解决人口老龄化问题,需要政府、社会和家庭共同努力。在传统中国,老人赡养在很大程度上属于子女义务,而不是政府责任。这种观念不仅会增加年青一代的负担,也会影响人力资源的最佳配置,同时有悖于以人为本的价值取向。将养老问题纳入社会统筹和政府责任范围,不仅会使老龄人
在某个事件过程中定义的变量是
最新回复
(
0
)