定義函數時,缺省函數類型聲明,則函數類型取缺省類型是( )
A void B char C float D int
答案:D int
解析:C89 標準規定,函數若省略返回類型,默認為 int。如 main() 等價於 int main()。C99 後建議顯式聲明,但歷史代碼大量存在隱式 int。
在函數內定義變量時,存儲類別符號可省略的是( )
A auto B static C extern D register
答案:A auto
解析:
auto:自動存儲類別,塊作用域變量默認即為 auto,關鍵字可省略(現代 C 幾乎不寫)static:靜態存儲,必須顯式聲明,改變生命週期與鏈接屬性extern:外部聲明,必須顯式聲明,指示連結器查找其他編譯單元定義register:寄存器建議,必須顯式聲明,現代編譯器自動優化通常忽略此提示| 存儲類別 | 關鍵字 | 默認值 | 作用域 | 生命週期 | 鏈接性 |
|---|---|---|---|---|---|
| 自動 | auto | 塊內變量默認 | 塊 | 塊執行期間 | 無 |
| 靜態 | static | 無 | 塊/檔案 | 程式全程 | 內部/無 |
| 外部 | extern | 無 | 檔案/全域 | 程式全程 | 外部 |
| 寄存器 | register | 無 | 塊 | 塊執行期間 | 無 |
「省略」對應 auto,「默認函數類型」對應 int。這兩題是 C 基礎語法必考點,屬送分題。