97超级碰碰碰久久久_精品成年人在线观看_精品国内女人视频免费观_福利一区二区久久

c面試題總結含答案

時間:2022-07-13 14:06:59 總結范文 我要投稿
  • 相關推薦

c面試題總結(含答案)

4. static有什么用途?(請至少說明兩種)

c面試題總結(含答案)

1.限制變量的作用域

2.設置變量的存儲域

7. 引用與指針有什么區(qū)別?

1) 引用必須被初始化,指針不必。

2) 引用初始化以后不能被改變,指針可以改變所指的對象。

2) 不存在指向空值的引用,但是存在指向空值的指針。

8. 描述實時系統(tǒng)的基本特性

在特定時間內完成特定的任務,實時性與可靠性

9. 全局變量和局部變量在內存中是否有區(qū)別?如果有,是什么區(qū)別?

全局變量儲存在靜態(tài)數(shù)據(jù)庫,局部變量在堆棧

10. 什么是平衡二叉樹?

左右子樹都是平衡二叉樹 且左右子樹的深度差值的絕對值不大于1

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

沒有回收垃圾資源

12. 什么函數(shù)不能聲明為虛函數(shù)?

constructor

13. 冒泡排序算法的時間復雜度是什么?

O(n^2)

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

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

16. Internet采用哪種網絡協(xié)議?該協(xié)議的主要層次結構?

tcp/ip 應用層/傳輸層/網絡層/數(shù)據(jù)鏈路層/物理層

17. Internet物理地址和Ip地址轉換采用什么協(xié)議?

ARp (Address Resolution protocol)(地址解析)

18.Ip地址的編碼分為哪倆部分?

Ip地址由兩部分組成,網絡號和主機號。不過是要和“子網掩碼”按位與上之后才能區(qū)

分哪些是網絡位哪些是主機位。

2.用戶輸入M,N值,從1至N開始順序循環(huán)數(shù)數(shù),每數(shù)到M輸出該數(shù)值,直至全部輸出。寫

STYLE="color: rgb(255, 0, 0);" 出C程序。

循環(huán)鏈表,用取余操作做

3.不能做switch()的參數(shù)類型是:

switch的參數(shù)不能為實型。

1、局部變量能否和全局變量重名?

答:能,局部會屏蔽全局。要用全局變量,需要使用"::"

局部變量可以與全局變量同名,在函數(shù)內引用這個變量時,會用到同名的局部變量,而

不會用到全局變量。對于有些編譯器而言,在同一個函數(shù)內可以定義多個同名的局部變

量,比如在兩個循環(huán)體內都定義一個同名的局部變量,而那個局部變量的作用域就在那

個循環(huán)體內

2、如何引用一個已經定義過的全局變量?

答:extern

可以用引用頭文件的方式,也可以用extern關鍵字,如果用引用頭文件方式來引用某個

STYLE="color: rgb(255, 0, 0);" 在頭文件中聲明的全局變理,假定你將那個變寫錯了,那么在編譯期間會報錯,如果你

STYLE="color: rgb(255, 0, 0);" 用extern方式引用時,假定你犯了同樣的錯誤,那么在編譯期間不會報錯,而在連接期

STYLE="color: rgb(255, 0, 0);" 間報錯

3、全局變量可不可以定義在可被多個.C文件包含的頭文件中?為什么?

答:可以,在不同的C文件中以static形式來聲明同名全局變量。

可以在不同的C文件中聲明同名的全局變量,前提是其中只能有一個C文件中對此變量賦

初值,此時連接不會出錯

4、語句for( ;1 ;)有什么問題?它是什么意思?

答:和while(1)相同。

5、do……while和while……do有什么區(qū)別?

答:前一個循環(huán)一遍再判斷,后一個判斷以后再循環(huán)

6、請寫出下列代碼的輸出內容

STYLE="color: rgb(255, 0, 0);" #include

STYLE="color: rgb(255, 0, 0);" main()

STYLE="color: rgb(255, 0, 0);" {

STYLE="color: rgb(255, 0, 0);" int a,b,c,d;

STYLE="color: rgb(255, 0, 0);" a=10;

STYLE="color: rgb(255, 0, 0);" b=a++;

STYLE="color: rgb(255, 0, 0);" c=++a;

STYLE="color: rgb(255, 0, 0);" d=10*a++;

STYLE="color: rgb(255, 0, 0);" printf("b,c,d:%d,%d,%d",b,c,d);

STYLE="color: rgb(255, 0, 0);" return 0;

STYLE="color: rgb(255, 0, 0);" }

STYLE="color: rgb(255, 0, 0);" 答:10,12,120

1、static全局變量與普通的全局變量有什么區(qū)別?static局部變量和普通局部變量有什

么區(qū)別?static函數(shù)與普通函數(shù)有什么區(qū)別?

全局變量(外部變量)的說明之前再冠以static 就構成了靜態(tài)的全局變量。全局變量本身

就是靜態(tài)存儲方式, 靜態(tài)全局變量當然也是靜態(tài)存儲方式。這兩者在存儲方式上并無不

同。這兩者的區(qū)別雖在于非靜態(tài)全局變量的作用域是整個源程序,當一個源程序由多個

源文件組成時,非靜態(tài)的全局變量在各個源文件中都是有效的。 而靜態(tài)全局變量則限制

