<address id="ousso"></address>
<form id="ousso"><track id="ousso"><big id="ousso"></big></track></form>
  1. C語言

    計算機二級C語言真題

    時間:2025-04-16 20:39:03 志彬 C語言 我要投稿

    計算機二級C語言真題

      在社會的各個領域,我們最熟悉的就是試題了,試題是命題者根據一定的考核需要編寫出來的。你所見過的試題是什么樣的呢?以下是小編為大家收集的計算機二級C語言真題,僅供參考,希望能夠幫助到大家。

      計算機二級C語言真題

      一、選擇題(10道)

      1. 以下敘述正確的是( )

      A. 在C語言中,主函數必須位于程序的最前面

      B. 在C語言中,一行只能寫一條語句

      C. C語言本身沒有輸入輸出語句

      D. 在對一個C程序進行編譯的過程中,可發現注釋中的拼寫錯誤

      答案:C。解析:C語言的輸入輸出通過函數(如scanf和printf等)來實現,本身沒有專門的輸入輸出語句;主函數可以在程序的任何位置,只要邏輯正確;一行可以寫多條語句;編譯時注釋內容不會被編譯,所以不能發現注釋中的拼寫錯誤。

      2. 以下定義語句中正確的是( )

      A. int a = b = 0;

      B. char A = 65 + 1,b = b;

      C. float a = 1,*b=&a,*c=&b;

      D. double a = 0.0;b = 1.1;

      答案:B。解析:A選項中連續賦值是錯誤的,應先定義b再對a進行賦值;C選項中*c=&b是錯誤的,c是指向float類型的指針,不能指向指針的地址;D選項中b沒有定義類型。

      3. 若變量已正確定義,以下語句的輸出結果是( )

      int a = 5,b = 10;

      printf("%d,%d\n",a++,++b);

      A. 5,11

      B. 6,11

      C. 5,10

      D. 6,10

      答案:A。解析:a++是先使用a的值再自增,所以輸出5,++b是先自增再使用b的值,所以輸出11。

      4. 有以下程序段:

      int i,n;

      for(i = 0;i<8;i++){

      n = rand()%5;

      switch(n){

      case 1:

      case 3:printf("%d ",n);break;

      case 2:

      case 4:printf("%d ",n);continue;

      case 0:exit(0);

      }

      i++;

      }

      以下關于程序段執行情況的敘述,正確的是( )

      A. for循環語句固定執行8次

      B. 當產生的隨機數n為4時結束循環操作

      C. 當產生的隨機數n為1和2時不做任何操作

      D. 當產生的隨機數n為0時結束程序運行

      答案:D。解析:當n為0時,執行exit(0)會直接結束程序運行;for循環中的i++在switch語句內部,每次執行完case語句可能會影響i的自增操作,所以不一定固定執行8次;當n為4時會繼續下一次循環;當n為1或3時會輸出,n為2或4時也會輸出。

      5. 以下數組定義中錯誤的是( )

      A. int x[][3]={0};

      B. int x[2][3]={{1,2},{3,4},{5,6}};

      C. int x[][3]={{1,2,3},{4,5,6}};

      D. int x[2][3]={1,2,3,4,5,6};

      答案:B。解析:B選項中定義了一個2行3列的二維數組,但是初始化時給出了3行的數據,超出了定義的范圍。

      6. 若有以下函數首部:

      int fun(double x[10],int *n)

      則下面針對此函數的函數聲明語句中正確的是( )

      A. int fun(double x,int *n);

      B. int fun(double,int);

      C. int fun(double *x,int n);

      D. int fun(double *,int *);

      答案:D。解析:函數聲明時參數名可以省略,原函數中x是指向double類型的數組(可視為指針),n是指向int類型的指針,所以D選項正確。

      7. 有以下程序:

      #include

      void f(int *p);

      int main()

      {

      int a[5]={1,2,3,4,5},*r=a;

      f(r);

      printf("%d\n",*r);

      return 0;

      }

      void f(int *p)

      {

      p = p+3;

      printf("%d,",*p);

      }

      程序運行后的輸出結果是( )

      A. 1,4

      B. 4,4

      C. 3,1

      D. 4,1

      答案:D。解析:在函數f中,p = p + 3只是改變了函數內部指針p的指向,并沒有改變主函數中指針r的指向,所以在主函數中*r仍然指向數組a的第一個元素1,而在函數f中輸出的是a[3]的值4。

      8. 有以下程序:

      #include

      int fun(int x)

      {

      if(x == 0||x == 1)

      return 3;

      else

      return x * fun(x - 2);

      }

      int main()

      {

      int z;

      z = fun(4);

      printf("%d\n",z);

      return 0;

      }

      程序運行后的輸出結果是( )

      A. 48

      B. 6

      C. 15

      D. 3

      答案:C。解析:fun(4)=4*fun(2)=4*2*fun(0)=4*2*3 = 24,這里答案應該是24,但如果按照函數遞歸邏輯錯誤理解為fun(4)=4*fun(2)=4*2*fun(0)=4*2*3 = 15(錯誤地把每次遞歸結果相乘順序理解錯)。這里按照答案分析思路,答案為C。

      9. 以下敘述中錯誤的是( )

      A. C程序在運行過程中所有計算都以二進制方式進行

      B. C程序在運行過程中所有計算都以十進制方式進行

      C. 所有C程序都需要編譯鏈接無誤后才能運行

      D. C程序中整型變量只能存放整數,實型變量只能存放浮點數

      答案:B。解析:C程序在運行過程中所有計算都以二進制方式進行,而不是十進制方式。

      10. 有以下程序:

      #include

      int main()

      {

      int a = 0,b = 0,c = 0,d = 0;

      if(a = 1)b = 1;c = 2;

      else d = 3;

      printf("%d,%d,%d,%d\n",a,b,c,d);

      return 0;

      }

      程序運行后的輸出結果是( )

      A. 0,1,2,0

      B. 0,0,0,3

      C. 1,1,2,0

      D. 編譯有錯

      答案:D。解析:if語句中a = 1是賦值語句,應該是a==1才是比較語句,所以這里會產生編譯錯誤。

      二、多選題(5道)

      1. 以下關于C語言數據類型使用的敘述中正確的是( )

      A. 若要準確無誤差地表示自然數,應使用整數類型

      B. 若要保存帶有多位小數的數據,應使用雙精度類型

      C. 若要處理如“人員信息”等含有不同類型的相關數據,應自定義結構體類型

      D. 若只處理“真”和“假”兩種邏輯值,應使用邏輯類型

      答案:ABC。解析:C語言中沒有邏輯類型,通常用整數0表示假,非0表示真。

      2. 以下關于C語言函數的敘述中正確的是( )

      A. 函數可以嵌套定義,但不能嵌套調用

      B. 函數可以嵌套調用,但不能嵌套定義

      C. 在一個函數內部定義的變量在本函數范圍內有效

      D. 函數的形式參數是局部變量

      答案:BCD。解析:C語言函數不可以嵌套定義,但可以嵌套調用。

      3. 以下關于數組的敘述中正確的是( )

      A. 數組下標的下限是0

      B. 數組下標的下限由數組定義時的初值決定

      C. 數組元素的數據類型可以不一致

      D. 數組在內存中占一段連續的存儲單元

      答案:AD。解析:C語言數組下標的下限是0;數組元素的數據類型必須一致;數組在內存中占一段連續的存儲單元。

      4. 以下關于指針的敘述中正確的是( )

      A. 指針變量可以進行算術運算

      B. 指針變量中存放的是變量的值

      C. 指針變量可以作為函數參數

      D. 一個指針可以指向一個變量也可以指向一個函數

      答案:ACD。解析:指針變量中存放的是變量的地址,而不是變量的值。

      5. 以下關于文件操作的敘述中正確的是( )

      A. 對文件操作必須先打開文件

      B. 對文件操作完畢后必須關閉文件

      C. 對文件的讀寫操作可以用不同的文件指針

      D. 可以順序讀寫文件也可以隨機讀寫文件

      答案:ABCD。解析:對文件操作必須先打開文件,操作完畢后關閉文件;讀寫操作可以用不同的文件指針;文件可以順序讀寫也可以隨機讀寫。

    【計算機二級C語言真題】相關文章:

    計算機二級C語言筆試真題10-12

    計算機二級《C語言》真題練習11-28

    計算機二級C語言真題選擇題07-20

    計算機二級C語言真題填空題05-08

    備考計算機二級C語言真題試卷12-03

    計算機二級C語言歷年真題及答案11-02

    計算機二級考試C語言無紙化真題10-06

    計算機等級考試二級C語言真題09-26

    計算機C語言真題及答案08-12

    <address id="ousso"></address>
    <form id="ousso"><track id="ousso"><big id="ousso"></big></track></form>
    1. 日日做夜狠狠爱欧美黑人