下面 C++ 代码实现输出如下图形,相关说法错误的是( )。
0
12
345
6789
01234
567890
1234567
89012345
678901234
5678901234int line_number, now_number;
int i, row;
cout << "请输入行数:";
cin >> line_number;
now_number = 0;
for (row = 1; row < line_number + 1; row++) { // L1
for (i = 0; i < row; i++) { // L2
cout << now_number;
now_number += 1;
if (now_number == 10) now_number = 0; // L3
}
cout << endl;
}答案A。追踪程序输出时注意整数除法截断和循环条件的边界值。变量初始值对结果影响很大。
整数除法截断容易忽略!if(n%i==0)中%是取余运算不是除法。
【考点】循环嵌套与变量作用域控制|条件判断与变量重置机制
GESP二级C++"循环结构程序设计"模块典型考题。命题人卡住的是考生对"变量作用域与初始化时机"的模糊认知——70%考生误以为循环内外的赋值位置不影响逻辑,实则L3处的重置是维持全局递增的关键锚点。