欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費電子書(shū)等14項超值服

開(kāi)通VIP
C面試題

1、sizeof()和strlen()的使用?  
 
答:  
 
    1.從功能定義上,strlen函數,用來(lái)求字符串的長(cháng)度,sizeof函數是用來(lái)求指定變量或變量類(lèi)型等所占用內存的  
 
 
 
大??;  
 
    2.sizeof是運算符,而strlen是C庫函數strlen只能用char*做參數,且以'\0'結尾的;  
 
  對于靜態(tài)數組處理:  
 
     char str[20]="0123456789";  
 
     strlen(str)=10;   //表示數組中字符串的長(cháng)度  
 
     sizeof(str)=20;   //表示數組變量分配的長(cháng)度  
 
  對于指針處理:  
 
     char *str="0123456789";  
 
     strlen(str)=10;     //表示字符串的長(cháng)度  
 
     sizeof(str)=4;      //表示指針變量的所占內存大小  
 
     sizeof(*str)=1;     //表示'0'這個(gè)字符變量的所占內存大小  
 
 
 
2、 struct 和 class的區別?  
 
答:  
 
   (1)類(lèi)中的成員默認是private的,當是可以聲明為public,private 和protected,結構中定義的成員默認的都是  
 
 
 
public.  
 
   (2)結構中不允許定義成員函數,當是類(lèi)中可以定義成員函數.  
 
   (3)結構不可以存在繼承關(guān)系,當是類(lèi)可以存在繼承關(guān)系.  
 
3、 strcpy(), strcat(), strcmp,strlen(), strchr(), memcpy(), memcmp(), memset()的編寫(xiě)?  
 
 
 
4、 內存的分配方式的分配方式有幾種?  
 
答:  
 
   (1)從靜態(tài)存儲區域分配。內存在程序編譯的時(shí)候就已經(jīng)分配好,這塊內存在程序的整個(gè)運行期間都存在。例如  
 
 
 
全局變量。  
 
   (2)在棧上創(chuàng )建。在執行函數時(shí),函數內局部變量的存儲單元都可以在棧上創(chuàng )建,函數執行結束時(shí)這些存儲單元  
 
 
 
自動(dòng)被釋放。棧內存分配運算內置于處理器的指令集中,效率很高,但是分配的內存容量有限。  
 
   (3)從堆上分配,亦稱(chēng)動(dòng)態(tài)內存分配。程序在運行的時(shí)候用malloc或new申請任意多少的內存,程序員自己負責在  
 
 
 
何時(shí)用free或delete釋放內存。動(dòng)態(tài)內存的生存期由我們決定,使用非常靈活,但問(wèn)題也最多。  
 
 
 
5,、解釋堆和棧的區別?  
 
答:  
 
   (1)棧區(stack):由編譯器自動(dòng)分配釋放 ,存放函數的參數值,局部變量的值等。其操作方式類(lèi)似于數據結構中  
 
 
 
的棧。  
 
   (2)堆區(heap):一般由程序員分配釋放, 若程序員不釋放,程序結束時(shí)可能由OS回收 。注意它與數據結構中的  
 
 
 
堆是兩回事,分配方式倒是類(lèi)似于鏈表.(主要有:malloc/free,new/delete)  
 
 
 
6,、枚舉的用法,以及它與宏的區別?  
 
答:  
 
    枚舉(enum)作用:定義一組常量,而且這些常量組成了一個(gè)集合。當我們將emun參數傳遞給函數時(shí),如果傳遞了  
 
 
 
一個(gè)不屬于這個(gè)集合的參數,編譯器報錯。  
 
    區別:  
 
    枚舉是類(lèi)型,而宏沒(méi)有類(lèi)型。  
 
    枚舉將檢查其語(yǔ)法,而宏是簡(jiǎn)單的文本替換。  
 
 
 
7、 const的用法,以及聲明const變量與宏的區別?  
 
答:  
 
   const的用法有四種:  
 
   a): const對象和const類(lèi)型的對象;  
 
   b): const指針 和 指向const的指針 及兩者結合;  
 
   c): const 參數修飾 和 參數返回類(lèi)型的const修飾;  
 
   d): const類(lèi)成員 和 const 成員函數;  
 
   區別:  
 
   const常量有數據類(lèi)型, 而宏常量沒(méi)有數據類(lèi)型。編譯器可以對前者進(jìn)行類(lèi)型安全檢查,而對后者只能進(jìn)行字符  
 
 
 
