




下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
內(nèi)存和釋放內(nèi)存。對于非數(shù)據(jù)類型的對象而言,光用maloc/free動態(tài)對象的malloc/free是庫函數(shù)而不是運算符,不在編譯器控制權(quán)限之內(nèi),不能夠把執(zhí)行構(gòu)造函數(shù)和malloc/freeC++語言需要一個能完成動態(tài)內(nèi)存分配和初始化deletedelete區(qū)ed]MoreEffctveede來釋放內(nèi)存?!眅w配套,dew配套delete[]pInt1;//-1-delete[]pInt2;//-2-據(jù)類型,delete和delete[]不能互用delete[]刪除一個數(shù)組,delete刪除一個指針簡單來說,newdeletenew[]delete[]delete[]會調(diào)用數(shù)組元號,delete就會認為指向的是單個對象,否則,它就會認為指向的是一個數(shù)組。CC++(待補充C++有哪些性質(zhì)(面向?qū)ο筇攸cvirtual定義。作為接口而存在純虛函數(shù)不具備函數(shù)的功能,一般不能直接被調(diào)用。 抽象類中不僅包括純虛函數(shù),也可包括虛函數(shù)。l抽象類必須用作派生其他類的基類,而不求下面函數(shù)的返回值(微軟int{intcountx=0;{countx++;x=x&(x-1);}return}x9999x21。。名稱即該目標原名稱和名不能再把該名作為其他變量名的別名一個,類型,因此本身不占單元,系統(tǒng)也不給分配單元。不能建立數(shù)組的在什么時候需要使用“常用常。常方式:const類型標識符&名=目標變量名;intaconstint&ra=a;ra=1;//錯誤a=1;//正確stringfoo(voidbar(string&那么下面的表達式將是的bar(foo(bar("o原因在于foo()和"oworld"串都會產(chǎn)生一個臨時對象,而在C++中,這些臨時對象都是這是的。型參數(shù)應(yīng)該在能被定義為const的情況下,盡量定義為const。&函數(shù)名(形參列表及類型說明)runtimeerror!注意事項:不能返回局部變量的。這條可以參照EffectiveC++[1]的Item31。主要原因是局不能返回函數(shù)new分配的內(nèi)存的這條可以參照EffectiveC++[1]的Item31。雖然不存在局部變量的銷毀問題,可對于這種情況(返回函數(shù)new分配內(nèi)存的有被賦予一個實際的變量,那么這個所指向的空間(由new分配)就無法釋放,造成memoryleak。(可以返回類成員的,但最好是const。這條原則可以參照EffectiveC++[1]的Item30。主要原因是當(dāng)對象的屬性是與某種業(yè)務(wù)規(guī)則(businessrule)相關(guān)聯(lián)的時候,其賦值常如果其它對象可以獲得該屬性的非常量或指針),那么對該屬性的單純賦值就會破壞(流操作符<<和>>,這兩個操作符常常希望被連續(xù)使用,例如:cout<<"o"<<endl; 惟一選擇。這個唯一選擇很關(guān)鍵,它說明了的重要性以及無可替代性,也許這就是C++語言中引入這個概念的原因吧。賦值操作符=。這個操作符象流操作符一樣,是可以連續(xù)使用的,例如:x=j=10;或者(x=10)=100;賦值操作符的返回值必須是一個左值,以便#include<iostream.h>int&put(intn);intvals[10];interror=-1;voidmain(){put(0)=10;//以put(0)函數(shù)值作為左值,等價于vals[0]=10;put(9)=20;//以put(9)函數(shù)值作為左值,等價于vals[9]=20;}int&put(int{if(n>=0&&n<=9)returnelse{cout<<"subscripterror";returnerror;}在另外的一些操作符中卻千萬不能返回:+-*/四則運算符它們不能返回,EffectiveC++[1]的Item23sideeffect,變量的,返回一個new分配的對象的、返回一個靜態(tài)對象。根據(jù)前面提到的作為返回值的三個規(guī)則第23兩個方案都被否決了靜態(tài)對象的又因為((a+b)==(c+d))會為true而導(dǎo)致錯誤。所以可選的只剩下返回一個對象了?!啊迸c多態(tài)的關(guān)系4ClassA;ClassB:ClassA{...};Bb;A&ref=“”與指針的區(qū)別是什么refpointer的區(qū)別。什么時候需要“它情況都推薦使用。以上2-8參考:http: 結(jié)構(gòu)與聯(lián)合有和區(qū)別結(jié)構(gòu)和聯(lián)合都是由多個不同的數(shù)據(jù)類型成員組成,但在任何同一時刻,聯(lián)合中只存放,對于聯(lián)合的不同成員賦值,將會對其它成員重寫,原來成員的值就不存在了,而對于結(jié)面關(guān)于“聯(lián)合”的題目的輸出#include<stdio.h>{intcharvoid{a.x[0]=a.x[1]=}答案:266(低位低地址,高地址,內(nèi)存占用情況是Ox010A){union{/*定義一個聯(lián)合*/inti;struct{/*在聯(lián)合中定義一個結(jié)構(gòu)*/charfirst;charnumber.i=0x4241/*聯(lián)合成員賦值 number.half.first,mumber.half.second);number.half.first='a';/*聯(lián)合中結(jié)構(gòu)成員賦值*/printf("%xn",number.i);}答案:AB(0x41對應(yīng)'A',是低位;Ox42對應(yīng)'B',是6261number.inumber.half共用一塊地址空間L學(xué)生和老師就是一種saclassA{...}classB{A*a;csa的關(guān)系,關(guān)聯(lián)性強于聚合:組合類與被組合類有相同的生命周期,組合類要對被組合類負責(zé),采用實心的菱形表示組合關(guān)系:實現(xiàn)的形式是:classA{...}classB{Aa;func(p:integer):integer;functionfunc(p:string):integer;。那么編譯器做過修飾后的函數(shù)名是靜態(tài)的。也就是說,它們的地址在編譯期就綁定了(早綁定),的子類的虛函數(shù)的地址無法給出)。因此,這樣的函數(shù)地址是在運行期綁定的(晚綁定)多態(tài)的作用AdoA除了“能夠讓應(yīng)用程序處理于DBMS中的數(shù)據(jù)“這一基本相似點外,兩者沒有太多共同AdoOLEDBCOMADO.NET擁有自己的ADO.NET接口并且基于微軟的.NET體系架構(gòu)。眾所周知.NETCOM體系,ADO.NETADOOLEDBADO.NETADO是兩種數(shù)據(jù)方式。ADO.net提供對XML的支持。Newdeletemallocfree的聯(lián)系答案:都是在堆(heap)malloc函數(shù)需要指定內(nèi)存分配的字節(jié)數(shù)并且不能初始化對象,newdeletedestructor,freedestructor.#defineDOUBLE(xx+x,i5*DOUBLE(5);i是多少?答案:i30intializationlistassignment?const、referenceC++main什么main運行期間都存在。例如全局變量,static變量。mallocnewstructclass的區(qū)答案:struct的成員默認是公有的,而類的成員默認是私有的。struct和class在其他方該使用struct關(guān)鍵字,否則,你應(yīng)該使用class關(guān)鍵字。當(dāng)一個類A中沒有任何成員變量與成員函數(shù),sizeof(A)的值是多少?,A[0],A[1]…了。,8086匯編下,邏輯地址和物理C++4種類型轉(zhuǎn)換方式static_cast,dynamic_castreinterpret_castdynamic_casts在幫助你瀏覽繼承層次上是有限制的。它不能被用于缺乏虛函數(shù)的類型上,static_cast的變量a與“零”的比較語句。BOOL:if(!a)orif(a)int:if(a==0)float:constEXPRESSIONEXP=0.000001if(a<EXP&&a>-EXP)pointer:if(a!=NULL)orif(a==const與#define1)const2)const常量進行調(diào)試,但是不能對宏常量進行調(diào)試。chara[]=“o”;a[0]=char*p“world”;//pp[0‘X’;//sizeof可以計算出數(shù)組的容量(字節(jié)數(shù))。sizeof(p),p為指針得到的是一個p所指的內(nèi)存容量。C++/C語言沒有辦法知道指針所指的內(nèi)存chara[]="oworld";char*p=a;cout<<sizeof(a)endl12字節(jié)cout<<sizeof(p)<<endl;//4字節(jié)voidFunc(char{cout<<sizeof(a)endl4100}相同的范圍(在同一個類中irtual不同的范圍(分別位于派生類與基類virtualvirtual關(guān)鍵字virtual求出兩個數(shù)中的較大Therearetwointvariables:aandb,don’tuse“if”,“?:”,“switch”orotherjudgementstatements,findoutthebiggestoneofthetwonumbers.答案:ababs(abcout<<FILE cout<<LINE FILE和LINEmain可能答案:可以,可以用_onexit一個函數(shù),它會在main之后執(zhí)行intfn1(void),fn2(void),fn3(void),fn4(void);voidmain(void{String_onexit(fn1_onexit(fn2_onexit(fn3_onexit(fn4printf("Thisisexecutedfirst.n"}int{printf("next.n");return0;}int{printf("executed");return0;}int{printf("is");return0;}int{printf("This");return0;}The_onexitfunctionispassedtheaddressofafunction(func)tobecalledwhentheprogramterminatesnormally.Successivecallsto_onexitcreatearegisteroffunctionsthatareexecutedinLIFO(last-in-first-out)order.Thefunctionspassedto_onexitcannottakeparameters.如何判斷一段程序是由C編譯程序還是由C++編譯程序編譯的?#ifdefcplusplus#i#iusingnamespacevoidOrder(vector<int>&data)//bubble{intcount=data.size()for(inti=0;i<count;{for(intj=0;j<count-i-1;{if(data[j]>{inttemp=data[j];data[j]=data[j+1];data[j+1]=temp;}}}voidmain(void{ifstreamin("c:\data.txt");if(!in){cout<<"fileerror!";}intwhile{}in.close()關(guān)閉輸入文件流ofstreamout("c:\result.txt");if(!out){cout<<"fileerror!";}for(i=0;i<data.size();i++)out<<data[i]<<"";out.close()}struct{intdata;Node*next;typedefstructNodeNode已知鏈表的頭結(jié)點head,寫一個函數(shù)把這個鏈表逆序(In)Node*ReverseList(Node*head)//鏈表逆序{if(head==NULL||head->next==NULL)returnhead;Node*p1=head;Node*p2=p1->next;Node*p3=p2->next;p1->next=NULL;while(p3!=NULL){p2->next=p1p1=p2;p2=p3p3=p3->next}p2->next=p1;head=p2;returnhead;}head1head2各自有序,請把它們合并成一個鏈表依然有序。(保留所Node*Merge(Node*head1,Node{if(head1==NULL)returnhead2;if(head2==NULL)returnhead1;Node*head=NULL;Node*p1=NULL;Node*p2=NULL;if(head1->data<head2->data{head=head1p1=head1->next;p2=head2;}{head=head2p2=head2->next;p1=head1;}Node*pcurrent=headwhile(p1!=NULL&&p2!={if(p1->data<=p2->data{pcurrent->next=p1;pcurrent=p1;p1=p1->next}{pcurrent->next=p2;pcurrent=p2;p2=p2->next}}if(p1!=NULLpcurrent->next=p1;if(p2!=NULL)pcurrent->next=p2;returnhead;}head1head2各自有序,請把它們合并成一個鏈表依然有序,這次要求用遞歸方法進行。(Autodesk)Node*MergeRecursive(Node*head1,Node{if(head1==NULL)returnhead2;if(head2==NULL)returnhead1;Node*head=NULLif(head1->data<head2->data{head=head1head->next=MergeRecursive(head1-}{head=head2head->next=MergeRecursive(head1,head2-}returnhead41.(Autodesk)classB{{cout<<"default}{}B(inti):data(i)//B(int)worksasaconverter(int->instanceof{cout<<"constructedbyparameter"<<data}intBPlay(B{returnb}intmain(intargc,char*argv[])constructedbyparameterdestructedB(5)Bt1=Play(5);Bt2= destructedt1return destructed }destructedintmain(intargc,char*argv[])constructedbyparameterdestructedB(5)Bt1=Play(5);Bt2=Play(10); constructedbyparameter10return0; destructedB(10)形參析構(gòu)destructed destructed二大的數(shù)()constintMINNUMBER=-32767intfind_sec_max(intdata[],int{intmaxnumber=data[0]intsec_max=MINNUMBER;for(inti=1;i<count;i++){if(data[i]>maxnumber{sec_max=maxnumber;maxnumber=data[i];}{if(data[i]>sec_max)sec_max=data[i];}}returnsec_max}KMP比classA:publicclassB,publicclassC{}那么A的內(nèi)存結(jié)構(gòu)大致是怎么樣的?compiler-dependent的,不同的實現(xiàn)其細節(jié)可能不同。如果不考慮有虛函數(shù)、虛繼C++對象模型(structnode{charval;node*boolcheck(constnode*head//returnfalse:無環(huán);true:O(n)boolcheck(constnode*{if(head==NULL)returnnode*low=head,*fast=head->next;while(fast!=NULL&&fast->next!=NULL){if(low==fast)returntrue;}return}2.1:voidtest1()//數(shù)組越界{charchar*str1="0123456789";strcpy(string,str1);}以下是片段void{charstring[10],str1[10];inti;for(i=0;i<10;{str1=}strcpy(string,str1}以下是片段voidtest3(char*{charif(strlen(str1)<=10{strcpy(string,str1}}{{試題1字符串str1需要11個字節(jié)才能存放下(包括末尾的’\0’),而string只有10個字節(jié)的空間,strcpy會導(dǎo)致數(shù)組越界;對試題2,如果面試者字符數(shù)組str1不能在數(shù)組內(nèi)結(jié)束可以給3分;如果面試者strcpy(string,str1)調(diào)用使得從str1內(nèi)存起到string內(nèi)存起所的字節(jié)數(shù)具有不確定性可以給7分,在此基礎(chǔ)上庫函數(shù)strcpy工作方式的10分;1個字節(jié)。剖析:考查對基本功的掌握字符串以’\0’結(jié)尾對數(shù)組越界把握的敏感度strcpy如果編寫一個標準strcpy函總分值為10,下面給出幾個不同得分的答案:2分以下是片段voidstrcpy(char*strDest,char*strSrc{while((*strDest++=*strSrc++)!=‘\0’}4 以下是片段voidstrcpy(char*strDest,constchar*strSrc//const2{while((*strDest++=*strSrc++)!=‘\0’}7分以下是片段voidstrcpy(char*strDest,constchar{//03分assert((strDestNULL&&(strSrcNULLwhile((*strDest++=*strSrc++)!=‘\0’);}10分以下是片段//3分!char*strcpy(char*strDest,constchar*strSrcassert((strDest!=NULL)&&(strSrc!=NULL));char*address=strDest;while((*strDest++=*strSrc++)!=‘\0’);returnaddress;}從2分到10分的幾個答案我們可以清楚的看到小小的strcpy竟然暗藏著這么多,真不是蓋的!strcpy啊!strlen的掌握,它沒有包括字符串末尾的'\0'版本為:intstrlen(constchar*str)//輸入?yún)?shù)const {assert(strtNULL0intlen=0;//注,一定要初始化。while((*str++)!='\0'{}return}voidGetMemory(char*p{p=(char*)malloc(100}voidTest(void{char*str=GetMemory(strstrcpy(str,"oworld");printf(str);}以下是片段char*GetMemory(voidcharp[]="oworld";returnp;}voidTest(void{char*str=NULL;str=GetMemory();printf(str);}voidGetMemory(char**p,intnum{*p=(char*)malloc(num}voidTest(void{char*str=NULL;GetMemory(&str,100);strcpy(str,"o");printf(str);}voidTest(void{char*str=(char*)malloc(100);strcpy(str,"o");free(str}char*str=GetMemory(strstrNULL;5charp[]= oreturn6GetMemory4GetMemory的參數(shù)為字符串指針的GetMemory中執(zhí)行申請內(nèi)存及賦值語句tiffanybracelets*p=(char*)malloc(numif(*p==NULL{}76char*str=(char*)str=6Testmalloc的內(nèi)存進行釋放。50~60的錯誤。但是要完全解答正確,卻也絕非易事。指針的理解變量的生存期及作用范圍以下是片段swap(int*p1,int*p2{int*p=*p1=*p2=}DEBUG運行時提示錯誤“AccessViolation”。該程序應(yīng)該改為swap(int*p1,int*p2{intp=*p1=*p2=}String的具體實Stringclass{String(constchar*strNULL);//String(constString&another);//~String();//String&operater=(constString&rhs);//char*m_data;//String::String(constchar{ifstrNULL//strlenNULL{m_data=newchar[1];m_data[0]='\0';}{m_data=newchar[strlen(str)+1];}}String::String(constString{m_data=newchar[strlen(another.m_data)+1];}String&String::operator=(constString{if(this==&rhs)return*this;delete[]m_datam_data=newchar[strlen(rhs.m_data)+1];return*this}{delete[]m_data}51.h頭文件中的答:防止該頭文件被重復(fù)#include<file.h>include答:前者是從StandardLibrary的路徑尋找和file.h,而后者是從當(dāng)前工作路徑搜尋并file.h。C++C編譯器編譯后的函數(shù),為什么要加extern“C”?C++CC++CexternexternC/C++語言中表明函數(shù)和全局變量作用范圍(可見性)的關(guān)鍵字,該通常,在模塊的頭文件中對本模塊提供給其它模塊的函數(shù)和全局變量以關(guān)鍵字。例如,如果模塊B欲該模塊A中定義的全局變量和函數(shù)時只需包含模塊A的頭文件即可。這樣,模塊B中調(diào)用模塊A中的函數(shù)時,在編譯階段,模塊B雖然找不到該函A編譯生成的目標代碼中找到此函數(shù)extern"C"是連接申明(linkagedeclaration),extern"C"修飾的變量和函數(shù)是按照C語言方式編譯和連接的,C++C的函數(shù)是怎樣編譯的:作為一種面向?qū)ο蟮恼Z言,C++CC++編C語言的不同。例如,假設(shè)某個函數(shù)的原型為:voidfoo(intx,intyC編譯器編譯后在符號庫中的名字為_fooC++編譯器則會產(chǎn)生像稱為“mangledname”)。_foo_int_int這樣的名字包含了函數(shù)名、函數(shù)參數(shù)數(shù)量及類型信息,C++就是靠這種機制來C++voidfoointx,intyvoidfoo(intx,floaty)編未加extern"C"時的連接方C++A//A頭文件moduleA.h#ifndefMODULE_A_H#defineMODULE_A_Hintfoo(intx,inty);在模塊B中該函數(shù)//B實現(xiàn)文件#include"moduleA.h"加extern"C"后的編譯和連接方加extern"C"后,模塊A的頭文件變?yōu)?/A頭文件moduleA.h#ifndefMODULE_A_H#defineMODULE_A_Hextern"C"intfoointx,intyBfoo(2,3模塊A編譯生成foo的目標代碼時,沒有對其名字進行特殊處理,采用了C語言的方如果在模塊A中函數(shù)了foo為extern"C"類型,而模塊B中包含的是externintfoo(intx,inty)BA中的函數(shù);反之亦然。,語言是怎么做的,還要問一問它為什么要這么做是什么,這樣我們可以更深入地理解許多問題):C++C及其它語言的混合編程。,明白了C++中extern"C"的設(shè)立,我們下面來具體分析extern"C"通常的使用技巧:extern"C"的慣用法在C++中C語言中的函數(shù)和變量,在包含C語言頭文件(假設(shè)為cExample.h)extern{#include},在.cextern"C"時會出現(xiàn)編譯語法錯誤。C++C函數(shù)例子工程中包含的三個文件的源代碼如下:/*c語言頭文件:cExample.h#ifndefC_EXAMPLE_H#defineC_EXAMPLE_Hexternintadd(intx,inty);/*c語言實現(xiàn)文件:cExample.c#include"cExample.h"intadd(intx,inty){returnx+}c++add:cppFile.cppextern"C"{#include}intmain(intargc,char*{return0;}如果C++調(diào)用一個C語言編寫的.DLL時,當(dāng)包括.DLL的頭文件或接口函數(shù)時,應(yīng)extern"C" 在C中C++語言中的函數(shù)和變量時,C++的頭文件需添加extern"C",但是在C語言中不能直接了extern"C"的該頭文件,應(yīng)該僅將C文件中將C++中定義的extern"C"函數(shù)為extern類型。CC++函數(shù)例子工程中包含的三個文件的源代碼如下//C++#ifndefCPP_EXAMPLE_H#defineCPP_EXAMPLE_Hextern"C"intadd(intx,inty);//C++#include"cppExample.h"intadd(intx,inty){returnx+}/*C實現(xiàn)文件/*這樣會編譯出錯:#include"cExample.h"intmain(intargc,char*argv[]{add(2,3return}15題目的解答請參考《C++中extern“C”含義探索》注解:c筆試題(含參考答案)Whatisdisplayedwhenf()iscalledgiventhecode:classNumber{stringNumber():type(“void”){explicitNumber(short):type(“short”){}Number(int):type(“int”){}voidShow(constNumber&n){cout<<n.type;}voidf(){shorts=42;}NoneoftheWhichisthecorrectoutputforthefollowingcodedoubledArray[2]={4,8},*p,*q;p=q=p+cout<<q–p<<cout<<(int)q-(int)p<<1and8and4and8and雖然傳入的是short類型,但是short類型的構(gòu)造函數(shù)被生命被explicit,也就是只能顯示類qpe88Sony筆試*#defineN8intmain(){inti;intj;int|||return}voidsort();intmain(){intarray[]={45,56,76,234,1,34,23,2,3}//數(shù)字任//意給出sort();return}voidsort({|| }intPheponatch(int);intmain(){printf("The10this%d",Pheponatch(10));return0;}intPheponatch(int{||}下列程序運行時會,請找出錯誤并改正,并且說明原因typedefstruct{TNode*left;TNode*right;intvalue;}TNode*root=NULL;voidappend(intN);intmain(){append(17)Again,}voidappend(int{TNode*NewNode=(TNode*)malloc(sizeof(TNode));{}{TNode*temp;while((N>=temp.value&&temp.left!=NULL)||(N{while(N>=temp.value&&temp.left!=NULL) }}}請你分別畫出OSI的七層網(wǎng)絡(luò)結(jié)構(gòu)圖TCP/IP的五層結(jié)構(gòu)圖。表示層:處理在兩個通信系統(tǒng)換信息的表示方傳輸層:向用戶提供可靠的端到端服務(wù)。UDPTCP協(xié)議。絡(luò)互聯(lián)等功能。數(shù)據(jù)傳輸單元是分組。IP地址,路由器,IP協(xié)議。UDP呢?么知道的?59.8086是多少位的系統(tǒng)?在數(shù)據(jù)總線8086微處理器共有4個16位的段寄存器,在尋址內(nèi)存單元時,用它們直接或間接地存放SS:存放當(dāng)前執(zhí)行的程序所用堆棧的段地址。由cs:ip構(gòu)成指令地址,ss:sp構(gòu)成堆棧的棧頂?shù)刂分羔?。DS和ES用作數(shù)據(jù)段和附加段的8086/8088微處理器的器管地址線(碼)與尋址范圍:N條地址線尋址范圍2.8086201MB808616168086/8088采用分段的方法對器進行管理。具體做法是:把1MB的器空間分成若干段,每段容量為64KB,每段器的起始地址必須是一個能被16整除的地址碼,即在20位的二進制地址碼中最低4位必須是“0”。每個段首地址的高16位二進制代碼就是物理地址是由8086/8088地址引線送出的20位地址碼,它用來參加器的地址在硬件上起作用的是物理地址,物理地址=地址×10H十偏移地intatoi(char*s)inti=(j=4,k=8,l=16,m=32printf(“%d”i);實現(xiàn)雙向鏈表刪除一個節(jié)點P,在節(jié)點P后一個節(jié)點,寫出這兩個函數(shù)寫一個函數(shù),將其中的\t4Windows程序的是哪里?寫Windows如何定義一個類的成員函數(shù)為回調(diào)函數(shù)C++里面如何constvoidf(void)函數(shù)為C程序中的庫函數(shù)intb;Aconstint*a=Bconst*inta=Cconstint*consta=Dintconst*consta=&b;voidg(base&b){}voidmain(){sons;}DTT出70買進一個x,80賣出,90買回,100賣出,這樁怎么樣4.7775050魚頭長又發(fā)現(xiàn)她家的表比里的時間慢了兩分鐘,則。手表比里的時間50510020A袋子上的是這樣寫的:B袋子上的話是對的,金子在A袋子B袋子上的是這樣寫的:A袋子上的話是錯的,金子在A袋子里11.330521塊兩篇英文的,一是說有事不能應(yīng)邀,派別人去;另一篇是的,7天不給錢就走人(businessletter格式)。CPUCPUmain()ISOOSILayer1Layer2Layer3有線和無線有何區(qū)別?無線特別需要注意的是什么軟件開發(fā)五個主要step是什么5stepmakefileUNIX顯示文件夾中,文件名令是什么?能使文件內(nèi)容顯示在屏幕令是么?選擇題(5分,只有一個正確答案1AccsBcasCipDisdnpriAospfBbgpCis-isD中國智能網(wǎng)中,sspscpss7AincsBis41bCis41cDdtmf雙音多頻B多音雙頻C多音三頻D三音多頻6AcpuB輸入設(shè)備C器D接口7.脈沖編碼調(diào)制的簡稱是。ApcmBpamC(delta)MD8.普通線接口專業(yè)稱呼是。Arj11Brj45Crs232Dbnc9.現(xiàn)有的公共數(shù)據(jù)網(wǎng)都采用。A電路交換技術(shù)B報文交換技術(shù)C語音插空D分組交換10.ss7AstbBslbCsubD簡答題(10分簡述普通與IP的區(qū)別ss7ss7中國一號協(xié)議是如何在被叫號碼中主叫號碼的筆試:30動態(tài)隨機器的英文縮寫Dstatic有什么用途?(請至少說明兩1.限制變量的作用域(文件級的)答、1)必須被初始化,指針不必2)初始化以后不能被改變,指針可以改變所指的對象3)不存在指向空值的,但是存在指向空值的指針答、全局變量在靜態(tài)數(shù)據(jù)區(qū),局部變量在堆棧中1答、1.沒有回收資什么函數(shù)不能為虛函數(shù)答、Deconstructor可以為虛函數(shù)答、floatx與“零值”if語句if(x>0.000001&&x<-Internet采用哪種網(wǎng)絡(luò)協(xié)議?該協(xié)議tcp/ip應(yīng)用層/傳輸層/網(wǎng)絡(luò)層/數(shù)據(jù)鏈路層/InternetIP地址轉(zhuǎn)換采ARPAddressResolutionProtocol)(地址解析協(xié)議IP地址的編碼分為哪倆部分IP地址由兩部分組成,網(wǎng)絡(luò)號和主機號。不過是要和“子網(wǎng)掩碼”按位與之后才能區(qū)分用戶輸入M,N值1N開始順序循環(huán)數(shù)數(shù),每數(shù)到M輸出該數(shù)值,直C程序。不能做switch()答、switch局部變量能否和全局變量重名答、能,局部會全局。要用全局變量,需要使用個.C文件包含的頭文件中?為什么?答、可以,在不同的C文件中以static形式來同名全局變量可以在不同的C文件中同名的全局變量,前提是其中只能有一個C文件中對此變量賦for(;1;)有什么問題?它是while(1)do……while和while……do有什么請寫出下列代碼的輸出內(nèi)#include{inta,b,c,d;return0;}答、static數(shù)與static全局變量與普通的全局變量有什么區(qū)別?staticstatic答、全局變量(外部變量)static就構(gòu)成了靜態(tài)的全局變量。全局變量本身就是靜態(tài)方式,靜態(tài)全局變量當(dāng)然也是靜態(tài)方式。這兩者在方式上并無不同。這兩者的區(qū)別雖在于非靜態(tài)全局變量的作用域是整個源程序,當(dāng)一個源程序由多個源文件組成時,非靜態(tài)的全局變量在各個源文件中都是有效的。而靜態(tài)全局變量則限制了其由于靜態(tài)全局變量的作用域局限于一個源文件內(nèi),只能為該源文件內(nèi)的函數(shù)公用,因此可從以上分析可以看出,把局部變量改變?yōu)殪o態(tài)變量后是改變了它的方式即改變了它的生存期。把全局變量改變?yōu)殪o態(tài)變量后是改變了它的作用域,限制了它的使用范圍。,函數(shù)(static)函數(shù)應(yīng)該在當(dāng)前源文件中說明和定義。對于可在當(dāng)前源文件以外使,static全局變量與普通的全局變量有什么區(qū)別:static全局變量只初使化一次,防止在其他static局部變量和普通局部變量有什么區(qū)別:static局部變量只被初始化一次,下一次依據(jù)static函數(shù)與普通函數(shù)有什么區(qū)別:static函數(shù)在內(nèi)存中只有一份,普通函數(shù)在每個被調(diào)用程序的局部變量存在于(堆棧)中,全局變量存在于()(堆)設(shè)有以下說明和定義typedefunion{longi;intk[5];charc;}DATE;structdata{intcat;DATEcow;doubledog;}too;DATEmax;printf("%d",sizeof(structdate)+sizeof(max));答結(jié)果是 DATE是一個union,變量公用空間.里面最大的變量類型是int[5],占用20個字節(jié).所以它的大小是20datastruct,每個變量分開占用空間.int4DATE20double82032當(dāng)然...16位編輯器下int2字節(jié),int2DATE10double886.-1,2,7,28,,126281264^3-n^3-1(n0,2,4)n^3+1(n1,3,5)求給出算法和思路2A,B,一開始均為空.push出隊BApoppushBpopO(1),在c語言庫函數(shù)中將一個字符轉(zhuǎn)換成整型的函數(shù)是atool()嗎,這個函數(shù)的原答、函數(shù)名功能:把字符串轉(zhuǎn)換成長整型數(shù)longatol(constchar*nptr);int{longchar*str="98765432";l=atol(lstr);printf("string=%sinteger=%ld\n",str,l);}對于一個頻繁使用的短小函數(shù),在C語言中應(yīng)用什么實現(xiàn),C++中應(yīng)用什c用宏定義,c++用預(yù)處理指令#define一個常1年中有多少秒(忽略閏#defineSECONDS_PER_YEAR(60*60*24*#define語法的基本知識(例如:不能以分號結(jié)束,括號的使用,等等16位機的整型數(shù)溢出-L,告訴編譯器寫一個“標準”MIN這個宏輸入兩#defineMIN(A,B)((A)<=(B)(A):標識#define在宏中應(yīng)用的基本知識。這是很重要的,因為直到嵌入(inline)操作符變?yōu)镃的一部分,宏是方便產(chǎn)生嵌入代碼的唯一方法,Cif-then-else懂得在宏中地把參數(shù)用括號括起least=MIN(*p++,預(yù)處理器標識#error的目的是什的。只有書呆子才會讀C語言的附錄去找出象這種嵌入式系統(tǒng)中經(jīng)常要用到無限循環(huán),你怎么樣用C編寫死循環(huán)呢{}{}gotogotoBASIC/FORTRAN程序員。數(shù)據(jù)(Dataa一個整型數(shù)(An一個指向整型數(shù)的指針(Apointertoan一個指向指針的的指針,它指向的指針是指向一個整型數(shù)(Apointertoapointertoan10個整型數(shù)的數(shù)組(Anarrayof1010個指針的數(shù)組,該指針是指向一個整型數(shù)的(Anarrayof10pointersto10個整型數(shù)數(shù)組的指針(Apointertoanarrayof10thattakesanintegerasanargumentandreturnsaninteger)數(shù)(Anarrayoftenpointerstofunctionsthattakeanintegerargumentandreturnanintegerinta;//Anint*a;//Apointertoanint**a;//Apointertoapointertoaninta[10];//Anarrayof10int*a[10];//Anarrayof10pointerstoint(*a)[10];//Apointertoanarrayof10int(*a)(int);//Apointertoafunctionathattakesanintegerargumentandreturnsanint(*a[10])(int);//Anarrayof10pointerstofunctionsthattakeanintegerargumentandreturnaninteger關(guān)鍵字staticCstatic在函數(shù)體,一個被為靜態(tài)的變量在這一函數(shù)被調(diào)用過程中維持其值不變關(guān)鍵字const是什么含意我只要一聽到被面試者說:“const意味著常數(shù),我就知道我正在和一個業(yè)余者打交道。去nSakscontESPEmbeedSystemsPrormmiconst.如果你從const意味著只讀(Saks文章吧如果應(yīng)試者能正確回答這個問題我將問他一個附加的問題下面的都是么意思?constinta;intconsta;constint*a;int*constintconst*a就是說,指針指向的整型數(shù)是可以修改的,但指針是不可修改的)a是const呢?我也如下的幾下理由:關(guān)鍵字const的作用是為給讀你代碼的人傳達非常有用的信息,實際上,一個參數(shù)你就會很快學(xué)會感謝這點多余的信息。(當(dāng)然,懂得用const的程序員很少會留下的讓constconst可以使編譯器很自然地保護那些不希望被改變的參數(shù),防止其bug的出現(xiàn)。volatile給出ve精確地說就是優(yōu)化器在用到這個變量時必須每次都地重新ve變量的幾個例子:并行設(shè)備的硬件寄存器(如:狀態(tài)寄存器一個中斷服務(wù)子程序中會到的非自動變量(Non-automaticC程序員和嵌入式系統(tǒng)程序員的volatile變量。不懂得volatile內(nèi)容將會帶來。volatile完全的重要性。const還可以是volatilevolatileintsquare(volatileint{return*ptr*}volatile因為它可能被意想不到地改變。它const因為程序不應(yīng)該試圖去修改它。這段代碼的有個惡作劇。這段代碼的目的是用來返指針*ptr*ptrvolatileintsquare(volatileint{inta=b=*ptr;returna*b;}longsquare(volatileint{inta=*ptr;returna*a;}位操作(Bitvoid{unsignedinta=6;intb=-20;(a+b>6)puts(">6"):puts("<=}C語言中的整數(shù)自動轉(zhuǎn)換原則,我發(fā)現(xiàn)有些開發(fā)者懂得極少這些C語言同意一些令人的結(jié)構(gòu),下inta=5,b=7,c;c=a+++b;c=a+++因此,a6,b7c12我發(fā)現(xiàn)這個問題的最大好處是:這是一個關(guān)于代碼編寫風(fēng)格,代碼的可讀性,代碼的可修改性的好的話題9線形表ab為兩個有序升序的線形并成一個有序升序線形表h;Linklist*unio(Linklist*p,Linklist*q){linklist*R,*pa,*qa,*ra;}}}returnR;}用遞歸算法判斷數(shù)組a[N]是否為一boolfun(inta[],intn{if(n==1)returntrue;if(n==2)returna[n-1]>=a[n-returnfun(a,n-1)&&(a[n-1]>=a[n-2]}編寫算法,從10選出其中最大的10000個n編寫一unix程的4道面試題,應(yīng)聘的職位是搜索引擎工程師,后兩道超級難,(希望大家多給一些longjiaoji(long*a[],longb[],long*alength,longblength,long*單連表的建立,把'a'--'z'26個字母到連表中,并且倒敘,還要打??!1:typedefstruct{intdate_1;structval*next;void{char{p.date=c;}}}node*p=NULL;node*q=node*head=(node*)malloc(sizeof(node));head->data='';head->next=NULL;node*first=first->data='a';first->next=NULL;head->next=first;p=first;intlongth='z'-'b';inti=0;while(i<=longth{node*temp=(node*)malloc(sizeof(node));temp->data='b'+i;temp->next=NULL;q=temp;head->next=temp;temp->next=p;p=q;}可怕的題目終于來300萬輸入信息中的最熱門的前十條,我們每次輸255byte,1G,請描述思想,寫出算發(fā)(c語言)設(shè)計這個系統(tǒng)速度最好,請描述思想,寫出算發(fā)(c語言),空間和時間復(fù)雜度,#includestring.h{char*src="o,world";char*dest=NULL;dest=(char*)malloc(strlen(src));intlen=strlen(str);char*d=dest;char*s=src[len];}#include"string.h"#include"stdio.h"#include"malloc.h"{char*src="o,world";char*dest=NULL;dest=(char*)malloc(sizeof(char)*(strlen(src)+1));intlen=strlen(src);char*d=dest;char*s=src+len-1;}boolIsSymmetry(constchar*{constchar*q=p;intlen=0;{}boolbSign=true;if{for(int{if(*p++!=*q--){}}{}{}return}ASDL使用的是什么協(xié)議?并進行Static0。什么是預(yù)編譯,何時需要預(yù)編譯預(yù)編譯又稱為預(yù)處理,是做些代碼文本的替換工作。處理#開頭的指令,比如拷貝#include包c編譯系統(tǒng)在對程序進行通常的編譯之前,先進行預(yù)處理。c提供的預(yù)處理功能主要有以下 2)文件包含3)條件編譯線程是指進程內(nèi)的一個執(zhí)行單元,也是進程內(nèi)的可調(diào)度實體.與進程的區(qū)別排序和選擇排選擇排序(SelectinSort列中找到最小元素,存放到排序序列的起始位置,然后,再從剩余未排序元素中繼續(xù)尋找最小元素,然后放到排序序列末尾。以此類推,直到所有元素均排序完畢。ab同時為正或同時為負的邏輯表達式是(D。B、字符串倒寫一個函數(shù)將"tomiscat"倒序打印出來,即"catis#defineSPACE''#defineENDLchar*strTomiscat";//char*p1=str+strlen(str)-char*p2p1;//開始時,p1,p2chart=0;//ENDLfor(p2=p1+1;SPACE!=*p1;p1--,t=*p2,p1+1指向單詞的第一個字母,p2指向單詞的結(jié)尾,printf("%s}}catisTom寫一個遞歸函數(shù)將內(nèi)存中的字符串翻轉(zhuǎn)"abc"-寫一個函數(shù)將"tomiscat"將內(nèi)存中的字符串翻轉(zhuǎn),即"catis#include<stdio.h>#defineSPACE''#defineENDL'\0'char*s="Thequickbrownfoxjumpsoverthelazyvoidstr_reverse(char*p1,char*p2){*p1=*p2=(*p1)-*p1=(*p1)-(*p2);elsestr_reverse(++p1,--}voidstr_word_reverse(char*str){char*q1=str,*q2=str,*t;if(*q1==ENDL)return;//!elseq2=q1+1;while((*q2!=SPACE)&&(*q2!=ENDL)else}main(inta,char**{return}ThequickbrownfoxjumpsoverthelazydoggodyzalehtrevospmujxofnworbkciuqehTdoglazytheoverjumpsfoxbrownquick今天同學(xué)又問一道題,reverse(char*p)其實,要求越多,思路越確定,解如下#include<stdio.h>#include<string.h>char*s="0123456789";#defineENDL'\0'voidreverse(char*//staticstr_reversestaticchar*x=0;char*q=x+strlen(p)-1;*q=(*p)^(*q);}voidreverse2(char*p){for(char*o=p+strlen(p)-1,chart=*o;o!=p;o--}intmain(intc,char**argv){return}交換兩個數(shù)的宏定.Itearator各指針的區(qū)C++classstruct的區(qū)C++中(C++中)。classstruct(一classprivatepublic(二)成員的默認權(quán)限。class的成員默認是private權(quán)限,struct默認是public權(quán)限。除了這兩點,classstruct基本就是一個東西。語法上沒有任何其它區(qū)別。CC++structclass都區(qū)別很大,下面列舉的說明可能比較struct和class本來就是基本一樣的東西,無需多說。但這些說明可能有助于澄structclass的錯誤認識:Aa123};Astructclass,前提是這個類/結(jié)構(gòu)足夠簡單,比如所有的成員都是public的,所有的成員都是簡單類型,沒有顯式的構(gòu)造函數(shù)。structclass,反之亦可;struct5class
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度外墻保溫體板綠色認證與市場拓展合同
- 2025年度健康醫(yī)療產(chǎn)業(yè)投資合作協(xié)議書范文
- 2025年度影視演員代言合同及形象維護條款
- 二零二五年度汽車貸款合規(guī)審查合同
- 2025年度幼兒園托管與家庭教育支持服務(wù)協(xié)議
- 2025年沙盤模型制作項目評估報告
- 醫(yī)院門診部墻紙更換協(xié)議
- 農(nóng)村施工公路合同范本
- 2025年度體育賽事贊助商權(quán)益轉(zhuǎn)委托合同
- 寵物醫(yī)院裝修協(xié)議模板
- 節(jié)能降耗培訓(xùn)
- T-CHAS 20-2-11-2022 醫(yī)療機構(gòu)藥事管理與藥學(xué)服務(wù) 第2-11部分:臨床藥學(xué)服務(wù) 治療藥物監(jiān)測
- 質(zhì)量部架構(gòu)圖
- 結(jié)構(gòu)化學(xué)-第1章講義課件
- 粉塵防爆安全管理臺賬-全套
- 廣州退休申請表范本
- 管道完整性管理方法及應(yīng)用
- 傳媒侵權(quán)法介紹
- 麥茬花生高產(chǎn)栽培技術(shù)
- 玉米制種技術(shù)
- 中國旅游資源概述
評論
0/150
提交評論