程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C >> 關於C >> C語言面試題詳解(1)

C語言面試題詳解(1)

編輯:關於C

1.static有什麼用途?

首先看看c程序的內存分布。

[iuvv訛4n經?橼枴數據庫,局部變量在棧。

3.堆棧溢出一般是由什麼原因導致的?

堆棧溢出一般是循環的遞歸調用導致的,如果使用的大數據結構的局部變量,也可能導致堆棧溢出。
沒有回收垃圾資源導致的是內存洩露最後內存耗盡。


4.不能做switch()的參數類型是:實型。(只能是int,或者char)。


5.寫出float x 與“零值”比較的if語句。

因為float的精度是小學點的後六位,所以正確的比較語句是:

if(x<0.000001&&x>-0.000001)


6.將一個字符轉化成整形的函數及其原型。

atol();

函數原型。

long atol(const char *nptr);


7.對一個頻繁使用的短小函數,在C中應該如何實現?在C++中如何實現?

C中只能使用宏定義,c++中可以使用inline。


8.軟件測試都有哪些種類:

黑盒測試:針對系統功能的測試。

白盒測試:測試函數功能和函數接口。


9.確定模塊的功能和模塊的接口是在軟件設計的哪個階段完成?

{

軟件設計的流程:

1)市場調研

2)需求分析

3)概要設計

4)詳細設計

5)編碼

6)測試

7)維護

}

答:確定模塊的功能和模塊的接口是在概要設計階段完成的。


10.

unsigned char *p1;

unsigned long *p2;

p1=(unsigned char *)0x801000;

p2=(unsigned long *)0x810000;

請問p1+5=? ;

p2+5=? ;

上述題目考查char的長度和long的長度。char的長度為1,long的長度為8.

而p1是一個地址,*p1才代表地址存放的值。而地址是16進制。

所以地址+5相當於地址的增加。0+5*1=5;0+5*4=20 = 014.

答:p1+5=0x801005 ;

p2+5=0x810014 ;


11.

請問下面程序有什麼錯誤?

int a[60][250][1000],i,j,k;

for(k=0;k<1000;k++)

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

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

a[i][j][k]=0;

把循環語句內外換一下

(編譯的時候沒錯,運行的時候出錯,但這個數組太大,如果放在棧中,還是會溢出,要作為全局變量)


12. unsigned char 0 到 255

#define Max_CB 500

void LmiQueryCSmd(Struct MSgCB * pmsg)

{

unsigned char ucCmdNum;

......

for(ucCmdNum=0;ucCmdNum

{

......;

}

死循環(unsigned char 0 到 255)


13.

以下是求一個數的平方的程序,請找出錯誤:

#define SQUARE(a)((a)*(a))

int a=5;

int b;

b=SQUARE(a++);//a被加了2次 a=7,b=25




  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved