華為C++筆試題資料_第1頁
華為C++筆試題資料_第2頁
華為C++筆試題資料_第3頁
華為C++筆試題資料_第4頁
華為C++筆試題資料_第5頁
已閱讀5頁,還剩9頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1.static有什么用途?(請至少說明兩種)1)在函數(shù)體,一個被聲明為靜態(tài)的變量在這一函數(shù)被調(diào)用過程中維持其值不變。2)在模塊內(nèi)(但在函數(shù)體外),一個被聲明為靜態(tài)的變量可以被模塊內(nèi)所用函數(shù)訪問,但不能被模塊外其它函數(shù)訪問。它是一個本地的全局變量。3)在模塊內(nèi),一個被聲明為靜態(tài)的函數(shù)只可被這一模塊內(nèi)的其它函數(shù)調(diào)用。那就是,這個函數(shù)被限制在聲明它的模塊的本地范圍內(nèi)使用2.引用與指針有什么區(qū)別?1)引用必須被初始化,指針不必。2)引用初始化以后不能被改變,指針可以改變所指的對象。3)不存在指向空值的引用,但是存在指向空值的指針。3.描述實時系統(tǒng)的基本特性在特定時間內(nèi)完成特定的任務(wù),實時性與可靠性。4.全局變量和局部變量在內(nèi)存中是否有區(qū)別?如果有,是什么區(qū)別?全局變量儲存在靜態(tài)數(shù)據(jù)庫,局部變量在堆棧。5.什么是平衡二叉樹?左右子樹都是平衡二叉樹且左右子樹的深度差值的絕對值不大于1。6.堆棧溢出一般是由什么原因?qū)е碌模繘]有回收垃圾資源。7.什么函數(shù)不能聲明為虛函數(shù)?constructor函數(shù)不能聲明為虛函數(shù)。8.冒泡排序算法的時間復雜度是什么?時間復雜度是O(n^2)。9.寫出floatx與“零值”比較的if語句。if(x>0.000001&&x<-0.000001)10.Internet采用哪種網(wǎng)絡(luò)協(xié)議?該協(xié)議的主要層次結(jié)構(gòu)?Tcp/Ip協(xié)議主要層次結(jié)構(gòu)為:應(yīng)用層/傳輸層/網(wǎng)絡(luò)層/數(shù)據(jù)鏈路層/物理層。11.Internet物理地址和IP地址轉(zhuǎn)換采用什么協(xié)議?ARP(AddressResolutionProtocol)(地址解析協(xié)議)12.IP地址的編碼分為哪倆部分?IP地址由兩部分組成,網(wǎng)絡(luò)號和主機號。不過是要和“子網(wǎng)掩碼”按位與上之后才能區(qū)分哪些是網(wǎng)絡(luò)位哪些是主機位。13.用戶輸入M,N值,從1至N開始順序循環(huán)數(shù)數(shù),每數(shù)到M輸出該數(shù)值,直至全部輸出。寫出C程序。循環(huán)鏈表,用取余操作做14.不能做switch()的參數(shù)類型是:switch的參數(shù)不能為實型。1.以下三條輸出語句分別輸出什么?[C易]charstr1[]="abc";charstr2[]="abc";constcharstr3[]="abc";constcharstr4[]="abc";constchar*str5="abc";constchar*str6="abc";cout<<boolalpha<<(str1==str2)<<endl;//輸出什么?cout<<boolalpha<<(str3==str4)<<endl;//輸出什么?cout<<boolalpha<<(str5==str6)<<endl;//輸出什么?文章出自/2.非C++內(nèi)建型別A和B,在哪幾種情況下B能隱式轉(zhuǎn)化為A?[C++中等]答:a.classB:publicA{……}//B公有繼承自A,可以是間接繼承的b.classB{operatorA();}//B實現(xiàn)了隱式轉(zhuǎn)化為A的轉(zhuǎn)化c.classA{A(constB&);}//A實現(xiàn)了non-explicit的參數(shù)為B(可以有其他帶默認值的參數(shù))構(gòu)造函數(shù)d.A&operator=(constA&);//賦值操作,雖不是正宗的隱式類型轉(zhuǎn)換,但也可以勉強算一個3.以下代碼中的兩個sizeof用法有問題嗎?[C易]voidUpperCase(charstr[])//將str中的小寫字母轉(zhuǎn)換成大寫字母{for(size_ti=0;i<sizeof(str)/sizeof(str[0]);++I)if('a'<=str[i]&&str[i]<='z')str[i]-=('a'-'A');}charstr[]="aBcDe";cout<<"str字符長度為:"<<sizeof(str)/sizeof(str[0])<<endl;UpperCase(str);cout<<str<<endl;4.以下代碼有什么問題?[C難]voidchar2Hex(charc)//將字符以16進制表示{charch=c/0x10+'0';if(ch>'9')ch+=('A'-'9'-1);charcl=c%0x10+'0';if(cl>'9')cl+=('A'-'9'-1);cout<<ch<<cl<<'';}charstr[]="Ilove中國";for(size_ti=0;i<strlen(str);++I)char2Hex(str[i]);cout<<endl;5.以下代碼有什么問題?[C++易]structTestcharstr[]=“Hello”;char*p=str;intn=10;請計算sizeof(str)=sizeof(p)=sizeof(n)=voidFunc(charstr[100]){請計算sizeof(str)=}void*p=malloc(100);請計算sizeof(p)=三、簡答題(25分)1、頭文件中的ifndef/define/endif干什么用?2、#include和#include“filename.h”有什么區(qū)別?3、const有什么用途?(請至少說明兩種)4、在C++程序中調(diào)用被C編譯器編譯后的函數(shù),為什么要加extern“C”聲明?5、請簡述以下兩個for循環(huán)的優(yōu)缺點//第一個for(i=0;i++;){if(condition)DoSomething();elseDoOtherthing();}//第二個if(condition){for(i=0;i++;)DoSomething();}else{for(i=0;i++;)DoOtherthing();}優(yōu)點:缺點:優(yōu)點:缺點:四、有關(guān)內(nèi)存的思考題(20分)voidGetMemory(char*p){p=(char*)malloc(100);}voidTest(void){char*str=NULL;GetMemory(str);strcpy(str,"helloworld");printf(str);}請問運行Test函數(shù)會有什么樣的結(jié)果?答:char*GetMemory(void){charp[]="helloworld";returnp;}voidTest(void){char*str=NULL;str=GetMemory();printf(str);}請問運行Test函數(shù)會有什么樣的結(jié)果?答:VoidGetMemory2(char**p,intnum){*p=(char*)malloc(num);}voidTest(void){char*str=NULL;GetMemory(&str,100);strcpy(str,"hello");printf(str);}請問運行Test函數(shù)會有什么樣的結(jié)果?答:voidTest(void){char*str=(char*)malloc(100);strcpy(str,“hello”);free(str);if(str!=NULL){strcpy(str,“world”);printf(str);}}請問運行Test函數(shù)會有什么樣的結(jié)果?答:五、編寫strcpy函數(shù)(10分)已知strcpy函數(shù)的原型是char*strcpy(char*strDest,constchar*strSrc);其中strDest是目的字符串,strSrc是源字符串。(1)不調(diào)用C++/C的字符串庫函數(shù),請編寫函數(shù)strcpy(2)strcpy能把strSrc的內(nèi)容復制到strDest,為什么還要char*類型的返回值?六、編寫類String的構(gòu)造函數(shù)、析構(gòu)函數(shù)和賦值函數(shù)(25分)已知類String的原型為:classString{public:String(constchar*str=NULL);//普通構(gòu)造函數(shù)String(constString&other);//拷貝構(gòu)造函數(shù)~String(void);//析構(gòu)函數(shù)String&operate=(constString&other);//賦值函數(shù)private:char*m_data;//用于保存字符串};請編寫String的上述4個函數(shù)。附錄C:C++/C試題的答案與評分標準一、請?zhí)顚態(tài)OOL,float,指針變量與“零值”比較的if語句。(10分)請寫出BOOLflag與“零值”比較的if語句。(3分)標準答案:if(flag)if(!flag)如下寫法均屬不良風格,不得分。If(flag==TRUE)if(flag==1)if(flag==FALSE)if(flag==0)請寫出floatx與“零值”比較的if語句。(4分)標準答案示例:constfloatEPSINON=0.00001;if((x>=-EPSINON)&&(x<=EPSINON)不可將浮點變量用“==”或“!=”與數(shù)字比較,應(yīng)該設(shè)法轉(zhuǎn)化成“>=”或“<=”此類形式。如下是錯誤的寫法,不得分。If(x==0.0)if(x!=0.0)請寫出char*p與“零值”比較的if語句。(3分)標準答案:if(p==NULL)if(p!=NULL)如下寫法均屬不良風格,不得分。If(p==0)if(p!=0)if(p)if(!)二、以下為WindowsNT下的32位C++程序,請計算sizeof的值(10分)charstr[]=“Hello”;char*p=str;intn=10;請計算sizeof(str)=6(2分)sizeof(p)=4(2分)sizeof(n)=4(2分)voidFunc(charstr[100]){請計算sizeof(str)=4(2分)}void*p=malloc(100);請計算sizeof(p)=4(2分)三、簡答題(25分)1、頭文件中的ifndef/define/endif干什么用?(5分)答:防止該頭文件被重復引用。2、#include和#include“filename.h”有什么區(qū)別?(5分)華為的C\C++面試題Q1:請你分別劃劃OSI的七層網(wǎng)絡(luò)結(jié)構(gòu)圖,和TCP/IP的五層結(jié)構(gòu)圖?:Q2:請你詳細的解釋一下IP協(xié)議的定義,在哪個層上面,主要有什么作用?:TCP與UDP呢?:總得來說前面兩道題目還是比較簡單的!:Q3:請問交換機和路由器分別的實現(xiàn)原理是什么?分別在哪個層次上面實:現(xiàn)的?:Q4:請問C++的類和C里面的struct有什么區(qū)別?:Q5:請講一講析構(gòu)函數(shù)和虛函數(shù)的用法和作用?:Q6:全局變量和局部變量有什么區(qū)別?實怎么實現(xiàn)的?操作系統(tǒng)和編譯器:是怎么知道的?:Q7:一些寄存器的題目,我忘記了具體實什么題目,主要好像是尋址和內(nèi):存管理等一些知識,不記得了。:Q8:8086是多少尉的系統(tǒng)?在數(shù)據(jù)總線上是怎么實現(xiàn)的?還有一些硬件方:面的知識我既不清楚了。:一般建議參加華為的研發(fā)面試的同學先要準備一下相關(guān)的知識,軟件的主要:是看看C和數(shù)據(jù)結(jié)構(gòu)方面的,硬件模電,數(shù)電和微機原理兩道c面試題1、一個學生的信息是:姓名,學號,性別,年齡等信息,用一個鏈表,把這些學生信息連在一起,給出一個age,在些鏈表中刪除學生年齡等于age的學生信息。程序代碼#Include"stdio.h"#Include"conio.h"structstu{charname[20];charsex;intno;intage;structstu*next;}*linklist;structstu*creatlist(intn){intI;//h為頭結(jié)點,p為前一結(jié)點,s為當前結(jié)點structstu*h,*p,*s;h=(structstu*)malloc(sizeof(structstu));h->next=NULL;p=h;for(i=0;i<n;i++){s=(structstu*)malloc(sizeof(structstu));p->next=s;printf("Pleaseinputtheinformationofthestudent:namesexnoage\n");scanf("%s%c%d%d",s->name,&s->sex,&s->no,&s->age);s->next=NULL;p=s;}printf("Createsuccessful!");return(h);}voiddeletelist(structstu*s,inta){structstu*p;while(s->age!=a){p=s;s=s->next;}if(s==NULL)printf("Therecordisnotexist.");else{p->next=s->next;printf("Deletesuccessful!");}}voiddisplay(structstu*s){s=s->next;while(s!=NULL){printf("%s%c%d%d\n",s->name,s->sex,s->no,s->age);s=s->next;}}intmain(){structstu*s;intn,age;printf("Pleaseinputthelengthofseqlist:\n");scanf("%d",&n);s=creatlist(n);display(s);printf("Pleaseinputtheage:\n");scanf("%d",&age);deletelist(s,age);display(s);return0;}2、實現(xiàn)一個函數(shù),把一個字符串中的字符從小寫轉(zhuǎn)為大寫。程序代碼#Include"stdio.h"#Include"conio.h"voiduppers(char*s,char*us){for(;*s!='\0'

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論