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,g,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的第一个元素的地址代入p1c=*(p1+1);c=*(p1+14);p2=a;//把a的第一行的地址代入p2c=*(*(p2)+1);c=*(*(p2+1)+4);p3=&str;//把str的地址代入p3c=*(p3+1);c=*(p3+14);return 0;
}