首先要认识&&(且)和||(或)和!(非),它们都是逻辑运算符。ACD明显属于大写范围内。
至于B项的(kk>='A'||kk<='Z')意思是判断kk是否大于A或者小于Z。举个列子来说明一下,如kk的值为'a'的话,它满足kk>='A'(因为字母A的ASCII代码值是65,字母a的ASCII代码值是97)。
1 所有字符都可以转换为整数,整数是字符的一个排布规则,就是所谓的ASCII表。
2 所有字母都是从a到z顺序排列。其中大写和小写分开排列,并且大写的A比小写的a小32。
3 大写的A的排列顺序就是65,换句话说,65=='A',那65+1='B', 65+26=‘Z’。
4 从2,3不难看出,a的ascii序列值=65+32=97.
综合上面4点:
不难看出,正确答案就是 B
因为那个kk<='Z'范围很广啊,比如一个小于100的数包括0吧?所以这个KK可能小于65(也就是A),那么就不是大写字母了啊
比如你的kk='C',那么
kk>='A'为真,所以
kk>='A' || kk<= 'Z'也为真,然后
!表示否定
所以!(kk>='A' || kk<= 'Z')就返回假。
因此,你输入一个大写字母,这个表达式的计算结果是假,结果正好反了
对或取非运算
问题是
不能正确判断KK中的值是大写字母
还是
不能正确判断出KK中的值是大写字母A?
不管怎样,“||”代表只要有,就有啊,明显包含的范围太宽了,既包含了大写,也超出了大写都满足,所以不能判断。
个人见解,如有不对,请指出,谢谢
要的是“不能判断是大写字母的”
!(kk>='A'||kk<='Z') =>>(kk<='A'&&kk>='Z')=0;
A-Z=>ASC 65~91
a-z=> asc 97~123
其他都满足要求