淘宝的一道面试题是这样的:
写一个函数: 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();
}

浙公网安备 33010602011771号