1、開發C代碼時,經常見到如下類型的結構體定義:
typedef struct list_t{
struct list_t *next;
struct list_t *prev;
char data[0];
}list_t;
請問在32位系統中,sizeof(list_t)的值為?
A 4byte
B 8byte
C 5byte
D9byte
2、在/etc/fstab文件中指定的文件系統加載參數中,____參數一般用于CD-ROM等移動設備。
A defaults
B sw
C rw和ro
D noauto
3、線性表(a1,a2,…,an)以鏈接方式存儲時,訪問第i位置元素的時間復雜性為()。
A O(i)
B O(1)
C O(n)
DO(i-1)
4、Linux有三個查看文件的命令,若希望在查看文件內容過程中可以用光標上下移動來查看文件內容,應使用 ____命令。
A cat
B more
C less
D menu
5、堆棧溢出一般是由什么原因導致的?
A 函數代碼長度過長
B 循環的遞歸調用
C 大數據結構的局部變量
D 代碼運行時錯誤
二、下面的代碼輸出是什么?為什么?
voidfoo(void){ unsignedinta=6;intb=-20; (a+b>6)?puts(">6"):puts("<=6"); }
參考答案:
一、1~5:BDCC BC
二、輸出>6,原因是當表達式中存在有符號類型和無符號類型時所有的操作數都自動轉換為無符號類型。-20成了一個非常大的正數。//此題的輸出確實是這樣,但單純輸出a+b時結果又是-14