以下选项中,能够正确利用随机函数rand(),产生一个英文字母的表达式是( )。

admin2020-07-28  29

问题 以下选项中,能够正确利用随机函数rand(),产生一个英文字母的表达式是(    )。

选项 A、rand()%2==0?rand()%’A’:rand()%’a’
B、rand()%26+’A’||rand()%26+’a’
C、rand()%26+’A’&&rand()%26+’a’
D、rand()%2==0?rand()%26+’A’:rand()%26+’a’

答案D

解析 rand()函数是产生随机数的函数,它可以生成0~RAND_MAx之间的一个随机数,其中RAND_MAx是stdlib.h中定义的一个整数。通常如果我们需要随机0~N-1之间的一个随机数,需要使用rand()的结果对N求模即可。选项A中,rand()%2只有两个值0或l,所以当rand()%2的结果为0时,整个表达式的值是rand()%’A’,这里’A’要转换成ASCII码值65,所以结果为0~64之间的一个随机数,当rand()%2的结果为1时,整个表达式的值是rand()%’a’,’a’的ASCIl码值为97,所以结果是0~96之间的一个随机数,可见选项A错误;逻辑或运算符||或逻辑与运算符&&的结果都只能是0或非0,所以选项B、C也是错误的;选项D中,如果rand()%2的结果为0,那么整个表达式的值为rand()%26+’A’,0~25之间任一个数与’A’的和都是一个大写字母;如果rand()%2的值为1,整个表达式的值为rand()%26+’a’,0~25之间任一个数与’a’的和都是一个小写字母,所以选项D正确;本题答案为D。
转载请注明原文地址:https://kaotiyun.com/show/zX3p777K
0

最新回复(0)