<pre id="bbfd9"><del id="bbfd9"><dfn id="bbfd9"></dfn></del></pre>

          <ruby id="bbfd9"></ruby><p id="bbfd9"><mark id="bbfd9"></mark></p>

          <p id="bbfd9"></p>

          <p id="bbfd9"><cite id="bbfd9"></cite></p>

            <th id="bbfd9"><form id="bbfd9"><dl id="bbfd9"></dl></form></th>

            <p id="bbfd9"><cite id="bbfd9"></cite></p><p id="bbfd9"></p>
            <p id="bbfd9"><cite id="bbfd9"><progress id="bbfd9"></progress></cite></p>
            C語言

            計算機等考二級《C語言》常考問題

            時間:2025-05-18 06:46:14 C語言 我要投稿
            • 相關推薦

            2017計算機等考二級《C語言》常考問題

              為了提高大家復習計算機二級考試的效率,百分網小編搜索整理了計算機等考二級《C語言》常考問題,希望對大家有所幫助。

              第1 章 聲明和初始化

              問題:

              1.1 我如何決定使用那種整數類型?

              1.2 64 位機上的64 位類型是什么樣的?

              1.3 怎樣定義和聲明全局變量和函數最好?

              1.4 extern 在函數聲明中是什么意思?

              1.5 關鍵字auto 到底有什么用途?

              1.6 我似乎不能成功定義一個鏈表。我試過typedef struct { char *item; NODEPTR next; } *NODEPTR; 但是編譯器報了錯誤信息。難道在C語言中一個結構不能包含指向自己的指針嗎?

              1.7 怎樣建立和理解非常復雜的聲明?例如定義一個包含N 個指向返回指向字符的指針的函數的指針的數組?

              1.8 函數只定義了一次, 調用了一次, 但編譯器提示非法重定義了。

              1.9 main() 的正確定義是什么?void main() 正確嗎?

              1.10 對于沒有初始化的變量的初始值可以作怎樣的假定?如果一個全局變量初始值為“零”, 它可否作為空指針或浮點零?

              1.11 代碼int f() { char a[] = "Hello, world!";} 不能編譯。

              1.12 這樣的初始化有什么問題?char *p = malloc(10); 編譯器提示“非法初始式” 云云。

              1.13 以下的初始化有什么區別?

              第2 章 結構、聯合和枚舉

              問題列表

              2.1 聲明struct x1 { ... }; 和typedef struct { ... } x2; 有什么不同?

              2.2 為什么struct x { ... }; x thestruct; 不對?

              2.3 一個結構可以包含指向自己的指針嗎?

              2.4 在C 語言中實現抽象數據類型什么方法最好?

              2.5 在C 中是否有模擬繼承等面向對象程序設計特性的好方法?

              2.6 我遇到這樣聲明結構的代碼: struct name { int namelen; char namestr[1];}; 然后又使用一些內存分配技巧使namestr 數組用起來好像有多個元素。這樣合法和可移植嗎?

              2.7 是否有自動比較結構的方法?

              2.8 如何向接受結構參數的函數傳入常數值?

              2.9 怎樣從/向數據文件讀/寫結構?

              2.10 我的編譯器在結構中留下了空洞, 這導致空間浪費而且無法與外部數據文件進行”二進制” 讀寫。能否關掉填充, 或者控制結構域的對齊方式?

              2.11 為什么sizeof 返回的值大于結構的期望值, 是不是尾部有填充?

              2.12 如何確定域在結構中的字節偏移?

              2.13 怎樣在運行時用名字訪問結構中的域?

              2.14 程序運行正確, 但退出時卻“core dump” 了,怎么回事?

              2.15 可以初始化一個聯合嗎?

              2.16 枚舉和一組預處理的#define 有什么不同?

              2.17 有什么容易的顯示枚舉值符號的方法?

              第 3 章 表達式

              問題列表:

              3.1 為什么這樣的代碼: a[i] = i++; 不能工作?

              3.2 使用我的編譯器,下面的代碼int i=7; printf("%d\n", i++ * i++); 返回49?不管按什么順序計算, 難道不該打印出56嗎?

              3.3 對于代碼int i = 3; i = i++; 不同編譯器給出不同的結果, 有的為3, 有的為4, 哪個是正確的?

              3.4 這是個巧妙的表達式: a.=b.=a.=b 它不需要臨時變量就可以交換a 和b 的值。

              3.5 我可否用括號來強制執行我所需要的計算順序?

              3.6 可是&& 和|| 運算符呢?

              3.7 我怎樣才能理解復雜表達式?“序列點” 是什么?

              3.8 那么, 對于a[i] = i++; 我們不知道a[] 的哪一個分量會被改寫,但i的確會增加1, 對嗎?

              3.9 ++i 和i++ 有什么區別?

              3.10 如果我不使用表達式的值, 我應該用++i 或i++ 來自增一個變量嗎?

              3.11 為什么如下的代碼int a = 100, b = 100; long int c = a * b; 不能工作?

              3.12 我需要根據條件把一個復雜的表達式賦值給兩個變量中的一個。

              第 4 章 指針

              問題列表:

              4.1 我想聲明一個指針并為它分配一些空間, 但卻不行。這些代碼有什么問題?char *p; *p = malloc(10);

              4.2 *p++ 自增p 還是p 所指向的變量?

              4.3 我有一個char * 型指針正巧指向一些int 型變量, 我想跳過它們。

              為什么如下的代碼((int *)p)++; 不行?

              4.4 我有個函數,它應該接受并初始化一個指針void f(int *ip) { static int dummy = 5; ip = &dummy;} 但是當我如下調用時: int *ip; f(ip); 調用者的指針卻沒有任何變化。

              4.5 我能否用void** 指針作為參數, 使函數按引用接受一般指針?

              4.6 我有一個函數extern int f(int *); 它接受指向int 型的指針。我怎樣用引用方式傳入一個常數?

              4.7 C 有“按引用傳遞” 嗎?

              4.8 我看到了用指針調用函數的不同語法形式。到底怎么回事?

              4.9 我怎樣把一個int 變量轉換為char * 型?

              第 5 章 空(null) 指針

              問題列表:

              5.1 臭名昭著的空指針到底是什么?

              5.2 怎樣在程序里獲得一個空指針?

              5.3 用縮寫的指針比較“if(p)” 檢查空指針是否可靠?如果空指針的內部表達不是0 會怎么樣?

              5.4 NULL 是什么, 它是怎么定義的?

              5.5 在使用非全零作為空指針內部表達的機器上, NULL 是如何定義的?

              5.6 如果NULL 定義成#define NULL ((char *)0) 難道不就可以向函數傳入不加轉換的NULL 了嗎?

              5.7 如果NULL 和0 作為空指針常數是等價的, 那我到底該用哪一個呢?

              5.8 但是如果NULL 的值改變了, 比如在使用非零內部空指針的機器上, 難道用NULL ( 而不是0) 不是更好嗎?

              5.9 用預定義宏#define Nullptr(type) (type *)0 幫助創建正確類型的空指針。

              5.10 這有點奇怪。NULL 可以確保是0, 但空(null) 指針卻不一定?

              5.11 為什么有那么多關于空指針的疑惑?為什么這些問題如此經常地出現?

              5.12 我很困惑。我就是不能理解這些空指針一類的東西。

              5.13 考慮到有關空指針的所有這些困惑, 難道把要求它們內部表達都必須為0 不是更簡單嗎?

              5.14 說真的, 真有機器用非零空指針嗎, 或者不同類型用不同的表達?

              5.15 運行時的“空指針賦值” 錯誤是什么意思?

              char a[] = "string literal"; char *p = "string literal"; 當我向p[i] 賦值的時候, 我的程序崩潰了。

              1.14 我總算弄清除函數指針的聲明方法了, 但怎樣才能初始化呢?

            【計算機等考二級《C語言》常考問題】相關文章:

            計算機等考二級C語言學習要領06-20

            C/C++面試常考關鍵字09-20

            小升初面試常考的問題梳理10-08

            C/C++面試常考關鍵字總結10-29

            2017計算機二級JAVA常考知識復習09-17

            計算機二級公共基礎考試常考熱點09-16

            計算機二級考試java常考知識點09-06

            計算機二級考試《VB》常考知識點09-02

            計算機二級《VB》常考知識點歸納09-02

                    <pre id="bbfd9"><del id="bbfd9"><dfn id="bbfd9"></dfn></del></pre>

                    <ruby id="bbfd9"></ruby><p id="bbfd9"><mark id="bbfd9"></mark></p>

                    <p id="bbfd9"></p>

                    <p id="bbfd9"><cite id="bbfd9"></cite></p>

                      <th id="bbfd9"><form id="bbfd9"><dl id="bbfd9"></dl></form></th>

                      <p id="bbfd9"><cite id="bbfd9"></cite></p><p id="bbfd9"></p>
                      <p id="bbfd9"><cite id="bbfd9"><progress id="bbfd9"></progress></cite></p>
                      飘沙影院