习题10-8 递归实现顺序输出整数(15 分)
本题要求实现一个函数,对一个整数进行按位顺序输出。
函数接口定义:
1  | void printdigits( int n );  | 
函数printdigits应将n的每一位数字从高位到低位顺序打印出来,每位数字占一行。
裁判测试程序样例:
1  | #include <stdio.h> | 
输入样例:
1  | 12345  | 
输出样例:
1  | 1  | 
本题要求实现一个函数,对一个整数进行按位顺序输出。
1  | void printdigits( int n );  | 
函数printdigits应将n的每一位数字从高位到低位顺序打印出来,每位数字占一行。
1  | #include <stdio.h> | 
1  | 12345  | 
1  | 1  | 
本题要求实现求Fabonacci数列项的函数。Fabonacci数列的定义如下:
$f(n)=f(n−2)+f(n−1) (n\ge2)$,其中$f(0)=0,f(1)=1$。
1  | int f( int n );  | 
函数f应返回第n个Fabonacci数。题目保证输入输出在长整型范围内。建议用递归实现。
1  | #include <stdio.h> | 
1  | 6  | 
1  | 8  | 
本题要求实现Ackermenn函数的计算,其函数定义如下:
$$
\operatorname{ack}(m, n)=\begin{cases}
n+1, &  m = 0  \\\\
\operatorname{ack}(m-1, 1), &  n=0 \& \& m\gt0 \\\\
\operatorname{ack}(m-1, \operatorname{ack}(m, n-1)),& m \gt0 \& \&  n\gt 0
\end{cases}
$$
1  | int Ack( int m, int n );  | 
其中m和n是用户传入的非负整数。函数Ack返回Ackermenn函数的相应值。题目保证输入输出都在长整型
范围内。
1  | #include <stdio.h> | 
1  | 2 3  | 
1  | 9  | 
本题要求实现一个函数,计算下列简单交错幂级数的部分和:
$f(x, n)=x-x^{2}+x^{3}-x^{4}+\cdots+(-1)^{n-1} x^{n}$
1  | double fn( double x, int n );  | 
其中题目保证传入的n是正整数,并且输入输出都在双精度范围内。函数fn应返回上述级数的部分和。建议尝试用递归实现。
1  | #include <stdio.h> | 
1  | 0.5 12  | 
1  | 0.33  | 
本题要求实现一个计算$x^n(n \geq 1)$的函数。
1  | double calc_pow( double x, int n );  | 
函数calc_pow应返回x的n次幂的值。建议用递归实现。题目保证结果在双精度范围内。
1  | #include <stdio.h> | 
1  | 2 3  | 
1  | 8  | 
本题要求实现一个计算非负整数阶乘的简单函数,并利用该函数求 $1 !+2 !+3 !+\ldots+n !$的值。
1  | double fact( int n );  | 
函数fact应返回n的阶乘,建议用递归实现。函数factsum应返回 1!+2!+…+n! 的值。题目保证输入输出在双精度范围内。
1  | #include <stdio.h> | 
1  | 10  | 
1  | fact(10) = 3628800  | 
1  | 0  | 
1  | fact(0) = 1  | 
本题要求实现一个用递归计算$1+2+3+\ldots+n$的和的简单函数。
1  | int sum( int n );  | 
该函数对于传入的正整数n返回1+2+3+…+n的和;若n不是正整数则返回0。题目保证输入输出在长整型范围内。建议尝试写成递归函数。
1  | #include <stdio.h> | 
1  | 10  | 
1  | 55  | 
1  | 0  | 
1  | 0  | 
本题要求实现一个用递归计算$1+2+3+\ldots+n$的和的简单函数。
1  | int sum( int n );  | 
该函数对于传入的正整数n返回1+2+3+…+n的和;若n不是正整数则返回0。题目保证输入输出在长整型范围内。建议尝试写成递归函数。
1  | #include <stdio.h>  | 
1  | 10  | 
1  | 55  | 
1  | 0  | 
1  | 0  | 
本题要求实现一个根据学生成绩设置其等级,并统计不及格人数的简单函数。
1  | int set_grade( struct student *p, int n );  | 
其中p是指向学生信息的结构体数组的指针,该结构体的定义为:
1  | struct student{  | 
n是数组元素个数。学号num、姓名name和成绩score均是已经存储好的。set_grade函数需要根据学生的成绩score设置其等级grade。等级设置:85-100为A,70-84为B,60-69为C,0-59为D。同时,set_grade还需要返回不及格的人数。
1  | #include <stdio.h> | 
1  | 10  | 
1  | The count for failed (<60): 1  | 
Update your browser to view this website correctly. Update my browser now