版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、static有什么用途?(請至少說明兩種)1)限制變量的作用域2)設置變量的存儲域(堆,主動分配內存也是堆)1)在函數(shù)體,一個被聲明為靜態(tài)的變量在這一函數(shù)被調用過程中維持其值不變。2)在模塊內(但在函數(shù)體外),一個被聲明為靜態(tài)的變量可以被模塊內所用函數(shù)訪問,但不能被模塊外其它函數(shù)訪問。它是一個本地的全局變量。3)在模塊內,一個被聲明為靜態(tài)的函數(shù)只可被這一模塊內的其它函數(shù)調用。那就是,這個函數(shù)被限制在聲明它的模塊的本地范圍內使用。4.全局變量和局部變量在內存中是否有區(qū)別?如果有,是什么區(qū)別?全局變量儲存在靜態(tài)數(shù)據(jù)庫,局部變量在棧6.堆棧溢出一般是由什么原因導致的?堆棧溢出一般是循環(huán)的遞歸調用導致
2、的,如果使用的大數(shù)據(jù)結構的局部變量也可能導致堆棧溢出。沒有回收垃圾資源導致的是內存泄露最后內存耗盡。20.不能做switch()的參數(shù)類型是:switch的參數(shù)不能為實型。(只能是intchar)9.寫出floatx與“零值比較的if語句。if(x-0.000001)3.在c語言庫函數(shù)中將一個字符轉換成整型的函數(shù)是atol()嗎,這個函數(shù)的原型是什么?函數(shù)名:atol功能:把字符串轉換成長整型數(shù)函數(shù)的原型:longatol(constchar*nptr);程序例:#include#includeintmain(void)longl;char*str=98765432;l=atol(lstr);
3、printf(string=%sinteger=%ldn,str,l);return(0);對于一個頻繁使用的短小函數(shù),在C語言中應用什么實現(xiàn),在C+中應用什么實現(xiàn)?C用宏定義,c+用inline8.軟件測試都有那些種類?黑盒:針對系統(tǒng)功能的測試白合:測試函數(shù)功能,各函數(shù)接口9.確定模塊的功能和模塊的接口是在軟件設計的那個階段完成的?概要設計階段11.unsignedchar*p1;unsignedlong*p2;p1=(unsignedchar*)0 x801000;p2=(unsignedlong*)0 x810000;TOC o 1-5 h z請問pl+5二?;p2+5=?;答:pl+5
4、=0 x801005;p2+5=0 x810014請問下面程序有什么錯誤?inta602501000,i,j,k;for(k=0;k1000;k+)for(j=0;j250;j+)for(i=0;i60;i+)aijk=0;把循環(huán)語句內外換一下(編譯的時候沒錯,運行的時候出錯,但這個數(shù)組太大,如果放在棧中,還是會溢出,要作為全局變量)#defineMax_CB500voidLmiQueryCSmd(StructMSgCB*pmsg)unsignedcharucCmdNum;for(ucCmdNum=0;ucCmdNum4;while(-i);returnc;3、兩個字符串,s,t;把t字符串接
5、到s字符串尾,s字符串有足夠的空間存放t字符串voidconnect(char*s,char*t,inti)char*q=t;char*p=s;if(q=NULL)return;while(*p!=0)p+;while(*q!=0)*p=*q;p+;q+;*p=0;voidmain()charp7=ABC;charp2=EFG;connect(p,p2,3);printf(%s,p);4、分析下面的代碼char*a=hello;char*b=hello;if(a=b)printf(YES);elseprintf(NO);常量字符串。位于靜態(tài)存儲區(qū),它在程序生命期內恒定不變。如果編譯器優(yōu)化的話,
6、會有可能a和b同時指向同一個hello的。則地址相同。如果編譯器沒有優(yōu)化,那么就是兩個不同的地址,則不同。對VC,是相同。5、局部變量能否和全局變量重名?答:能,局部會屏蔽全局。要用全局變量,需要使用:;局部變量可以與全局變量同名,在函數(shù)內引用這個變量時,會用到同名的局部變量,而不會用到全局變量。對于有些編譯器而言,在同一個函數(shù)內可以定義多個同名的局部變量,比如在兩個循環(huán)體內都定義一個同名的局部變量,而那個局部變量的作用域就在那個循環(huán)體內。2、如何引用一個已經(jīng)定義過的全局變量?答:extern例如在某個.cpp中定義了一個全局變量inta,可在頭文件中加入externa;然后在需要引用的文件中
7、包含該頭文件?;蛘咧苯釉谖募屑尤雃xterna;3、全局變量可不可以定義在可被多個文件包含的頭文件中?為什么?答:可以在頭文件中用tati來定義同名全局變量。另外某個C文件中定義的非靜態(tài)全局變量可以在其頭文件中用xtern聲明,需引用此全局變量的其他C只需包含此頭文件即可。4、請寫出下列代碼的輸出內容#includeintmain(void)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,1205、static全局變量與普通的全局變量有什么區(qū)別?static局部變量和普通局部變量有什么
8、區(qū)別?static函數(shù)與普通函數(shù)有什么區(qū)別?答:1)全局變量(外部變量)的說明之前再冠以static就構成了靜態(tài)的全局變量。全局變量本身就是靜態(tài)存儲方式,靜態(tài)全局變量當然也是靜態(tài)存儲方式。這兩者在存儲方式上并無不同。這兩者的區(qū)別在于非靜態(tài)全局變量的作用域是整個源程序,當一個源程序由多個源文件組成時,非靜態(tài)的全局變量在各個源文件中都是有效的。而靜態(tài)全局變量則限制了其作用域,即只在定義該變量的源文件內有效,在同一源程序的其它源文件中不能使用它。由于靜態(tài)全局變量的作用域局限于一個源文件內,只能為該源文件內的函數(shù)公用,因此可以避免在其它源文件中引起錯誤。2)從以上分析可以看出,把局部變量改變?yōu)殪o態(tài)變量
9、后是改變了它的存儲方式即改變了它的生存期。把全局變量改變?yōu)殪o態(tài)變量后是改變了它的作用域,限制了它的使用范圍。3)static函數(shù)與普通函數(shù)作用域不同,僅在本文件。只在當前源文件中使用的函數(shù)應該說明為內部函數(shù)(static),內部函數(shù)應該在當前源文件中說明和定義。對于可在當前源文件以外使用的函數(shù),應該在一個頭文件中說明,要使用這些函數(shù)的源文件要包含這個頭文件綜上所述:static全局變量與普通的全局變量有什么區(qū)別:static全局變量只初使化一次,防止在其他文件單元中被引用;static局部變量和普通局部變量有什么區(qū)別:static局部變量只被初始化一次,下一次依據(jù)上一次結果值;static函數(shù)
10、與普通函數(shù)有什么區(qū)別:static函數(shù)在內存中只有一份,普通函數(shù)在每個被調用中維持一份拷貝6、設有以下說明和定義:typedefunionlongi;intk5;/20charc;DATE;structdataintcat;/4DATEcow;/20doubledog;/8too;DATEmax;則語句printf(%d,sizeof(structdata)+sizeof(max);的執(zhí)行結果是:考點:區(qū)別struct與union.(般假定在32位機器上)答:DATE是一個union,變量公用空間里面最大的變量類型是int5,占用20個字節(jié).所以它的大小是20.data是一個struct,每個
11、變量分開占用空間依次為int4+DATE20+double8=32.所以結果是20+32=52.10、請找出下面代碼中的所有錯誤(題目不錯,值得一看)說明:以下代碼是把一個字符串倒序,如“abcd”倒序后變?yōu)椤癲cba”#includestring.hmain()char*src=hello,world;char*dest=NULL;intlen=strlen(src);dest=(char*)malloc(len);char*d=dest;char*s=srclen;while(len-!=0)*d+=*s-;printf(%s,dest);return0;答:方法1:一共有4個錯誤;int
12、main()char*src=hello,world;intlen=strlen(src);char*dest二(char*)malloc(len+l);/要為分配一個空間char*d=dest;char*s=&srclen-1;/指向最后一個字符while(len-!=0)*d+=*s-;*d=0;/尾部要加0printf(%sn,dest);free(dest);/使用完,應當釋放空間,以免造成內存匯泄露dest=NULL;/防止產(chǎn)生野指針return0;方法2:(方法一需要額外的存儲空間,效率不高.)不錯的想法#include#includemain()charstr=hello,wor
13、ld;intlen=strlen(str);chart;for(inti=0;ilen/2;i+)t=stri;stri=strlen-iT;/小心一點strlen-i-1=t;printf(%s,str);return0;Heap與stack的差別。答:Heap是堆,stack是棧。Stack的空間由操作系統(tǒng)自動分配/釋放,Heap上的空間手動分配/釋放。Stack空間有限,Heap是很大的自由存儲區(qū)C中的malloc函數(shù)分配的內存空間即在堆上,C+中對應的是new操作符。程序在編譯期對變量和函數(shù)分配內存都在棧上進行,且程序運行過程中函數(shù)調用時參數(shù)的傳遞也在棧上進行/124816。/1101
14、00100010000/011111111113一語句實現(xiàn)x是否為2的若干次幕的判斷#defineis2*n(x)(x&(x-1)?0:1)intmain(void)intm=512;cout(m&(m-1)?false:true)endl;/即當m中只有一位為1時,才為若干次幕值/考試大提示:若有兩個及以上1,則(m&(m-1)不為0,輸出0,表示不為2的若干次幕return(0);類比:x為2的若干次幕即表示x中1的位數(shù)為1,題目轉化為求一個32位數(shù)中1的位數(shù),如果為1,則表示該數(shù)為2的若干次幕同理也可以利用此規(guī)則求一個32位數(shù)中1的位數(shù),(m&(m-1)每次可用消除一個1,計算的次數(shù)即為
15、1的個數(shù)!下述三個有什么區(qū)別?char*constp;charconst*pconstchar*p解答:char*constp;/常量指針,p的值不可以修改charconst*p;/指向常量的指針,指向的常量值不可以改constchar*p;/和charconst*p解釋下列輸出結果charstr1=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=
16、str4)endl;cout(str5=str6)endl;cout(str7=str8)endl;結果是:0011解答:strl,str2,str3,str4是數(shù)組變量,它們有各自的內存空間;而str5,str6,str7,str8是指針,它們指向相同的常量區(qū)域。節(jié)省內存。以下代碼中的兩個sizeof用法有問題嗎?C易#include#includeiostream.hvoidUpperCase(charstr)/將str中的小寫字母轉換成大寫字母inti;for(i=0;isizeof(str)/sizeof(str0);+i)/是指針的大小4,只循環(huán)了4次。數(shù)組做參數(shù),會退化為指針??筛?/p>
17、為strlen(str)if(a=stri&stri=z)stri-=(a-A);/由小寫轉大寫voidmain()charstr=aBcDefg;coutstr字符長度為:sizeof(str)/sizeof(str0)endl;/是數(shù)組的大小6UpperCase(str);coutstrendl;答:函數(shù)內的sizeof有問題。根據(jù)語法,sizeof如用于數(shù)組,只能測出靜態(tài)數(shù)組的大小,無法檢測動態(tài)分配的或外部數(shù)組大小。函數(shù)外的str是一個靜態(tài)定義的數(shù)組,因此其大小為8,函數(shù)內的str實際只是一個指向字符串的指針,沒有任何額外的與數(shù)組相關的信息,因此sizeof作用于上只將其當指針看,一個指
18、針為4個字節(jié),因此返回4。注意:數(shù)組名作為函數(shù)參數(shù)時,退化為指針.數(shù)組名作為sizeof()參數(shù)時,數(shù)組名不退化,因為sizeof不是函數(shù).一個32位的機器,該機器的指針是多少位232=4G地址總線寬度決定了CPU可以訪問的物理地址空間.簡單地說就是CPU到底能夠使用多大容量的內存.對于386以上的微機系統(tǒng).地址線的寬度為32位.最多可以直接訪問4096MB(4GB)的物理空間.對大多數(shù)人來說已經(jīng)夠用了指針是多少位只要看地址總線的位數(shù)就行了。80386以后的機子都是32的數(shù)據(jù)總線。所以指針的位數(shù)就是4個字節(jié)了。8位處理器、16位處理器、32位處理器和64位處理器,其計數(shù)都是8的倍數(shù)。它表示一個
19、時鐘周期里,處理器處理的二進制代碼數(shù)?!?”和“1”就是二進制代碼,線路上有電信號,則計做1,沒有電信號則為0。8位機有8條線路,每個時鐘周期有8個電信號,組成一個字節(jié)。所以,隨8位處理器上升至64位處理器,每個時鐘周期傳送1個字節(jié)到8個字節(jié),關聯(lián)到時鐘速度提高到若干個千兆赫之后,處理器處理信息的能力越來越大。CPU的一次基本運算(and,or,xor,not),能處理/運算幾個bits.64bitsdata交由32-bitCPU去運算,得分兩次才行.指出下面代碼的輸出,并解釋為什么。(不錯,對地址掌握的深入挖潛)main()inta5=1,2,3,4,5;int*ptr=(int*)(&a+
20、l);/指針是數(shù)組類型,+1相當于加20.如果是(a+1)是+4printf(“%d%d”,a,ptr);printf(%d,%d,*(a+1),*(ptr-1);輸出:124503612450562,5,&a的地址是一樣的,但意思不一樣,a是數(shù)組首地址,也就是a0的地址,&a是對象(數(shù)組)首地址,a+1是數(shù)組下一元素的地址,即a1,&a+1是下一個對象的地址,即a5.請問以下代碼有什么問題:.intmain()chara;char*str=&a;strcpy(str,hello);printf(str);return0;答;沒有為str分配內存空間,將會發(fā)生異常問題出在將一個字符串復制進一個
21、字符變量指針所指地址。雖然可以正確輸出結果,但因為越界進行內在讀寫而導致程序崩潰。.char*s二AAA;/常量的內容不能改,可定義為數(shù)組printf(%s,s);s0=B;printf(%s,s);有什么錯?答:AAA是字符串常量。s是指針,指向這個字符串常量,所以聲明s的時候就有問題。cosntchar*s=AAA;然后又因為是常量,所以對是s0的賦值操作是不合法的。7用變量a給出下面的定義a)個整型數(shù)(Aninteger)b)一個指向整型數(shù)的指針(Apointertoaninteger)c)一個指向指針的的指針,它指向的指針是指向一個整型數(shù)(Apointertoapointertoani
22、nteger)d)一個有10個整型數(shù)的數(shù)組(Anarrayof10integers)e)一個有10個指針的數(shù)組,該指針是指向一個整型數(shù)的(Anarrayof10pointerstointegers)f)一個指向有10個整型數(shù)數(shù)組的扌旨針(Apointertoanarrayof10integers)g)一個扌旨向函數(shù)的扌旨針,該函數(shù)有一個整型參數(shù)并返回一個整型數(shù)(Apointertoafunctionthattakesanintegerasanargumentandreturnsaninteger)h)一個有10個函數(shù)指針的數(shù)組,該指針指向一個函數(shù),該函數(shù)有一個整型參數(shù)并返回一個整型數(shù)(Anar
23、rayoftenpointerstofunctionsthattakeanintegerargumentandreturnaninteger)答案是:Int(*p10)(int);a)inta;/Anintegerb)int*a;/Apointertoanintegerc)int*a;/Apointertoapointertoanintegerd)inta10;/Anarrayof10integerse)int*a10;/Anarrayof10pointerstointegersf)int(*a)10;/Apointertoanarrayof10integersg)int(*a)(int);/
24、Apointertoafunctionathattakesanintegerargumentandreturnsanintegerh)int(*a10)(int);/Anarrayof10pointerstofunctionsthattakeanintegerargumentandreturnaninteger3用預處理指令#define聲明一個常數(shù),用以表明1年中有多少秒(忽略閏年問題)#defineSECONDS_PER_YEAR(60*60*24*365)UL4寫一個“標準”宏MIN,這個宏輸入兩個參數(shù)并返回較小的一個。#defineMIN(A,B)(A)=(B)?(A):(B)A=B?
25、A:B關鍵字static的作用是什么?在C語言中,關鍵字static有三個明顯的作用:.在函數(shù)體,一個被聲明為靜態(tài)的全局變量在這一函數(shù)被調用過程中維持其值不變。(值的保存)2).在模塊內(但在函數(shù)體外),一個被聲明為靜態(tài)的全局變量可以被模塊內所用函數(shù)訪問,但不能被模塊外其它函數(shù)訪問。它是一個本地的全局變量。(限制作用域)3).在模塊內,一個被聲明為靜態(tài)的函數(shù)只可被這一模塊內的其它函數(shù)調用。那就是,這個函數(shù)被限制在聲明它的模塊的本地范圍內使用。(限制作用域)6關鍵字const是什么含意?下面的聲明都是什么意思?1constinta;2intconsta;3constint*a;4intconst
26、*a;5int*consta;6intconst*consta;1、constinta;2、intconsta;3、4、內容不可變,指針可變:constint*a;5、內容不可變,指針可變:int*consta;6、內容可變,指針不可變:intconst*consta;8.關鍵字volatile有什么含意并給出三個不同的例子。一個定義為volatile的變量是說這變量可能會被意想不到地改變,這樣,編譯器就不會去假設這個變量的值了。精確地說就是,優(yōu)化器在用到這個變量時必須每次都小心地重新讀取這個變量的值,而不是使用保存在寄存器里的備份。下面是volatile變量的幾個例子:1).并行設備的硬件寄
27、存器(如:狀態(tài)寄存器)2).個中斷服務子程序中會訪問到的非自動變量(Non-automaticvariables)3).多線程應用中被幾個任務共享的變量6.int(*s10)(int)表示的是什么啊int(*s10)(int)函數(shù)指針數(shù)組,每個指針指向一個intfunc(intparam)的函數(shù)。有以下表達式:inta=248;b=4;intconstc=21;constint*d=&a;int*conste=&b;intconstint*constf=&a;請問下列表達式哪些會被編譯器禁止?為什么?*c=32;d=&b;*d=43;e=34;e=&a;f=0 x321f;答:*c這是個什么東
28、東,禁止d二&b是很OKe=34不OKe=&a說了是const禁止e的地址不能改constint*constf=&a;禁止f的內容和地址都不能改2交換兩個變量的值,不使用第三個變量。即a=3,b=5,交換之后a=5,b=3;答:有兩種解法,一種用算術算法,一種用八(異或)a=a+b;b=a-b;a=a-b;ora二ab;/只能對int,char.b=ab;a=ab;2個bit(bitl與bit2異或,結果為0說明它們不同,則bit2異或0可把bitl還原。結果為1說明它們相同,則bit2異或1可把bit1還原。#include#includevoidgetmemory(cha*rp)/函數(shù)的參
29、數(shù)是局部變量,在這里給它分配內存還在但是P釋放了。p=(char*)malloc(100);intmain()char*str=NULL;getmemory(str);strcpy(str,helloworld);printf(%s/n,str);free(str);return0;答:程序崩潰,getmemory中的malloc不能返回動態(tài)內存,free()對str操作很危險解決方案1:可改為按引用傳遞:voidgetmemory(char*&p)解決方案2:返回指針Char*getmemory(char*p)p=(char*)malloc(100);returnp;charszstr10;
30、strcpy(szstr,0123456789);產(chǎn)生什么結果?為什么?答;正常輸出,長度不一樣,會造成非法的OS,覆蓋別的內容.0沒保存c指針int*pn;指針數(shù)組,每個元素均為指向整型數(shù)據(jù)的指針。int(*p)n;p為指向一維數(shù)組的指針,這個一維數(shù)組有n個整型數(shù)據(jù)。int*p();函數(shù)帶返回指針,指針指向返回的值。int(*p)();p為指向函數(shù)的指針。數(shù)組越界問題(這個題目還是有點小險的)面這個程序執(zhí)行后會有什么錯誤或者效果:#defineMAX255intmain()unsignedcharAMAX,i;for(i=0;i0)*bdest+=*bsrc+;returndest;用法:#
31、includememory.h功能:由src所指內存區(qū)域復制count個字節(jié)到dest所指內存區(qū)域。說明:src和dest所指內存區(qū)域不能重疊,函數(shù)返回指向lest的指針。Memset原型:原型:externvoid*memset(void*buffer,charc,intcount);用法:#include功能:把buffer所指內存區(qū)域的前count個字節(jié)設置成字符c。說明:返回指向buffer的指針。void*memset_su(void*buffer,intc,intcount)assert(buffer!=NULL);char*buffer2=(char*)buffer;while(
32、count-0)*buffer2+=c;returnbuffer;ASSERT0是干什么用的答:ASSERTO是一個調試程序時經(jīng)常使用的宏,在程序運行時它計算括號內的表達式,如果表達式為FALSE(0),程序將報告錯誤,并終止執(zhí)行。如果表達式不為0,則繼續(xù)執(zhí)行后面的語句。這個宏通常用來判斷程序中是否出現(xiàn)了明顯非法的數(shù)據(jù),如果出現(xiàn)了終止程序以免導致嚴重后果,同時也便于查找錯誤。例如,變量n在程序中不應該為0,如果為0可能導致錯誤,你可以這樣寫程序:ASSERT(n!=0);k=10/n;ASSERT只有在Debug版本中才有效,如果編譯為Release版本則被忽略。assert()的功能類似,它
33、是ANSIC標準中規(guī)定的函數(shù),它與ASSERT的一個重要區(qū)別是可以用在Release版本中。#include#includevoidmain()intn=1;assert(n!=0);/cc+中使用/ASSERT(n!=0);/什么頭文件?printf(sun);1.編寫用C語言實現(xiàn)的求n階階乘問題的遞歸算法:答:longintfact(intn)If(n=0|n=1)Return1;ElseReturnn*fact(n-1);5.冒泡排序:#includestdio.hvoidprintArr(intR,intn)inti;for(i=0;in;i+)printf(%d,Ri);printf
34、(n);voidswap(int*a,int*b)intc=*a;*a=*b;*b=c;/4冒泡排序voidmaopaoSort(intR,intn)for(inti=0;in-1;i+)/需要冒泡的次數(shù)/*比較的次數(shù)for(intj=0;jRj+1)/大的往下沉j+1);swap(&Rj,&R*/for(intj=n-1;ji;j-)/每次需要比較的次數(shù)if(RjRj-1)/小的往上冒swap(&Rj,&Rj-1);voidmain()inti;intnum6=0;printf(Pleaseinput6numbers:n);for(i=0;i=-EPSINON)&(x=EPSINON)指針變
35、量:if(NULL=var)試題2:以下為WindowsNT下的32位C+程序,請計算sizeof的值voidFunc(charstr100)sizeof(str)=?void*p=malloc(100);sizeof(p)=?解答:sizeof(str)=4sizeof(p)=4剖析:Func(charstr100)函數(shù)中數(shù)組名作為函數(shù)形參時,在函數(shù)體內,數(shù)組名失去了本身的內涵,僅僅只是一個指針;在失去其內涵的同時,它還失去了其常量特性,可以作自增、自減等操作,可以被修改。數(shù)組名的本質如下:數(shù)組名指代一種數(shù)據(jù)結構,這種數(shù)據(jù)結構就是數(shù)組;例如:charstr10;coutsizeof(str)
36、endl;輸出結果為10,str指代數(shù)據(jù)結構char10。數(shù)組名可以轉換為指向其指代實體的指針,而且是一個指針常量,不能作自增、自減等操作,不能被修改;charstr10;str+;/編譯出錯,提示str不是左值數(shù)組名作為函數(shù)形參時,淪為普通指針。WindowsNT32位平臺下,指針的長度(占用內存的大小)為4字節(jié),故sizeof(str)、sizeof(p)都為4。3:寫一個“標準”宏MIN,這個宏輸入兩個參數(shù)并返回較小的一個。另外,當你寫下面的代碼時會發(fā)生什么事?least=MIN(*p+,b);解答:#defineMIN(A,B)(A)=(B)?(A):(B)MIN(*p+,b)會產(chǎn)生宏
37、的副作用剖析:(1)謹慎地將宏定義中的“參數(shù)”和整個宏用用括弧括起來。所以,嚴格地講,下述解答:#defineMIN(A,B)(A)=(B)?(A):(B)#defineMIN(A,B)(A=B?A:B)#defineMIN(A,B)(A)=(B)?(A):(B);都應判0分;(2)防止宏的副作用。宏定義#defineMIN(A,B)(A)二(B)?(A):(B)對MIN(*p+,b)的作用結果是:(*p+)=(b)?(*p+):(b)這個表達式會產(chǎn)生副作用,指針p會作2次+自增操作。/”dfjdosfjkodskf”“dos”100034請編寫能直接實現(xiàn)strstr()函數(shù)功能的代碼。/st
38、rstr(str,substr);在str中找substr,找到后把后面的全部截取返回。#includeiostreamusingstd:cout;usingstd:endl;char*my_strstr(char*str1,char*str2)if(NULL=str1|NULL=str2)throw;char*p=NULL;char*q=NULL;constcharv=0;for(inti=0;v!=str1i;+i)p=&str1i;q=str2;while(v!=*q&*q=*p)+p;+q;if(0=*q)return&str1i;returnNULL;intmain(void)cha
39、ra=;char*p=my_strstr(a,com)7if(NULL=p)coutnotfindendl;elsecoutpendl;p=my_strstr(a,2002);if(NULL=p)coutnotfindendl;elsecoutpendl;寫一個函數(shù),檢查字符是否是整數(shù),如果是,返回其整數(shù)值。(或者:怎樣只用4行代碼,編寫出一個從字符串到長整形的函數(shù)?)析:掃描一遍,每次生成對應整數(shù)的最高位。一行也就搞定了!/”1234”-a1*1000+2*100+3*10+4O-9“1234”1234longconvert(char*s_string)longs_integer=0;for(intsLen=strlen(s_string),i=0;isLen;s_integer+=(s_stringi+-0)*pow(10,sLen-i-1);returns_integer;12212334152。對1,2,3,4,5這五個數(shù)任意取出兩個數(shù),列出他們的所有組合voidmain()chara=1,2,3,4,5;for(
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度文化創(chuàng)意產(chǎn)品采購合同變更及版權協(xié)議3篇
- 二零二五版美團騎手薪酬福利及晉升體系合同2篇
- 課題申報參考:南嶺走廊儺戲服飾文化基因解碼及傳承路徑研究
- 課題申報參考:慢波睡眠期間無意識序列學習的神經(jīng)機制及認知調控
- 2025年度虛擬現(xiàn)實游戲開發(fā)與授權合同范本4篇
- 2025年度個人旅游居間代理合同樣本2篇
- 南京市2025年度二手房購房合同(含環(huán)保檢測報告)4篇
- 2025年度個人租賃城市中心公寓及家電配置合同3篇
- 2025版南寧高新區(qū)廠房租賃合同及技術支持服務協(xié)議4篇
- 2025年度個人小額信用貸款合同范本7篇
- GB 19053-2024殯儀場所致病菌安全限值
- 綠化養(yǎng)護難點要點分析及技術措施
- 2024年河北省高考歷史試卷(含答案解析)
- 車位款抵扣工程款合同
- 2023年湖北省襄陽市中考數(shù)學真題(原卷版)
- 小學六年級數(shù)學奧數(shù)題100題附答案(完整版)
- 湖南高速鐵路職業(yè)技術學院單招職業(yè)技能測試參考試題庫(含答案)
- 英漢互譯單詞練習打印紙
- 2023湖北武漢華中科技大學招聘實驗技術人員24人筆試參考題庫(共500題)答案詳解版
- 一氯二氟甲烷安全技術說明書MSDS
- 母嬰護理員題庫
評論
0/150
提交評論