题目
如果输入123456,以下程序的输出结果是( ) # include < stdio . h > int main ( void ) ( int a , b = 0 , c ; scanf ( " % d " , & a ) ; while ( a ! = 0 ) { c = a % 10 ; a = a / 10 ; b = 10 * b + c ; ) printf ( " % d " , b ) ; return 0 ; } A 0 B 123456 C 654321 D 随机数
如果输入123456,以下程序的输出结果是( )
# include < stdio . h >
int main ( void )
{
int a , b = 0 , c ;
scanf ( " % d " , & a ) ;
while ( a ! = 0 )
{
c = a % 10 ;
a = a / 10 ;
b = 10 * b + c ;
}
printf ( " % d " , b ) ;
return 0 ;
}
A 0
B 123456
C 654321
D 随机数
题目解答
答案
首先输入一个整数 a,然后通过 while 循环将 a 的个位数依次取出,存储在变量 c 中,再将 a 的十位数以后的数,即 a / 10,存储在变量 a 中。将变量 b 乘以 10 后加上变量 c 的值,就得到了 a 的逆序存储在变量 b 中的结果。当 a 等于 0 时,说明所有位数都已经取出,逆序存储完成,最终输出 b 的值。
因此,输入 123456 后,程序的输出结果是 654321,选项 C 正确。
解析
步骤 1:输入整数
程序首先通过 `scanf` 函数读取一个整数 `a`,假设输入的整数为 123456。
步骤 2:逆序处理
程序进入 `while` 循环,循环条件是 `a` 不等于 0。在循环中,程序执行以下操作:
- `c = a % 10`:计算 `a` 的个位数并存储在变量 `c` 中。
- `a = a / 10`:将 `a` 的十位数以后的数存储在变量 `a` 中。
- `b = 10 * b + c`:将变量 `b` 乘以 10 后加上变量 `c` 的值,得到 `a` 的逆序存储在变量 `b` 中的结果。
步骤 3:输出结果
当 `a` 等于 0 时,说明所有位数都已经取出,逆序存储完成,最终输出 `b` 的值。
程序首先通过 `scanf` 函数读取一个整数 `a`,假设输入的整数为 123456。
步骤 2:逆序处理
程序进入 `while` 循环,循环条件是 `a` 不等于 0。在循环中,程序执行以下操作:
- `c = a % 10`:计算 `a` 的个位数并存储在变量 `c` 中。
- `a = a / 10`:将 `a` 的十位数以后的数存储在变量 `a` 中。
- `b = 10 * b + c`:将变量 `b` 乘以 10 后加上变量 `c` 的值,得到 `a` 的逆序存储在变量 `b` 中的结果。
步骤 3:输出结果
当 `a` 等于 0 时,说明所有位数都已经取出,逆序存储完成,最终输出 `b` 的值。