成人免费看黄网站无遮挡,caowo999,se94se欧美综合色,a级精品九九九大片免费看,欧美首页,波多野结衣一二三级,日韩亚洲欧美综合

c語(yǔ)言二級考試真題

時(shí)間:2024-12-20 16:05:04 藹媚 資格考試 我要投稿
  • 相關(guān)推薦

c語(yǔ)言二級考試真題(精選5套)

  在現實(shí)的學(xué)習、工作中,我們經(jīng)常接觸到考試真題,考試真題是學(xué);蚋髦鬓k方考核某種知識才能的標準。什么樣的考試真題才能有效幫助到我們呢?以下是小編精心整理的c語(yǔ)言二級考試真題,歡迎大家借鑒與參考,希望對大家有所幫助。

c語(yǔ)言二級考試真題(精選5套)

  c語(yǔ)言二級考試真題 1

  1.下列敘述中正確的是( )。

  A. 所有數據結構必須有根結點(diǎn)

  B. 所有數據結構必須有終端結點(diǎn)(即葉子結點(diǎn))

  C. 只有一個(gè)根結點(diǎn),且只有一個(gè)葉子結點(diǎn)的數據結構一定是線(xiàn)性結構

  D. 沒(méi)有根結點(diǎn)或沒(méi)有葉子結點(diǎn)的數據結構一定是非線(xiàn)性結構

  【答案】D

  【解析】D項正確,線(xiàn)性結構的特點(diǎn)是:①集合中必存在“第一個(gè)元素"且惟一②集合中必存在“最后一個(gè)元素”且惟一;③除最后一個(gè)元素外,其他數據元素均有惟一的“后繼”,④除第一個(gè)元素外,其他數據元素均有惟一的“前驅”。所以沒(méi)有根結點(diǎn)或沒(méi)有葉子結點(diǎn)的數據結構一定是非線(xiàn)性結構。AB兩項錯誤,不是所有數據結構都必須有根結點(diǎn)和葉子結點(diǎn);C項錯誤,數據結構中若有中間結點(diǎn)不滿(mǎn)足只有一個(gè)前件或者后件的條件,就不是線(xiàn)性結構。答案選擇D選項。

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

  A. C語(yǔ)言中的每條可執行語(yǔ)句和非執行語(yǔ)句最終都將被轉換成二進(jìn)制的機器指令

  B. C程序經(jīng)過(guò)編譯、鏈接步驟之后才能形成一個(gè)真正可執行的二進(jìn)制機器指令文件

  C. 用C語(yǔ)言編寫(xiě)的程序稱(chēng)為源程序,它以ASCII代碼形式存放在一個(gè)文本文件中

  D. C語(yǔ)言源程序經(jīng)編譯后生成后綴為的目標程序

  【答案】A

  【解析】A項錯誤,注釋語(yǔ)句不會(huì )被翻譯成二進(jìn)制的機器指令。C源程序經(jīng)過(guò)C編譯程序編譯之后生成后綴為的二進(jìn)制文件(稱(chēng)為目標文件),然后由“鏈接程序”(Link)的軟件把文件與各種庫函數連接起來(lái)生成一個(gè)后綴為的可執行文件。答案選擇A選項。

  3. C語(yǔ)言主要是借助以下( )功能來(lái)實(shí)現程序模塊化的。

  A. 定義函數

  B. 定義常量和外部變量

  C. 三種基本結構語(yǔ)句

  D. 豐富的數據類(lèi)型

  【答案】A

  【解析】C程序的模塊化主要通過(guò)函數來(lái)實(shí)現。C語(yǔ)言允許對函數單獨進(jìn)行編譯,從而可以實(shí)現模塊化。答案選擇A選項。

  4. 有以下程序段:

  char ch;

  int k;

  ch='a';

  k=12;

  print("%c,%d,",h,ch,k);

  printf("k=%d",k);

  已知字符a的ASCII碼十進(jìn)制值為97,則執行上述程序段后輸出的結果是( )。

  A. 因變量類(lèi)型與格式描述符的類(lèi)型不匹配輸出無(wú)定值

  B. 輸出項與格式描述符個(gè)數不符,輸出為零值或不定值

  C.a,97,12k=12

  D. a,97,k=12

  【答案】D

  【解析】字符變量的值是該字符的ASCII碼值,可以參與整型變量所允許的任何運算。"ch='a",%c表示以字符格式輸出ch的值,所以輸出為a;%d表示以十進(jìn)制代碼的形式輸出ch的'值,為97;k沒(méi)有對應的輸出格式,不輸出。在第二個(gè)語(yǔ)句中,首先輸出"k=",然后以十進(jìn)制代碼輸出k的值,為12。答案選擇D選項。

  5. 下列敘述中正確的是( )。

  A. 棧是“先進(jìn)先出”的線(xiàn)性表

  B. 隊列是“先進(jìn)后出"的線(xiàn)性表

  C. 循環(huán)隊列是非線(xiàn)性結構

  D. 有序線(xiàn)性表既可以采用順序存儲結構,也可以采用鏈式存儲結構

  【答案】D

  【解析】有序的線(xiàn)性表既可采用順序存儲結構,也可以采用鏈式存儲結構。A項錯誤,棧是“先進(jìn)后出"的線(xiàn)性表B項錯誤,隊列是“先進(jìn)先出"的線(xiàn)性表;C項錯誤,循環(huán)隊列是線(xiàn)性結構的,有序的線(xiàn)性表既可采用順序存儲結構,也可采用鏈式存儲結構。

  答案選擇D選項。

  6. 某二叉樹(shù)的中序序列為DCBAEFG,后序序列為DCBGFEA,則該二叉樹(shù)的深度(根結點(diǎn)在第1層)為( )。

  A. 5

  B. 40

  C.3

  D. 2

  【答案】B

  【解析】二叉樹(shù)的后序序列為DCBGFEA,則A為根結點(diǎn)。中序序列為DCBAEFG,則DCB為左子樹(shù)結點(diǎn),EFG為右子樹(shù)結點(diǎn)。同理B為C父結點(diǎn),C為D父結點(diǎn)。根據分析,可畫(huà)出左子樹(shù),同理E為F父結點(diǎn),F為G父結點(diǎn)。根據分析,可畫(huà)出右子樹(shù),故二叉樹(shù)深度為4層。答案選擇B選項。

  7. 設有定義:struct{intn;floatx;}s[2],m[2]={{10,2.8},{0,0.0}};,則以下賦值語(yǔ)句中正確的是( )。

  A. s[0]=m[1];

  B. s=m;

  C.s.n=m.n;

  D. s[2].x=m[2].x;

  【答案】A

  【解析】定義了結構體類(lèi)型數組s,長(cháng)度為2,結構體類(lèi)型數組m,長(cháng)度為2,并對數組m進(jìn)行了初始化。同類(lèi)型的結構體可以直接用變量名實(shí)現賦值,A項正確;數組名為數組首地址,地址常量之間不可以相互賦值,B項錯誤;數組名為地址常量不是結構體變量,不能引用成員,C項錯誤;s[2]與m[2]數組越界,D項錯誤。答案選擇A選項。

  8. 關(guān)于C語(yǔ)言標識符,以下敘述錯誤的是( )。

  A. 標識符可全部由數字組成

  B. 標識符可全部由下劃線(xiàn)組成

  C. 標識符可全部由小寫(xiě)字母組成

  D. 標識符可全部由大寫(xiě)字母組成

  【答案】A

  【解析】C語(yǔ)言標識符只能由字母、數字、下劃線(xiàn)構成,且只能以字母、下劃線(xiàn)開(kāi)頭,故答案選擇A選項。

  9. 以下程序段中的變量已定義為int類(lèi)型,則

  sum=pAd=5;

  pAd=sum++,++pAd,pAd++;

  printf("%d",pAd);

  程序段的輸出結果是( )。

  A. 6

  B. 4

  C. 5

  D. 7

  【答案】D

  【解析】自增和自減運算符的兩種用法:前置運算,運算符放在變量之前,規則是先使變量的值增(或減)1,然后以變化后表達式的值參與其他運算;后置運算,運算符放在變量之后,規則是變量先參與其他運算,然后再使變量的值增(或減)1。執行pAd=sum++,sum++是后置自增,執行完后,pAd=5,sum=6。++pAd和pAd++語(yǔ)句中沒(méi)有其他運算,即效果相同,pAd分別加1,兩句執行完后,pAd7。答案選擇D選項。

  10. 設循環(huán)隊列為Q(1:m),其初始狀態(tài)為front=rear=m。經(jīng)過(guò)一系列入隊與退隊運算后,front=20,rear=15,F要在該循環(huán)隊列中尋找最小值的元素,最壞情況下需要比較的次數為( )。

  A. 5

  B. 6

  C.m-5

  D. m-6

  【答案】D

  【解析】循環(huán)隊列是隊列的一種順序存儲結構,用隊尾指針rear指向隊列中的隊尾元素,用隊首指針指向隊首元素的前一個(gè)位置,因此,從隊首指針front指向的后一個(gè)位置直到隊尾指針rear指向的位置之間所有的元素均為隊列中的元素,隊列初始狀態(tài)為front=rear=m,當front=20,rear=15時(shí),隊列中有m-20+15=m-5個(gè)元素,最壞情況下需要比較次數為m-6次。答案選擇D選項。

  c語(yǔ)言二級考試真題 2

  1.若有以下數組說(shuō)明,則i=10;a[a[i]]元素數值是(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]]內層的a[i],由于i=10,因此a[i]即a[10].

  a[10]對應下面數組中的元素為9. 因此a[a[i]]即為a[9]

  a[9]對應下面數組中的元素為6. 因此a[9]即為6

  2.若有說(shuō)明:int a[][3]={{1,2,3},{4,5},{6,7}}; 則數組a的第一維的大小為: ( B )

  A、2

  B、3

  C、4

  D、無(wú)確定值

  5 7

  D、3 6 9

  二維數組的一維大小,即指二維數組的行數,在本題中,按行對二維數組賦值,因此內層有幾個(gè)大括號,數組就有幾行

  3.對二維數組的正確定義是(C )

  詳見(jiàn)教材P149~152,二維數組的定義、初始化

  類(lèi)型符 數組名 [常量表達式][常量表達式]

  二維數組可以看做是矩陣

  類(lèi)型符是指數組中數組元素的類(lèi)型;數組名要符合標識符命名規則;第一個(gè)常量表達式是指數組的行數;第二個(gè)常量表達式是指數組的列數;常量表達式的值只能是整數,不可以是變量,而且從1開(kāi)始計數。

  一維數組初始化時(shí)可以省略數組長(cháng)度

  二維數組初始化時(shí)可以省略行數,但不能省略列數

  選項A,B,都省略了列數

  選項D,不符合二維數組定義的一般形式,行、列常量表達式應該放在不同的[]中

  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];則對數組元素引用正確的是__C___

  A、a[2][4]

  B、a[1,3]

  C、a[2][0]

  D、a(2)(1)

  詳見(jiàn)教材P150,數組元素的引用

  數組名[下標] [下標]

  引用數組元素時(shí),[ ]中的下標為邏輯地址下標,只能為整數,可以為變量,且從0開(kāi)始計數

  第一個(gè)[下標]表示行邏輯地址下標,第二個(gè)[下標]表示列邏輯地址下標。

  本題圖示詳見(jiàn)P149圖6.7

  因此a的行邏輯地址范圍0~2;a的列邏輯地址范圍0~3;

  選項A,列邏輯地址下標超過(guò)范圍

  選項B,D,的引用形式不正確。

  5.C語(yǔ)言中函數返回值的類(lèi)型是由 A 決定的

  A、函數定義時(shí)指定的類(lèi)型

  B、 return語(yǔ)句中的表達式類(lèi)型

  C、 調用該函數時(shí)的實(shí)參的數據類(lèi)型

  D、形參的數據類(lèi)型

  6. 在C語(yǔ)言中,函數的數據類(lèi)型是指(A )

  A、 函數返回值的數據類(lèi)型

  B、 函數形參的數據類(lèi)型

  C、 調用該函數時(shí)的實(shí)參的數據類(lèi)型

  D、任意指定的數據類(lèi)型

  7.在函數調用時(shí),以下說(shuō)法正確的是( B )

  A、函數調用后必須帶回返回值

  B、實(shí)際參數和形式參數可以同名

  C、函數間的數據傳遞不可以使用全局變量

  D、主調函數和被調函數總是在同一個(gè)文件里

  8. 在C語(yǔ)言中,表示靜態(tài)存儲類(lèi)別的關(guān)鍵字是: ( C )

  A、 auto

  B、 register

  C、static

  D、extern

  9.未指定存儲類(lèi)別的變量,其隱含的存儲類(lèi)別為(A )。

  A、auto

  B、static

  C、extern

  D、register

  10. 若有以下說(shuō)明語(yǔ)句:

  struct student

  { int num;

  char name[ ];

  float score;

  }stu;

  則下面的敘述不正確的是: (D )

  A、 struct是結構體類(lèi)型的關(guān)鍵字

  B、 struct student 是用戶(hù)定義的結構體類(lèi)型

  C、 num, score都是結構體成員名

  D、 stu是用戶(hù)定義的結構體類(lèi)型名

  11.若有以下說(shuō)明語(yǔ)句:

  struct date

  { int year;

  int month;

  int day;

  }brithday;

  則下面的敘述不正確的是__C___.

  A、 struct是聲明結構體類(lèi)型時(shí)用的關(guān)鍵字

  B、 struct date 是用戶(hù)定義的結構體類(lèi)型名

  C、 brithday是用戶(hù)定義的結構體類(lèi)型名

  D、year,day 都是結構體成員名

  12. 以下對結構變量stul中成員age的非法引用是 B

  struct student

  { int age;

  int num;

  }stu1,*p;

  p=&stu1;

  A、 stu1.age

  B、 student.age

  C、 p->age

  D、(*p).age

  13.設有如下定義:

  struck sk

  { int a;

  float b;

  }data;

  int *p;

  若要使P指向data中的a域,正確的賦值語(yǔ)句是 C

  A、 p=&a;

  B、 p=datA、a;

  C、p=&datA、a;

  D、*p=datA、a;

  14.設有以下說(shuō)明語(yǔ)句:

  typedef struct stu

  { int a;

  float b;

  } stutype;

  則下面敘述中錯誤的是( D )。

  A、struct是結構類(lèi)型的關(guān)鍵字

  B、struct stu是用戶(hù)定義的結構類(lèi)型

  C、a和b都是結構成員名

  D、stutype是用戶(hù)定義的結構體變量名

  15.語(yǔ)句int *p;說(shuō)明了 C 。

  A、p是指向一維數組的指針

  B、p是指向函數的指針,該函數返回一int型數據

  C、p是指向int型數據的指針

  D、p是函數名,該函數返回一指向int型數據的指針

  16.C語(yǔ)言中,關(guān)系表達式和邏輯表達式的值是( B ) 。

  A、0

  B、 0或1

  C、 1

  D、‘T’或’F’

  17. 下面( D )表達式的值為4.

  A、 11/3

  B、 11.0/3

  C、 (float)11/3

  D、 (int)(11.0/3+0.5)

  【解析】(1)相同數據類(lèi)型的元素進(jìn)行數學(xué)運算(+、-、*、/)得到結果還保持原數據類(lèi)型。

  (2)不同數據類(lèi)型的元素進(jìn)行數學(xué)運算,先要統一數據類(lèi)型,統一的標準是低精度類(lèi)型轉換為高精度的數據類(lèi)型。

  選項A,11與3為兩個(gè)整數,11/3結果的數據類(lèi)型也應為整數,因此將3.666666的小數部分全部舍掉,僅保留整數,因此11/3=3.

  選項B,11.0為實(shí)數,3為整數,因此首先要統一數據類(lèi)型,將整型數據3轉換為3.0,轉換后數據類(lèi)型統一為實(shí)型數據,選項B變?yōu)?1.0/3.0,結果的數據類(lèi)型也應為實(shí)型數據,因此選項B 11.0/3=3.666666

  選項C,先將整數11強制類(lèi)型轉換,轉換為實(shí)型11.0,因此選項C變?yōu)?1.0/3,其后計算過(guò)程、結果與選項B同

  選項D,首先計算11.0/3,其計算過(guò)程、結果與選項B同,得到3.666666;再計算3.666666+0.5=4.166666,最后將4.166666強制類(lèi)型轉換為整型,即將其小數部分全部舍掉,結果為4

  18.設整型變量 a=2,則執行下列語(yǔ)句后,浮點(diǎn)型變量b的值不為0.5的是( B )

  A、b=1.0/a

  B、b=(float)(1/A、

  C、b=1/(float)a

  D、b=1/(a*1.0)

  19. 若“int n; float f=13.8;”,則執行“n=(int)f%3”后,n的值是(A)

  A、1

  B、4

  C、4.333333

  D、4.6

  【解析】“(int)f“表示將f中的值強制類(lèi)型轉換為整型,即將13.8的小數部分舍掉,轉換為13;然后計算13%3,結果為1,再將結果賦給變量n,因此n的值為1

  20. 以下對一維數組a的正確說(shuō)明是: D

  A、char a(10);

  B、 int a[];

  C、int k=5,a[k];

  D、char a[3]={‘a(chǎn)’,’b’,’c’};

  【解析】詳見(jiàn)教材P143~144,一維數組的定義、初始化

  類(lèi)型符 數組名 [常量表達式]

  類(lèi)型符是指數組中數組元素的類(lèi)型;數組名要符合標識符命名規則;常量表達式是指數組的長(cháng)度(數組中包含元素的個(gè)數),其值只能是整數,不可以是變量,而且從1開(kāi)始計數。

  選項A,常量表達式只能放在中括號 [ ]中

  選項B,只有在對數組初始化(即賦值)的時(shí)候才可以省略數組的長(cháng)度,B中并未對a進(jìn)行初始化。

  選項C,常量表達式不能為變量。

  21.以下能對一維數組a進(jìn)行初始化的語(yǔ)句是:( C )

  A、int a[5]=(0,1,2,3,4,)

  B、 inta(5)={}

  C、 int a[3]={0,1,2}

  D、 int a{5}={10*1}

  【解析】詳見(jiàn)教材P145,一維數組的定義、初始化

  選項B,D,常量表達式只能放在中括號 [ ]中

  選項A,數組可以看做是若干個(gè)相同數據類(lèi)型元素的有序集合,因此以集合的形式對其初始化,使用{ }對其初始化,選項A用了( ).

  22.在C語(yǔ)言中對一維整型數組的正確定義為 D 。

  A、int a(10);

  B、int n=10,a[n];

  C、int n;a[n];

  D、#define N 10

  23、已知:int a[10]; 則對a數組元素的正確引用是( D )。

  A、a[10]

  B、a[3.5]

  C、a(5)

  D、a[0]

  【解析】詳見(jiàn)教材P144,數組元素的引用

  數組名[下標]

  引用數組元素時(shí),[ ]中的下標為邏輯地址下標,只能為整數,可以為變量,且從0開(kāi)始計數

  int a[10]表示定義了一個(gè)包含10個(gè)整型數據的數組a,數組元素的邏輯地址下標范圍為0~9,即a[0] 表示組中第1個(gè)元素; a[1] 表示組中第2個(gè)元素; a[2] 表示組中第3個(gè)元素; ......;a[9] 表示組中第10個(gè)元素.

  選項A,超過(guò)了數組a的邏輯地址下標范圍;

  選項B,邏輯地址下標只能為整數

  選項C,邏輯地址下標只能放在[ ]中

  24.若有以下數組說(shuō)明,則i=10;a[a[i]]元素數值是(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]]內層的a[i],由于i=10,因此a[i]即a[10].

  a[10]對應下面數組中的元素為9. 因此a[a[i]]即為a[9]

  a[9]對應下面數組中的.元素為6. 因此a[9]即為6

  25.若有說(shuō)明:int a[][3]={{1,2,3},{4,5},{6,7}}; 則數組a的第一維的大小為: ( B )

  A、2

  B、3

  C、4

  D、無(wú)確定值

  【解析】二維數組的一維大小,即指二維數組的行數,在本題中,按行對二維數組賦值,因此內層有幾個(gè)大括號,數組就有幾行

  26.(A )是構成C語(yǔ)言程序的基本單位。

  A、函數

  B、過(guò)程

  C、子程序

  D、子例程

  27.C語(yǔ)言程序從 C 開(kāi)始執行。

  A、 程序中第一條可執行語(yǔ)句

  B、 程序中第一個(gè)函數

  C、 程序中的main函數

  D、包含文件中的第一個(gè)函數

  28、以下說(shuō)法中正確的是( C )。

  A、C語(yǔ)言程序總是從第一個(gè)定義的函數開(kāi)始執行

  B、在C語(yǔ)言程序中,要調用的函數必須在main( )函數中定義

  C、C語(yǔ)言程序總是從main( )函數開(kāi)始執行;

  D、C語(yǔ)言程序中的main( )函數必須放在程序的開(kāi)始部分

  29.下列關(guān)于C語(yǔ)言的說(shuō)法錯誤的是( B ) 。

  A、 C程序的工作過(guò)程是編輯、編譯、連接、運行

  B、 C語(yǔ)言不區分大小寫(xiě)。

  C、 C程序的三種基本結構是順序、選擇、循環(huán)

  D、C程序從main函數開(kāi)始執行

  30.下列正確的標識符是(C )。

  A、-a1

  B、a[i]

  C、a2_i

  D、int t

  5~8題為相同類(lèi)型題

  考點(diǎn):標識符的命名規則

  只能由字母、數字、下劃線(xiàn)構成

  數字不能作為標識符的開(kāi)頭

  關(guān)鍵字不能作為標識符

  選項A中的“-” ,選項B中“[”與“]”不滿(mǎn)足(1);選項D中的int為關(guān)鍵字,不滿(mǎn)足(3)

  31.下列C語(yǔ)言用戶(hù)標識符中合法的是(B )。

  A、3ax

  B、x

  C、case

  D、-e2 E)union

  選項A中的標識符以數字開(kāi)頭不滿(mǎn)足(2);選項C,E均為為關(guān)鍵字,不滿(mǎn)足(3);選項D中的“-”不滿(mǎn)足(1);

  32.下列四組選項中,正確的C語(yǔ)言標識符是( C )。

  A、 %x

  B、a+b

  C、a123

  D、123

  選項A中的“%” ,選項B中“+”不滿(mǎn)足(1);選項D中的標識符以數字開(kāi)頭不滿(mǎn)足(2)

  33、下列四組字符串中都可以用作C語(yǔ)言程序中的標識符的是( A)。

  A、print _3d db8 aBc

  B、Iam one_half start$it 3pai

  C、str_1 Cpp pow while

  D、Pxq My->book line# His.age

  選項B中的“”,”$” ,選項D中“>”,”#”,”.”,”-”不滿(mǎn)足(1);選項C中的while為關(guān)鍵字,不滿(mǎn)足(3)

  34.C語(yǔ)言中的簡(jiǎn)單數據類(lèi)型包括(D )。

  A、整型、實(shí)型、邏輯型

  B、整型、實(shí)型、邏輯型、字符型

  C、整型、字符型、邏輯型

  D、整型、實(shí)型、字符型

  35.在C語(yǔ)言程序中,表達式5%2的結果是 C 。

  A、2.5

  B、2

  C、1

  D、3

  %為求余運算符,該運算符只能對整型數據進(jìn)行運算。且符號與被模數相同。5%2=1; 5%(-2)=1;(-5)%2=-1;(-5)%(-2)=-1;

  /為求商運算符,該運算符能夠對整型、字符、浮點(diǎn)等類(lèi)型的數據進(jìn)行運算,5/2=2

  c語(yǔ)言二級考試真題 3

  1.C語(yǔ)言編譯程序的功能是( )。

  A. 執行一個(gè)C語(yǔ)言編寫(xiě)的源程序

  B. 把C源程序翻譯成ASCII碼

  C. 把C源程序翻譯成機器代碼

  D. 把C源程序與系統提供的庫函數組合成一個(gè)二進(jìn)制執行文件

  【答案】C

  【解析】編譯程序的功能是將“高級語(yǔ)言”翻譯為“機器語(yǔ)言”。每條C語(yǔ)言語(yǔ)句,經(jīng)過(guò)編譯最終都將轉換成二進(jìn)制的機器指令。答案選擇C選項。

  2. 計算機高級語(yǔ)言程序的運行方法有編譯執行和解釋執行兩種,以下敘述中正確的是( )。

  A. C語(yǔ)言程序僅可以編譯執行

  B. C語(yǔ)言程序僅可以解釋執行

  C. C語(yǔ)言程序既可以編譯執行,又可以解釋執行;

  D. 以上說(shuō)法都不對

  【答案】A

  【解析】編譯執行是指程序執行前需要一個(gè)專(zhuān)門(mén)的編譯過(guò)程把程序編譯成機器語(yǔ)言的文件,再次運行時(shí)不需要重新翻譯,執行效率高;解釋執行是指每個(gè)語(yǔ)句都是執行的時(shí)候才翻譯,執行效率低。用C語(yǔ)言編寫(xiě)的程序必須經(jīng)過(guò)編譯器編譯后,轉換為二進(jìn)制的機器指令來(lái)運行。答案選擇A選項。

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

  A. C語(yǔ)言中的每條可執行語(yǔ)句和非執行語(yǔ)句最終都將被轉換成二進(jìn)制的機器指令

  B. C程序經(jīng)過(guò)編譯、鏈接步驟之后才能形成一個(gè)真正可執行的二進(jìn)制機器指令文件

  C. 用C語(yǔ)言編寫(xiě)的程序稱(chēng)為源程序,它以ASCII代碼形式存放在一個(gè)文本文件中

  D. C語(yǔ)言源程序經(jīng)編譯后生成后綴為的目標程序

  【答案】A

  【解析】A項錯誤,注釋語(yǔ)句不會(huì )被翻譯成二進(jìn)制的機器指令。C源程序經(jīng)過(guò)C編譯程序編譯之后生成后綴為的二進(jìn)制文件(稱(chēng)為目標文件),然后由“鏈接程序”(Link)的軟件把文件與各種庫函數連接起來(lái)生成一個(gè)后綴為的可執行文件。答案選擇A選項。

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

  A.C語(yǔ)言的可執行程序是由一系列機器指令構成的

  B. 用C語(yǔ)言編寫(xiě)的源程序不能直接在計算機上運行

  C. 通過(guò)編譯得到的二進(jìn)制目標程序需要連接才可以運行

  D. 在沒(méi)有安裝C語(yǔ)言集成開(kāi)發(fā)環(huán)境的機器上不能運行C源程序生成的exe文件

  【答案】D

  【解析】A項正確,C語(yǔ)言的可執行程序是由一系列機器指令組成的;BC項正確,用C語(yǔ)言編寫(xiě)的源程序必須經(jīng)過(guò)編譯,生成二進(jìn)制目標代碼,再經(jīng)過(guò)連接才能運行;D項錯誤,C語(yǔ)言經(jīng)過(guò)編譯鏈接后的二進(jìn)制目標代碼可以脫離C語(yǔ)言集成開(kāi)發(fā)環(huán)境獨立運行。答案選擇D選項。

  5. 以下敘述正確的是( )。

  A. C編譯程序把文件后綴為.c的源程序文件編譯成文件后綴為的二進(jìn)制文件

  B. C編譯程序把文件后綴為.c的源程序文件編譯成文件后綴為的可執行文件

  C. C編譯程序把文件后綴為的二進(jìn)制文件編譯成文件后綴為的可執行文件

  D. 鏈接程序把文件后綴為.c的源程序文件鏈接成文件后綴為的可執行文件

  【答案】A

  【解析】C編譯程序把文件后綴為C的源程序文件編譯成文件后綴為的二進(jìn)制文件,鏈接將一個(gè)或多個(gè)目標文件與程序用到的庫文件連接起來(lái),形成一個(gè)可以在操作系統直接運行的執行程序,故排除B、C、D項,答案選擇A選項。

  6. 以下敘述中正確的是(A. 在C語(yǔ)言程序中,main函數必須放在其他函數的最前面

  B. 每個(gè)后綴為.c的C語(yǔ)言源程序都可以單獨進(jìn)行編譯

  C. 在C語(yǔ)言程序中,只有main函數才可以單獨進(jìn)行編譯

  D. 每個(gè)后綴為.c的C語(yǔ)言源程序都應該包含一個(gè)main函數

  【答案】B

  【解析】main函數可以在程序的任何位置。每一個(gè)可執行的C程序都必須有一個(gè)且只能有一個(gè)主函數。后綴名為.c的C語(yǔ)言源程序都可以單獨進(jìn)行編譯。main函數只是讓執行程序的系統知道該從哪里開(kāi)始執行程序(從主函數處執行),其他有關(guān)這個(gè)程序的子函數是通過(guò)函數調用來(lái)實(shí)現其功能(不需main函數)。答案選擇B選項。

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

  A. C語(yǔ)言編寫(xiě)的函數源程序,其文件名后綴可以是.c

  B. C語(yǔ)言編寫(xiě)的函數都可以作為一個(gè)獨立的源程序文件

  C. C語(yǔ)言編寫(xiě)的`每個(gè)函數都可以進(jìn)行獨立的編譯并執行;

  D. 一個(gè)C語(yǔ)言程序只能有一個(gè)主函數

  【答案】C

  【解析】C源程序經(jīng)過(guò)C編譯程序編譯之后生成一個(gè)后綴為的二進(jìn)制文件(稱(chēng)為目標文件),然后由稱(chēng)為“連接程序”(Link)的軟件,把此文件與C語(yǔ)言提供的各種庫函數連接起來(lái)生成一個(gè)后綴為的可執行文件。只有含有main函數的經(jīng)過(guò)編譯鏈接才能執行。答案選擇C選項。

  8. 以下敘述中錯誤的是(A. 一個(gè)C程序可以包含多個(gè)不同名的函數

  B. 一個(gè)C程序只能有一個(gè)主函數

  C. C程序在書(shū)寫(xiě)時(shí),有嚴格的縮進(jìn)要求,否則不能編譯通過(guò)

  D. C程序的主函數必須用main作為函數名

  【答案】C

  【解析】一個(gè)C程序有且只有一個(gè)主函數main。一個(gè)C程序可以包含多個(gè)不同名字的子函數。C程序在書(shū)寫(xiě)時(shí)沒(méi)有嚴格的縮進(jìn)要求。答案選擇C選項。

  9. 以下敘述中正確的是( )。

  A. C語(yǔ)言規定必須用main作為主函數名,程序將從此開(kāi)始執行

  B. 可以在程序中由用戶(hù)指定任意一個(gè)函數作為主函數,程序將從此開(kāi)始執行

  C. C語(yǔ)言程序將從源程序中第一個(gè)函數開(kāi)始執行;

  D. main的各種大小寫(xiě)拼寫(xiě)形式都可以作為主函數名,如:MAIN,Main等

  【答案】A

  【解析】用戶(hù)不能指定某函數為主函數,C語(yǔ)言規定,程序從main函數開(kāi)始執行,從main函數退出,C語(yǔ)言函數名區別大小寫(xiě)。答案選擇A選項。

  10. 下列敘述中錯誤的是( )。

  A. C程序可以由一個(gè)或多個(gè)函數組成

  B. C程序可以由多個(gè)程序文件組成

  C. 一個(gè)C語(yǔ)言程序只能實(shí)現一種算法

  D. 一個(gè)C函數可以單獨作為一個(gè)C程序文件存在

  【答案】C

  【解析】一個(gè)C程序可以有一個(gè)或多個(gè)程序文件,也可以有一個(gè)或多個(gè)函數,所以一個(gè)C語(yǔ)言程序可以實(shí)現多種算法,答案選擇C選項。

  c語(yǔ)言二級考試真題 4

  1: 第1題請編寫(xiě)函數fun,其功能使:將兩個(gè)兩位正整數a b合并形成一個(gè)整數放在c中。合并的方式使:將a數的十位和個(gè)位數依次放在c數的百位和個(gè)位上,b數的十位和個(gè)位數依次放在c數的千位和十位上。

  答案:

  void fun(int a,int b,long *c)

  {*c=(b/10)*1000+(a/10)*100+(b%10)*10+a%10;}

  2: 第2題請編寫(xiě)一個(gè)函數fun,它的功能使:計算n門(mén)課程的平均分,計算結果作為函數值返回。

  答案:

  float fun(float *a,int n)

  {float ave=0.0;

  int i;

  for(i=0;i

  ave+=a;

  ave/=n;

  return ave;}

  3: 第3題假定輸入的字符串中只包含字母和*號。請編寫(xiě)函數fun,它的功能使:將字符串尾部的*號全部刪除,前面和中間的*號不刪除。

  答案:

  void fun(char *a)

  {int i=0;

  char *p,*q;

  p=q=a;

  while(*p)

  p++;

  p--;

  while(*p==‘*’)

  p--;

  while(q<=p)

  {a=*q;

  i++;

  q++;}

  a=‘’;}

  4: 第4題請編寫(xiě)函數fun,其功能是:將兩個(gè)兩位數的正整數a b合并形成一個(gè)整數放在c中,合并的方式是:將a數的十位和個(gè)位數依次放在c的個(gè)位和百位上,b數的'十位和個(gè)位數依次放在c數的千位和十位上。

  答案:

  void fun(int a,int b,long *c)

  {c=(b/10)*1000+(a%10)*100+(b%10)*10+a/10;}

  5: 第5題 n名學(xué)生的成績(jì)已在主函數中放入一個(gè)帶頭節點(diǎn)的鏈表結構中,h指向鏈表的頭節點(diǎn)。請編寫(xiě)函數fun,它的功能是:求出平均分,由函數值返回。

  答案:

  double fun(strec *h)

  {double aver=0.0;

  while(h!=null)

  {aver+=h->s;

  hy=h->next;}

  aver/=n;

  return aver;}

  6: 第6題請編寫(xiě)函數fun,計算并輸出給定10個(gè)數的方差。

  答案:

  double fun(double x[10])

  {int i,j;

  double s=0.0,s1=0.0;

  for(i=0;i<10;i++)

  s1+=x;

  s1/=10;

  for(j=0;j<10;j++)

  s+=(x[j]-s1)*(x[j]-s1);

  s/=10;

  s=pow(s,0.5);

  return s;}

  7: 第7題請編寫(xiě)函數fun,其功能是:將兩個(gè)兩位數的正整數a b合并形成一個(gè)整數放在c 中。合并的方式是:將a數的十位和個(gè)位數依次放在c數的千位和十位上,b數的十位和個(gè)位數依次放在c數的個(gè)位和百位上。

  答案:

  void fun(int a,int b,long *c)

  {*c=(a/10)*1000+(a%10)*10+(b%10)*100+b/10;}

  c語(yǔ)言二級考試真題 5

  一、選擇題((1)—(10)、(21)—(40)每題2分,(11)—(20)每題1分,共70分)

 。1)下列數據結構中,屬于非線(xiàn)性結構的是

  A.循環(huán)隊列

  B.帶鏈隊列

  C.二叉樹(shù)

  D.帶鏈棧

 。2)下列數據結果中,能夠按照“先進(jìn)后出”原則存取數據的是

  A.循環(huán)隊列

  B.棧

  C.隊列

  D.二叉樹(shù)

 。3)對于循環(huán)隊列,下列敘述中正確的是

  A.隊頭指針是固定不變的

  B.隊頭指針一定大于隊尾指針

  C.隊頭指針一定小于隊尾指針

  D.隊頭指針可以大于隊尾指針,也可以小于隊尾指針

 。4)算法的空間復雜度是指

  A.算法在執行過(guò)程中所需要的計算機存儲空間

  B.算法所處理的數據量

  C.算法程序中的語(yǔ)句或指令條數

  D.算法在執行過(guò)程中所需要的臨時(shí)工作單元數

 。5)軟件設計中劃分模塊的一個(gè)準則是

  A.低內聚低耦合

  B.高內聚低耦合

  C.低內聚高耦合

  D. 高內聚高耦合

 。6)下列選項中不屬于結構化程序設計原則的是

  A.可封裝。

  B. 自頂向下。

  C.模塊化。

  D. 逐步求精。

 。7)軟件詳細設計產(chǎn)生的圖如下:

  該圖是

  A.N-S圖

  B.PAD圖

  C.程序流程圖

  D. E-R圖

 。8)數據庫管理系統是

  A.操作系統的一部分

  B.在操作系統支持下的系統軟件

  C.一種編譯系統

  D. 一種操作系統

 。9)在E-R圖中,用來(lái)表示實(shí)體聯(lián)系的圖形是

  A.橢圓圖

  B.矩形

  C.菱形

  D. 三角形

 。10)有三個(gè)關(guān)系R,S和T如下:

  其中關(guān)系T由關(guān)系R和S通過(guò)某種操作得到,該操作為

  A.選擇

  B.投影

  C.交

  D.并

 。11)以下敘述中正確的是

  A.程序設計的任務(wù)就是編寫(xiě)程序代碼并上機調試

  B.程序設計的任務(wù)就是確定所用數據結構

  C.程序設計的任務(wù)就是確定所用算法

  D.以上三種說(shuō)法都不完整

 。12)以下選項中,能用作用戶(hù)標識符的是

  A.void

  B.8_8

  C._0_

  D.unsigned

 。13)閱讀以下程序

  #include

  main()

  { int case; float printF;

  printf(“請輸入2個(gè)數:”);

  scanf(“%d %f”,&case,&pjrintF);

  printf(“%d %f ”,case,printF);

  }

  該程序編譯時(shí)產(chǎn)生錯誤,其出錯原因是

  A.定義語(yǔ)句出錯,case是關(guān)鍵字,不能用作用戶(hù)自定義標識符

  B.定義語(yǔ)句出錯,printF不能用作用戶(hù)自定義標識符

  C.定義語(yǔ)句無(wú)錯,scanf不能作為輸入函數使用

  D.定義語(yǔ)句無(wú)錯,printf不能輸出case的值

 。14)表達式:(int)((double)9/2)-(9)%2的值是

  A.0

  B.3

  C.4

  D.5

 。15)若有定義語(yǔ)句:int x=10;,則表達式x-=x+x的值為

  A.-20

  B.-10

  C.0

  D.10

 。16)有以下程序

  #include

  main()

  { int a=1,b=0;

  printf(“%d,”,b=a+b);

  printf(“%d ”,a=2*b);

  }

  程序運行后的輸出結果是

  A.0,0

  B.1,0

  C.3,2

  D.1,2

  17)設有定義:int a=1,b=2,c=3;,以下語(yǔ)句中執行效果與其它三個(gè)不同的是

  A.if(a>B. c=a,a=b,b=c;

  B.if(a>B. {c=a,a=b,b=c;}

  C.if(a>B. c=a;a=b;b=c;

  D.if(a>B. {c=a;a=b;b=c;}

 。18)有以下程序

  #include

  main()

  { int c=0,k;

  for (k=1;k<3;k++)

  switch (k)

  { default: c+=k

  case 2: c++;break;

  case 4: c+=2;break;

  }

  printf(“%d ”,C.;

  }

  程序運行后的輸出結果是

  A.3

  B.5

  C.7

  D.9

 。19)以下程序段中,與語(yǔ)句:k=a>b?(b>c?1:0):0;功能相同的是

  A.if((a>b)&&(b>C.) k=1;

  else k=0;

  B.if((a>b)||(b>C. k=1;

  else k=0;

  C.if(a<=B. k=0;

  else if(b<=C.k=1;

  D.if(a>B. k=1;

  else if(b>C.k=1;

  else k=0;

  20)有以下程序

  #include

  main()

  { char s[]={“012xy”};int i,n=0;

  for(i=0;s[i]!=0;i++)

  if(s[i]>=’a’&&s[i]<=’z’) n++;

  printf(“%d ”,n);

  }

  程序運行后的輸出結果是

  A.0

  B.2

  C.3

  D.5

 。21)有以下程序

  #include

  main()

  { int n=2,k=0;

  while(k++&&n++>2);

  printf(“%d %d ”,k,n);

  }

  程序運行后的輸出結果是

  A.0 2

  B.1 3

  C.5 7

  D.1 2

 。22)有以下定義語(yǔ)句,編譯時(shí)會(huì )出現編譯錯誤的是

  A.char a=’a’;

  B.char a=’ ’;

  C.char a=’aa’;

  D.char a=’x2d’;

 。23)有以下程序

  #include

  main()

  { char c1,c2;

  c1=’A’+’8’-‘4’;

  c2=’A’+’8’-‘5’;

  printf(“%c,%d ”,c1,c2);

  }

  已知字母A的ASCII碼為65,程序運行后的輸出結果是

  A.E,68

  B.D,69

  C.E,D

  D.輸出無(wú)定值

 。24)有以下程序

  #include

  void fun(int p)

  { int d=2;

  p=d++; printf(“%d”,p);}

  main()

  { int a=1;

  fun(a); printf(“%d ”,a);}

  程序運行后的輸出結果是

  A.32

  B.12

  C.21

  D.22

 。25)以下函數findmax擬實(shí)現在數組中查找最大值并作為函數值返回,但程序中有錯導致不能實(shí)現預定功能

  #define MIN -2147483647

  int findmax (int x[],int n)

  { int i,max;

  for(i=0;i

  { max=MIN;

  if(max

  return max;

  }

  造成錯誤的原因是

  A.定義語(yǔ)句int i,max;中max未賦初值

  B.賦值語(yǔ)句max=MIN;中,不應給max賦MIN值

  C.語(yǔ)句if(max

  D.賦值語(yǔ)句max=MIN;放錯了位置

 。26)有以下程序

  #include

  main()

  { int m=1,n=2,*p=&m,*q=&n,*r;

  r=p;p=q;q=r;

  printf(“%d,%d,%d,%d ”,m,n,*p,*q);

  }

  程序運行后的輸出結果是

  A.1,2,1,2

  B.1,2,2,1

  C.2,1,2,1

  D.2,1,1,2

 。27)若有定義語(yǔ)句:int a[4][10],*p,*q[4];且0≤i<4,則錯誤的賦值是

  A.p=a

  B.q[i]=a[i]

  C.p=a[i]

  D.p=&a[2][1]

 。28)有以下程序

  #include

  #include

  main()

  { char str[ ][20]={“One*World”, “One*Dream!”},*p=str[1];

  printf(“%d,”,strlen(p));printf(“%s ”,p);

  }

  程序運行后的'輸出結果是

  A.9,One*World

  B.9,One*Dream

  C.10,One*Dream

  D.10,One*World

 。29)有以下程序

  #include

  main()

  { int a[ ]={2,3,5,4},i;

  for(i=0;i<4;i++)

  switch(i%2)

  { case 0:switch(a[i]%2)

  {case 0:a[i]++;break;

  case 1:a[i]--;

  }break;

  case 1:a[i[=0;

  }

  for(i=0;i<4;i++) printf(“%d”,a[i]); printf(“ ”);

  }

  A.3 3 4 4

  B.2 0 5 0

  C.3 0 4 0

  D.0 3 0 4

 。30)有以下程序

  #include

  #include

  main()

  { char a[10]=”abcd”;

  printf(“%d,%d ”,strlen(a),sizeof(a));

  }

  程序運行后的輸出結果是

  A.7,4

  B.4,10

  C.8,8

  D.10,10

 。31)下面是有關(guān)C語(yǔ)言字符數組的描述,其中錯誤的是

  A.不可以用賦值語(yǔ)句給字符數組名賦字符串

  B.可以用輸入語(yǔ)句把字符串整體輸入給字符數組

  C.字符數組中的內容不一定是字符串

  D.字符數組只能存放字符串

 。32)下列函數的功能是

  fun(char * a,char * b)

  { while((*b=*a)!=’’) {a++,b++;} }

  A.將a所指字符串賦給b所指空間

  B.使指針b指向a所指字符串

  C.將a所指字符串和b所指字符串進(jìn)行比較

  D.檢查a和b所指字符串中是否有’’

 。33)設有以下函數

  void fun(int n,char * s) {……}

  則下面對函數指針的定義和賦值均是正確的是

  A.void (*pf)(); pf=fun;

  B.viod *pf(); pf=fun;

  C.void *pf(); *pf=fun;

  D.void (*pf)(int,char);pf=&fun;

 。34)有以下程序

  #include

  int f(int n);

  main()

  { int a=3,s;

  s=f(a);s=s+f(a);printf(“%d ”,s);

  }

  int f(int n)

  { static int a=1;

  n+=a++;

  return n;

  }

  程序運行以后的輸出結果是

  A.7

  B.8

  C.9

  D.10

 。35)有以下程序

  #include

  #define f(x) x*x*x

  main()

  { int a=3,s,t;

  s=f(a+1);t=f((a+1));

  printf(“%d,%d ’,s,t);

  }

  程序運行后的輸出結果是

  A.10,64

  B.10,10

  C.64,10

  D.64,64

 。36)下面結構體的定義語(yǔ)句中,錯誤的是

  A.struct ord {int x;int y;int z;}; struct ord a;

  B.struct ord {int x;int y;int z;} struct ord a;

  C.struct ord {int x;int y;int z;} a;

  D.struct {int x;int y;int z;} a;

 。37)設有定義:char *c;,以下選項中能夠使字符型指針c正確指向一個(gè)字符串的是

  A.char str[ ]=”string”;c=str;

  B.scanf(“%s”,C.;

  C.c=get);

  D.*c=”string”;

 。38)有以下程序

  #include

  #include

  struct A

  { int a; char b[10]; double c;};

  struct A f(struct A t);

  main()

  { struct A a={1001,”ZhangDa”,1098.0};

  a=f(a);jprintf(“%d,%s,%6.1f ”,a.a,a.b,a.C.;

  }

  struct A f(struct A t)

  ( t.a=1002;strcpy(t.b,”ChangRong”);t.c=1202.0;return t; )

  程序運行后的輸出結果是

  A.1001,ZhangDa,1098.0

  B.1001,ZhangDa,1202.0

  C.1001,ChangRong,1098.0

  D.1001,ChangRong,1202.0

 。39)若有以下程序段

  int r=8;

  printf(“%d ”,r>>1);

  輸出結果是

  A.16

  B.8

  C.4

  D.2

 。40)下列關(guān)于C語(yǔ)言文件的敘述中正確的是

  A.文件由一系列數據依次排列組成,只能構成二進(jìn)制文件

  B.文件由結構序列組成,可以構成二進(jìn)制文件或文本文件

  C.文件由數據序列組成,可以構成二進(jìn)制文件或文本文件

  D.文件由字符序列組成,其類(lèi)型只能是文本文件

【c語(yǔ)言二級考試真題】相關(guān)文章:

二級c語(yǔ)言真題(精選4套)11-15

全國計算機二級c語(yǔ)言真題(精選4套)11-15

計算機二級考試真題10-31

計算機二級考試真題和答案10-30

二級英語(yǔ)考試真題答案(精選8套)11-27

公共英語(yǔ)二級考試真題(精選5套)10-17

2024年二級建造師考試真題11-11

計算機二級考試真題及答案(精選10套)10-28

公共英語(yǔ)二級考試真題及答案(精選6套)10-17