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

admin2018-06-29  37

问题 以下选项中,能够正确利用随机函数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或1,所以当rand( )%2的结果为0时,整个表达式的值是rand( )%’A’,这里’A’要转换成ASCII码值65,所以结果为0~64之间的一个随机数,当rand( )%2的结果为1时,整个表达式的值是rand( )%’a’,’a’的ASCII码值为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/o3xp777K
0

最新回复(0)