21 、C
22 、D
23、B
如果5先出栈那么1,2,3,4就已经入栈了,5出后4出,1要出栈必须先让3,2出栈,所以 不可能输出B
24、10,12,120
25、2,5
26、段错误,因为A[255]只有255个元素,从0-255,有256个元素,越界访问数组可能会出现段错误
27、0,41
28、(a)? (b)320
29、.a=a+b;b=a-b;a=a-b;
30、p1+5=0x801005;p2+5=0x810028;
31、C
32、45
33、D
34、X=10,Y=6
35、5,9
36、C
37、
void set_BIT3()
{
a |= (0x0001<<3);
}
void clean_BIT3()
{
a &= ~(0x0001<<3);
}
38、
int main(void)
{
int *p=(int *)0x67a9;
*p=0xaa66;
return 0;
39、puts(">6")
有符号int 与无符号 int 参与运算时,会将有符号转换为无符号参与运算,-20转换成无符号数大于6,所以+6也大于6
40、7
41、h,f,c
42、
(1)10^3,10^6,2.5*10^6,5*10^-8
(2)10^-9,10^-6,10^-3
(3)8,1024,1024
43、c,b,h,b,c,i,j
44、
char a[2][10]={"abcdefg","123456789"};
const char *str[2]={"abcdefg","123456789"};
int main(int argc, const char *argv[])
{
char *p1;
char (*p2)[10];
const char **p3;
char c;
p1=a[0];//把a的第一个元素的地址代入p1
c=*(p1+1);
c=*(p1+14);
p2=a;//把a的第一行的地址代入p2
c=*(*(p2)+1);
c=*(*(p2+1)+4);
p3=&str;//把str的地址代入p3
c=*(p3+1);
c=*(p3+14);
return 0;
}