21.c 22.b
23.b 假设,入:12345,出:54132.要出5,必须12345按顺序入,然后出5,依次出4321,想要在4之后出1是不可能实现的。
24.b=10,c=11,d=100 25.3 ,2 26.死循环 27.1640 40 28.不会
29.a=a+b;b=a-b;a=a-b; 30.0x801005 0x80014
31.a,d 32.45 33.c 34.x=14,y=10 35.m=9,n=5 36.d
37.
#define SET_BIT(REG,BIT) ((REG) |=(BIT))
#define CLEAR_BIT(REG,BIT) ((REG &=~(BIT))
#define BIT(n) (0x00000001<<(n))
static int a;
int main(void)
{
SET_BIT(a,BIT(3));
itoa(a,str3,2);//2表示转换为二进制
printf("%d的二进制是:%s\n",a,str3);
CLEAR_BIT(a,BIT(3));
itoa(a,str4,2);
printf("%d的二进制是:%s\n",a,str4);
return 0;
}
38.int *p;
p=(int*)0x6709;
*p=0xaa66;
a more obscure approach is:
*(int *(const))(0x67a9)=0xaa66;
39.输出”>6”
无符号int和有符号int进行比较时,会把有符号int转换为无符号int进行比较,无符号的-20要远远大于6.
40.不会 41.c g b
42.1000 1000 ? ?
1ns=1*10^-9s 1us=1*10^-6s 1ms=0.001s
1024 1024 1024
43.c b h b a i l
44.
p1=a[0]; //把a的第一个元素的地址代入p1
c=*(p1+1); //通过p1的运算引用'b'
c=*(p1+14); //通过p1的运算引用'5'
p2=a; //把a的第一行的地址代入p2
c=*(*(p2)+1); //通过p2的运算引用'b'
c=*(*(p2+1)+4); //通过p2的运算引用'5'
p3=&str; //把str的地址代入p3
c=*(p3+1); //通过p3的运算引用'b'
c=*(p3+14); //通过p3的运算引用'5'