23.B(因为字符型变量可以看成是单字节整型数字,因此A,C,D正确;指针类型和字符类型不匹配,因此B不能正确赋值)
24.B(赋值语句要看类型是否匹配,因为p是指针(int *型),d是变量(int 型),则用*和&操作后:&d是指针,d是变量,d要赋值需要在p之前赋值,因此B选项正确)
25.B(A相当于i = i;C中i是变量,&j是地址,类型不匹配;D中i是变量,**p本身就不正确;B中,*p指的是i,*&j指的是对j取址再取值,还是j本身,相当于i=j)
26.D(*p是对p指针所指变量取值,与地址不对应,因此A,B不正确;p是初值为a[0]的地址,因此D正确)
27.D(数组名本身也是指针,指针本身包含整型部分,因此可以和整型数字相加减,因此A,C有其它操作不正确,B中由于数组只有5个值,+5就超过了上限,因此不正确)
28.B(现在的C语言数组中都是先行后列,并且,a+0表示a[0][0],a+1表示a[0][1],以此类推,a+3表示a[0][3],即第一行第4列)
29.D(*是取值,&是取址,因此*&就是本身,以这个规律判断,只有D正确)
30.B(这道和24题原理一样!)
23 B
24 B
25 B
26 A
26 C
28 B
29 D
30 B