单选题
1、第48题 (1.0分) 题号:206 以下程序的输出结果是()。
1、第48题 (1.0分) 题号:206 以下程序的输出结果是()。
A
123
B
321
C
213
D
312
答案解析
正确答案:B
解析:
**解析:**
由于题目中的图片无法直接显示,根据常见的C语言编程考题逻辑以及给出的答案 **B (321)**,我们可以推断该程序考察的是**递归函数**或**栈结构(后进先出)**的特性。
最典型的此类题目代码结构如下:
```c
#include
void fun(int n) {
if (n > 0) {
fun(n - 1); // 递归调用
printf("%d", n); // 输出当前值
}
}
int main() {
fun(3);
return 0;
}
```
**推理过程:**
1. **函数调用 `fun(3)`**:
* `n=3`,满足 `n>0`。
* 执行 `fun(2)`。
2. **函数调用 `fun(2)`**:
* `n=2`,满足 `n>0`。
* 执行 `fun(1)`。
3. **函数调用 `fun(1)`**:
* `n=1`,满足 `n>0`。
* 执行 `fun(0)`。
4. **函数调用 `fun(0)`**:
* `n=0`,不满足 `n>0`。
* 函数直接返回,不执行任何输出。
5. **回溯过程(关键点)**:
* `fun(0)` 返回后,回到 `fun(1)` 的断点,执行 `printf("%d", 1)`,输出 **1**。
* `fun(1)` 执行完毕返回,回到 `fun(2)` 的断点,执行 `printf("%d", 2)`,输出 **2**。
* `fun(2)` 执行完毕返回,回到 `fun(3)` 的断点,执行 `printf("%d", 3)`,输出 **3**。
**等等,上述逻辑输出的是 123 (选项A)。**
如果答案是 **B (321)**,则代码逻辑通常是**先输出,再递归**,或者是一个利用栈特性逆序输出的逻辑。让我们看另一种常见结构:
```c
#include
void fun(int n) {
if (n > 0) {
printf("%d", n); // 先输出
fun(n - 1); // 再递归
}
}
int main() {
fun(3);
return 0;
}
```
* `fun(3)` -> 输出 3 -> 调用 `fun(2)`
* `fun(2)` -> 输出 2 -> 调用 `fun(1)`
* `fun(1)` -> 输出 1 -> 调用 `fun(0)`
* `fun(0)` -> 返回
* 结果:**321**
**或者,另一种常见的考察“逆序”的题目是利用数组或字符串处理,但结合选项和常见题型,最可能的情况是考察递归的执行顺序。**
还有一种可能是题目代码为:
```c
void fun(int n) {
if(n==0) return;
printf("%d", n%10); // 这种通常用于数字逆序,但如果是fun(123)才会涉及多位数
fun(n/10);
}
```
如果输入是 `123`,输出是 `321`。
**总结:**
无论具体代码细节如何,答案 **B (321)** 表明程序的输出顺序与输入或自然顺序相反。在C语言二级或基础考试中,这通常对应以下两种情况之一:
1. **递归函数中,打印语句位于递归调用之前**(如上文第二个代码示例),导致先打印大数,再打印小数。
2. **数字逆序算法**,例如将整数 `123` 通过取余和除法操作逆序输出为 `321`。
鉴于选项是简单的数字排列,且答案为 321,**核心考点在于理解程序是如何实现“逆序”输出的**。
**正确答案:B**
题目纠错
c语言选择判断题库
相关题目
单选题
1、第211题 (1.0分) 题号:622 putchar函数可以向终端输出一个()。
单选题
1、第210题 (1.0分) 题号:493 C语言的注释定界符是()。
单选题
1、第209题 (1.0分) 题号:177 以下描述中,正确的是()。
单选题
1、第208题 (1.0分) 题号:577 在C语言中,int、char和short三种类型数据在内存中所占用的字节数()。
单选题
1、第207题 (1.0分) 题号:201 当定义一个结构体变量时,系统分配给它的内存是()。
单选题
1、第206题 (1.0分) 题号:624 以下关于运算符优先顺序的描述中正确的是()。
单选题
1、第205题 (1.0分) 题号:127 下列程序的输出结果是()。
单选题
1、第204题 (1.0分) 题号:590 若变量a与i已正确定义,且i已正确赋值,合法的语句是()。
单选题
1、第203题 (1.0分) 题号:536 enum a {sum=9,mon=-1,tue}; 定义了()。
单选题
1、第202题 (1.0分) 题号:527 全局变量的定义不可能在()。