了其作用域, 即只在定義該變量的源文件內有效,在同一源程序的其它源文件中不能使

用它。由于靜態(tài)全局變量的作用域局限于一個源文件內,只能為該源文件內的函數(shù)公

用,因此可以避免在其它源文件中引起錯誤。

從以上分析可以看出, 把局部變量改變?yōu)殪o態(tài)變量后是改變了它的存儲方式即改變了它

的生存期。把全局變量改變?yōu)殪o態(tài)變量后是改變了它的作用域, 限制了它的使用范圍。

static函數(shù)與普通函數(shù)作用域不同。僅在本文件。只在當前源文件中使用的函數(shù)應該說

明為內部函數(shù)(static),內部函數(shù)應該在當前源文件中說明和定義。對于可在當前源文

件以外使用的函數(shù),應該在一個頭文件中說明,要使用這些函數(shù)的源文件要包含這個頭

文件

static全局變量與普通的全局變量有什么區(qū)別:static全局變量只初使化一次,防止在

其他文件單元中被引用;

static局部變量和普通局部變量有什么區(qū)別:static局部變量只被初始化一次,下一次

依據(jù)上一次結果值;

static函數(shù)與普通函數(shù)有什么區(qū)別:static函數(shù)在內存中只有一份,普通函數(shù)在每個被

STYLE="color: rgb(255, 0, 0);" 調用中維持一份拷貝

2、程序的局部變量存在于(堆棧)中,全局變量存在于(靜態(tài)區(qū) )中,動態(tài)申請數(shù)據(jù)

存在于( 堆)中。

3、設有以下說明和定義:

typedef union {long i; int k[5]; char c;} DATE;

struct data { int cat; DATE cow; double dog;} too;

DATE max;

則語句 printf("%d",sizeof(struct date)+sizeof(max));的執(zhí)行結果是:___52____

答:DATE是一個union, 變量公用空間. 里面最大的變量類型是int[5], 占用20個字節(jié).

所以它的大小是20

data是一個struct, 每個變量分開占用空間. 依次為int4 + DATE20 + double8 = 32.

所以結果是 20 + 32 = 52.

當然...在某些16位編輯器下, int可能是2字節(jié),那么結果是 int2 + DATE10 + double8

= 20

4、隊列和棧有什么區(qū)別?

隊列先進先出,棧后進先出

5、寫出下列代碼的輸出內容

#include

STYLE="color: rgb(255, 0, 0);" int inc(int a)

STYLE="color: rgb(255, 0, 0);" {

STYLE="color: rgb(255, 0, 0);" return(++a);

STYLE="color: rgb(255, 0, 0);" }

STYLE="color: rgb(255, 0, 0);" int multi(int*a,int*b,int*c)

STYLE="color: rgb(255, 0, 0);" {

STYLE="color: rgb(255, 0, 0);" return(*c=*a**b);

STYLE="color: rgb(255, 0, 0);" }

STYLE="color: rgb(255, 0, 0);" typedef int(FUNC1)(int in);

STYLE="color: rgb(255, 0, 0);" typedef int(FUNC2) (int*,int*,int*);

STYLE="color: rgb(255, 0, 0);" void show(FUNC2 fun,int arg1, int*arg2)

STYLE="color: rgb(255, 0, 0);" {

STYLE="color: rgb(255, 0, 0);" INCp=&inc;

STYLE="color: rgb(255, 0, 0);" int temp =p(arg1);

STYLE="color: rgb(255, 0, 0);" fun(&temp,&arg1, arg2);

STYLE="color: rgb(255, 0, 0);" printf("%d\n",*arg2);

STYLE="color: rgb(255, 0, 0);" }

STYLE="color: rgb(255, 0, 0);" main()

STYLE="color: rgb(255, 0, 0);" {

STYLE="color: rgb(255, 0, 0);" int a;

STYLE="color: rgb(255, 0, 0);" show(multi,10,&a);

STYLE="color: rgb(255, 0, 0);" return 0;

STYLE="color: rgb(255, 0, 0);" }

STYLE="color: rgb(255, 0, 0);" 答:110

7、請找出下面代碼中的所以錯誤

說明:以下代碼是把一個字符串倒序,如“abcd”倒序后變?yōu)椤癲cba”

1、#include"string.h"

2、main()

3、{

4、 char*src="hello,world";

5、 char* dest=NULL;

6、 int len=strlen(src);

7、 dest=(char*)malloc(len);

8、 char* d=dest;

9、 char* s=src[len];

10、 while(len--!=0)

11、 d++=s--;

12、 printf("%s",dest);

13、 return 0;

14、}

答:

方法1:

int main(){

char* src = "hello,world";

int len = strlen(src);

char* dest = (char*)malloc(len+1);//要為\0分配一個空間

char* d = dest;

char* s = &src[len-1];//指向最后一個字符

while( len-- != 0 )

*d++=*s--;

*d = 0;//尾部要加\0

printf("%s\n",dest);

<

【c面試題總結含答案】相關文章:

經典C/C++面試題07-11

c面試題08-04

華為C++/MFC面試題07-11

華為面試題C語言軟件工程師07-11

c語言實習總結07-10

華為C/C++筆試題07-11

華為入職試題(含答案)07-11

華為C/C++筆試題系列二07-11

互聯(lián)網公司面試題總結07-12

華為面試題07-11