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

c語(yǔ)言面試題及答案

時(shí)間:2023-02-27 02:27:21 試題 我要投稿
  • 相關(guān)推薦

c語(yǔ)言面試題及答案

  導讀:C語(yǔ)言是一門(mén)通用計算機編程語(yǔ)言,應用廣泛。在面試的時(shí)候刷一遍題庫,能夠幫助你加深各方面的知識點(diǎn),使自己面試成功的幾率更大。下面小編為大家帶來(lái)c語(yǔ)言面試題及答案,希望能幫助到大家。

c語(yǔ)言面試題及答案

  一、選擇題(1)~(10)每小題2分,(11)~(50)每小題1分,共60分)

  在下列各題A)、B)、C)、D)四個(gè)選項中,只有一個(gè)選項是正確的,請將正確的選項涂寫(xiě)在答題卡相應的位置上,答在試卷上不得分。

  (1)在數據結構中,從邏輯上可以把數據結構分為_(kāi)______。

  A)動(dòng)態(tài)結構和靜態(tài)結構      B)緊湊結構和非緊湊結構

  C)線(xiàn)性結構和非線(xiàn)性結構    D)內部結構和外部結構

  答案:C

  評析:邏輯結構反映數據元素之間的邏輯關(guān)系,線(xiàn)性結構表示數據元素之間一對一的關(guān)系,非線(xiàn)性結構表示數據元素之間一對多或多對一的關(guān)系。

  (2)若進(jìn)棧序列為l,2,3,4,進(jìn)棧過(guò)程中可以出棧,則下列選項中不可能的一個(gè)出棧序列是_______。

  A)1,4,3,2    B)2,3,4,l

  C)3,1,4,2    D)3,4, 2,1

  答案:C

  評析:棧是一種后進(jìn)先出表,在選項c中,先出棧的是3,說(shuō)明此時(shí)棧內必然有1,2,由于l先于2進(jìn)棧,所以l不可能在2之前出棧,故選項C這種出棧序列是不可能的。

  (3)排序方法中,將整個(gè)無(wú)序序列分割成若干小的子序列并分別進(jìn)行插入排序的方法,稱(chēng)為_(kāi)______。

  A)希爾排序    B)冒泡排序    C)插入排序    D)選擇排序

  答案:A

  評析:希爾排序法的基本思想是:將整個(gè)無(wú)序序列分割成若干小的子序列分別進(jìn)行插入排序。

  (4)在順序表(3,6,8,10,12,15,16,18,21,25,30)中,用二分法查找關(guān)鍵碼值11,所需的關(guān)鍵碼比較次數為_(kāi)______。

  A)2      B)3       C)4        D)5

  答案:C

  評析:二分法查找是用關(guān)鍵碼與線(xiàn)性表的中間元素比較,然后根據比較結果來(lái)判斷是結束查找,還是在左邊或者右邊子表按相同的方法繼續查找。本題中,與ll比較的關(guān)鍵碼分別為15,8,10,12四個(gè)。

  (5)對于n個(gè)結點(diǎn)的單向鏈表(無(wú)表頭結點(diǎn)),需要指針單元的個(gè)數至少為_(kāi)______。

  A)n-1    B)n    C)n+l      D)2n

  答案:C

  評析:在n個(gè)結點(diǎn)的單向鏈表(無(wú)表頭結點(diǎn))中,每個(gè)結點(diǎn)都有一個(gè)指針單元(即指針域),加上頭指針,至少需要n+1個(gè)指針單元。

  (6)在軟件開(kāi)發(fā)過(guò)程中,軟件結構設計是描述_______。

  A)數據存儲結構     B)軟件體系結構    C)軟件結構測試    D)軟件控制過(guò)程

  答案:B

  評析:從工程管理的角度來(lái)看,軟件設計分為兩步完成:概要設計和詳細設計。概要設計(又稱(chēng)結構設計)將軟件需求轉化為軟件體系結構、確定系統級接口、全局數據結構或數據庫模式。

  (7)模塊本身的內聚是模塊獨立性的重要性度量因素之一。在7類(lèi)內聚中,具有最強內聚    的一類(lèi)是_______。

  A)順序性?xún)染?    B)過(guò)程性?xún)染?     C)邏輯性?xún)染?   D)功能性?xún)染?/p>

  答案:D

  評析:內聚性是一個(gè)模塊內部各元素間彼此結合的緊密程度的度量。內聚共有7類(lèi),它們之間的內聚性由弱到強排列順序為:偶然內聚、邏輯內聚、時(shí)間內聚、過(guò)程內聚、通信內聚、順序內聚和功能內聚。

  (8)數據存儲和數據流都是_______,僅僅是所處的狀態(tài)不同。

  A)分析結果    B)事件    C)動(dòng)作    D)數據

  答案:D

  評析:數據流圖有4種成分:源點(diǎn)或終點(diǎn)、處理、數據存儲和數據流。數據存儲是處于靜止狀態(tài)的數據,數據流是處于運動(dòng)中的數據。

  (9)數據的完整性是指數據的正確性、有效性和_______。

  A)可維護性    B)獨立性    C)安全性    D)相容性

  答案:D

  評析:數據模型的完整性規則是給定的數據模型中數據及其聯(lián)系所具有的制約和依存規則,用以限定符合數據模型的數據庫狀態(tài)及其狀態(tài)的變化,以保證數據的正確性、有效性和相容性。

  (10)關(guān)系代數運算是以_______為基礎的運算。

  A)關(guān)系運算    B)謂詞運算    C)集合運算     D)代數運算

  答案:C

  評析:關(guān)系代數運算是以關(guān)系代數作為運算對象的一組高級運算的集合。它的基本操作是并、交、差、笛卡爾積,另外還包垂直分割(投影)、水平分割(選擇)、關(guān)系的結合(連接)等。

  (11)能將高級語(yǔ)言程序轉換成目標語(yǔ)言程序的是_______。

  A)調試程序    B)解釋程序    C)編譯程序      D)編輯程序

  答案:C

  評析:用高級語(yǔ)言編寫(xiě)的程序稱(chēng)為“源程序”,而計算機只能識別和執行由0和l組成的二進(jìn)制指令,所以高級語(yǔ)言必須先用一種稱(chēng)為“編譯程序”的軟件,把源程序翻譯成二進(jìn)制形式的“目標程序”。

  (12) _______是構成c語(yǔ)言程序的基本單位。

  A)函數    B)過(guò)程    C)子程序       D)子例程

  答案:A

  評析:c程序是由函數構成的。一個(gè)c源程序至少包含一個(gè)main函數,也可以包含一個(gè)main函數和若干個(gè)其他函數,因此,函數是c程序的基本單位。

  (13)可以在C語(yǔ)言中用做用戶(hù)標識符的是_______。

  A)void    B)as_b3    C)for        D)2c

  define    _123       -abc        Do

  WORD       If        cas         SIG

  答案:B

  評析:在c語(yǔ)言中規定,標識符只能由字母、數字和下劃線(xiàn)三種符號所組成,而且第一個(gè)字符必須是字母或下劃線(xiàn)。另外還需要注意的是關(guān)鍵字不能作標識符。選項A中void,C中for都為關(guān)鍵字,D中2c以字母開(kāi)頭。

  (14)若有以下類(lèi)型說(shuō)明語(yǔ)句:

  char w;int x;float y,z;

  則表達式w*x+z-y的結果為_(kāi)_______類(lèi)型。

  A)float    B)char     C)int   D)double

  答案:A

  評析:在進(jìn)行運算時(shí),不同類(lèi)型的數據參加運算,需要先將其轉換成同一類(lèi)型的數據,然后再進(jìn)行運算。轉換的順序由低到高為:char,short→int→unsigned→long→double→float,故結果為float型。

  (15)main(()

  {  float x=123A56;

  printf(“%-5.2f ”,x);

  }

  以上程序輸出的結果是________。

  A)123.4    B)123.5      C)123.45    D)123.46

  答案:D

  評析:f格式符,用來(lái)輸出實(shí)數,以小數的形式輸出!埃-m.nf”的含義是:輸出數據共占m列,其中n位小數,如果輸出位數小于m。則右端補空格。如果總長(cháng)度大于列數,則按實(shí)際情況四舍五入輸出。

  (16)下面語(yǔ)句的輸出結果是________。

  Printf(“%d\n”,strlen(“\t\”\065\xff\n”));

  A)14          B)8

  C)5           D)輸出項不合法,無(wú)正常輸出

  答案:C

  評析:在c語(yǔ)言中,以“\”開(kāi)頭的字符均為轉義字符,其中“\”后可跟l~3位八進(jìn)制數或在“\”后跟字母x及l(fā)~2位十六進(jìn)制數,以此來(lái)代表一個(gè)特定的字符。

  (17)下列程序的輸出結果是________。

  main()

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

  if(++a>0lI++b>0)++c;

  printf(“\na=%d,b=%d,c=%d”,a,b,C);

  }

  A)a=0,b=0,c=0       B)a=l,b=l,c=1

  C)a=l,b=O, c=I       D)a=0, b=1.c=1

  答案:C

  評析:

  “︱︱”是或運算,它有個(gè)“短路”的特點(diǎn)需要特別注意,當“︱︱”運算符左邊的表達式的值為真時(shí),則程序就不再對“︱︱”右邊的表達式的值去進(jìn)行運算,而是使得整個(gè)表達式的值直接為真。

  (18)下列程序的輸出結果是_________。

  Main()

  {  int i;

  for(i=1;i+l;i++)

  {  if(i>4){printlf(”%d”,i++);break;}

  }

  printf(“%d”,i++);

  }

  A)55                    B)56

  C)程序錯誤,沒(méi)有輸出    D)循環(huán)條件永遠為真,死循環(huán)

  答案:B

  評析:本程序中有個(gè)for循環(huán),但注意到for循環(huán)的條件是“i+l”,也就是只要i+l的值為真(非零值均為真),就執行循環(huán)。當i=l的時(shí),i+l的值為真,判斷if條件不成立,執行i++,輸出i的值為5。

  (19)下列程序的輸出結果是_________。

  #define A 100

  main()

  {  int i=O,sum=O;

  do{  if(I==(i/2)*2)continue;

  sum+=i;

  }while(++i<A);

  printf(“%d\n”,sum);

  }

  A)2500    B)2050    C)4    D)O

  答案:A

  評析:本題程序的功能是求1到_99之問(wèn)(包括1和99)所有奇數之和。程序中的while循環(huán)的終止條件為++i=100,在while循環(huán)體內,如果i是偶數,則執行continue,跳過(guò)這一次循環(huán),去執行下一次循環(huán),否則求和。最后輸出的值是1到99之間(包括l和99)所有奇數之和(1+99)*50/2=2500。

  (20)下列程序的輸出結果是_________。

  main()

  {  int I=3;

  switch(i)

  { case 1:

  case 2:printf(”%d”,i);

  case 3:

  case 4:break;

  default:printf(”OK”);

  }

  }

  A)0    B)3    C)OK    D)沒(méi)有任何輸出

  答案:D

  評析:在本題中,i的值為3,由于“case 3:”后面沒(méi)有break語(yǔ)句,所以繼續向下執行“case 4:”后面的語(yǔ)句,由于“case 4:”后面的語(yǔ)句為break強行退出switch語(yǔ)句,所以,本題沒(méi)有任何輸出。

  (21)下列程序執行后的輸出結果是________。

  main()

  {  int m[][3]={1,4,7,2,5,8,3,6,9};

  int i,k=2:

  for(I=0;i<3;i++)

  {printf(”%d”,m[k][i]);}

  }

  A)456    B)258    C)369    D)789

  答案:C

  評析:根據二維數組的定義得出:m[O][O]=1,m[O][1]=4,m[O][2]=7,m[1][0]=2,rail][1]=5,m[1][2]=8,m[2][0]=3,m[2][l]=6,m[2][2]=9,所以本題的輸出是第3行的值m[2][0],m[2][1],m[2][2],即369。

  (22)設已定義洱口k為int類(lèi)型變量,則以下for循環(huán)語(yǔ)句_________。

  for(i=0;k=-1,k=1;i++,k++)

  printf(”****\n”);

  A)判斷循環(huán)結束的條件不合法    B)是無(wú)限循環(huán)

  C)循環(huán)一次也不執行            D)循環(huán)只執行一次

  答案:B

  評析:本題定義了一個(gè)for循環(huán),它的循環(huán)變量是i,但由于本題并沒(méi)有去設置循環(huán)條件,所以循環(huán)的條件永遠默認為真,即無(wú)限次執行循環(huán)。

  (23)下面程序的輸出結果是___________。

  unsigned fun(unsigned num)

  {   unsigned k=1;

  do{

  k*=num%lO;

  num/=lO;

  }while(num);

  return(k);

  }

  main()

  {  unsigned n。26;

  printf(”%d\n”,fun(n));

  }

  A)0    B)4    C)12    D)無(wú)限次循環(huán)

  答案:C

  評析:本題定義了一個(gè)fun函數,用于num求和,具體執行過(guò)程如下:

  num=26:k=k*(num%10)=1*(26%10),所以k=6,num=num/10=2;

  num=2:k=k*(num%10)=6*(2%10),所以k=12,num=num/lO=O;

  num=O:while條件不成立,所以返回k的值12.

  (24)已知字母A的ASCII碼值是65,字母a的ASCII碼值是97,以下程序_______。

  main()

  {  char a=‘A’;

  int b=20;

  printf(“%d,%o”,(a=a+a,a+b,b),a+‘a(chǎn)’-‘A’,b);

  }

  A)表達式非法,輸出零或不確定值

  B)因輸出項過(guò)多,無(wú)輸出或輸出不確定值

  C)輸出結果為20,141

  D)輸出結果為20,141,20

  答案:C

  評析:本題中首先輸出逗號表達式“a=a+a,a+b,b”的值,即是20。然后以八進(jìn)制的形式輸出a+‘a(chǎn)’-‘A’的值為97對應的八進(jìn)制數141,由于最后一個(gè)表達式b沒(méi)有對應輸出格式的輸出項表列就不會(huì )輸出。

  (25)C語(yǔ)言函數返回值的類(lèi)型是由__________決定的。

  A)return語(yǔ)句中的表達式類(lèi)型    B)調用函數的主調函數類(lèi)型

  C)調用函數時(shí)臨時(shí)               D)定義函數時(shí)所指定的函數類(lèi)型

  答案:D

  評析:函數值的類(lèi)型應當是在定義函數時(shí)指定的。在定義函數時(shí)對函數值說(shuō)明的類(lèi)型一般應該和return語(yǔ)句中的表達式類(lèi)型一致,如果不_致,則以函數類(lèi)型為準,即函數類(lèi)型決定返回值的類(lèi)型。

  (26)下列程序執行后輸出的結果是___________。

  int d=l:

  fun(int p)

  {  int d。5;

  d+=p++;

  printf(”%d,”,d);

  }

  main()

  {  int a=3;

  fun(a);

  d+=a++:

  printf(”%d\n”,d);

  }

  A)8,12    B)9,13    C)8,4    D)9,5

  答案:C

  評析:本題執行過(guò)程如下:首先調用fun函數,使得實(shí)參a的值3傳遞給形參p,得到局部變量d=8,打印出局部變量d的值8;返回主函數執行“d+=a++”,此處的d為全局變量,所以d=1+3=4(由于本題是值傳遞,所以在函數fun中對p值的改變并不能引起a的改變),故本題的輸出是8,4。

  (27)已知下面的程序段,正確的判斷是_________。

  #define A 3

  #define B(A)((_A+1)‘a(chǎn))

  int a=3:

  ……

  X=3*(A+B(7));

  A)程序錯誤,不允許嵌套定義    B)X=93

  C)X=8l                        D)程序錯誤,宏定義不允許有參數

  答案:C

  評析:本題的宏定義是合法的,宏定義展開(kāi)為3*(3+((A+1)*a))=3*(3+((7+1)*3))=81。

  (28)定義int*swap()指的是_______。

  A)一個(gè)返回整型值的函數swap()

  B)一個(gè)返回指向整型值指針的函數swap()

  C)一個(gè)指向函數swap()的指針,函數返回一個(gè)整型值

  D)以上說(shuō)法均錯

  答案:B

  評析:一個(gè)函數可以帶回一個(gè)整型值、字符值、實(shí)型值等,但是也可以帶回指針型數據,即地址。本題的定義中,包括括號和·號,由于f)優(yōu)先級高于t。故它是一個(gè)返回整型指針的函數。

  (29)以下程序段的輸出結果是__________。

  main()

  {   char s1[10],s2[10],s3[10];

  scanf(”%s”,s1);gets(s2);gets(s3);

  puts(s 1);puts(s2);puts(s3);

  }

  輸入數據如下:  (此處代表回車(chē)符)

  aaa

  bbb

  A)aaa    B)aaa    C)aaa\0bbb\0    D)aaabbb

  bbb

  bbb

  答案:B

  評析:scanf是標準的輸入函數,在輸入字符串a(chǎn)aa時(shí),實(shí)際的內容為“aaa