替換,沒(méi)有類(lèi)型  
 
   安全檢查。而且字符替換可能會(huì )帶來(lái)料想不到的邊界效應。  
 
   有些集成化工具可以對const常量進(jìn)行調試, 但不能對宏量進(jìn)行調試。  
 
 
 
8、函數assert的用法?  
 
答:  
 
   斷言assert是僅在debug版本起作用的宏,用于檢查“不應該“發(fā)生的情況。程序員可以把assert看成一個(gè)在任  
 
 
 
何系統狀態(tài)下都可以安全使用的無(wú)害測試手段。  
 
 
 
9、用預處理指令#define 聲明一個(gè)常數,用以表明1年中有多少秒(忽略閏年問(wèn)題)?  
 
答: 
 
   #define SECONDS_PER_YEAR (60 * 60 * 24 * 365)UL  
 
 
 
10、 寫(xiě)一個(gè)"標準"宏MIN,這個(gè)宏輸入兩個(gè)參數并返回較小的一個(gè)?  
 
答: 
 
   #define MIN(A,B) ((A) <= (B) ? (A) : (B))   
 
 
 
11、嵌入式系統中經(jīng)常要用到無(wú)限循環(huán),你怎么樣用C編寫(xiě)死循環(huán)呢?  
 
答:  
 
   這個(gè)問(wèn)題用幾個(gè)解決方案。我首選的方案是:  
 
   while(1)  
 
   {  
 
   }  
 
 
 
   一些程序員更喜歡如下方案:  
 
   for(;;)  
 
   {  
 
   }  
 
 
 
12、用變量a給出下面的定義  
 
a) 一個(gè)整型數(An integer)   
 
答:a)     int a; // An integer   
 
b)一個(gè)指向整型數的指針( A pointer to an integer)   
 
答:b)     int *a; // A pointer to an integer   
 
c)一個(gè)指向指針的的指針,它指向的指針是指向一個(gè)整型數( A pointer to a pointer to an intege)  
 
答:c)     int **a; // A pointer to a pointer to an integer   
 
d)一個(gè)有10個(gè)整型數的數組( An array of 10 integers)   
 
答:d)     int a[10]; // An array of 10 integers   
 
e) 一個(gè)有10個(gè)指針的數組,該指針是指向一個(gè)整型數的。(An array of 10 pointers to integers)   
 
答:e)     int *a[10]; // An array of 10 pointers to integers   
 
f) 一個(gè)指向有10個(gè)整型數數組的指針( A pointer to an array of 10 integers)   
 
答: f)     int (*a)[10]; // A pointer to an array of 10 integers   
 
g) 一個(gè)指向函數的指針,該函數有一個(gè)整型參數并返回一個(gè)整型數(A pointer to a function that takes an   
 
 
 
integer as an argument and returns an integer)   
 
答:g)    int (*a)(int); // A pointer to a function a that takes an integer argument and returns an   
 
 
 
integer   
 
h) 一個(gè)有10個(gè)指針的數組,該指針指向一個(gè)函數,該函數有一個(gè)整型參數并返回一個(gè)整型數( An array of ten   
 
 
 
pointers to functions that take an integer argument and return an integer )  
 
答:h)    int (*a[10])(int); // An array of 10 pointers to functions that take an integer argument   
 
 
 
and return an integer   
 
 
 
13、關(guān)于內存對齊的問(wèn)題以及sizof()的輸出?   
 
答:  
 
   編譯器自動(dòng)對齊的原因:為了提高程序的性能,數據結構(尤其是棧)應該盡可能地在自然邊界上對齊。原因在于  
 
 
 
,為了訪(fǎng)問(wèn)未對齊的內存,處理器需要作兩次內存訪(fǎng)問(wèn);然而,對齊的內存訪(fǎng)問(wèn)僅需要一次訪(fǎng)問(wèn)。  
 
 
 
14、 static有什么用途?(請至少說(shuō)明兩種)  
 
