下面 C++ 代码执行后,求出几天后星期几。如果星期日则输出“星期天”否则输出形如“星期1”。横线上应填入的代码是( )。
int N, nowDay, afterDays;
cout << "今天星期几?" << endl;
cin >> nowDay;
cout << "求几天后星期几?" << endl;
cin >> afterDays;
N = nowDay + afterDays;
if(_____________)
printf("星期天");
else
printf("星期%d", N%7);答案B。先分析已有代码的功能,确定输出目标,再反推横线处需要的代码。可用代入法验证。
将每个选项代入横线处验证是最可靠的方法。注意代码的完整逻辑和输出格式。
GESP一级 第4章“循环结构”与第5章“数组与字符串”的边界条件检测。命题人借"7天循环”卡住考生对取模运算结果0的理解——多数同学只会算“星期1”到“星期6”,却忽略“星期天”对应余数为0的特殊情况。
观察公式N=nowDay+afterDays,N%7得到1~7循环中的余数1~6,唯独N%7==0时才是星期天。因此条件必须填"N%7==0",否则else分支会输出"星期0"这种非法结果。