2023年c語言模擬試題答案優(yōu)質(zhì)

字號:

    范文為教學(xué)中作為模范的文章,也常常用來指寫作的模板。常常用于文秘寫作的參考,也可以作為演講材料編寫前的參考。相信許多人會覺得范文很難寫?下面是小編為大家收集的優(yōu)秀范文,供大家參考借鑒,希望可以幫助到有需要的朋友。
    c語言模擬試題答案篇一
    int a[12]={1,4,7,10,2,5,8,11,3,6,9,12};
    a、10
    b、9
    c、6
    d、5
    先算a[a[i]]內(nèi)層的a[i],由于i=10,因此a[i]即a[10].
    a[10]對應(yīng)下面數(shù)組中的元素為9. 因此a[a[i]]即為a[9]
    a[9]對應(yīng)下面數(shù)組中的元素為6. 因此a[9]即為6
    2.若有說明:int a[][3]={{1,2,3},{4,5},{6,7}}; 則數(shù)組a的第一維的大小為: ( b )
    a、2
    b、3
    c、4
    d、3 6 9
    二維數(shù)組的一維大小,即指二維數(shù)組的行數(shù),在本題中,按行對二維數(shù)組賦值,因此內(nèi)層有幾個大括號,數(shù)組就有幾行
    3.對二維數(shù)組的正確定義是(c)
    詳見教材p149~152,二維數(shù)組的定義、初始化
    類型符 數(shù)組名 [常量表達(dá)式][常量表達(dá)式]
    二維數(shù)組可以看做是矩陣
    類型符是指數(shù)組中數(shù)組元素的類型;數(shù)組名要符合標(biāo)識符命名規(guī)則;第一個常量表達(dá)式是指數(shù)組的行數(shù);第二個常量表達(dá)式是指數(shù)組的列數(shù);常量表達(dá)式的值只能是整數(shù),不可以是變量,而且從1開始計(jì)數(shù)。
    一維數(shù)組初始化時可以省略數(shù)組長度
    二維數(shù)組初始化時可以省略行數(shù),但不能省略列數(shù)
    選項(xiàng)a,b,都省略了列數(shù)
    選項(xiàng)d,不符合二維數(shù)組定義的一般形式,行、列常量表達(dá)式應(yīng)該放在不同的[]中
    a、int a[ ][ ]={1,2,3,4,5,6};
    b、int a[2] []={1,2,3,4,5,6};
    c、int a[ ] [3]={1,2,3,4,5,6};
    d、int a[2,3]={1,2,3,4,5,6};
    4.已知int a[3][4];則對數(shù)組元素引用正確的是__c___
    a、a[2][4]
    b、a[1,3]
    c、a[2][0]
    d、a(2)(1)
    5.c語言中函數(shù)返回值的類型是由 a 決定的.
    a、函數(shù)定義時指定的類型
    b、 return語句中的表達(dá)式類型
    c、 調(diào)用該函數(shù)時的實(shí)參的數(shù)據(jù)類型
    d、形參的數(shù)據(jù)類型
    6. 在c語言中,函數(shù)的數(shù)據(jù)類型是指(a )
    a、 函數(shù)返回值的數(shù)據(jù)類型
    b、 函數(shù)形參的數(shù)據(jù)類型
    c、 調(diào)用該函數(shù)時的實(shí)參的數(shù)據(jù)類型
    d、任意指定的數(shù)據(jù)類型
    7.在函數(shù)調(diào)用時,以下說法正確的是( b)
    a、函數(shù)調(diào)用后必須帶回返回值
    b、實(shí)際參數(shù)和形式參數(shù)可以同名
    c、函數(shù)間的數(shù)據(jù)傳遞不可以使用全局變量
    d、主調(diào)函數(shù)和被調(diào)函數(shù)總是在同一個文件里
    8. 在c語言中,表示靜態(tài)存儲類別的關(guān)鍵字是: ( c )
    a、 auto
    b、 register
    c、static
    d、extern
    9.未指定存儲類別的變量,其隱含的存儲類別為(a )。
    a、auto
    b、static
    c、extern
    d、register
    10. 若有以下說明語句:
    struct student
    { int num;
    char name[ ];
    float score;
    }stu;
    則下面的敘述不正確的是: (d )
    a、 struct是結(jié)構(gòu)體類型的關(guān)鍵字
    b、 struct student 是用戶定義的結(jié)構(gòu)體類型
    c、 num, score都是結(jié)構(gòu)體成員名
    d、 stu是用戶定義的結(jié)構(gòu)體類型名
    11.若有以下說明語句:
    struct date
    { int year;
    int month;
    int day;
    }brithday;
    則下面的敘述不正確的是__c___.
    a、 struct是聲明結(jié)構(gòu)體類型時用的關(guān)鍵字
    b、 struct date 是用戶定義的結(jié)構(gòu)體類型名
    c、 brithday是用戶定義的結(jié)構(gòu)體類型名
    d、year,day 都是結(jié)構(gòu)體成員名
    12. 以下對結(jié)構(gòu)變量stul中成員age的非法引用是 b
    struct student
    { int age;
    int num;
    }stu1,*p;
    p=&stu1;
    a、
    b、
    c、 p->age
    d、(*p).age
    13.設(shè)有如下定義:
    struck sk
    { int a;
    float b;
    }data;
    int *p;
    若要使p指向data中的a域,正確的賦值語句是 c
    a、 p=&a;
    b、 p=data、a;
    c、p=&data、a;
    d、*p=data、a;
    14.設(shè)有以下說明語句:
    typedef struct stu
    { int a;
    float b;
    } stutype;
    則下面敘述中錯誤的是( d )。
    a、struct是結(jié)構(gòu)類型的關(guān)鍵字
    b、struct stu是用戶定義的結(jié)構(gòu)類型
    c、a和b都是結(jié)構(gòu)成員名
    d、stutype是用戶定義的結(jié)構(gòu)體變量名
    15.語句int *p;說明了 c 。
    a、p是指向一維數(shù)組的指針
    b、p是指向函數(shù)的指針,該函數(shù)返回一int型數(shù)據(jù)
    c、p是指向int型數(shù)據(jù)的指針
    d、p是函數(shù)名,該函數(shù)返回一指向int型數(shù)據(jù)的指針
    16、以下語句的輸出結(jié)果是(d)。
    int a=-1,b=4,k;
    k=(+ +a<0)&&!(b - -<=0);
    printf("%d,%d,%d ",k,a,b);
    a. 1,0,4
    b. 1,0,3
    c. 0,0,3
    d. 0,0,4
    17、下列程序的輸出結(jié)果是(d)。
    char *p1="abcd", *p2="abcd", str[50]="xyz";
    strcpy(str+2,strcat(p1+2,p2+1));
    printf("%s",str);
    a. xyabcab
    b. abcabz
    c. ababcz
    d. xycdbcd
    18、執(zhí)行下面的程序后,a的值是(b)。
    define sqr(x) x*x
    main()
    { int a=10,k=2,m=1;
    a/=sqr(k+m)/sqr(k+m);
    printf("%d ",a); }
    a. 10
    b. 1
    c. 9
    d. 0
    19、設(shè)a為存放(短)整型的一維數(shù)組,如果a的首地址為p,那么a中第i 個元素的地址為(b)。
    a.p+i*2
    b. p+(i-1)*2
    c. p+(i-1)
    d. p+i
    20、下列程序執(zhí)行后輸出的結(jié)果是(a)。
    int d=1;
    fun (int p)
    { int d=5;
    d + =p + +;
    printf("%d,",d); }
    main()
    { int a=3;
    fun(a);
    d + = a + +;
    printf("%d ",d); }
    a. 8, 4
    b. 9, 6
    c. 9, 4
    d. 8, 5
    21、表達(dá)式:10!=9的值是(d)。
    a. true
    b. 非零值
    c. 0
    d. 1
    22、若有說明: int i,j=7, *p=&i;, 則與i=j; 等價(jià)的語句是(b)。
    a. i= *p;
    b. *p=*&j;
    c. i=&j;
    d. i=* *p;
    23、不能把字符串:hello!賦給數(shù)組b的語句是(b)。
    a. char b[10]={’h’,’e’,’l’,’l’,’o’,’!’};
    b. char b[10]; b="hello!";
    c. char b[10]; strcpy(b,"hello!");
    b[10]="hello!";
    24、在c程序中有如下語句:char *func(int x,int y); 它是(c)。
    a. 對函數(shù)func的定義。
    b. 對函數(shù)func的.調(diào)用。
    c.對函數(shù)func的原型說明。
    d. 不合法的。
    25、以下程序的輸出結(jié)果是(d)。
    char str[15]=”hello!”;
    printf(“%d ”,strlen(str));
    a. 15
    b. 14
    c. 7
    d. 6
    26[單選題] 以下敘述中正確的是()
    a.用戶自己定義的函數(shù)只能調(diào)用庫函數(shù)
    b.實(shí)用的c語言源程序總是由一個或多個函數(shù)組成
    c.不同函數(shù)的形式參數(shù)不能使用相同名稱的標(biāo)識符
    d.在c語言的函數(shù)內(nèi)部,可以定義局部嵌套函數(shù)
    參考答案:b
    參考解析:a選項(xiàng)中,”用戶自己定義的函數(shù)只能調(diào)用庫函數(shù)”描述是不正確的,也可以調(diào)用自定義函數(shù);c選項(xiàng)中,對于不同函數(shù)的形式參數(shù)可以使用相同名稱的標(biāo)識符;d選項(xiàng)中,關(guān)于函數(shù)的定義不可以嵌套,但函數(shù)的調(diào)用可以嵌套。因此b選項(xiàng)正確。
    27[單選題] 以下關(guān)于c語言數(shù)據(jù)類型使用的敘述中錯誤的是( )。
    a.若要處理如“人員信息”等含有不同類型的相關(guān)數(shù)據(jù),應(yīng)自定義結(jié)構(gòu)體類型
    b.若要保存帶有多位小數(shù)的數(shù)據(jù),可使用雙精度類型
    c.若只處理“真”和“假”兩種邏輯值,應(yīng)使用邏輯類型
    d.整數(shù)類型表示的自然數(shù)是準(zhǔn)確無誤差的
    參考答案:c
    參考解析:c語言中沒有邏輯類型,所以c錯誤。若要保存帶有多位小數(shù)的數(shù)據(jù),可以用單精度類型也可以用雙精度類型。處理包含不同類型的相關(guān)數(shù)據(jù)可以定義為結(jié)構(gòu)體類型。整數(shù)類型可以無誤差的表示自然數(shù)。
    28[單選題] 下面選項(xiàng)中關(guān)于編譯預(yù)處理的敘述正確的是
    a.預(yù)處理命令行必須使用分號結(jié)尾
    b.凡是以#號開頭的行,都被稱為編譯預(yù)處理命令行
    c.預(yù)處理命令行不能出現(xiàn)在程序的最后一行
    d.預(yù)處理命令行的作用域是到最近的函數(shù)結(jié)束處
    參考答案:b
    參考解析:本題考查預(yù)編譯的預(yù)編譯處理命令行,預(yù)處理命令行不能以分號結(jié)尾,所以a選項(xiàng)錯誤,預(yù)處理命令行可以出現(xiàn)在程序的最后一行,預(yù)處理命令行作用域是整個文件。
    29[單選題] 有以下程序
    程序的輸出結(jié)果是
    a.0b.1c.9d.10
    參考答案:b
    參考解析:本題考查宏定義,宏定義只是做個簡單的替換。執(zhí)行sqr(k+m)/sqr(k+m)=k+m*k+m/k+m}k+m=15/2,a/=sqr(k+m)/sqr(k+1ti)的結(jié)果為1,選項(xiàng)b正確。
    30[單選題] 設(shè)--x樹共有150個結(jié)點(diǎn),其中度為l的結(jié)點(diǎn)有l(wèi)0個,則該---x樹中的葉子結(jié)點(diǎn)數(shù)為( )。
    a.71b.70c.69d.不可能有這樣的二叉樹
    參考答案:d
    參考解析:在樹結(jié)構(gòu)中,一個結(jié)點(diǎn)所擁有的后件個數(shù)稱為該結(jié)點(diǎn)的度,所有結(jié)點(diǎn)中最大的度稱為樹的度。對任何一棵二叉樹,度為0的結(jié)點(diǎn)總是比度為2的結(jié)點(diǎn)多一個。如果有一棵二叉樹,結(jié)點(diǎn)總數(shù)為l50,假設(shè)度為0的結(jié)點(diǎn)個數(shù)為n,則有n+10+n一1=150,n=70.5,由于結(jié)點(diǎn)個數(shù)必須是整數(shù),所以不可能有題目中這樣的二叉樹。故選擇d選項(xiàng)。
    31[單選題] 有以下程序:
    程序運(yùn)行后的輸出結(jié)果是( )。
    a.2.3b.1,3c.1,4d.1,2
    參考答案:b
    參考解析:在f(int+p,int 4 q)函數(shù)中,執(zhí)行p=p+1是將p所對應(yīng)的地址加1,而0 q=+q+1是將q所指向的n的地址所對應(yīng)的值加1,所以m的得知所對應(yīng)的值沒有變,而n的值則為3了。因此b選項(xiàng)正確。
    32[單選題] 以下選項(xiàng)中,能用作用戶標(biāo)識符的是( )。
    a.-0-b.8-;ed
    參考答案:a
    參考解析:c語言中標(biāo)識符由字母、下劃線、數(shù)字組成,且開頭必須是字母或下劃線。另外,關(guān)鍵字不能作為標(biāo)識符。8中以數(shù)字8開頭,所以錯誤。c與d中用的是關(guān)鍵字void與unsigned,所以錯誤。
    33[單選題] 以下敘述正確的是( )。
    a.表達(dá)式sizeof(file*)==sizeof(int*)的值為真
    b.文件指針的值是一個整數(shù),它的值一定小于文件字節(jié)數(shù)
    c.文件指針的值是所指文件的當(dāng)前讀取位置
    d.使用fscanf函數(shù)可以向任意類型的文件中寫入任意數(shù)量的字符
    參考答案:a
    參考解析:
    slzeof(file})=4,因?yàn)閒ile·為指針,指針的大小4,sizeof(int·)=4,理由同前面。文件指針的值是地址,是一個16進(jìn)制的數(shù),它的值不一定小于文件字節(jié)數(shù),因此選項(xiàng)8錯誤。文件指針是所指文件的當(dāng)前讀取位置,而不是文件指針的值因此選項(xiàng)c錯誤。mgscanf(file-stream,constchar}format,[argument…]fmanf函數(shù)可以向任意類型的文件,寫入任意數(shù)量不能超過系統(tǒng)的緩沖區(qū),寫文件先寫入緩沖區(qū),最后一起寫入文件,因此選項(xiàng)d錯誤。答案為a選項(xiàng)。