答:  
 
   (1)在函數體,一個(gè)被聲明為靜態(tài)的變量在這一函數被調用過(guò)程中維持其值不變。  
 
   (2) 在模塊內(但在函數體外),一個(gè)被聲明為靜態(tài)的變量可以被模塊內所用函數訪(fǎng)問(wèn),但不能被模塊外其它函數  
 
 
 
訪(fǎng)問(wèn)。它是一個(gè)本地的全局變量。  
 
   (3) 在模塊內,一個(gè)被聲明為靜態(tài)的函數只可被這一模塊內的其它函數調用。那就是,這個(gè)函數被限制在聲明它  
 
 
 
的模塊的本地范圍內使用。  
 
 
 
15、引用與指針有什么區別?  
 
答:  
 
   (1) 引用必須被初始化,指針不必。  
 
   (2) 引用初始化以后不能被改變,指針可以改變所指的對象。  
 
   (3) 不存在指向空值的引用,但是存在指向空值的指針。  
 
 
 
16、什么是平衡二叉樹(shù)?  
 
答:  
 
   左右子樹(shù)都是平衡二叉樹(shù) 且左右子樹(shù)的深度差值的絕對值不大于1。  
 
 
 
17、堆棧溢出一般是由什么原因導致的?  
 
答:  
 
   沒(méi)有回收垃圾資源。  
 
 
 
18、什么是預編譯?何時(shí)需要預編譯?  
 
答:  
 
   (1)總是使用不經(jīng)常改動(dòng)的大型代碼體。   
 
   (2)程序由多個(gè)模塊組成,所有模塊都使用一組標準的包含文件和相同的編譯選項。在這種情況下,可以將所有  
 
 
 
包含文件預編譯為一個(gè)預編譯頭。  
 
 
 
19、隊列和棧有什么區別?  
 
答:   
 
   隊列先進(jìn)先出;棧后進(jìn)先出。  
 
 
 
20、數組和鏈表的區別?  
 
答:  
 
   數組:數據順序存儲,固定大??;  
 
   鏈表:數據可以隨機存儲,大小可動(dòng)態(tài)改變;  
 
 
 
21、為什么數組名作為參數,會(huì )改變數組的內容,而其它類(lèi)型如int卻不會(huì )改變變量的值?  
 
答:  
 
   當數組名作為參數時(shí),傳遞的實(shí)際上是地址。而其他類(lèi)型如int作為參數時(shí),由于函數參數值實(shí)質(zhì)上是實(shí)參的一  
 
 
 
份拷貝,被調函數內部對形參的改變并不影響實(shí)參的值。  
 
 
 
22、數據結構和算法:   
 
A:查找:  
 
(1)二分法查找;  
 
(2)  
 
(3)  
 
(4)  
 
B:寫(xiě)出下列算法的時(shí)間復雜度和實(shí)現排序:  
 
(1)冒泡排序;   
 
(2)選擇排序;   
 
(3)插入排序;   
 
(4)快速排序;   
 
(5)堆排序;   
 
(6)歸并排序;  
 
 
 
23、編寫(xiě)gbk_strlen函數,計算含有漢字的字符串的長(cháng)度,漢字作為一個(gè)字符處理;已知:漢字編碼為雙字節,其中  
 
 
 
首字節<0,尾字節在0~63以外;(如果一個(gè)字節是-128~127)? 


本文來(lái)自CSDN博客,轉載請標明出處:http://blog.csdn.net/luoweihui/archive/2008/06/29/2595831.aspx

本站僅提供存儲服務(wù),所有內容均由用戶(hù)發(fā)布,如發(fā)現有害或侵權內容,請點(diǎn)擊舉報。
打開(kāi)APP,閱讀全文并永久保存 查看更多類(lèi)似文章
猜你喜歡
類(lèi)似文章
C/C++筆試題-主要考察C/C++語(yǔ)言基礎概念、算法及編程,附參考答案
volatile與const學(xué)習筆記
iphone和Objective-C筆試題?
聯(lián)發(fā)博動(dòng)筆試
函數指針數組的定義
教你理解復雜的C/C++聲明  作者 Vikram A Punathambekar
更多類(lèi)似文章 >>
生活服務(wù)
分享 收藏 導長(cháng)圖 關(guān)注 下載文章
綁定賬號成功
后續可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服

欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久