計(jì)算機(jī)編程C語言習(xí)題及答案.docx_第1頁
計(jì)算機(jī)編程C語言習(xí)題及答案.docx_第2頁
計(jì)算機(jī)編程C語言習(xí)題及答案.docx_第3頁
計(jì)算機(jī)編程C語言習(xí)題及答案.docx_第4頁
計(jì)算機(jī)編程C語言習(xí)題及答案.docx_第5頁
已閱讀5頁,還剩6頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

計(jì)算機(jī)編程C語言習(xí)題及答案(C)2009.05.23 紫色代碼PurpleCode */ 1.請定義一個(gè)宏,比較兩個(gè)數(shù)a、b的大小,不能使用大于、小于、if語句。 答案: #define Max(a,b) ( a/b)?a:b 2.如何輸出源文件的標(biāo)題和目前執(zhí)行行的行數(shù), 答案: printf(The file name: %sn, _FILE_); printf(The current line No:%dn, _LINE_); ANSIC標(biāo)準(zhǔn)預(yù)定義宏: _LINE_ _FILE_ _DATE_ _TIME_ _STDC_ 當(dāng)要求程序嚴(yán)格遵循ANSI C標(biāo)準(zhǔn)時(shí)該標(biāo)識符被賦值為1。 C+版本: #include #include using namespace std; int main(int argc,char *argv) int line = _LINE_; /注意:LINE前后分別是兩個(gè)下劃線“_”(半角狀態(tài)下) string file = _FILE_; coutlineendl; coutfileendl; C版本: #include void main() int line = _LINE_; char * file = _FILE_; printf(%dn, line); printf(%sn, file); 3.兩個(gè)數(shù)相乘,小數(shù)點(diǎn)后位數(shù)沒有限制,請寫一個(gè)高精度算法。 答案: #include #include int n,dotaddr,dotnum; char r7; char res160,tres160; void multiple(char *num1,char *num2,char *res) char t2160; int len1,len2; int tres,add,co; int offset; int lt; offset = 0; for(len2=0;len2strlen(num2);len2+) add = 0; co = 0; memset(t2,0,sizeof(t2); for(len1=0;len1strlen(num1);len1+) tres = (num2len2-0)*(num1len1-0)+add; add = tres/10; tres = tres%10; t2co+ = tres+0; if(add != 0) t2co = add+0; add = 0; for(lt=0;ltstrlen(t2);lt+) if(reslt+offset != 0) tres = reslt+offset-0 + t2lt-0+add; add = tres/10; reslt+offset = tres%10+0; else tres = t2lt-0+add; add = tres/10; reslt+offset = tres%10+0; if(add != 0) reslt+offset = add+0; offset+; /printf(%sn,res); void output(char *s) int lt; int tzp; int intnum; for(lt=0;lt0) dotnum = dotnum*n; else dotnum = 0; intnum = strlen(s)-dotnum; if(dotnum=0) for(lt=0;lt=strlen(s)-intnum;lt-) if(slt0) break; for(lt=lt;lt=strlen(s)-intnum;lt-) printf(%c,slt); printf(.); for(lt=lt;lt=tzp;lt-) printf(%c,slt); printf(n); int main(int argv,char args) char tr7; int lt; int co; while(scanf(%s %d,tr,&n)=2) co = 0; dotaddr = 6; memset(r,0,sizeof(r); for(lt=0;lt=0;lt-) if(trlt!=0) break; dotnum = lt-dotaddr; for(lt=strlen(r)-1;lt=dotaddr;lt-) if(rlt != 0) break; for(co=strlen(r)-1;colt;co-) rco=0; strcpy(tr,r); co = 0; for(lt=strlen(tr)-1;lt=0;lt-) rco+ = trlt; if(n=0) printf(1n); else strcpy(tres,r); for(lt=0;ltn-1;lt+) memset(res,0,sizeof(res); multiple(tres,r,res); strcpy(tres,res); output(tres); 4.寫一個(gè)病毒。 答案: while (1) int *p = new int10000000; 5.Internet采用哪種網(wǎng)絡(luò)協(xié)議,該協(xié)議的主要層次結(jié)構(gòu), 答案: Tcp/Ip協(xié)議; 主要層次結(jié)構(gòu)為: 應(yīng)用層/傳輸層/網(wǎng)絡(luò)層/數(shù)據(jù)鏈路層/物理層。 6.static有什么用途,(請至少說明兩種) 答案: 1)在函數(shù)體,一個(gè)被聲明為靜態(tài)的變量在這一函數(shù)被調(diào)用過程中維持其值不變。 2) 在模塊內(nèi)(但在函數(shù)體外),一個(gè)被聲明為靜態(tài)的變量可以被模塊內(nèi)所用函數(shù)訪問,但不能被模塊外其它函數(shù)訪問。它是一個(gè)本地的全局變量。 3) 在模塊內(nèi),一個(gè)被聲明為靜態(tài)的函數(shù)只可被這一模塊內(nèi)的其它函數(shù)調(diào)用。那就是,這個(gè)函數(shù)被限制在聲明它的模塊的本地范圍內(nèi)使用。 7.引用與指針有什么區(qū)別, 答案: 1) 引用必須被初始化,指針不必。 2) 引用初始化以后不能被改變,指針可以改變所指的對象。 3) 不存在指向空值的引用,但是存在指向空值的指針。 8.描述實(shí)時(shí)系統(tǒng)的基本特性。 答案: 在特定時(shí)間內(nèi)完成特定的任務(wù),實(shí)時(shí)性與可靠性。 9.全局變量和局部變量在內(nèi)存中是否有區(qū)別,如果有,是什么區(qū)別, 答案: 全局變量儲存在全局靜態(tài)存儲區(qū),局部變量在堆棧。 10.什么是平衡二叉樹, 答案: 左右子樹都是平衡二叉樹 且左右子樹的深度差值的絕對值不大于1。 11.堆棧溢出一般是由什么原因?qū)е碌? 答案: 沒有回收內(nèi)存垃圾資源。 12.什么函數(shù)不能聲明為虛函數(shù), 答案: 構(gòu)造函數(shù)。 13.分別寫出BOOL,int,float,指針類型的變量a 與“零”的比較語句。 答案: BOOL: if ( !a ) or if(a) int: if ( a = 0) float: const EXPRESSION EXP = 0.000001 if ( a -EXP) pointer: if ( a != NULL) or if(a = NULL) 14.Internet物理地址和IP地址轉(zhuǎn)換采用什么協(xié)議, 答案: ARP (Address Resolution Protocol)(地址解析協(xié)議) 15.IP地址的編碼分為哪倆部分, 答案: IP地址由兩部分組成,網(wǎng)絡(luò)號和主機(jī)號。不過是要和“子網(wǎng)掩碼”按位與上之后才能區(qū)分哪些是網(wǎng)絡(luò)位哪些是主機(jī)位。 16.不能做switch()的參數(shù)類型 答案: 實(shí)型。 17.某32位系統(tǒng)下, C+程序,請計(jì)算sizeof的值。 char str = “” char *p = str ; int n = 10; 請計(jì)算 sizeof (str ) = ,(1) sizeof ( p ) = ,(2) sizeof ( n ) = ,(3) void Foo ( char str100) 請計(jì)算 sizeof( str ) = ,(4) void *p = malloc( 100 ); 請計(jì)算 sizeof ( p ) = ,(5) 答案: 17 (字符1個(gè)字節(jié)一個(gè),17個(gè)字符) 4 (指針類型的長度都是4個(gè)字節(jié)) 4 (int類型4個(gè)字節(jié)) 4 (傳到函數(shù)里面的是指針,還是4個(gè)字節(jié)) 4 (指針,或叫地址就是4個(gè)字節(jié)) 18.寫出判斷ABCD四個(gè)表達(dá)式的是否正確, 若正確, 寫出經(jīng)過表達(dá)式中 a的值。 int a = 4; (A)a += (a+); (B) a += (+a) ;(C) (a+) += a;(D) (+a) += (a+); a = ? 答案: C錯(cuò)誤,左側(cè)不是一個(gè)有效變量,不能賦值,可改為(+a) += a; 改后答案依次為9,10,10,11。 19.頭文件中的 ifndef/define/endif 干什么用,預(yù)處理 答案:防止頭文件被重復(fù)引用。 20.,include 和 ,include “filename.h” 有什么區(qū)別, 答案: 前者用來包含開發(fā)環(huán)境提供的庫頭文件,后者用來包含自己編寫的頭文件 21.在C+

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(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)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論