因为明天考试,这回给大家准备了超详细的解析~
22.程序中 n 和 m 只有输入正整数,程序的输出值才可能是 YES
A.对B.错
23.程序中用到了递归函数 bool fun(int n)
A.对B.错
24.若输入 n 和 m 都是素数,程序的输出值一定是 YES
A.对B.错
25.若输入 n 和 m 的值分别是 -1 和 2027,则程序的输出值是 YES
A.对B.错
选择题
26.若输出 YES,则输入可能为
A. 23 29
B. 23 24
C.23 27
D.31 37
27.若输出 NO,则输入可能为
A. 53 13
B. 2029 -1
C. 2023 2027
D.97 41
答案与解析:
22. A:程序中判断n
和m
是否为素数以及n+m+1
是否为素数的逻辑只在输入为正整数时有效,因为素数定义为大于1的自然数,且只有1和它本身两个正因数。若输入非正整数,程序会直接返回false
,因此输出值不可能是YES
。
23. B:程序中bool fun(int n)
函数通过循环和条件判断来实现素数的检测,并没有使用递归调用。
24. B:虽然输入n
和m
都是素数时,满足了fun(n)
和fun(m)
为true
的条件,但还需要满足n+m+1
也是素数时,输出值才是YES
。因此,仅n
和m
为素数并不能保证输出一定是YES
。
25. B:若输入n
和m
的值分别是-1和2027,由于n
为-1,不是素数,fun(n)
将返回false
,因此程序的输出值不会是YES
。
26. A:若输出YES
,则n
、m
以及n+m+1
都必须是素数。选项中只有A的23和29以及它们的和加1(53)都是素数。
27. B:若输出NO
,则至少有一个条件不满足。选项中B的2029是素数,但-1不是素数,因此fun(-1)
会返回false
,导致输出NO
。