1、b。
結構體中的位域對齊。前兩個int型變量的位域之和小於4字節,因此存放在一個int型變量之中,但是第三個是double型的變量,需要8字節對齊,這樣前三個變量佔了16個字節,最後一個int是四個字節,總共20個字節。根據結構體定義的原則,應該是最長變量的整數倍對齊,因此應該是24個字節。
對於window而言,結構體的最大類型是多少字節,就是多少字節對齊,但是對已linux而言,最長是4字節對齊。
2、b
3、網絡地址是:11111111.11111111.11111111.11100000.
B。全0和全1的地址不能作爲主機地址。因爲該網段內的全0地址是網絡地址,全1地址是廣播地址。
4、c
5、36
6、A
2012/5=102
2012/25=80(貢獻兩個5,但是在5的時候已經算了一遍,因此在在總和中需要再加一次)
2012/125=16(貢獻三個5,但是在因子爲5和25的時候各算了一次,因此在總和中只需再加一次)
2012/625=3(同上)
102+80+16+3
2、分別提取出偶數位(與55555555做與操作)和奇數位(與AAAAAAAA做與操作).然後將偶數位左移一位,基數位右移一位。然後做或操作。
比如6變成9的過程
提取偶數位:6&5=0100
提取基數位:9&a=0010
然後偶數位左移一位:1000
奇數位右移一位:0001
然後相或:1001
宏定義:
((x&55555555)<<1)) |((x&aaaaaaaa)>>1)
3、輸出
創新工場
創新工場
4、
深度優先遍歷:ABCDGHFE
廣度優先遍歷:ABCEFDGH