欧美色欧美亚洲高清在线观看,国产特黄特色a级在线视频,国产一区视频一区欧美,亚洲成a 人在线观看中文

  1. <ul id="fwlom"></ul>

    <object id="fwlom"></object>

    <span id="fwlom"></span><dfn id="fwlom"></dfn>

      <object id="fwlom"></object>

      c語言常見錯誤

      時間:2019-05-14 02:12:10下載本文作者:會員上傳
      簡介:寫寫幫文庫小編為你整理了多篇相關(guān)的《c語言常見錯誤》,但愿對你工作學(xué)習(xí)有幫助,當然你在寫寫幫文庫還可以找到更多《c語言常見錯誤》。

      第一篇:c語言常見錯誤

      1.= 不等于 ==

      從 Algol 派生出來的語言,如 Pascal 和 Ada,用 := 表示賦值而用 = 表示比較。而 C 語言則是用 = 表示賦值而用 == 表示比較。這是因為賦值的頻率要高于比較,因此為其分配更短的符號。此外,C 可以多重賦值(如 a = b = c),并且可以將賦值嵌入到一個大的表達式或者語句中。這種便捷導(dǎo)致了一個潛在的問題:需要用比較的地方卻寫成了賦值。下面的語句看起來好像是要檢查 x 是否等于 y :

      if(x = y)

      foo();

      而實際上是將 y 的值賦值給 x,并檢查結(jié)果是否非零。再看看下面的一個希望跳過空格、制表符和換行符的循環(huán):

      while(c == ’ ’ || c = ’t’ || c == ’n’)

      c = getc(f);

      在應(yīng)該與 ’t’ 進行比較的地方程序員錯誤地使用了 =,而不是==。這個“比較”實際上是將’t’ 賦給 c,然后判斷 c 的(新的)值是否為零。因為 ’t’ 不為零,所以這個“比較”一直為真,因此這是一個死循環(huán)。

      一些編譯器會對形如 e1 = e2 的條件給出一個警告以提醒用戶。當你確實需要對一個變量進行賦值,然后再檢查變量是否“非零”時,為了避免這種警告信息,應(yīng)顯式給出比較符。也就是將:

      if(x = y)

      foo();改寫為:

      if((x = y)!= 0)

      foo();

      2.多字符符號

      一些 C 符號,如 /、* 或 =,只有一個字符。還有些 C 符號,如 /*、== 或標識符,具有多個字符。當編譯器遇到緊連在一起的 / 和 * 時,它必須決定是將這兩個字符識別為兩個符號還是一個單獨的符號。C 語言標準規(guī)定:“如果一個字符被識別為符號,則應(yīng)該包含下一個字符看看包含此字符后構(gòu)成的字符串是否仍然可以構(gòu)成符號,如果可以則繼續(xù)包含下一個字符,一直到不能構(gòu)成符號為止。”。因此,如果 / 是符號的第一個字符,并且 / 后面緊隨著一個 *,則這兩個字符構(gòu)成注釋符開始標記。下面的語句看起來像是將 y 的值設(shè)置為 x 的值除以 p 所指向的值:

      y = x/*p

      /* p 指向除數(shù) */;

      實際上,因為 /* 是注釋符開始標記,因此編譯器會簡單地“吞噬”程序文本,直到 */ 出現(xiàn)為止。換句話說,這條語句僅僅把 y 的值設(shè)置為 x 的值,而根本沒有看到 p。我們應(yīng)該將這條語句改為:

      y = x / *p

      /* p 指向除數(shù) */;或者:

      y = x /(*p)

      /* p指向除數(shù) */;

      3.else 問題

      考慮下面的程序片斷:

      if(x == 0)

      if(y == 0)

      error();

      else {

      z = x

      y;

      f(&z);

      }

      寫這段程序的程序員的目的明顯是想將情況分為兩種:x == 0 和x!= 0。在第一種情況中,如果 y == 0,則調(diào)用 error()。第二種情況中,程序執(zhí)行 z = x

      y;和 f(&z)。

      然而,這段程序的實際效果卻大為不同。其原因是 else 總是與離它最近的 if 相關(guān)聯(lián)。上面那段代碼其實等價于:

      if(x == 0){

      if(y == 0)

      error();

      else {

      z = x

      y;

      f(&z);

      }

      }

      也就是說,當 x!= 0 發(fā)生時什么也不做。如果要達到我們想要的效果,應(yīng)該改成:

      if(x == 0){

      if(y == 0)

      error();

      } else {

      z = z

      y;

      f(&z);

      }

      4.表達式求值順序

      一些運算符以一種已知的、特定的順序?qū)ζ洳僮鲾?shù)進行求值。但另一些則不是。例如下面的表達式:

      a

      5.&&、|| 和!運算符

      C 規(guī)定 0 代表“假”,非零代表“真”。這些運算符返回 1 表示“真”而返回 0 表示“假”。&& 和 || 運算符如果可以通過左邊的操作數(shù)確定整個表達式的真假性,就不會對右邊的操作數(shù)進行求值。!10 返回 0,因為 10 非零;10 && 12 返回 1,因為 10 和 12 的值都不是 0;10 || 12 也是 1,因為 10 非零。這個表達式中的 12 不會被求值,因為左邊的 10 就足夠確定整個表達式為真。同理 :10 || f()中的 f()也不會被求值。

      6.下標從零開始

      C 語言中,一個具有 n 個元素的數(shù)組中沒有下標為 n 的元素,元素的下標是從 0 到n-1。下面的程序可能會崩潰:

      int i, a[10];

      for(i = 1;i

      7.getchar 函數(shù)的返回值為整型(int)

      請看以下程序:

      #include

      int main(void)

      {

      char c;

      while((c = getchar())!= EOF)

      putchar(c);

      return 0;

      }

      這段代碼存在一個小小的,但已經(jīng)足以致命的錯誤:c 被聲明為字符型(char)而不是整型。這意味著 c 可能不能正確接收 EOF,從而導(dǎo)致程序不能退出!正確的寫法是:將 char 改成int。

      第二篇:C語言常見錯誤小結(jié)(定稿)

      c語言的最大特點是:功能強、使用方便靈活。C編譯的程序?qū)φZ法檢查并不象其它高級語言那么嚴格,這就給編程人員留下“靈活的余地”,但還是由于這個靈活給程序的調(diào)試帶來了許多不便,尤其對初學(xué)C語言的人來說,經(jīng)常會出一些連自己都不知道錯在哪里的錯誤。看著有錯的程序,不知該如何改起,本人通過對C的學(xué)習(xí),積累了一些C編程時常犯的錯誤,寫給各位學(xué)員以供參考。

      1.書寫標識符時,忽略了大小寫字母的區(qū)別。

      main(){

      int a=5;

      printf(“%d”,A);}

      編譯程序把a和A認為是兩個不同的變量名,而顯示出錯信息。C認為大寫字母和小寫字母是兩個不同的字符。習(xí)慣上,符號常量名用大寫,變量名用小寫表示,以增加可讀性。

      2.忽略了變量的類型,進行了不合法的運算。

      main(){

      float a,b;

      printf(“%d”,a%b);}

      %是求余運算,得到a/b的整余數(shù)。整型變量a和b可以進行求余運算,而實型變量則不答應(yīng)進行“求余”運算。

      3.將字符常量與字符串常量混淆。

      char c;c=“a”;

      在這里就混淆了字符常量與字符串常量,字符常量是由一對單引號括起來的單個字符,字符串常量是一對雙引號括起來的字符序列。C規(guī)定以“”作字符串結(jié)束標志,它是由系統(tǒng)自動加上的,所以字符串“a”實際上包含兩個字符:‘a(chǎn)'和‘',而把它賦給一個字符變量是不行的。

      4.忽略了“=”與“= =”的區(qū)別。

      在許多高級語言中,用“=”符號作為關(guān)系運算符“等于”。如在BASIC程序中可以寫

      if(a=3)then ?

      但C語言中,“=”是賦值運算符,“==”是關(guān)系運算符。如:

      if(a==3)a=b;

      前者是進行比較,a是否和3相等,后者表示假如a和3相等,把b值賦給a。由于習(xí)慣問題,初學(xué)者往往會犯這樣的錯誤。

      5.忘記加分號。

      分號是C語句中不可缺少的一部分,語句末尾必須有分號。

      a=1 b=2

      編譯時,編譯程序在“a=1”后面沒發(fā)現(xiàn)分號,就把下一行“b=2”也作為上一行語句的一部分,這就會出現(xiàn)語法錯誤。改錯時,有時在被指出有錯的一行中未發(fā)現(xiàn)錯誤,就需要看一下上一行是否漏掉了分號。

      { z=x+y;t=z/100;printf(“%f”,t);}

      對于復(fù)合語句來說,最后一個語句中最后的分號不能忽略不寫(這是和PASCAL不同的)。

      6.多加分號。

      對于一個復(fù)合語句,如:

      { z=x+y;t=z/100;

      printf(“%f”,t);};

      復(fù)合語句的花括號后不應(yīng)再加分號,否則將會畫蛇添足。

      又如:

      if(a%3==0);I++;

      本是假如3整除a,則I加1。但由于if(a%3==0)后多加了分號,則if語句到此結(jié)束,程序?qū)?zhí)行I++語句,不論3是否整除a,I都將自動加1。

      再如:

      for(I=0;I<5;I++);{scanf(“%d”,&x);printf(“%d”,x);}

      本意是先后輸入5個數(shù),每輸入一個數(shù)后再將它輸出。由于for()后多加了一個分號,使循環(huán)體變?yōu)榭照Z句,此時只能輸入一個數(shù)并輸出它。

      7.輸入變量時忘記加地址運算符“&”。

      int a,b;

      scanf(“%d%d”,a,b);

      這是不合法的。Scanf函數(shù)的作用是:按照a、b在內(nèi)存的地址將a、b的值存進去?!?a”指a在內(nèi)存中的地址。

      8.輸入數(shù)據(jù)的方式與要求不符。

      ①scanf(“%d%d”,&a,&b);

      輸入時,不能用逗號作兩個數(shù)據(jù)間的分隔符,如下面輸入不合法:

      3,4

      輸入數(shù)據(jù)時,在兩個數(shù)據(jù)之間以一個或多個空格間隔,也可用回車鍵,跳格鍵tab。

      ②scanf(“%d,%d”,&a,&b);

      C規(guī)定:假如在“格式控制”字符串中除了格式說明以外還有其它字符,則在輸入數(shù)據(jù)時應(yīng)輸入與這些字符相同的字符。下面輸入是合法的:

      3,4

      此時不用逗號而用空格或其它字符是不對的。4 3:4

      又如:

      scanf(“a=%d,b=%d”,&a,&b);輸入應(yīng)如以下形式:

      a=3,b=4

      9.輸入字符的格式與要求不一致。

      在用“%c”格式輸入字符時,“空格字符”和“轉(zhuǎn)義字符”都作為有效字符輸入。

      scanf(“%c%c%c”,&c1,&c2,&c3);如輸入a b c

      字符“a”送給c1,字符“ ”送給c2,字符“b”送給c3,因為%c只要求讀入一個字符,后面不需要用空格作為兩個字符的間隔。

      10.輸入輸出的數(shù)據(jù)類型與所用格式說明符不一致。

      例如,a已定義為整型,b定義為實型

      a=3;b=4.5;

      printf(“%f%dn”,a,b);

      編譯時不給出出錯信息,但運行結(jié)果將與原意不符。這種錯誤尤其需要注重。

      11.輸入數(shù)據(jù)時,企圖規(guī)定精度。

      scanf(“%7.2f”,&a);

      這樣做是不合法的,輸入數(shù)據(jù)時不能規(guī)定精度。

      12.switch語句中漏寫break語句。

      例如:根據(jù)考試成績的等級打印出百分制數(shù)段。

      switch(grade)

      { case 'A':printf(“85~100n”);case 'B':printf(“70~84n”);case 'C':printf(“60~69n”);case 'D':printf(“<60n”);default:printf(“errorn”);

      由于漏寫了break語句,case只起標號的作用,而不起判定作用。因此,當grade值為A時,printf函數(shù)在執(zhí)行完第一個語句后接著執(zhí)行第二、三、四、五個printf函數(shù)語句。正確寫法應(yīng)在每個分支后再加上“break;”。例如

      case 'A':printf(“85~100n”);break;

      13.忽視了while和do-while語句在細節(jié)上的區(qū)別。

      (1)main(){int a=0,I;

      scanf(“%d”,&I);while(I<=10){a=a+I;I++;}

      printf(“%d”,a);}

      (2)main(){int a=0,I;

      scanf(“%d”,&I);do

      {a=a+I;I++;

      }while(I<=10);printf(“%d”,a);}

      可以看到,當輸入I的值小于或等于10時,二者得到的結(jié)果相同。而當I>10時,二者結(jié)果就不同了。因為while循環(huán)是先判定后執(zhí)行,而do-while循環(huán)是先執(zhí)行后判定。對于大于10的數(shù)while循環(huán)一次也不執(zhí)行循環(huán)體,而do-while語句則要執(zhí)行一次循環(huán)體。

      14.定義數(shù)組時誤用變量。

      int n;

      scanf(“%d”,&n);int a[n];

      數(shù)組名后用方括號括起來的是常量表達式,可以包括常量和符號常量。即C不答應(yīng)對數(shù)組的大小作動態(tài)定義。

      15.在定義數(shù)組時,將定義的“元素個數(shù)”誤認為是可使的最大下標值。

      m ain()

      {static int a[10]={1,2,3,4,5,6,7,8,9,10};printf(“%d”,a[10]);}

      C語言規(guī)定:定義時用a[10],表示a數(shù)組有10個元素。其下標值由0開始,所以數(shù)組元素a[10]是不存在的。

      16.初始化數(shù)組時,未使用靜態(tài)存儲。

      int a[3]={0,1,2};

      這樣初始化數(shù)組是不對的。C語言規(guī)定只有靜態(tài)存儲(static)數(shù)組和外部存儲(exterm)數(shù)組才能初始化。應(yīng)改為:

      static int a[3]={0,1,2};

      17.在不應(yīng)加地址運算符&的位置加了地址運算符。

      scanf(“%s”,&str);

      C語言編譯系統(tǒng)對數(shù)組名的處理是:數(shù)組名代表該數(shù)組的起始地址,且scanf函數(shù)中的輸入項是字符數(shù)組名,不必要再加地址符&。應(yīng)改為:

      scanf(“%s”,str);

      18.同時定義了形參和函數(shù)中的局部變量。

      int max(x,y)int x,y,z;{z=x>y?x:y;return(z);}

      形參應(yīng)該在函數(shù)體外定義,而局部變量應(yīng)該在函數(shù)體內(nèi)定義。應(yīng)改為:

      int max(x,y)int x,y;{int z;

      z=x>y?x:y;return(z);}

      附錄:出錯信息解釋

      Ambiguous operators need parentheses 不明確的運算需要用括號括起

      Ambiguous symbol 'xxx' 不明確的符號

      Argument list syntax error 參數(shù)表語法錯誤

      Array bounds missing 丟失數(shù)組界限符

      Array size toolarge 數(shù)組尺寸太大

      Bad character in paramenters 參數(shù)中有不適當?shù)淖址?/p>

      Bad file name format in include directive 包含命令中文件名格式不正確

      Bad ifdef directive synatax 編譯預(yù)處理ifdef有語法錯

      Bad undef directive syntax 編譯預(yù)處理undef有語法錯

      Bit field too large 位字段太長

      Call of non-function 調(diào)用未定義的函數(shù)

      Call to function with no prototype 調(diào)用函數(shù)時沒有函數(shù)的說明

      Cannot modify a const object 不允許修改常量對象

      Case outside of switch 漏掉了case 語句

      Case syntax error Case 語法錯誤

      Code has no effect

      代碼不可述不可能執(zhí)行到

      Compound statement missing{ 分程序漏掉“{”

      Conflicting type modifiers 不明確的類型說明符

      Constant expression required 要求常量表達式

      Constant out of range in comparison 在比較中常量超出范圍

      Conversion may lose significant digits 轉(zhuǎn)換時會丟失意義的數(shù)字

      Conversion of near pointer not allowed 不允許轉(zhuǎn)換近指針

      Could not find file 'xxx' 找不到XXX文件

      Declaration missing;說明缺少“;”

      Declaration syntax error 說明中出現(xiàn)語法錯誤

      Default outside of switch

      Default 出現(xiàn)在switch語句之外

      Define directive needs an identifier 定義編譯預(yù)處理需要標識符

      Division by zero 用零作除數(shù)

      Do statement must have while Do-while語句中缺少while部分

      Enum syntax error 枚舉類型語法錯誤

      Enumeration constant syntax error 枚舉常數(shù)語法錯誤

      Error directive :xxx

      錯誤的編譯預(yù)處理命令

      Error writing output file 寫輸出文件錯誤

      Expression syntax error 表達式語法錯誤

      Extra parameter in call 調(diào)用時出現(xiàn)多余錯誤

      File name too long 文件名太長

      Function call missing)函數(shù)調(diào)用缺少右括號

      Fuction definition out of place 函數(shù)定義位置錯誤

      Fuction should return a value 函數(shù)必需返回一個值

      Goto statement missing label Goto語句沒有標號

      Hexadecimal or octal constant too large 16進制或8進制常數(shù)太大

      Illegal character 'x' 非法字符x

      Illegal initialization 非法的初始化

      Illegal octal digit 非法的8進制數(shù)字

      Illegal pointer subtraction 非法的指針相減

      Illegal structure operation 非法的結(jié)構(gòu)體操作

      Illegal use of floating point 非法的浮點運算

      Illegal use of pointer 指針使用非法

      Improper use of a typedefsymbol 類型定義符號使用不恰當

      In-line assembly not allowed 不允許使用行間匯編

      Incompatible storage class 存儲類別不相容

      Incompatible type conversion 不相容的類型轉(zhuǎn)換

      Incorrect number format 錯誤的數(shù)據(jù)格式

      Incorrect use of default Default使用不當

      Invalid indirection 無效的間接運算

      Invalid pointer addition 指針相加無效

      Irreducible expression tree 無法執(zhí)行的表達式運算

      Lvalue required

      需要邏輯值0或非0值

      Macro argument syntax error 宏參數(shù)語法錯誤

      Macro expansion too long 宏的擴展以后太長

      Mismatched number of parameters in definition 定義中參數(shù)個數(shù)不匹配

      Misplaced break

      此處不應(yīng)出現(xiàn)break語句

      Misplaced continue

      此處不應(yīng)出現(xiàn)continue語句

      Misplaced decimal point 此處不應(yīng)出現(xiàn)小數(shù)點

      Misplaced elif directive 不應(yīng)編譯預(yù)處理elif Misplaced else 此處不應(yīng)出現(xiàn)else Misplaced else directive

      此處不應(yīng)出現(xiàn)編譯預(yù)處理else Misplaced endif directive

      此處不應(yīng)出現(xiàn)編譯預(yù)處理endif Must be addressable 必須是可以編址的

      Must take address of memory location 必須存儲定位的地址

      No declaration for function 'xxx' 沒有函數(shù)xxx的說明

      No stack 缺少堆棧

      No type information 沒有類型信息

      Non-portable pointer assignment 不可移動的指針(地址常數(shù))賦值

      Non-portable pointer comparison 不可移動的指針(地址常數(shù))比較

      Non-portable pointer conversion 不可移動的指針(地址常數(shù))轉(zhuǎn)換

      Not a valid expression format type 不合法的表達式格式

      Not an allowed type 不允許使用的類型

      Numeric constant too large 數(shù)值常太大

      Out of memory 內(nèi)存不夠用

      Parameter 'xxx' is never used 能數(shù)xxx沒有用到

      Pointer required on left side of-> 符號->的左邊必須是指針

      Possible use of 'xxx' before definition 在定義之前就使用了xxx(警告)

      Possibly incorrect assignment 賦值可能不正確

      Redeclaration of 'xxx' 重復(fù)定義了xxx

      Redefinition of 'xxx' is not identical xxx的兩次定義不一致

      Register allocation failure 寄存器定址失敗

      Repeat count needs an lvalue 重復(fù)計數(shù)需要邏輯值

      Size of structure or array not known 結(jié)構(gòu)體或數(shù)給大小不確定

      Statement missing;語句后缺少“;”

      Structure or union syntax error 結(jié)構(gòu)體或聯(lián)合體語法錯誤

      Structure size too large 結(jié)構(gòu)體尺寸太大

      Sub scripting missing ] 下標缺少右方括號

      Superfluous & with function or array 函數(shù)或數(shù)組中有多余的“&” Suspicious pointer conversion 可疑的指針轉(zhuǎn)換

      Symbol limit exceeded 符號超限

      Too few parameters in call

      函數(shù)調(diào)用時的實參少于函數(shù)的參數(shù)不

      Too many default cases

      Default太多(switch語句中一個)Too many error or warning messages 錯誤或警告信息太多

      Too many type in declaration 說明中類型太多

      Too much auto memory in function 函數(shù)用到的局部存儲太多

      Too much global data defined in file 文件中全局數(shù)據(jù)太多

      Two consecutive dots 兩個連續(xù)的句點

      Type mismatch in parameter xxx 參數(shù)xxx類型不匹配

      Type mismatch in redeclaration of 'xxx' xxx重定義的類型不匹配

      Unable to create output file 'xxx' 無法建立輸出文件xxx

      Unable to open include file 'xxx' 無法打開被包含的文件xxx Unable to open input file 'xxx' 無法打開輸入文件xxx Undefined label 'xxx' 沒有定義的標號xxx Undefined structure 'xxx' 沒有定義的結(jié)構(gòu)xxx Undefined symbol 'xxx' 沒有定義的符號xxx

      Unexpected end of file in comment started on line xxx 從xxx行開始的注解尚未結(jié)束文件不能結(jié)束

      Unexpected end of file in conditional started on line xxx 從xxx 開始的條件語句尚未結(jié)束文件不能結(jié)束

      Unknown assemble instruction 未知的匯編結(jié)構(gòu)

      Unknown option 未知的操作

      Unknown preprocessor directive: 'xxx' 不認識的預(yù)處理命令xxx Unreachable code 無路可達的代碼

      Unterminated string or character constant 字符串缺少引號

      User break

      用戶強行中斷了程序

      Void functions may not return a value Void類型的函數(shù)不應(yīng)有返回值

      Wrong number of arguments 調(diào)用函數(shù)的參數(shù)數(shù)目錯

      'xxx' not an argument xxx不是參數(shù)

      'xxx' not part of structure xxx不是結(jié)構(gòu)體的一部分

      xxx statement missing(xxx語句缺少左括號

      xxx statement missing)xxx語句缺少右括號

      xxx statement missing;xxx缺少分號

      xxx' declared but never used 說明了xxx但沒有使用

      xxx' is assigned a value which is never used 給xxx賦了值但未用過

      Zero length structure 結(jié)構(gòu)體的長度為零

      第三篇:C語言常見錯誤小結(jié)

      C語言常見錯誤小結(jié)-C/C++ / C語言

      C語言的最大特點是:功能強、使用方便靈活。C編譯的程序?qū)φZ法檢查并不象其它高級語 言那么嚴格,這就給編程人員留下“靈活的余地”,但還是由于這個靈活給程序的調(diào)試帶 來了許多不便,尤其對初學(xué)C語言的人來說,經(jīng)常會出一些連自己都不知道錯在哪里的錯誤

      ??粗绣e的程序,不知該如何改起,本人通過對C的學(xué)習(xí),積累了一些C編程時常犯的錯

      誤,寫給各位學(xué)員以供參考。

      1.書寫標識符時,忽略了大小寫字母的區(qū)別。main(){ int a=5;printf(“%d ”,A);} 編譯程序把a和A認為是兩個不同的變量名,而顯示出錯信息。C認為大寫字母和小寫字母是

      兩個不同的字符。習(xí)慣上,符號常量名用大寫,變量名用小寫表示,以增加可讀性。

      2.忽略了變量的類型,進行了不合法的運算。main(){ float a,b;printf(“%d ”,a%b);} %是求余運算,得到a/b的整余數(shù)。整型變量a和b可以進行求余運算,而實型變量則不允許

      進行“求余”運算。

      3.將字符常量與字符串常量混淆。char c;c= “a ”;在這里就混淆了字符常量與字符串常量,字符常量是由一對單引號括起來的單個字符,字 符串常量是一對雙引號括起來的字符序列。C規(guī)定以“”作字符串結(jié)束標志,它是由系統(tǒng) 自動加上的,所以字符串“a”實際上包含兩個字符:?a '和? ',而把它賦給一個字符變 量是不行的。

      4.忽略了“=”與“==”的區(qū)別。

      在許多高級語言中,用“=”符號作為關(guān)系運算符“等于”。如在BASIC程序中 可以寫

      if(a=3)then …

      但C語言中,“=”是賦值運算符,“==”是關(guān)系運算符。如: if(a==3)a=b;

      前者是進行比較,a是否和3相等,后者表示如果a和3相等,把b值賦給a。由于習(xí)慣問題,初學(xué)者往往會犯這樣的錯誤。

      5.忘記加分號。

      分號是C語句中不可缺少的一部分,語句末尾必須有分號。a=1 b=2 編譯時,編譯程序在“a=1”后面沒發(fā)現(xiàn)分號,就把下一行“b=2”也作為上一行語句的一

      部分,這就會出現(xiàn)語法錯誤。改錯時,有時在被指出有錯的一行中未發(fā)現(xiàn)錯誤,就需要看 一下上一行是否漏掉了分號。{ z=x+y;t=z/100;printf(“%f ”,t);} 對于復(fù)合語句來說,最后一個語句中最后的分號不能忽略不寫(這是和PASCAL 不同的)。

      6.多加分號。

      對于一個復(fù)合語句,如: { z=x+y;t=z/100;printf(“%f ”,t);};復(fù)合語句的花括號后不應(yīng)再加分號,否則將會畫蛇添足。又如:

      if(a%3==0);I++;本是如果3整除a,則I加1。但由于if(a%3==0)后多加了分號,則if語句到此結(jié)束,程序?qū)?/p>

      執(zhí)行I++語句,不論3是否整除a,I都將自動加1。再如:

      for(I=0;I <5;I++);{scanf(“%d ”,&x);printf(“%d ”,x);} 本意是先后輸入5個數(shù),每輸入一個數(shù)后再將它輸出。由于for()后多加了一個分號,使循 環(huán)體變?yōu)榭照Z句,此時只能輸入一個數(shù)并輸出它。

      7.輸入變量時忘記加地址運算符“&”。int a,b;scanf(“%d%d ”,a,b);這是不合法的。Scanf函數(shù)的作用是:按照a、b在內(nèi)存的地址將a、b的值存進去?!?a”指 a在內(nèi)存中的地址。

      8.輸入數(shù)據(jù)的方式與要求不符。①scanf(“%d%d ”,&a,&b);輸入時,不能用逗號作兩個數(shù)據(jù)間的分隔符,如下面輸入不合法: 3,4

      輸入數(shù)據(jù)時,在兩個數(shù)據(jù)之間以一個或多個空格間隔,也可用回車鍵,跳格鍵tab。②scanf(“%d,%d ”,&a,&b);C規(guī)定:如果在“格式控制”字符串中除了格式說明以外還有其它字符,則在輸入數(shù)據(jù)時應(yīng) 輸入與這些字符相同的字符。下面輸入是合法的: 3,4

      此時不用逗號而用空格或其它字符是不對的。3 4 3:4 又如:

      scanf(“a=%d,b=%d ”,&a,&b);輸入應(yīng)如以下形式: a=3,b=4

      9.輸入字符的格式與要求不一致。

      在用“%c”格式輸入字符時,“空格字符”和“轉(zhuǎn)義字符”都作為有效字符輸入。scanf(“%c%c%c ”,&c1,&c2,&c3);如輸入a b c

      字符“a”送給c1,字符“ ”送給c2,字符“b”送給c3,因為%c只要求讀入一個字符,后 面不需要用空格作為兩個字符的間隔。

      10.輸入輸出的數(shù)據(jù)類型與所用格式說明符不一致。例如,a已定義為整型,b定義為實型 a=3;b=4.5;printf(“%f%dn ”,a,b);編譯時不給出出錯信息,但運行結(jié)果將與原意不符。這種錯誤尤其需要注意。

      11.輸入數(shù)據(jù)時,企圖規(guī)定精度。scanf(“%7.2f ”,&a);這樣做是不合法的,輸入數(shù)據(jù)時不能規(guī)定精度。

      12.switch語句中漏寫break語句。

      例如:根據(jù)考試成績的等級打印出百分制數(shù)段。switch(grade){ case 'A ':printf(“85~100n ”);case 'B ':printf(“70~84n ”);case 'C ':printf(“60~69n ”);case 'D ':printf(“ <60n ”);default:printf(“errorn ”);由于漏寫了break語句,case只起標號的作用,而不起判斷作用。因此,當grade值為A時,printf函數(shù)在執(zhí)行完第一個語句后接著執(zhí)行第二、三、四、五個printf函數(shù)語句。正確寫 法應(yīng)在每個分支后再加上“break;”。例如

      case 'A ':printf(“85~100n ”);break;

      13.忽視了while和do-while語句在細節(jié)上的區(qū)別。(1)main(){int a=0,I;scanf(“%d ”,&I);while(I <=10){a=a+I;I++;} printf(“%d ”,a);}(2)main(){int a=0,I;scanf(“%d ”,&I);do {a=a+I;I++;}while(I <=10);printf(“%d ”,a);} 可以看到,當輸入I的值小于或等于10時,二者得到的結(jié)果相同。而當I> 10時,二者結(jié)果就

      不同了。因為while循環(huán)是先判斷后執(zhí)行,而do-while循環(huán)是先執(zhí)行后判斷。對于大于10的

      數(shù)while循環(huán)一次也不執(zhí)行循環(huán)體,而do-while語句則要執(zhí)行一次循環(huán)體。

      14.定義數(shù)組時誤用變量。int n;scanf(“%d ”,&n);int a[n];數(shù)組名后用方括號括起來的是常量表達式,可以包括常量和符號常量。即C不允許對數(shù)組的

      大小作動態(tài)定義。

      15.在定義數(shù)組時,將定義的“元素個數(shù)”誤認為是可使的最大下標值。main(){static int a[10]={1,2,3,4,5,6,7,8,9,10};printf(“%d ”,a[10]);} C語言規(guī)定:定義時用a[10],表示a數(shù)組有10個元素。其下標值由0開始,所以數(shù)組元素a[ 10]是不存在的。

      16.在不應(yīng)加地址運算符&的位置加了地址運算符。scanf(“%s ”,&str);C語言編譯系統(tǒng)對數(shù)組名的處理是:數(shù)組名代表該數(shù)組的起始地址,且scanf函數(shù)中的輸入 項是字符數(shù)組名,不必要再加地址符&。應(yīng)改為:scanf(“%s ”,str);

      17.同時定義了形參和函數(shù)中的局部變量。int max(x,y)int x,y,z;{z=x> y?x:y;return(z);} 形參應(yīng)該在函數(shù)體外定義,而局部變量應(yīng)該在函數(shù)體內(nèi)定義。應(yīng)改為: int max(x,y)int x,y;{int z;z=x> y?x:y;return(z);}

      第四篇:個人簡歷常見錯誤

      必讀:6個簡歷里常見的錯誤

      從頭到尾我也做過一些招聘工作,從簡歷篩選、通知面試、面試都在進行。發(fā)現(xiàn)很多人在簡歷中犯了不少錯誤,也許對于求職者來說是很小的問題,但是其實往往決定了一個機會的得失,覺得有必要整理出來,給大家一個提醒。

      1、簡歷上的電話停機或者關(guān)機狀態(tài)

      這個問題一說出來,可能大家會覺得很可笑,怎么可能是一個重要問題。我也很驚訝,就我們統(tǒng)計的結(jié)果來看,篩選出的簡歷,大約有20%是由于電話停關(guān)機的問題沒辦法通知到的。我總結(jié)一個原因是不少異地求職的人員到當?shù)厍舐毢?,發(fā)送簡歷的時候忘記把已經(jīng)更換的號碼在簡歷上更新了;另一個是很多人使用的神州行、動感地帶的號碼需要充值,但是覺得晚

      一、兩天沒事;殊不知,每天求職的簡歷成百上千,通知面試的人不可能天天跟蹤你的電話開通情況的。即使暫時不方便接聽電話,也建議可申請秘書臺服務(wù),不漏掉一個可能的機會。注意更新自己的簡歷聯(lián)系方式,保證自己能隨時被找到,讓自己處在隨時啟動的狀態(tài),會比其他人得到更多的機會。

      2、未及時更改、更新簡歷信息

      尤其是求職信。往往收到一份簡歷,求職信寫得懇切規(guī)范,但是到末尾一看,稱呼的“貴公司”名字原來根本不是我公司,不免大倒冷水,也對求職者的誠意表示懷疑。另外就是不少人,求職信里頭一句還寫著“我是一個剛走出校門的學(xué)生?..”看到簡歷里,原來已經(jīng)工作1-2年了。發(fā)出一份簡歷是通過考慮,慎重地,但是這樣的簡歷,很難讓人相信,不是隨手的游戲。

      3、羅列全部實習(xí)經(jīng)歷

      這在畢業(yè)生的簡歷里經(jīng)常發(fā)現(xiàn)。為了提高自己的命中率,不少畢業(yè)生會在工作經(jīng)驗?zāi)菣诎炎约核械膶嵙?xí)經(jīng)歷寫出來。粗看簡歷,覺得有很多工作經(jīng)驗,但是仔細一看,就會發(fā)現(xiàn)很亂,各個經(jīng)歷之間是毫無關(guān)聯(lián)和邏輯的,家教、促銷、網(wǎng)絡(luò)管理等等。其實就畢業(yè)生來說,沒有實際的工作經(jīng)驗是客觀事實,用人單位不會因為你羅列了很多短期實踐就給你面試機會,更看重的是你是否有能給自己加分的思想和與眾不同的潛力。羅列經(jīng)歷,只能讓自己的簡歷看上去很雜亂。

      4、大量、多次投遞崗位

      一般的求職成功經(jīng)驗是多撒網(wǎng),多投遞簡歷,反正在網(wǎng)絡(luò)上多次投遞的邊際成本為0。但是這個多撒網(wǎng),指的是有的放矢地投遞,而非毫無目的。統(tǒng)計中,大約有35%的簡歷是盲目投遞的,有的簡歷根本不完整,只寫了姓名和電話,正文部分完全是空白;有的軟件專業(yè)畢業(yè),把所有的硬件崗位都申請了;有的多次被拒后,仍每天投遞;還有的幾乎投遞了公司所有的招聘崗位。如此瘋狂、不成熟的投遞方式,并不能帶來高的命中率,不了解自己,不了解職位的要求,很難讓用人單位相信你的符合度和穩(wěn)定性。真正命中率高的,往往是成熟的求職者:對招聘要求做了仔細的揣摩,根據(jù)自身條件和崗位符合度投遞簡歷,并為面試做了認真準備。

      5、簡歷條理不清晰

      一般的簡歷模版,都會分工作經(jīng)驗和學(xué)習(xí)經(jīng)歷兩部分,為了突出簡歷,一些求職者會創(chuàng)造新的模版或者按照自己的思路填寫簡歷,但是簡歷篩選人每天在查閱大量的簡歷,遇到標新立異的簡歷往往很頭痛,因為不是按常規(guī)的條理來寫的,很難從中找到需要的信息,尤其3頁以上的簡歷,更需要有非常清楚的條理?;蛘呔褪前l(fā)現(xiàn)了合適的簡歷,但是因為模版問題,聯(lián)系方式總要到處去找。其實建議大家就用網(wǎng)站推薦的模版比較好,清楚規(guī)范,便于理解。

      6、愛用附件簡歷

      為了省事,一些人喜歡使用附件簡歷,直接發(fā)送到公布的郵箱。但是現(xiàn)在電腦病毒越來越多,很多求職者是在網(wǎng)吧里發(fā)送簡歷的,各個用人單位,尤其是大公司的郵箱,防備特別嚴格,附件發(fā)送過來的簡歷,十有五、六是亂碼。打不開,也無法一一直接回復(fù)各個求職者的心情,是很難受的。

      常有人在論壇上問我,為什么投遞了那么多簡歷,都沒有回音?但是也有人跟帖,自己投遞的命中率是很高的。沒有回音的原因可能有很多,但是我建議,那些苦苦等待回音的人們,打開自己的簡歷,看看是否有以上問題?(完)

      第五篇:論文常見格式錯誤

      各位指導(dǎo)老師:

      首先,對大家在畢業(yè)設(shè)計中付出的勞動表示衷心的感謝!大家辛苦了!

      在近幾年的畢業(yè)設(shè)計中出現(xiàn)了一些問題,在此進行部分匯總,供大家參考,有則改之,無則加勉!

      1、請各位老師在以后的畢設(shè)中務(wù)必認真負責(zé)的進行指導(dǎo),了解學(xué)生在畢設(shè)中具體做了哪些工作,并據(jù)此給出指導(dǎo)教師分數(shù),避免指導(dǎo)教師評分全部都是高分的情況,盡量按照優(yōu)秀15%、良好45%、中等30%、及格10%的比例進行打分。務(wù)必請以后指導(dǎo)畢設(shè)的老師認真負責(zé)的進行論文的指導(dǎo),再次表示衷心的感謝!

      2、論文中的字體要求:正文中文為宋體、英文和數(shù)字(含標題和圖表)使用Times New Roman字體。設(shè)置方法:選中全文,設(shè)置字體中文為宋體,西文字體為Times New Roman即可;

      3、論文中的所有標點符號(特殊要求除外)應(yīng)使用中文全角,如逗號為“,”,而不是“,”;

      4、論文中不能存在大塊空白,如圖片在該頁占不下,應(yīng)補充前面內(nèi)容(多說點話)填充空白,或?qū)D片后方文字挪到空白處(最好不采用此種方式);

      5、所有圖片應(yīng)使用Visio軟件/AutoCAD/Protell等軟件由學(xué)生自己畫,圖中涉及到的文字使用10磅大小,在將圖片插入正文中時,不能改變圖片大小,否則圖中文字大小將改變;

      6、圖/表內(nèi)文字應(yīng)與圖/表格協(xié)調(diào),不能出現(xiàn)框大字小的情況;

      7、在出現(xiàn)圖/表之前,應(yīng)在該圖/表之前的正文部分出現(xiàn)對該圖/表的引用,如“見圖1-1所示。”,并使用“,”或“。”結(jié)束,而不能使用“:”。

      8、論文封皮班級處應(yīng)填寫:2009級1班/2009級2班/2011級專接本1班;

      9、摘要部分應(yīng)寫該論文主要做了哪些內(nèi)容,如何做的,不能寫與論文設(shè)計過程無關(guān)的介紹性內(nèi)容,字數(shù)要求300-500字;

      10、英文摘要和外文翻譯要嚴格把關(guān),不能出現(xiàn)嚴重錯誤;

      11、論文內(nèi)容應(yīng)重點描述該設(shè)計是如何實現(xiàn)的,對使用到的元器件、軟件等的介紹性內(nèi)容應(yīng)壓縮到1-2頁之內(nèi);

      12、另外一些格式問題請參看《物理系、電氣信息工程系論文撰寫規(guī)范》,如總結(jié)、參考文獻部分的格式、中英文摘要部分的格式等;

      以上列出了在答辯過程中出現(xiàn)的一些普遍問題,請各位指導(dǎo)教師認真核對自己學(xué)生的論文,是否存在以上問題,如有,請督促學(xué)生認真修改,修改完成后請收集學(xué)生的論文一份,并收繳電子版保存。

      學(xué)生論文在后續(xù)工作中都要進行統(tǒng)一裝訂打印,因此請嚴格控制學(xué)生論文質(zhì)量,如在裝訂打印前發(fā)現(xiàn)論文存在質(zhì)量問題,則由指導(dǎo)教師親自進行修改。

      再次對老師的認真負責(zé)、辛勤工作表示衷心的感謝!

      下載c語言常見錯誤word格式文檔
      下載c語言常見錯誤.doc
      將本文檔下載到自己電腦,方便修改和收藏,請勿使用迅雷等下載。
      點此處下載文檔

      文檔為doc格式


      聲明:本文內(nèi)容由互聯(lián)網(wǎng)用戶自發(fā)貢獻自行上傳,本網(wǎng)站不擁有所有權(quán),未作人工編輯處理,也不承擔(dān)相關(guān)法律責(zé)任。如果您發(fā)現(xiàn)有涉嫌版權(quán)的內(nèi)容,歡迎發(fā)送郵件至:645879355@qq.com 進行舉報,并提供相關(guān)證據(jù),工作人員會在5個工作日內(nèi)聯(lián)系你,一經(jīng)查實,本站將立刻刪除涉嫌侵權(quán)內(nèi)容。

      相關(guān)范文推薦

        畢業(yè)論文常見錯誤

        畢業(yè)論文常見錯誤 1. 論文內(nèi)容 ? 第1章緒論應(yīng)包括以下幾方面內(nèi)容:選題意義和背景;國內(nèi)外研究現(xiàn)狀;本文研究內(nèi)容及各章安排。 ? 第2章方案論證前,要先介紹設(shè)計要求。 ? 系統(tǒng)硬件設(shè)計......

        網(wǎng)絡(luò)管理員常見錯誤集錦

        協(xié)議分析器是網(wǎng)絡(luò)管理員庫中最強有力的工具之一。它能將難處理、耗時長、讓CEO們感到惱火甚至不得不重啟所有機器的問題轉(zhuǎn)變?yōu)槟芏虝r處理、易于在每周例行狀態(tài)報告中反映的......

        商務(wù)英語常見錯誤

        商務(wù)英語中常見錯誤Personal vs. Personnel 密切注意這些單詞的拼寫和重音!"Personnel"是個名詞意思是公司的職員。例如"Our company has the best personnel in the industr......

        C語言常見錯誤集合大全-完整版-程序員必備手冊

        C語言常見錯誤集合大全-完整版-程序員必備手冊.txt43風(fēng)帆,不掛在桅桿上,是一塊無用的布;桅桿,不掛上風(fēng)帆,是一根平常的柱;理想,不付諸行動是虛無縹緲的霧;行動,而沒有理想,是徒走沒有......

        領(lǐng)導(dǎo)向下溝通中的常見語言錯誤

        領(lǐng)導(dǎo)向下溝通中的常見語言錯誤 用戶: 一片田 專業(yè)度: 19164 時間: 2008-11-25 上午8:55 有效的溝通是不斷跨越障礙的過程。上下級溝通的障礙來自哪里?來自于溝通的一方或雙......

        C語言常見錯誤集合大全-完整版-程序員必備手冊5篇

        C語言的最大特點是:功能強、使用方便靈活。C編譯的程序?qū)φZ法檢查并不象其它高級語言那么嚴格,這就給編程人員留下“靈活的余地”,但還是由于這個靈活給程序的調(diào)試帶來了許多不......

        常見考研英語錯誤

        1.錯誤答案的10個陷阱:過分絕對、無中生有、正反混淆、就事論事、以偏概全、夸大內(nèi)容、偷換概念、增減詞匯、答非所問、文化迷惑 正確答案的4個特點:照抄原文(小心答非所問)、......

        會議紀要寫作常見錯誤

        會議紀要寫作常見錯誤 一、錯詞 (1)截止 — 截至。 “截止”和“截至”均為動詞,二者在用法上有區(qū)別?!敖刂埂笔遣患拔飫釉~,后面不能帶賓語。如果“截止”出現(xiàn)在時間之前,需加......