中文字幕理论片,69视频免费在线观看,亚洲成人app,国产1级毛片,刘涛最大尺度戏视频,欧美亚洲美女视频,2021韩国美女仙女屋vip视频

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

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

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

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


本文來(lái)自CSDN博客,轉(zhuǎn)載請(qǐng)標(biāo)明出處:http://blog.csdn.net/luoweihui/archive/2008/06/29/2595831.aspx

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

聯(lián)系客服