淘宝的一道面试题是这样的:
写一个函数: int print_num(int k){}; 要求函数功能为打印k的降序,直到0结束,即如果k=5,即打印: 5 4 3 2 1 0
要求: 不能用 if , if else, switch, ?: , while, for , do while, goto 语句
#include <conio.h> #include <stdio.h> int print_num(int k) { printf("%d ",k); k&&print_num(k-1); /*短路,&&运算符在左侧能够确定最终结果时不会对右侧操作求值 */ return k; } int main() { int i; char c; scanf("%d",&i); print_num(i); c=getchar(); /*GETCHAR读取的是在输入数字时所敲的回车,返回的ASCII值为10,无法停留DOS窗口 */ printf("%d",c); getchar(); }