freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

c、c程序員常見面試題深入剖析(編輯修改稿)

2024-10-20 20:40 本頁面
 

【文章內(nèi)容簡介】 tr)。后的str仍然為NULL。試題5中char p[] = “hello world”。return p。的p[]數(shù)組為函數(shù)內(nèi)的局部自動變量,在函數(shù)返回后,內(nèi)存已經(jīng)被釋放。這是許多程序員常犯的錯誤,其根源在于不理解變量的生存期。試題6的GetMemory避免了試題4的問題,傳入GetMemory的參數(shù)為字符串指針的指針,但是在GetMemory中執(zhí)行申請內(nèi)存及賦值語句 tiffanybracelets*p =(char *)malloc(num)。后未判斷內(nèi)存是否申請成功,應加上:if(*p == NULL){...//進行申請內(nèi)存失敗處理}試題7存在與試題6同樣的問題,在執(zhí)行char *str =(char *)malloc(100)。后未進行內(nèi)存是否申請成功的判斷。另外,在free(str)后未置str為空,導致可能變成一個“野”指針,應加上:str = NULL。試題6的Test函數(shù)中也未對malloc的內(nèi)存進行釋放。剖析:試題4~7考查面試者對內(nèi)存操作的理解程度,基本功扎實的面試者一般都能正確的回答其中50~60的錯誤。但是要完全解答正確,卻也絕非易事。對內(nèi)存操作的考查主要集中在:(1)指針的理解。(2)變量的生存期及作用范圍。(3)良好的動態(tài)內(nèi)存申請和釋放習慣。再看看下面的一段程序有什么錯誤:以下是引用片段: swap(int* p1,int* p2){int *p。*p = *p1。*p1 = *p2。*p2 = *p。}在swap函數(shù)中,p是一個“野”指針,有可能指向系統(tǒng)區(qū),導致程序運行的崩潰。在VC++中DEBUG運行時提示錯誤“Access Violation”。該程序應該改為:以下是引用片段: swap(int* p1,int* p2){int p。p = *p1。*p1 = *p2。*p2 = p。}第三篇:C、C++程序員應聘常見面試題(寫寫幫整理)C/C++程序員應聘常見面試題一.找錯題試題1: void test1(){ char string[10]。char* str1 = “0123456789”。strcpy(string, str1)。}試題2: void test2(){ char string[10], str1[10]。int i。for(i=0。istr1[i] = 39。a39。} strcpy(string, str1)。}試題3:void test3(char* str1){ char string[10]。if(strlen(str1)strcpy(string, str1)。} }試題4:void GetMemory(char *p){ p =(char *)malloc(100)。}void Test(void){ char *str = NULL。GetMemory(str)。strcpy(str, “hello world”)。printf(str)。}試題5:char *GetMemory(void){char p[] = “hello world”。return p。}void Test(void){char *str = NULL。str = GetMemory()。printf(str)。}試題6:void GetMemory(char **p, int num){ *p =(char *)malloc(num)。}void Test(void){ char *str = NULL。GetMemory(amp。str, 100)。strcpy(str, “hello”)。printf(str)。}試題7:void Test(void){ char *str =(char *)malloc(100)。strcpy(str, “hello”)。free(str)。...//省略的其它語句 }二.內(nèi)功題試題1:分別給出BOOL,int,float,指針變量 與“零值”比較的 if 語句(假設變量名為var)試題2:以下為Windows NT下的32位C++程序,請計算sizeof的值 void Func(char str[100]){ sizeof(str)= ? }void *p = malloc(100)。sizeof(p)= ?試題3:寫一個“標準”宏MIN,這個宏輸入兩個參數(shù)并返回較小的一個。另外,當你寫下面的代碼時會發(fā)生什么事? least = MIN(*p++, b)。試題4:為什么標準頭文件都有類似以下的結構?ifndef __INCvxWorksh define __INCvxWorksh ifdef __cplusplus extern “C” { endif /*...*/ifdef __cplusplus }endif endif /* __INCvxWorksh */試題5:編寫一個函數(shù),作用是把一個char組成的字符串循環(huán)右移n個。比如原來是“abcdefghi”如果n=2,移位后應該是“hiabcdefgh”函數(shù)頭是這樣的://pStr是指向以39。39。結尾的字符串的指針 //steps是要求移動的nvoid LoopMove(char * pStr, int steps){ //請?zhí)畛?..}試題6:已知WAV文件格式如下表,打開一個WAV文件,以適當?shù)臄?shù)據(jù)結構組織WAV文件頭并解析WAV格式的各項信息。WAVE文件格式說明表偏移地址 字節(jié)數(shù) 數(shù)據(jù)類型 內(nèi) 容 文件頭 00H 4 Char “RIFF”標志 04H 4 int32 文件長度 08H 4 Char “WAVE”標志 0CH 4 Char “fmt”標志 10H 4 過渡字節(jié)(不定)14H 2 int16 格式類別 16H 2 int16 通道數(shù)18H 2 int16 采樣率(每秒樣本數(shù)),表示每個通道的播放速度 1CH 4 int32 波形音頻數(shù)據(jù)傳送速率20H 2 int16 數(shù)據(jù)塊的調(diào)整數(shù)(按字節(jié)算的)22H 2 每樣本的數(shù)據(jù)位數(shù)24H 4 Char 數(shù)據(jù)標記符"data" 28H 4 int32 語音數(shù)據(jù)的長度試題7:編寫類String的構造函數(shù)、析構函數(shù)和賦值函數(shù),已知類String的原型為:class String {public:String(const char *str = NULL)。// 普通構造函數(shù)String(const String amp。other)。// 拷貝構造函數(shù)~ String(void)。// 析構函數(shù)String amp。 operate =(const String amp。other)。// 賦值函數(shù)private:char *m_data。// 用于保存字符串}。試題8:請說出static和const關鍵字盡可能多的作用 試題9:編寫一個標準strcpy函數(shù)三.技巧題試題1:請寫一個C函數(shù),若處理器是Big_endian的,則返回0;若是Little_endian的,則返回1 試題2:寫一個函數(shù)返回1+2+3+…+n的值(假定結果不會超過長整型變量的范圍)第四篇:C程序員應聘常見面試題深入剖析C/C++ 程序設計員應聘常見面試試題深入剖析本文的寫作目的并不在于提供C/C++程序員求職面試指導,而旨在從技術上分析面試題的內(nèi)涵。文中的大多數(shù)面試題來自各大論壇,部分試題解答也參考了網(wǎng)友的意見。許多面試題看似簡單,卻需要深厚的基本功才能給出完美的解答。企業(yè)要求面試者寫一個最簡單的strcpy函數(shù)都可看出面試者在技術上究竟達到了怎樣的程度,我們能真正寫好一個strcpy函數(shù)嗎?我們都覺得自己能,可是我們寫出的strcpy很可能只能拿到10分中的2分。讀者可從本文看到strcpy函數(shù)從2分到10分解答的例子,看看自己屬于什么樣的層次。此外,還有一些面試題考查面試者敏捷的思維能力。分析這些面試題,本身包含很強的趣味性。而作為一名研發(fā)人員,通過對這些面試題的深入剖析則可進一步增強自身的內(nèi)功。試題1:以下是引用片段: void test1(){char string[10]。char* str1 = “0123456789”。strcpy(string, str1)。}試題2:以下是引用片段:void test2(){char string[10], str1[10]。int i。for(i=0。i{str1= 39。39。a39。39。}strcpy(string, str1)。}試題3:以下是引用片段: void test3(char* str1){char string[10]。if(strlen(str1){strcpy(string, str1)。}}解答:試題1字符串str1需要11個字節(jié)才能存放下(包括末尾的’’),而string只有10個字節(jié)的空間,strcpy會導致數(shù)組越界。對試題2,如果面試者指出字符數(shù)組str1不能在數(shù)組內(nèi)結束可以給3分。如果面試者指出strcpy(string,str1)調(diào)用使得從str1內(nèi)存起復制到string內(nèi)存起所復制的字節(jié)數(shù)具有不確定性可以給7分,在此基礎上指出庫函數(shù)strcpy工作方式的給10分。對試題3,if(strlen(str1)剖析:考查對基本功的掌握:(1)字符串以’’結尾。(2)對數(shù)組越界把握的敏感度。(3)庫函數(shù)strcpy的工作方式,如果編寫一個標準strcpy函數(shù)的總分值為10,下面給出幾個不同得分的答案:2分以下是引用片段:void strcpy(char *strDest, char *strSrc){while((*strDest++ = * strSrc++)!= ‘’)。}4分以下是引用片段:void strcpy(char *strDest, const char *strSrc)//將源字符串加const,表明其為輸入?yún)?shù),加2分{while((*strDest++ = * strSrc++)!= ‘’)。}7分以下是引用片段:void strcpy(char *strDest, const char *strSrc){//對源地址和目的地址加非0斷言,加3分assert((strDest!= NULL)amp。amp。(strSrc!= NULL))。while((*strDest++ = * strSrc++)!= ‘’)。}10分以下是引用片段://為了實現(xiàn)鏈式操作,將目的地址返回,加3分!char * strcpy(char *strDest, const char *strSrc){assert((strDest!= NULL)amp。amp。(strSrc!= NULL))。char *address = strDest。while((*strDest++ = * strSrc++)!= ‘’)。return address。} 從2分到10分的幾個答案我們可以清楚的看到,小小的strcpy竟然暗藏著這么多玄機,真不是蓋的!需要多么扎實的基本功才能寫一個完美的strcpy啊!(4)對strlen的掌握,它沒有包括字符串末尾的39。39。39。39。讀者看了不同分值的strcpy版本,應該也可以寫出一個10分的strlen函數(shù)了,完美的版本為: int strlen(const char *str)//輸入?yún)?shù)const以下是引用片段:{assert(strt!= NULL)。//斷言字符串地址非0int len。while((*str++)!= 39。39。39。39。){len++。}return len。}試題4:以下是引用片段: void GetMemory(char *p){p =(char *)malloc(100)。}void Test(void){char *str = NULL。GetMemory(str)。strcpy(str, “hello world”)。printf(str)。}試題5:以下是引用片段: char *GetMemory(void){char p[] = “hello world”。return p。}void Test(void){char *str = NULL。str = GetMemory()。printf(str)。}試題6:以下是引用片段:void GetMemory(char **p, int num){*p =(char *)malloc(num)。}void Test(void){char *str = NULL。GetMemo
點擊復制文檔內(nèi)容
試題試卷相關推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1