柠檬试题库
search
首页 计算机 公务员 驾照 关于

若有以下程序 #include void f(int x) { if (x >= 10) { printf("%d-", x%10); f(x/10); } else printf("%d", x); } main() { int z = 123456; f(z); } 则程序的输出结果是


  • A.6-5-4-3-2-1-
  • B.6-5-4-3-2-1
  • C.1-2-3-4-5-6
  • D.1-2-3-4-5-6-
热度🔥1,488
参考答案:B
解析:

【解析】本题重点考察函数的递归调用,程序首先初始化整型变量z为123456,调用函数f。f函数中首先通过if条件语句判断x是否大于等于10,如果条件成立,求x除以10的余数并输出,同时将变量x进行x/10运算,同时调用函数f。如果条件不成立,直接输出变量x。因此第1次调用函数,变量x为123456,条件成立,输出余数6;第2次调用函数,变量x为12345,条件成立,输出余数5;第3次调用函数,变量x为1234,条件成立,输出余数4;第4次调用函数,变量x为123,条件成立,输出余数3;第5次调用函数,变量x为12,条件成立,输出余数2;第6次调用函数,变量x为12345,条件不成立,输出1。因此B选项正确。
复制题目向AI提问