爱迪国际C++章节测试-函数与递归

*
1.填空题

阅读程序写结果:

#include <iostream>
using namespace std;

int rSum(int j)
{
int sum = 0;
while (j != 0) {
sum = sum * 10 + (j % 10);

  j = j / 10;
}
return sum;
}
int main()
{
int n, m, i;cin>>n>>m;

for (i = n; i < m; i++)
if (i == rSum(i))
cout<<i<<' ';
return 0;
}
输入:
90 120

2.填空题
阅读程序写结果:
#include <iostream>*
using namespace std;
const int NUM = 5;
int r(int n)
{
int i;
if (n <= NUM)
return n;
for (i = 1; i <= NUM; i++)
if (r(n - i) < 0)
return i;
 return -1;
}
int main()
{
int n;
cin>>n;
cout<<r(n)<<endl;
return 0;
}
(1)
输入:7
输出:
(2)
输入:16
输出:
问题1:问题2:
*
3.填空题

阅读程序写结果

#include <iostream>
#include <string>
using namespace std;
int n,i,j,ans;
string s;
char get(int i)
{
if(i<n) return s[i];
else return s[i-n];
}
int main()
{
cin>>s;
n=s.size();
ans=0;
for(i=1;i<=n-1;i++)
{
for(j=0;j<=n-1;j++)
if(get(i+j)<get(ans+j))
{
ans=i;
break;
}
else if(get(i+j)>get(ans+j)) break;
}
for(j=0;j<=n-1;j++) cout<<get(ans+j);
cout<<endl;
return 0;
}

输入:CBBADADA
输出:____________

*
4.单选题
下面的故事与( )算法有着异曲同工之妙。
从前有座山,山里有座庙,庙里有个老和尚在给小和尚讲故事:“从前有座山,山里有座庙,庙里有个老和尚在给小和尚讲故事:‘从前有座山,山里有座庙,庙里有个老和尚给小和尚讲故事……’”
A. 枚举
B. 递归
C. 贪心
D. 分治
*
5.填空题
阅读程序写结果:
#include <iostream>
using namespace std;
int fun(int n)
{
if(n == 1)
return 1;
if(n == 2)
return 2;
return fun(n - 2) - fun(n - 1);
}
int main()
{
int n;
cin >> n;
cout << fun(n) << endl;
return 0;
}
 输入:7
输出:__
*
6.单选题
下面的故事与( )算法有着异曲同工之妙。
从前有座山,山里有座庙,庙里有个老和尚在给小和尚讲故事:“从前有座
山,山里有座庙,庙里有个老和尚在给小和尚讲故事:‘从前有座山,山里有座庙,庙里有个老和尚给小和尚讲故事……’”
A.枚举
B. 递归
C. 贪心
D. 分治
*
7.填空题

阅读程序写结果:

#include <iostream>
using namespace std;
int n, m;

int findans(int n, int m) {
if (n == 0) return m;
if (m == 0) return n % 3;
return findans(n - 1, m) - findans(n, m - 1) + findans(n - 1, m - 1);
}

int main(){
cin >> n >> m;
cout << findans(n, m) << endl;
return 0;
}

输入:5 6
输出:_____

*
8.单选题
设A是一个实数的数组,考虑下面的递归算法:
   XYZ (A[1..n])
1. if n = 1 then return A[1]
2. else temp ← XYZ (A[1..n-1])
3. if temp < A[n]
4. then return temp
5. else return A[n]

请问算法XYZ的输出是什么?( )。
A A数组的平均
B A数组的最小值
C A数组的中值
D A数组的最大值
*
9.单选题
考虑如下递归算法,则调用solve(7)得到的返回结果为( )。
1 solve(n)
2 if n<=1 return 1
3 else if n>=5 return n*solve(n-2)
4 else return n*solve(n-1)
solve(7)得到的返回结果为( )。
A.105
B.840
C.210
D.420
*
10.单选题
以下对递归方法的描述中,正确的是:( )
A 递归是允许使用多组参数调用函数的编程技术
B 递归是通过调用自身来求解问题的编程技术
C 递归是面向对象和数据而不是功能和逻辑的编程语言模型
D 递归是将用某种高级语言转换为机器代码的编程技术
*
11.单选题
在程序运行过程中,如果递归调用的层数过多,会因为( )引发错误。
A. 系统分配的栈空间溢出
B. 系统分配的堆空间溢出
C. 系统分配的队列空间溢出
D. 系统分配的链表空间溢出
问卷星提供技术支持
举报