C語言的語法錯誤和邏輯錯誤的區別

2021-03-25 11:09:08 字數 2414 閱讀 9287

1樓:匿名使用者

語法錯誤:

指的是主語謂語不一致;單數複數錯誤,定語從句關係代詞錯誤,語法知識點的錯誤;

邏輯錯誤:

指的是人稱男女混用;連詞表示前後的關係用錯,等等。

2樓:匿名使用者

m2;printf("please enter two numbers:");

scanf("%d%d",&num1,&num2);

裡面是函式呼叫嗎?看著有點象是宣告啊,呼叫實參不用加型別名吧

} int max_min(number1,number2) //形參沒定義型別

改:將輸出改在函式中,避免只能返回一個值的問題

main()

void max_min(int number1,int number2)

另外,團idc網上有許多產品**,便宜有口碑

c語言語法錯誤和語義錯誤有什麼區別,麻煩舉個例子

3樓:萌萌水月喵

語法錯誤可以看作是編碼出現了違反c語言規則的錯誤,一般編譯或者連結時,

都會報錯的。

而語義錯誤,也可以叫做邏輯錯誤,

也就是說你的**完全符合c語言的規範,不會出現編譯/連結的錯誤,但是,在邏輯上有錯誤。

舉個簡單的例子,

加入編一個**來統計int陣列a的成員總和,成員總數為n:

for(int i=0;i

sum=sum+a[i];

for(int i=0;i<=n;i++) //這裡多了一個i=n的取值,這是語義錯誤

sum=sum+a[i];

在c語言中,計算機程式通常有哪幾種錯誤?

4樓:大野瘦子

1、系統錯誤:這是指程式沒有語法錯誤和邏輯錯誤,但程式的正常執行依賴於某些外部條件的存在,如果這些外部條件缺失,則程式將不能執行。

2、語法錯誤:這是指程式中含有不符合語法規定的語句,例如關鍵字或符號書寫錯誤(將printf寫成print、將陣列元素引用寫成a(2)等)、使用了未定義的變數、括號不配對等。

3、邏輯錯誤:這是指程式中沒有語法錯誤,可以通過編譯、連線生成可執行程式,但程式執行的結果與預期不相符的錯誤。

5樓:匿名使用者

在計算機程式中,通常可能發生以下三種型別的錯誤:

(1)語法錯誤:這是指程式中含有不符合語法規定的語句,例如關鍵字或符號書寫錯誤(將printf寫成print、將陣列元素引用寫成a(2)等)、使用了未定義的變數、括號不配對等。含有語法錯誤的程式是不能通過編譯的,因此程式將不能執行。

(2)邏輯錯誤:這是指程式中沒有語法錯誤,可以通過編譯、連線生成可執行程式,但程式執行的結果與預期不相符的錯誤。例如整型變數的取值超出了有效的取值範圍、在scanf函式遺漏了取地址運算子&、陣列元素引用中下標越界、在應當使用複合語句時沒有使用複合語句等。

由於含有邏輯錯誤的程式仍然可以執行,因此這是一種較難發現、較難除錯的程式錯誤,在程式設計、除錯中應予特別注意。

(3)系統錯誤:這是指程式沒有語法錯誤和邏輯錯誤,但程式的正常執行依賴於某些外部條件的存在,如果這些外部條件缺失,則程式將不能執行。例如折半查詢法是在已經排序的陣列上進行的,但實際的資料並沒有進行排序、程式中需要開啟一個已經存在的檔案,但這個檔案由於其他原因丟失等。

**中語法錯誤和邏輯錯誤的區別

6樓:學院派魚多多

一、編譯期通過不同:

(1)、語法錯誤,在程式設計環境下,會在編譯期被發現。

在編譯語言中,語法錯誤一定只在編譯期時出現,編譯器要所有的語法都正確,才能正確編譯。不過解釋型語言中的語法錯誤可能要到執行期才會出現,而且不一定容易區分語法錯誤及語義錯誤。

(2)、邏輯錯誤,編譯期不會發現邏輯錯誤。

二、錯誤表現不同:

(1)、語法錯誤,表現為編譯不通過。

(2)、邏輯錯誤,唯一表現就是錯誤的執行結果。

三、錯誤原因不同:

(1)、語法錯誤,拼寫錯誤、漏寫、多寫、不正確的算式等。

(2)、邏輯錯誤,語句中出現了差錯(比如公式寫錯)、演算法中的錯誤,甚至是選擇了錯誤的演算法。此外還有一些其它原因,如型別轉換錯誤、變數作用域錯誤、遺漏的**段、對問題或需求的理解有誤等等。

7樓:匿名使用者

最大區別就是語法

錯誤通不過編譯器的編譯,邏輯錯誤則能通過。

具體的說就是語法錯誤的意思是該錯誤違背了此種語言的基本規則,比如必須以分號結束語句的語言用點來結束。

邏輯錯誤是指演算法上的錯誤。比如迴圈語句的結束條件沒有寫,語句能通過編譯,但執行後會發生死迴圈無法跳出的現象。

編寫程式,查詢C程式中的基本語法錯誤,如圓括號 方括號

這個不是20分能解決的問題,牽扯的問題太多了。如果只是圓括號 方括號 花括號不匹配的問題還好,可後面的 等 字把問題搞的複雜得多。這樣的話c語言裡那麼多東西,結構體,陣列,變數型別,這些都是基本語法錯誤,可真要面面俱到也就是寫一個預編譯器了。編寫一個c程式 10 乍一看,以為是要寫一個c語言的編譯器...

幫我看下這段英語作文有沒有語法錯誤什麼的謝謝

寫得不錯 不知道是要用到什麼層面的.這篇英語作文,幫我看下有沒有語法錯誤,怎麼改。注意 要語法錯誤,別看好不好 沒有語法錯誤,寫得不錯,就是第一句可以用so連線一下,firstly,school uniforms are ugly so most of us don t like wearing s...

請幫忙檢查一下這段英文有沒有語法錯誤和單詞拼寫錯誤,是作文的結尾來的。謝謝大家

achieve前加to,前面的逗號也去掉,to achieve.表目的吧 寫得很好。不過,從中文翻譯過來的痕跡很明顯。這個需要長時間的努力,才能減少。幫忙看一下這段作文開頭有沒有語法錯誤?是否會跑題,謝謝!2009年研究生入學考試英語作文題。這張卷子我做了72分。沒有啦,你這區當博士都可以了 請問一...