C語言面試題大匯總個人覺得還是比較全_第1頁
C語言面試題大匯總個人覺得還是比較全_第2頁
C語言面試題大匯總個人覺得還是比較全_第3頁
C語言面試題大匯總個人覺得還是比較全_第4頁
C語言面試題大匯總個人覺得還是比較全_第5頁
已閱讀5頁,還剩12頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

C語言面試題大匯總個人覺得還是比較全4.static有什么用途(請至少說明兩種)1.限制變量的作用域2.設(shè)置變量的存儲域7.引用與指針始化,指針不必。2)引用初始化以后不能被改變,指針可以改變所指的8.描述實時系統(tǒng)的基本特性在特定時間內(nèi)完成特定的任務(wù),實時性與可靠性9.全局變量和局部變量在內(nèi)存中是否有區(qū)別如果有,是什么區(qū)別全局變量儲存在靜態(tài)數(shù)據(jù)庫,局部變量在堆棧10.什么是平衡二叉樹左右子樹都是平衡二叉樹且左右子樹的深度差值的絕對值不大于111.堆棧溢出一般是由什么原因?qū)е碌臎]有回收垃圾資源12.什么函數(shù)不能聲明為虛函數(shù)constructor13.冒泡排序算法的時0.000001)16.Internet采用哪種網(wǎng)絡(luò)協(xié)議該協(xié)議的主要層次結(jié)構(gòu)tcp/ip應(yīng)用層/傳輸層/網(wǎng)絡(luò)層/數(shù)InternetIP采用什么協(xié)議ARP(AddressResolution號。不過是要和“子網(wǎng)掩碼”按位與上之后才能區(qū)分哪些是網(wǎng)絡(luò)位哪些是主機(jī)位。1、局部變量能否和全局變量重名不會用到全局變量。對于有些編譯器而言,在同一個函數(shù)內(nèi)可以定義多個同名的局部變量,比如在兩個循環(huán)體內(nèi)都定義一個同名的局部變量,而那個局部變量的作用域就在那個循環(huán)體內(nèi)2、如何引用一個已經(jīng)定義過的全局變量可以用引用頭文件的方式,也可以用extern關(guān)鍵字,如果用引用頭文件方式來引用某個在頭文件中聲明的全局變理,假定你將那個變寫錯了,那么在編譯期間會報錯,如果你用ex3、全局變量可不可以定義在可被多個.C文件包含的頭文件中為什么答:可以,在不同的C文件中以static以在不同的C文件中聲明同名的全局變量,前提是其中只能有一斷以后再循環(huán)6、請寫出下列代碼的輸出內(nèi)容#include<stdio.h>main(){inta,b,c,d;a=10;b=a++;c=++a;d=10*a++;printf("b,c,d:%d,%d,%d",b,c,d);return0;}答:10,12,120函數(shù)與普通函數(shù)有什么區(qū)別全局變量(外部變量)的說明之前再冠以static就構(gòu)成了靜態(tài)的全局變上并無不同。這兩者的區(qū)別雖在于非靜態(tài)全局變量的作用域是整個源程序,當(dāng)一個源程序由多個源文件在定義該變量的源文件內(nèi)有效,在同一源程序的其它源文件中不能使用它。由于靜態(tài)全局變量的作用域局限于一個源文件內(nèi),只能為該源文件內(nèi)的函數(shù)公用,因此可以避免在其它源文件中引起錯誤。從以上分析可以看出,把局部變量改變?yōu)殪o態(tài)變量后是改變了它的存儲方式即改變了它的生存期。把全,限制了它的使用范圍。static函數(shù)與普通函數(shù)作用域不同。僅在本文件。只在當(dāng)前源文件中使用的函數(shù)應(yīng)該說明為內(nèi)部函數(shù)(static),內(nèi)部函數(shù)應(yīng)該在使用這些函數(shù)的源文件要包含這個頭文件他文件單元中被引用;用中維持一份拷貝2、程序的局部變量存在于(堆棧)中,全局變量存在于(靜態(tài)區(qū))中,動態(tài)申請數(shù)據(jù)存在于(堆)中。typedefunion{longi;intk[5];charc;}DATE;structdata{intcat;DATEcow;doubledog;}too;DATEmax;則語句printf("%d",sizeof(structdate)+sizeof(max));的執(zhí)行結(jié)果是:___52____double所以結(jié)果是20+32=52.4、隊列和棧有什么區(qū)別隊列先進(jìn)先出,棧后進(jìn)先出5、寫出下列代碼的輸出內(nèi)容#include<stdio.h>intinc(inta){return(++a);}intmulti(int*a,int*b,int*c){return(*c=*a**b);}typedefint(FUNC1)(intin);typedefint(FUNC2)(int*,int*,int*);voidshow(FUNC2fun,intarg1,int*arg2){INCp=&inc;inttemp=p(arg1);fun(&temp,&arg1,arg2);printf("%d\n",*arg2);}main(){inta;show(multi,10,&a);return0;}答:1107、請找出下面代碼中的所以錯誤說明:以下代碼是把一個字符串倒序,如“abcd”倒序后變?yōu)椤癲cba”ntmain(){char*src="hello,world";intlen=strlen(src);char*dest=(char*)malloc(len+1);//要為\0分配一個空間char*d=dest;char*s=&src[len-1];//指向最后\0printf("%s\n",dest);free(dest);//使用完,應(yīng)當(dāng)釋放空間,以免造成內(nèi)存匯泄露return0;}方法2:#include<stdio.h>#include<string.h>main(){charstr[]="hello,world";intlen=strlen(str);chart;for(inti=0;i<len/2;i++){t=str[i];str[i]=str[len-i-1];str[len-AB開始均為空.l=atol(lstr);printf("string=%sinteger=%ld\n",str,l);return(0);}微軟亞洲技術(shù)中心的面試題?。?!1.進(jìn)程和線程的差別。線程是指進(jìn)程內(nèi)的一個執(zhí)行單元,也是進(jìn)程內(nèi)的可調(diào)度實體.與進(jìn)程的區(qū)別:(1)調(diào)度:線程作為調(diào)度和分配的基本單位,進(jìn)程作為擁有資源的基本單位(2)并發(fā)性:不僅進(jìn)程之間可以并發(fā)執(zhí)行,同一個進(jìn)程的多個線程之間也可并發(fā)執(zhí)行(3)擁有資源:進(jìn)程是擁有資源的一個獨立單位,線程不擁有系統(tǒng)資源,但可以訪問隸屬于進(jìn)程的資源.(4)系統(tǒng)開銷:在創(chuàng)建或撤消進(jìn)程時,由于系統(tǒng)都要為之分配和回收資源,導(dǎo)致系統(tǒng)的開銷明顯大于創(chuàng)建或撤消線程時的開銷。2.測試方法人工測試:個人復(fù)查、抽查和會審機(jī)器測試:黑盒測試和白盒測試p間即在堆上,C++中對應(yīng)的是new操作符。程序在編譯期對變量和函數(shù)分配內(nèi)存都在棧上進(jìn)行,且程序運行過程中函數(shù)調(diào)用時參數(shù)的傳遞也在棧上進(jìn)行3.Windows下的內(nèi)存是如何管理的4.介紹.Net和.Net的安全性。5.客戶端如何訪問.Net組件實現(xiàn)WebService6.C/C++編譯器中虛表是如何完成的7.談式,大頁(4M)一級9.給兩個變量,如何找出一個帶環(huán)單鏈表中是什么地方出現(xiàn)環(huán)的一個遞增一,一接點時就是環(huán)出現(xiàn)的地方10.在IA32中一共有多少種辦法從用戶態(tài)跳到 (互斥變量)、查找窗口句柄..FindWindow,互斥,寫標(biāo)志到文件或注冊表,共享內(nèi)存。.12.如有什么用為什么要引入14.存儲過程是什么有什么用有什么優(yōu)點我的理解就是一堆sql的集合,可以建立非常復(fù)雜的查詢,編譯運行,所以運行一次后,以后再運行速度比單獨執(zhí)行SQL快很多網(wǎng)絡(luò)編程中設(shè)計并發(fā)服務(wù)器,使用多進(jìn)程與多線程,請問有什么區(qū)別?1,進(jìn)程:子進(jìn)程是父進(jìn)程的復(fù)制品。子進(jìn)程獲得父進(jìn)程數(shù)據(jù)空間、堆和棧的復(fù)制品。2,線程:相對與進(jìn)程而言,線程是一個更加接近與執(zhí)行體的概念,它可以與同進(jìn)程的其他線程共享數(shù)據(jù),但擁有自己的??臻g,擁有獨立的執(zhí)行序列。兩者都可以提高程序的并發(fā)度,提高程序運行效率和響應(yīng)時間。線程和進(jìn)程在使用上各有優(yōu)缺點:線程執(zhí)行開銷小,但不利于資源管理和保護(hù);而進(jìn)程正相反。同時,線程適合于在SMP機(jī)器上運行,而進(jìn)程則可以跨機(jī)器遷移。思科1.用宏定義寫出swap(x,y)#defineswap(x,y)\x=x+y;\y=x-y;\x=x-y;2.數(shù)組512;cout<<boolalpha<<((i&(i-1))false:true)<<endl;4.unsignedintxbp,n=3轉(zhuǎn)換后x=0b01100001unsignedintintvert(unsignedintx,intp,intn){unsignedint_t=0;unsignedint_a=1;for(inti=0;i<n;++i){_t總是使用不經(jīng)常改動的大型代碼體。2、程序由多個模塊組成,所有模塊都使用一組標(biāo)準(zhǔn)的包含文件和相同的編譯選項。在這種情況下,可以將所有包含文件預(yù)編譯為一個預(yù)編譯頭。char*constp;charconst*pconstchar*pcharstr1[]="abc";charstr2[]="abc";constcharstr3[]="abc";constcharstr4[]="abc";constchar*str5="abc";constchar*str6="abc";char*str7="abc";char*str8="abc";cout<<(str1==str2)<<endl;cout<<(str3==str4)<<endl;cout<<(str5==str6)<<endl;cout<<(str7==str8)<<endl;str5,str6,str7,str8是指針,它們指向相同的常量區(qū)域。CvoidUpperCasecharstrstr小寫字母轉(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;r實際只是一個指向字符串的指針,沒有任何額外的與數(shù)組相關(guān)的信息,因此sizeof作用于上只將其當(dāng)main(){inta[5]={1,2,3,4,5};int*ptr=(int*)(&a+1);printf("%d,%d",*(a+1),*(ptr-1));}輸出:2,5*(a+1)就是a[1],*(ptr-1)就是a[4],執(zhí)行結(jié)果是a個a數(shù)組的偏移,是偏移了一個數(shù)組的大小(本例是5個int1要根據(jù)指針類型加上一定的值,不同類型的指針+1之后增加的大小不同aa地址,a+1是數(shù)組下一元素的地址,即*str=&a;strcpy(str,"hello");printf(str);return0;}沒有為str分配內(nèi)存空間,將會發(fā)生異常問題出在將一個字符串復(fù)制進(jìn)一個字符變量指針?biāo)傅刂?。雖然可以正確輸出結(jié)果,但因為越界進(jìn)行內(nèi)在讀寫而導(dǎo)致程序崩潰。charsAAAprintfsssBprintfssAAA"是字符串常量。s是指AA個。.#defineMin(X,Y)((X)>(Y)(Y):(X))//結(jié)尾沒有;2、嵌入式系統(tǒng)中經(jīng)常要用到無限循環(huán),你怎子提示編譯器對象的值可能在編譯器未監(jiān)測到的情況下改變。tfunc(intparam)的函數(shù)。7.進(jìn)程之間通信的途徑共享存儲系統(tǒng)消息傳遞系統(tǒng)管道:以文件系統(tǒng)為基礎(chǔ)11.進(jìn)程死鎖的原因資源鳥策略、預(yù)防策略、避免策略、檢測與解除死鎖15.操作系統(tǒng)中進(jìn)程調(diào)度策略有哪幾種FCFS(先來先服務(wù)),優(yōu)先級,時間片輪轉(zhuǎn),多級反饋8.類的靜態(tài)成員和非靜態(tài)成員有何區(qū)別類的靜態(tài)成員每個類只有一個,非靜態(tài)成員每個對象一個9.純虛函數(shù)如何定義使用時應(yīng)注意什么virtualvoidf()=0;是接口,子類必須要實現(xiàn)10.數(shù)組和鏈表的區(qū)別數(shù)組:數(shù)據(jù)順序存儲,固定大小連表:數(shù)據(jù)可以隨機(jī)存儲,大小可動態(tài)改變tcpudpTCP控制、全雙工操作和多路復(fù)用技術(shù)等。與TCP不同,UDP并不提供對IP協(xié)議的可靠機(jī)制、流控制以及錯誤恢p(*(void**))ptr值是相同的2:intmain(){intx=3;printf("%d",x);return1;}問函數(shù)既然某中具體出錯信息1,要對絕對地址0x100000賦值,我們可以用(unsignedint*)0x100000=1234;那么要是想讓程序跳x*((void(*)())0x100000)();首先要將0x100000強制轉(zhuǎn)換成函數(shù)指針,即:(void(*)())0x100000然后再調(diào)用它:*((void(*)())0x100000)();用typedef可以看得更直觀些:typedefvoid(*)()voidFuncPtr;*((voidFuncPtr)0x100000)();2,已知一個數(shù)組table,用一個宏定義,求出數(shù)據(jù)的元素個數(shù)#defineNTBL#defineNTBL(sizeof(table)/sizeof(table[0]))面試題:線程與進(jìn)程的區(qū)別和聯(lián)系線程是否具有相同的堆棧dll是否有獨立的堆棧進(jìn)程是死的,只是一些資源的集合,真正的程序執(zhí)行都是線程來完成的,程序啟動的時候操作系統(tǒng)就幫你創(chuàng)建了一個主線程。每個線程有自己的堆棧。導(dǎo)致程序崩潰unsignedshortA=10;printf("~A=%u\n",~A);charc=128;printf("c=%d\n",c);分析下面的程序:voidGetMemory(char**p,intnum){

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論