一个正整数的每位都是个位数,称为数位,最高位非0。下面的C++代码用于求正整数的所有数位之和,简 称数位和。如 123 的各数位分别是1、2、3,则其数位和为 1+2+3 ,结果为6。为实现该目标,横线处应该填写的 代码是( )。 int N; cin >> N; int tnt = 0; while (N != 0){ ____________; ____________; } cout << "N的数位和为:" << tnt;
A:tnt += N / 10 N /= 10
B:tnt += N % 10 N /= 10
C:tnt += N / 10N %= 10
D:tnt = tnt + N % 10 N %= 10
正确答案:B
答案解析
从正整数N中逐位提取个位数,需通过取模运算获得当前末位数字,再通过整除10移除该位。循环执行直至N为0。每次迭代应先将N对10取模的结果累加到和变量中,再将N更新为其除以10的商。操作顺序必须保证在修改N前完成取模计算。
试卷来源:202603 CCF-GESP编程能力等级认证C++一级真题