語(yǔ)言經(jīng)典合集-c面試題_第1頁(yè)
語(yǔ)言經(jīng)典合集-c面試題_第2頁(yè)
語(yǔ)言經(jīng)典合集-c面試題_第3頁(yè)
語(yǔ)言經(jīng)典合集-c面試題_第4頁(yè)
語(yǔ)言經(jīng)典合集-c面試題_第5頁(yè)
已閱讀5頁(yè),還剩28頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1)必須被初始化,指針不必2)初始化以后不能被改變,指針可以改變所指的對(duì)象2)不存在指向空值的,但是存在指向空值的指針全局變量在靜態(tài)數(shù)據(jù)庫(kù),局部變量在堆棧沒(méi)有回收資源if(x>0.000001&&x<-tcp/ipARP(AddressResolutionProtocol)(地址解析協(xié)議部輸出。寫出C程序。switch的參數(shù)不能為實(shí)型。2、如何一個(gè)已經(jīng)定義過(guò)的全局變量?可以用頭文件的方式,也可以用extern關(guān)鍵字,如果用頭文件方式來(lái)答:可以,在不同的C文件中以static形式來(lái)同名全局變量。答:和while(1)相同。5、do……whilewhile……do{return0;}答1static全局變量與普通的全局變量有什么區(qū)別?static局部變量和普通局部變量有什么區(qū)別?static函數(shù)與普通函數(shù)有什么區(qū)別?而靜態(tài)全局變量則限制了其作用域,即只在定義該變量的源文件內(nèi)有效,在同從以上分析可以看出,把局部變量改變?yōu)殪o態(tài)變量后是改變了它的方式即防止在其他文件單元中被;請(qǐng)數(shù)據(jù)存在于(堆)中。typedefunion{longi;intk[5];charc;}DATE;structdata{intcat;DATEcow;doubledog;}too;DATEmax;printf("%d",sizeof(structdate)+sizeof(max));的執(zhí)行結(jié)果是:答:DATEunion,int[5],=所以結(jié)果是20+32=double8=20intinc(inta){}int{}typedefint(FUNC1)(inttypedefint(FUNC2)voidshow(FUNC2fun,intarg1,{inttemp=p(arg1);}{inta;return0;}答說(shuō)明:以下代碼是把一個(gè)字符串倒序,如“abcd”倒序后變?yōu)?、char*src="o,world";5、char*dest=NULL;6、int8、char*d=dest;9char*s=src[len];10、while(len--!=0)11、d++=s--;13、return0;方法1:char*src="o,world";intlen=strlen(src);char*dest(char*)malloc(len+1);//要為\0char*d=char*s&src[len-1];//指向最后一個(gè)字符while(len--!=0)*d++=*s--*d=0;//尾部要加\0free(dest);//return}#include#include<string.h>{charstr[]="o,world";intlen=strlen(str);chart;for(inti=0;i<len/2;{str[i]=str[len-i-1];str[len-i-}return0;}第一題的答案應(yīng)該是4^3-1=63答案設(shè)2個(gè)棧為A,B,一開(kāi)始均為空.這樣實(shí)現(xiàn)的隊(duì)列入隊(duì)和出隊(duì)的平攤復(fù)雜度都還是O(1),比上面的幾種方法要函數(shù)名:用法:longatol(constchar#include#include<stdio.h>intmain(void){longchar*str= l=printf("string=%sinteger=%ld\n",str,l);}PPP點(diǎn)到點(diǎn)連接黑盒:針對(duì)系統(tǒng)功能的測(cè) 白合:測(cè)試函數(shù)功能,各函數(shù)接enum{問(wèn)x= unsignedchar*p1;unsignedlong*p2;p1=(unsignedchar*)0x801000;p2=(unsignedlong*)0x810000;請(qǐng)問(wèn)p1+5=;p2+5=unsignedshorthash(unsignedshort{return}#defineMax_CBvoidLmiQueryCSmd(StructMSgCB*{unsignedchar

{ }#defineSQUARE(a)((a)*(a))intb;typedefunsignedcharintexamply_fun(BYTEgt_len;BYTE{BYTEgt_buf=(BYTE{return}}

介紹 和 的安全性10.在IA32中一共有多少種辦法從用戶態(tài)跳到內(nèi)核態(tài)?鍵盤鉤子SetWindowsHookEx14.過(guò)程是什么?有什么用?有什么優(yōu)點(diǎn)一次后,以后再運(yùn)行速度比單獨(dú)執(zhí)行SQL快很多16.WindowsDNA1,進(jìn)程:子進(jìn)程是父進(jìn)程的品。子進(jìn)程獲得父進(jìn)程數(shù)據(jù)空間、堆和棧的 #defineswap(x,y)\x=x+y;\y=x-y;\x=x-y;被重復(fù)的數(shù)字.時(shí)間復(fù)雜度必須為o(N)函數(shù)原型:intdo_dup(inta[],intinti=cout<<boolalpha<<((i&(i-1))?false:true)<<為起始轉(zhuǎn)化位,n為需要轉(zhuǎn)換的長(zhǎng)度,假設(shè)起始點(diǎn)在右邊.如x=0b00010001,p=4,n=3轉(zhuǎn)換后x=0b01100001unsignedintintvert(unsignedintx,intp,intn){unsignedint_t=0;unsignedint_a=1;for(inti=0;i<n;++i){_t|=_a=_a<<}_t=_t<<p;x^=_t;returnx;}char*constp;charconst*pconstchar*pchar*constp;,pcharconst*p;//指向常量的指針,指向的常量值不可以改constchar*p;//和charconst*pcharstr1[]="abc";charstr2[]=constcharstr3[]="abc";constcharstr4[]=constchar*str5="abc";constchar*str6=char*str7="abc";char*str8=cout<<(str1==str2)<<endl;cout<<(str3==str4)<<endl;cout<<(str5==str6)<<endl;cout<<(str7==str8)<<結(jié)果是:001而str5,str6,str7,str8是指針,它們指向相同的常量區(qū)域。voidUpperCase(charstr[]str{for(size_ti=0;i<sizeof(str)/sizeof(str[0]);++i)if('a'<=str[i]&&str[i]<='z')str[i]-=('a'-'A'}charstr[]=cout"strsizeof(str)/sizeof(str[0])endl;UpperCase(str);cout<<str<<44。指針是多少位只要看地址總線的位數(shù)就行了。80386以后的機(jī)子都是32的數(shù)據(jù)總線。所以指針的位數(shù)就是4個(gè)字節(jié)了。{intint*ptr=(intprintf("%d,%d",*(a+1),*(ptr-}輸出?。ū纠?個(gè)int)int*ptr=(int不同類型的指針+1之后增加的大小不同所以prt-1只會(huì)減去sizeof(int*) {charchar*str=&a;return}char*s="AAA";cosntchar*.#defineMin(X,Y)((X)>(Y)?(Y):(X))/int(*s[10])(int)inta=248;b=4;intconstc=21;constint*d=&a;int*conste=&b;intconst*fconst=&a;*ce=&aconstconst*fconst=&a;^(a=a+b=a-a=a-b;aa^b;//b=a^b;a=a^b;a^=b^=ccstructcstructc++中的struct可以。c++中struct和class的主要區(qū)別在于默認(rèn)的存取權(quán)限不同,structpublic,classprivate#include#include<stdlib.h>voidgetmemory(char*p){p=(char*)malloc(100);strcpy(p,"oworld");}intmain({char*str=NULL;return}charszstr[10]; 的共享系統(tǒng)互斥、請(qǐng)求保持、不可、環(huán) virtualvoid 12.ISO的七層模型是什么?tcp/udp是屬于哪一層?tcp/udp有何優(yōu)缺點(diǎn)?應(yīng)tcp/udp屬于TCPUDPIP協(xié)議的可靠機(jī)制、流控制以及錯(cuò)誤恢復(fù)功能UDPUDPTCPtcp:udp:.(void*)ptr(*(void**))ptr2:int{intx=3;return1;}(unsignedint*)0x100000=*((void(*)())0x100000)((void*((voidtypedefvoid(*)()#defineNTBL#defineNTBL以上講的是堆棧,如果對(duì)于堆來(lái)說(shuō),每個(gè)DLL有自己的堆,所以如果是從DLL中動(dòng)態(tài)分配的內(nèi)存,最好是從DLL中刪除,如果你從DLL中分配內(nèi)存,然后在EXE中,或者另外一個(gè)DLL中刪除,很有可能導(dǎo)致程序unsignedshortA=10;printf("~A=%u\n",~A);charc=128;voidGetMemory(char**p,int{*p=(char}int{char*str=NULL;{}printf("\nstris%s",str);}輸出strisworld。所以free之后,有一個(gè)好的習(xí)慣就是將str=NULL. 會(huì)打印出world來(lái)。malloc(可能會(huì)比你申#include#includevoid{charaa[10];}0x801010用二進(jìn)制表示為:“100000000001000000010000”,十進(jìn)制的值 ,再加上5就是 {chart:4;charunsignedshorti:8;unsignedlongm;sizeof(A){chart:4;4chark:4;4unsignedshorti:8;8unsignedlongm;248intadd_n(intn{staticinti=100;i+=n;return}就出在static上?#i#include#include#include#include#include<memory.h>typedefstruct {void{}

intb1:5;intAAchar cout<<aa.b1<<endl;cout<<aa.b216經(jīng)過(guò)strcpy和memcpy后,aa的4個(gè)字節(jié)所存放的值是:0,1,2,3的ASC碼,即 分別為:10000,和01因?yàn)閕nt是有正負(fù)之 所以:答案是-16和intfunc(x){intcountx=0;while(x){countxx=x&(x-}return}?100010111,inta,b,cC=a+bclongbooladd(inta,intb,int{return(a>0&&b>0&&(*c<a||*c<b)||(a<0&&b<0&&(*c>a||}struct inta:3; intc:3;int{bitchar*c=(char*)&s;cout<<s.a<<endlinta=-1;return}41--0x9910011001a001,b11,c示,所以c=-4;同理b=-cc100,c4,b有些信息在時(shí),并不需要占用一個(gè)完整的字節(jié),而只需占幾個(gè)或一個(gè)二進(jìn)制位。例如在存放一個(gè)開(kāi)關(guān)量時(shí),只有0和1兩種狀態(tài),用一位二進(jìn)位即可?;颉拔欢巍薄K^“位域”是把一個(gè)字節(jié)中的二進(jìn)位劃分為幾個(gè)不同的區(qū)域,并說(shuō)明每個(gè)區(qū)域的位數(shù)。每個(gè)域有一個(gè),允許在程序中按進(jìn)行操作。這樣就structstruct{inta:8;intb:2;intstruct{inta:8;intb:2;int一個(gè)位域必須在同一個(gè)字節(jié)中,不能跨兩個(gè)字節(jié)。如一個(gè)字節(jié)所??臻gstruct{unsigneda:4unsigned:0/*空域*/unsignedb:4/*從下一單元開(kāi)始存放*/unsignedc:4}就是說(shuō)過(guò)8位二進(jìn)位。struct{intintb:3int名•位位域允許用各種格式輸出。main(){structbs{unsigneda:1;unsignedb:3;unsigned#include<stdio.h>intmain(void){intp=&arr;return}int**p;//二級(jí)指針#include<stdio.h>intmain(void){int**p,*q;q=arr;p=&q;}#defineMAX255int{for(i=0;i<=MAX;i++)}解答:死循環(huán)加數(shù)組越界(C/C++不進(jìn)行數(shù)組越界檢查其二.當(dāng)i循環(huán)到255時(shí),循環(huán)內(nèi)執(zhí)行:struct shortx; }structintnum;shortx;}sizeof(structname1)=8,sizeof(struct節(jié),這樣就是12字節(jié)。in有問(wèn)題?這兩個(gè)static變量會(huì)保存到哪里(棧還是堆或者其他的)?們都放在數(shù)據(jù)區(qū),但是編譯器對(duì)他們名是不同的。struct{inti:intj:inta:3;doublestruct{inti:intj:4;doubleb;inta:3;printf("sizeof(s1)=%d\n",sizeof(s1));printf("sizeof(s2)=%d\n",sizeof(s2));result:16,24struct{inti:intj:inta:double(逆序 n=55=1+4;5=2+3#include#includeint{intMAX=int*a=(int*)malloc(MAX*sizeof(int));int*b;FILE*fp1;FILEfp1=if(fp1==exit(-}fp2=fopen("b.txt","w");if(fp2==NULL)exit(-}inti=intj=while(fscanf(fp1,"%d",&a[i])!={if(i>={MAX=2*b=(int*)realloc(a,MAX*sizeof(int));if(b==NULL){}a=}}for(;--j>=return}#includeint{unsignedlongintprintf("pleaseinputthenumber\n");if(i%2==j=i/j=i/2+printf("Theresultis\n");for(k=0;k<j;k++)printf("%d=%d+%d\n",i,k,i-return}#include<stdio.h>voidmain(){unsignedlonginta,i=1;{}

printf("%d,%d",i,a-}voidinverse(char{}

if(*p=='\0'inverse(p+1);printf("%c",*p);intmain(intargc,char{return}#includevoidtest(FILE*fread,FILE{charbuf[1024]=if(!fgets(buf,sizeof(buf),test(fread,fwrite);fputs(buf,fwrite);}intmain(intargc,char{FILE*fr=NULL;FILE*fw=fr=fopen("data",fw=fopen("dataout","wb");test(fr,fw);return0;}struct{

longnum;char*name;shortintdata;charha;short 解答:假設(shè)在32CPU上,sizeof(long)=4bytessizeof(char*)=4bytessizeof(shortint)=sizeof(short)=2bytessizeof(char)=1bytessizeof(structBBB)==4+4+2+1+1/*補(bǔ)齊*/+2*5+2/*補(bǔ)齊*/=24 (經(jīng)Dev- = + = + = +便輸出哪一個(gè)均可。函數(shù)接口為:intfind_orderk(constint*narry,constintn,constintk)代碼如下,在VC++6.0運(yùn)行通過(guò)。給分吧^-^intPartition(int*L,intlow,int{inttemp=L[low];intpt=L[low];while(low<{while(low<high&&L[high]>=--L[low]=while(low<high&&L[low]<=L[low]=}L[low]=}voidQSort(int*L,intlow,int{if(low<{intpl=PartitionQSort(L,low,pl-1);QSort(L,pl+

溫馨提示

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

評(píng)論

0/150

提交評(píng)論