习题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