2016年計算機四級嵌入式系統(tǒng)開發(fā)工程師模擬試題二

字號:


    一.1、簡答題。下面的題目必須全部答對才給分(20分):
    1、 如何在C中初始化一個字符數(shù)組。
    2、 如何在C中為一個數(shù)組分配空間。
    3、 如何初始化一個指針數(shù)組。
    4、 如何定義一個有10個元素的整數(shù)型指針數(shù)組。
    5、 s[10]的另外一種表達方式是什么。
    6、 GCC3.2.2版本中支持哪幾種編程語言。
    7、 要使用CHAR_BIT需要包含哪個頭文件。
    8、 對(-1.2345)取整是多少?
    9、 如何讓局部變量具有全局生命期。
    10、C中的常量字符串應(yīng)在何時定義?
    11、如何在兩個.c文件中引用對方的變量。
    12、使用malloc之前需要做什么準備工作。
    13、realloc函數(shù)在使用上要注意什么問題。
    14、strtok函數(shù)在使用上要注意什么問題。
    15、gets函數(shù)在使用上要注意什么問題。
    16、C語言的詞法分析在長度規(guī)則方面采用的是什么策略?
    17、a+++++b所表示的是什么意思?有什么問題?
    18、如何定義Bool變量的TRUE和FALSE的值。
    19、C語言的const的含義是什么。在定義常量時,為什么推薦使用const,而不是#define。
    20、C語言的volatile的含義是什么。使用時會對編譯器有什么暗示。
    一.2、問答題。
    1、———————————————————–
    “匈牙利命名法”有什么優(yōu)缺點?(2分)
    2、———————————————————–
    下面x, y, *p的值是多少,有什么問題?(2分)
    int x, y, z = 2;
    int *p=&z;
    x=sizeof*p;
    y=x/*p; /* x=?, *p=?, y=?, 有什么問題?*/
    3、———————————————————–
    下面的語句是什么意思?如何聲明或定義才使它們更易懂?(10分)
    int (*foo())();
    int (*foo())[];
    int (*foo[])();
    (*(void(*)())0)();
    void (*signal(int,void(*)(int)))(int);
    4、———————————————————–
    本題(2分)。一般使用malloc時,需要進行強制類型轉(zhuǎn)換,如:
    char *s; s = (char *)malloc(31);
    下面中???該如何填寫,才可以正確執(zhí)行強制類型轉(zhuǎn)換?
    int (*monthp)[31]; monthp = (???)malloc(31);
    5、———————————————————–
    關(guān)于C語言運算符優(yōu)先級的記憶技巧是什么?(2分)
    /* 下面r的值是多少 */
    int hi, low, r;
    hi=7;low=3;
    r=hi<<4+low;
    6、———————————————————–
    指針和數(shù)組的區(qū)別是什么?用一個簡單的聲明把它們區(qū)分開。(2分)
    指針和數(shù)組的聲明在什么情況下是相同的?(2分)
    7、———————————————————–
    C語言的左值(lvalue)和右值(rvalue)的含義是什么?(2分)
    8、———————————————————–
    為什么C語言可以實現(xiàn)printf(char *format, …)這樣可變參數(shù)的調(diào)用形式?這樣有什
    么缺點?(2分)
    9、———————————————————–
    說明C語言中術(shù)語”聲明”"定義”"原型”的含義?(2分)
    10、———————————————————–
    舉一個例子,說明使用assert和防錯代碼的區(qū)別。(5分)
    11、———————————————————–
    對語句 if else 與操作符 ? : 使用場合的比較。(2分)
    12、———————————————————–
    編寫一個函數(shù),輸入一個的整型數(shù)字,可以選擇按照8/10/16進制輸出字符串。
    注意邊界值。(5分)
    13、———————————————————–
    本題(2分)。下面是一個16×16的黑白圖標:
    static unsigned short stopwatch[] = {
    0×07c6,
    0×1ff7,
    0×383b,
    0×600c,
    0×600c,
    0xc006,
    0xc006,
    0xdf06,
    0xc106,
    0xc106,
    0×610c,
    0×610c,
    0×3838,
    0×1ff0,
    0×07c0,
    0×0000,
    };
    如何修改聲明,可以使之在源代碼中形象地表現(xiàn)出圖形的模樣。
    14、———————————————————–
    說出可以使用calendar[11][30]變量的四種類型定義。(5分)
    如:int calendar[12][31]; /* 二維數(shù)組 */
    15、———————————————————–
    使用strcmp,當字符串相同時會返回’\0′。但’\0′一般作為邏輯假,
    因此下面的語句不容易理解:
    if (!strcmp(s, “string”)) return EQUATION;
    如何經(jīng)過簡單修改,使之更易懂?(2分)
    16、———————————————————–
    編寫一個自己的完全C語言版本的memset函數(shù),并且評價這個實現(xiàn)的性能和可移植性。(5
    分)
    17、———————————————————–
    在樹和圖這些數(shù)據(jù)結(jié)構(gòu)中,通常使用指針來組織數(shù)據(jù)。如果我們要把這些數(shù)據(jù)保存到文
    件
    中,指針是沒有意義的。我們該如何解決這個問題。(2分)
    18、———————————————————–
    用2種不同的方法計算long變量的”1″bit的個數(shù)。(2分)
    19、———————————————————–
    任意給出一個C的基本數(shù)據(jù)類型,如何編碼判斷這個數(shù)據(jù)類型是有符號還是無符號的?(2
    分)
    不得上機實驗,寫出下面代碼的輸出。解釋這個行為是標準定義的,還是依賴實現(xiàn)的。(
    2分)
    int i;
    for (i = 0; i < 10; i++) {
    int j = i;
    printf (”%d\n”, j);
    }
    20、———————————————————–
    列出5種以上你所看過的C編程的書籍,并寫簡要書評。(5分)
    對C的評價。如果要你改造一把菜刀,使之更加安全,你是否會使用這樣的菜刀,為什么?(5分)