




已閱讀5頁,還剩4頁未讀, 繼續(xù)免費(fèi)閱讀
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
輸入函數(shù)留下的“垃圾”:例 int x; char ch; scanf(“%d”,&x); ch=getchar(); printf(“x=%d,ch=%dn”,x,ch);執(zhí)行:123輸出:x=123,ch=10例 int x; char ch; scanf(“%d”,&x); scanf(“%c”,&ch); printf(“x=%d,ch=%dn”,x,ch);執(zhí)行:123輸出:x=123,ch=10解決方法:(1)用getchar()清除(2)用函數(shù)fflush(stdin)清除全部剩余內(nèi)容 (3) 用格式串中空格或“%*c”來“吃掉”例 int x; char ch; scanf(“%d”,&x); scanf(“ %c”,&ch);或 scanf(“%*c%c”,&ch);int main(int argc, char* argv) int i=10; printf(%d %d %d,i,i+,i+); return 0;TC3.0輸出“12 11 10” VC6.0輸出“10 10 10” -1,%u輸出 4294967295 ?c+ : char a=127 %d輸出127 char a=128 %d輸出-128#include #define CUBE(x) (x *x *x)void main() int x=5,y; y=CUBE(+x); printf(%d,y);TC3.0輸出512,VC輸出392#include void main() int a=1,b; b=(+a)+(+a)+(+a); printf(%d %d ,a,b);TC3.0輸出4 12,VC輸出4 10#include void main() int a=2,b; b=(a+)+(a+)+(a+); printf(%d %d ,a,b);TC3.0輸出5 6,VC輸出5 6保留一個(gè)實(shí)數(shù)的2位小數(shù),第3位實(shí)現(xiàn)四舍五入x=2.3563,需要操作:2.3563*100+0.5實(shí)現(xiàn)第3位的四舍五入;要保留2位小數(shù),則取整后整除即可,即x=int(x*100+0.5);x/=100; 。交換2整型a,b值: a=a+b;b=a-b;a=a-b; (可移植性差)當(dāng)用rand的結(jié)果轉(zhuǎn)換為更有限的范圍時(shí),不要試圖用取模運(yùn)算。在使用rand時(shí),只有返回的結(jié)果的位置在數(shù)軸上具有隨機(jī)特性。當(dāng)調(diào)用一個(gè)產(chǎn)生偽隨機(jī)數(shù)的函數(shù)時(shí),重要的是記住每次調(diào)用都會(huì)產(chǎn)生一個(gè)不同值。如果要保存一個(gè)特定值,必須把函數(shù)的結(jié)果保存在一個(gè)變量中。每個(gè)源程序末尾用 #undef 將宏解除。未初始化的const全局變量恒為 0 ; 未初始化的const局部變量不確定值當(dāng)有符號(hào)數(shù)和無符號(hào)數(shù)同時(shí)出現(xiàn)在一個(gè)表達(dá)式中時(shí),C 會(huì)隱含地將有符號(hào) 轉(zhuǎn)換為無符號(hào) ,然后計(jì)算。這是由于在C中,當(dāng)在同一個(gè)表達(dá)式中使用不同類型的數(shù)據(jù)計(jì)算時(shí),缺省的是將數(shù)值表示范圍小的類型(“窄”的類型)轉(zhuǎn)換為表示范圍大的類型(“寬”的類型)。用malloc或new申請(qǐng)內(nèi)存之后,立即檢查指針指是否為NULL,防止為NULL。動(dòng)態(tài)內(nèi)存的申請(qǐng)與釋放必須配對(duì),防止內(nèi)存泄露。用free或delete釋放內(nèi)存之后,立即將指針置為NULL,防止產(chǎn)生“野指針”。 exit(0) exit(1) 在stdlib.hgetch() (VC中在conio.h中 不回顯)getche() (VC中在conio.h中 回顯)getchar() (敲回車后送入緩沖區(qū))#include stdio.hvoid main() double x,y; /*double換float 有不同結(jié)果*/ scanf(%f,&x); y=-1/(2*x); if(x!=0) if(x0) y=1/x; else y=0; printf(%f ,y); int a; while(scanf(%d,&a)=0) printf(fdfsafan); return 0;輸入字符串 就死循環(huán)#include stdio.h#include math.hmain() float sum=0,tn=1; long n=1; /* n的初值該為0還是1 ? */ int sign=1; while(fabs(tn)1e-6) sum+=tn; /*累計(jì)求和*/ n+; /*開始準(zhǔn)備計(jì)算下一項(xiàng)*/ sign*=-1; /*改變符號(hào)*/ tn=(double)sign/(2*n+1) ; /*計(jì)算下一項(xiàng)*/ sum*=4; printf(pi is %.8f,sum); /*計(jì)算 /4=1-1/3+1/5-1/7+1/9 的近似值*/#include stdio.h#include math.hmain( ) int a,x; long sum=0,n=1,tn ; scanf(%d%d,&a,&x); tn=a; while(n=a&ch= A&ch=0&ch=a & c=A & c=Z) c+=3; putchar(c); while(c!=n); /*輸入一串字符 字母后移3位*/int aNN,n=N,low=0,hi,i,t,j;for(hi=n,t=1;t=n*n;low+,hi-)for(i=low;ihi;i+) alowi=t+;for(i=low+1;i=low;i-) an-low-1i=t+;for(i=hi-2;ilow;i-) ailow=t+;/螺旋矩陣void main()int a=10;int f(int n);printf(%d ,f(a);int f(int n)if(n=1) return 1;else return (n+f(n-1); /* return n?(n+f(n-1):0; */ main() char a1000; int i; for(i=0;i1000;i+) ai=-1-i; printf(%d ,strlen(a); /輸出255void main()pchar p3,p4;typedef char* pc;pc p1,p2;printf(%d %d %d %d ,sizeof(p1),sizeof(p2),sizeof(p3),sizeof(p4); /4 4 4 1int i;char s8=1,2,3,4,5,6,7,8;printf(%d ,strlen(s); /15char c4=101,c5=116;printf(%c %cn,c4,c5); /輸出 1 6#define BSC /#define BMC /*#define EMC */D),BSC my single-line commentE),BMC my multi-line comment EMCD)和 E)都錯(cuò)誤,為什么呢?因?yàn)樽⑨屜扔陬A(yù)處理指令被處理,當(dāng)這兩行被展開成/或/*/時(shí),注釋已處理完畢,此時(shí)再出現(xiàn)/或/*/自然錯(cuò)誤.因此,試圖用宏開始或結(jié)束一段注釋是不行的。#define SQR(x) printf(The square of #x is %d.n, (x)*(x);再使用:SQR(8);則輸出的是:The square of 8 is 64.TC: sizeof(a)2 VC: sizeof(a)1kbhit() 在執(zhí)行時(shí),檢測是否有按鍵按下,有按下返回非0值,一般是1 沒有按下返回0;是非阻塞函數(shù) getch() 在執(zhí)行時(shí),檢測按下什么鍵,如果不按鍵該函數(shù)不返回;是阻塞函數(shù) getc() 原型 int getc(FILE *infile); 返回一個(gè)字符使得程序無法識(shí)別文件結(jié)束標(biāo)記。字符編碼一共只有256個(gè),且一個(gè)數(shù)據(jù)文件中可能包含其中的任意值。因此沒有一個(gè)值(至少?zèng)]有char類型的值)可以用做文件結(jié)束標(biāo)記。擴(kuò)展定義,使得getc返回一個(gè)整數(shù)值,這樣的實(shí)現(xiàn)可以返回一個(gè)合法字符數(shù)據(jù)以外的值作為文件結(jié)束標(biāo)記。通常在stdio.h中這個(gè)值稱為EOF,-1。 如果用字符型的變量存儲(chǔ)getc的結(jié)果,程序就檢測不到文件結(jié)束標(biāo)記。我需要根據(jù)條件把一個(gè)復(fù)雜的表達(dá)式賦值給兩個(gè)變量中的一個(gè)??梢杂孟逻呥@樣的代碼嗎? (condition) ? a : b) = complicated expression;不能。? : 操作符, 跟多數(shù)操作符一樣, 生成一個(gè)值, 而不能被賦值。換言之, ? :不能生成一個(gè) “左值”。如果你真的需要,
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年執(zhí)業(yè)醫(yī)師考試初級(jí)試題及答案回顧
- 市場調(diào)整風(fēng)險(xiǎn)評(píng)估
- 小學(xué)作業(yè)優(yōu)化管理匯報(bào)
- 超市客戶關(guān)系管理
- 宮腔鏡手術(shù)的手術(shù)配合及護(hù)理課件:詳解手術(shù)流程與護(hù)理要點(diǎn)
- 應(yīng)用文寫作-志愿者申請(qǐng)書課件
- 安全標(biāo)志教案課件
- 如何設(shè)計(jì)培訓(xùn)體系:課件指導(dǎo)
- 高級(jí)審計(jì)師考試數(shù)據(jù)分析與試題及答案
- 高考語文沖刺作文4篇2025
- 情境教學(xué)法在初中函數(shù)教學(xué)中的實(shí)踐研究
- 2025年春季1530安全教育記錄主題
- 初中語文教師校本培訓(xùn)內(nèi)容
- 2024年國家公務(wù)員考試行測真題附解析答案
- 2024年醫(yī)美行業(yè)痛點(diǎn)分析研究報(bào)告
- 云安全事件案例
- DB64-266-2018:建筑工程資料管理規(guī)程-151-200
- 《獸醫(yī)產(chǎn)科學(xué)》考試復(fù)習(xí)題庫(含答案)
- 中國的國際話語權(quán)
- 第04章 CIE標(biāo)準(zhǔn)色度系統(tǒng)
- JGJ120-2012建筑基坑支護(hù)技術(shù)規(guī)程-20220807013156
評(píng)論
0/150
提交評(píng)論