31問題:使用位操作符|和&實現給定一個整型變量a, 寫兩段代碼,第一個設置a的bit 3,第二個清除a的bit 3 。以上兩個操作中,要保持其它位不變。
回答:
#define BIT3 (0x1<<3)
static int a;
void set_bit3(void)
{
a|=BIT3;
}
void clear_bit3(void)
{
a &=~ BIT3;
}
32問題:運用位運算交換a、b兩數?
回答:
#include <stdio.h>
int main()
{
int a=3;
int b=4;
a^=b;
b^=a;
a^=b;
printf("a= %d, b=%d/n",a,b);
}
33問題:C/C++中的兩種死循環?
回答:1、 for(;;)死循環裏的兩個;;代表兩個空語句,編譯器一般會優化掉它們,直接進入循環體。
while(1)死循環裏的1被看成表達式,每循環一次都要判斷常量1是不是等於零。
for(;;) {循環體;};
按語法, for 循環 (初態;終態;步長) 這三部分,現在 是 (空語句;空語句;空語句)。
是合法的語句。由於沒有給 終態 (即允許繼續循環和終止循環的條件), 循環語句於是可以 永遠繼續下去。俗稱 無限循環 或 死循環。
但通常 循環體內 會有 語句控制 決定 是否中止。例如
for(;;) {... if (n>10) break; ...};
for(;;) {... if (n>10) goto Lab1; ...};
34問題:關鍵字static的作用是什麼?
回答:①在函數體內,被申明爲靜態的變量在這一函數被調用的過程中維持其值不變。
②在模塊內(但在函數外),一個被申明爲靜態的變量可以被模塊內的所有函數訪問,但不能被模塊外的其它函數所訪問,它是一個本地的全局變量。
③在模塊內,一個被申明爲靜態的函數只可被這一模塊內的其它函數調用,那就是這個函數被限制在申明它模塊的本地範圍內使用。