




已閱讀5頁(yè),還剩4頁(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)介
輸入函數(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”來(lái)“吃掉”例 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ù)和無(wú)符號(hào)數(shù)同時(shí)出現(xiàn)在一個(gè)表達(dá)式中時(shí),C 會(huì)隱含地將有符號(hào) 轉(zhuǎn)換為無(wú)符號(hào) ,然后計(jì)算。這是由于在C中,當(dāng)在同一個(gè)表達(dá)式中使用不同類(lèi)型的數(shù)據(jù)計(jì)算時(shí),缺省的是將數(shù)值表示范圍小的類(lèi)型(“窄”的類(lèi)型)轉(zhuǎn)換為表示范圍大的類(lèi)型(“寬”的類(lèi)型)。用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() (敲回車(chē)后送入緩沖區(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+; /*開(kāi)始準(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)這兩行被展開(kāi)成/或/*/時(shí),注釋已處理完畢,此時(shí)再出現(xiàn)/或/*/自然錯(cuò)誤.因此,試圖用宏開(kāi)始或結(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í),檢測(cè)是否有按鍵按下,有按下返回非0值,一般是1 沒(méi)有按下返回0;是非阻塞函數(shù) getch() 在執(zhí)行時(shí),檢測(cè)按下什么鍵,如果不按鍵該函數(shù)不返回;是阻塞函數(shù) getc() 原型 int getc(FILE *infile); 返回一個(gè)字符使得程序無(wú)法識(shí)別文件結(jié)束標(biāo)記。字符編碼一共只有256個(gè),且一個(gè)數(shù)據(jù)文件中可能包含其中的任意值。因此沒(méi)有一個(gè)值(至少?zèng)]有char類(lèi)型的值)可以用做文件結(jié)束標(biāo)記。擴(kuò)展定義,使得getc返回一個(gè)整數(shù)值,這樣的實(shí)現(xiàn)可以返回一個(gè)合法字符數(shù)據(jù)以外的值作為文件結(jié)束標(biāo)記。通常在stdio.h中這個(gè)值稱(chēng)為EOF,-1。 如果用字符型的變量存儲(chǔ)getc的結(jié)果,程序就檢測(cè)不到文件結(jié)束標(biāo)記。我需要根據(jù)條件把一個(gè)復(fù)雜的表達(dá)式賦值給兩個(gè)變量中的一個(gè)??梢杂孟逻呥@樣的代碼嗎? (condition) ? a : b) = complicated expression;不能。? : 操作符, 跟多數(shù)操作符一樣, 生成一個(gè)值, 而不能被賦值。換言之, ? :不能生成一個(gè) “左值”。如果你真的需要,
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 西藏航空接待管理辦法
- 就業(yè)專(zhuān)項(xiàng)服務(wù)管理辦法
- 福州企業(yè)門(mén)禁管理辦法
- 電量電費(fèi)退補(bǔ)管理辦法
- 土建施工企業(yè)管理辦法
- 煤礦培訓(xùn)教師課件
- 肩關(guān)節(jié)影像技術(shù)課件下載
- 肝膽外科護(hù)理教學(xué)課件
- 肝癌介入護(hù)理課件
- 東城區(qū)中考一模數(shù)學(xué)試卷
- 音樂(lè)劇排練流程
- 高壓電纜故障搶修施工方案
- 2025-2030中國(guó)三元乙丙橡膠行業(yè)發(fā)展趨勢(shì)及發(fā)展前景研究報(bào)告
- 2025年統(tǒng)編版一年級(jí)上冊(cè)語(yǔ)文識(shí)字表字帖
- 2025住院患者身體約束護(hù)理
- 人行道開(kāi)挖埋管施工方案
- 基于BOPPPS框架與線上線下混合教學(xué)模式的探索
- DB32-T 186-2015建筑消防設(shè)施檢測(cè)技術(shù)規(guī)程
- 2025年四川廣安愛(ài)眾股份有限公司招聘筆試參考題庫(kù)含答案解析
- 2025年上半年廣東省廣州白云區(qū)太和鎮(zhèn)政府雇員招聘16人易考易錯(cuò)模擬試題(共500題)試卷后附參考答案
- DBJ33T 1271-2022 建筑施工高處作業(yè)吊籃安全技術(shù)規(guī)程
評(píng)論
0/150
提交評(píng)論