若有char h=`a`,g=`f`;int a[6]={1,2,3,4,5,6};则数值为4的表达式为:( )

2024-05-16 02:35

1. 若有char h=`a`,g=`f`;int a[6]={1,2,3,4,5,6};则数值为4的表达式为:( )

数值为4为数组里a[3]=4,即判断[]里算出值为3。
A选项为g-h='f`-`a`=5,即a[5]=6;
C选项为'd`-`h`=-4,即a[-4]不可测;
D选项为;'h`-`c`=5,即a[5];
即题目没正确选项。
猜想题目本意为选项C应为a['d'-h];,则选C

若有char h=`a`,g=`f`;int a[6]={1,2,3,4,5,6};则数值为4的表达式为:( )

2. 若有说明语句:char c='\72‘;,则变量c有几个字符

char
c='\72';
首先它是一个char类型,所以它只有1个字符的内存空间
然后'\72'这部分
因为字符常量用单引号括起来,所以单引号是对的,没有疑问
但是这里要记住,用反斜杠带数字,是八进制数,八进制数只能用到数字0,1,2,3,4,5,6,7
所以这个\72是合法的,如果是\82或者\78之类的就是非法的了,编译器会报错
另外,字符常量最大占1个字节,数值不能超出ASCII
码最大值,八进制数072显然也没超出这个范围
因此,变量C只有1个字符

3. 若有说明语句:char c='\72‘;,则变量c有几个字符

char
c='\72';
首先它是一个char类型,所以它只有1个字符的内存空间
然后'\72'这部分
因为字符常量用单引号括起来,所以单引号是对的,没有疑问
但是这里要记住,用反斜杠带数字,是八进制数,八进制数只能用到数字0,1,2,3,4,5,6,7
所以这个\72是合法的,如果是\82或者\78之类的就是非法的了,编译器会报错
另外,字符常量最大占1个字节,数值不能超出ASCII
码最大值,八进制数072显然也没超出这个范围
因此,变量C只有1个字符

若有说明语句:char c='\72‘;,则变量c有几个字符

4. char c='A'+'6'-'3' c的值为?

c='A'+'6'-'3'
   = 'A'+('6'-'3')
  '6'-'3' =3, 注意是字符值相差3, 加法可不是9
  上式='A'+3 = 'D'
  所以c='D

5. char c='A'+'6'-'3' c的值为

因为c为char,但是也可以进行加减运算,他是将字符对应的数值进行的,但是到了最后还的等到一个字符,char c='A'+'6'-'3'='A'+'3'='D'

char c='A'+'6'-'3' c的值为

6. char c='A'+'6'-'3' c的值为?

因为c为char,但是也可以进行加减运算,他是将字符对应的数值进行的,但是到了最后还的等到一个字符,char c='A'+'6'-'3'='A'+'3'='D'

7. char c='A'+'6'-'3' c的值为?

c='A'+'6'-'3'
=
'A'+('6'-'3')
'6'-'3'
=3,
注意是字符值相差3,
加法可不是9
上式='A'+3
=
'D'
所以c='D'

char c='A'+'6'-'3' c的值为?

8. ch!=(ch>='A'&&ch<='z')?ch:(ch+32)。结果是A。求解释。

!=的右边是:ch>='A'&&ch<='Z')?ch:(ch+32)
这个条件运算符的意思是:
如果ch是大写字母,则不变,否则在ASCII码上
+32
而
ch!=(ch>='A'&&ch<='z')?ch:(ch+32)
是一个关系表达式,
关系表达式的结果
只有true和false
你说结果是A,
是说
ch的值
是A
呢,
还是
说其他的?
如果ch的值时A,
那么
说明可能ch初始值
就是
A
否则,就是
ch+32后的
ASCII码值
刚好等于
A
的ASCII码值