調試程序學習2常見錯誤中文說明_第1頁
調試程序學習2常見錯誤中文說明_第2頁
調試程序學習2常見錯誤中文說明_第3頁
調試程序學習2常見錯誤中文說明_第4頁
調試程序學習2常見錯誤中文說明_第5頁
已閱讀5頁,還剩3頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

★調試C程序學習資料2—Cintmain(void{inta=printf("%d",Areturn}aACintmain(void{floata,printf("%d",a%breturn},abab才可以進行求余運算。故而上面的程序是錯誤的,因為a和b是浮點型變量。charc;c="a";量是一對雙引號括起來的字符序列。C語言規定以\0作字符串常量的結束標志,它是由系統"a"'a'\0'aBASICif(a=3)then…Cif(a==3)a=b;a3a3ab;baa3a3,a3,有些編譯Ca=b=編譯時,編譯器發現“a1”后面沒有分號,就會報錯。改錯時,如果在編譯器所說的有錯的{z=x+t=z/100;printf("%f",t);(;)C語句,所以}后面寫了;也是合法的,但是毫無必要!又如:if(a%3==0);3a,i1ifa303ai+for(i=0;i<5;i++){scanf("%d",&xprintf("%d",x}5for()后加了一個分5scanf&”inta,scanf("%d%d",a,bscanf("%dd&a,&bscanf("%d%d",&a,&b輸入時,不能用逗號作兩個數據間的分隔符。例如:3,4scanf("%d,%d",&a,&b例如,a,binta=3;floatb=4.5;printf("%f%d\n",a,bprintf("%d%f\n",a,bscanf("%7.2f",&aswitchbreakswitch(grade){case'A':printf("85~100\n");case'B':printf("70~84\n");case'C':printf("60~69\n");case'D':printf("<60\n");printf("error\n"breakgradeAprintf行第二、三、四、五個printf函數語句。正確寫法應在每個分支后再加上“break;”。例caseprintf("85~100\n");whiledo-whileintmain(void{inta=0,scanf("%d",&i);while(i<=10){a+=}printf("%d",areturn}intmain(void{inta=0,do

a+=

scanf("%d",&i}while(i<=10printf("%d",areturn}i10i>10whiledo-while0whiledo-whileintn=6;inta[n];C99以前,數組名后用方括號括起來必須是常量,包括常量表達式。但是在的C99標準C99intmain(void{inta[10]={1,2,3,4,5,6,7,8,9,10printf("%d",a[10]);return0;}Ca[10]a1009。a[10]不屬于上面定義的數組中。對a[10]進行賦值可能導致程序!&chars[100];scanf("%99s",&sCs我們不需要再對它進行取址運算。正確的寫法應該是:scanf("%99s",s);C語言編程常見錯誤1.AlgolPascalAdaC分配更短的符號。此外,C(abc),并且可以將賦值嵌入到一個大的的語句看起來好像是要檢查x是否等于y:if(x=y)而實際上是將y的值賦值給x,并檢查結果是否非零。再的一個希望跳過空格、制while(c==''||c='\t'||c=='\n')c=getc(f);'\t''\t'cc(新的)'\t'e1e2

if(x=y)if((x=y)!=0)一些C符號,如/、*或=,只有一個字符。還有些C符號,如/*、==或標識符,具有多個字符。當編譯器遇到緊連在一起的/和*時,它必須決定是將這兩個字符識別為兩個符號還是一個單獨的符號。C語言標準規定:“如果一個字符被識別為符號,則應該包一個字符,一直到不能構成符號為止。”。因此,如果/是符號的第一個字符,并且/后面*yx的值除以p所指向的值:y= /*p**/yxp。我們應該將這

y=x/*p /*p指向除數*/;y=x/(*p) /*p指向除數*/;elseif(x==0)if(y==0)elsez=x+y;}寫這段程序的程序員的目的明顯是想將情況分為兩種:x0和x0。在第一種情況中,如果y==0,則調用error()。第二種情況中,程序執行z=x+y;和f(&z);。elseifif(x==0){if(y==0)else{z=x+}}x0if(x==0)if(y==0)}else{z=z+y;}a<b&&c<C標準規定a<b首先被求值。如果a確實小于b,c<d必須緊接著被求值以計算整個表ab,則cdab底是先取a的值,還是先取b的值,標準并沒有定義。C(&&、||)指定了求值順序。&&||C出于這個原因,下面這種將數組x中的前n個元素到數組y中的方法是不可j=while(j<n)y[j]=x[j++];y[j]在jy[j]x[j++]j=while(j<n)y[j++]=x[j];j=while(j<n)y[j]=}for(j=0;j<n;j++)y[j]=x[j];&&、||C010示“假”。&&和||運算符如果可以通過左邊的操作數確定整個表達式的真假性,就不會對右邊的操作數進行求值。!10返回0,因為10非零;10&&12返回1,因為10和12的0;10||121,101210:10||ff()Cnn0inti,for(i=1;i<=10;i++)a=0;inti,for(i=0;i<10;i++)a=0;getchar(int)#includeintm

溫馨提示

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

評論

0/150

提交評論