题目
输入5<回车>,以下程序片段的执行结果是()int i , j , n , p = 0 , s = 0; cin >> n ; for (i=1; i<n; i++) ( for (j=1; j<i; j++) { p = p * j ; ) s + = p ; }cout << s ;
输入5<回车>,以下程序片段的执行结果是()
int i , j , n , p = 0 , s = 0;
cin >> n ;
for (i=1; i<n; i++) {
for (j=1; j<i; j++) {
p = p * j ;
}
s + = p ;
}
cout << s ;
题目解答
答案
原因是在第一次外层循环执行时,内层循环不会执行,因为当i=1时,j<i不成立,所以p的值仍为1,s也不会改变。当i=2时,内层循环只执行一次,此时p=0,因为在内层循环的第一次执行中,j=1,p=pj=10=0,所以s的值为0。接下来,当i=3,4时,内层循环分别执行2次和6次,但每次执行时p的值都已经是0了,因为在之前的内层循环中,p已经乘以了0。所以,最终的输出结果是0。综上所述,答案为0。
解析
步骤 1:初始化变量
程序开始时,变量 i, j, n, p, s 被初始化。其中,p 和 s 被初始化为 0,n 的值将由用户输入。
步骤 2:输入 n 的值
用户输入 n 的值,这里 n=5。
步骤 3:外层循环
外层循环 for (i=1; i
步骤 4:内层循环
对于每个 i 的值,内层循环 for (j=1; j
步骤 5:累加 p 的值
每次内层循环结束后,p 的值被累加到 s 中。
步骤 6:输出 s 的值
当所有循环执行完毕后,输出 s 的值。
程序开始时,变量 i, j, n, p, s 被初始化。其中,p 和 s 被初始化为 0,n 的值将由用户输入。
步骤 2:输入 n 的值
用户输入 n 的值,这里 n=5。
步骤 3:外层循环
外层循环 for (i=1; i
步骤 4:内层循环
对于每个 i 的值,内层循环 for (j=1; j
步骤 5:累加 p 的值
每次内层循环结束后,p 的值被累加到 s 中。
步骤 6:输出 s 的值
当所有循环执行完毕后,输出 s 的值。