C語言執行順序問題? 250

2025-02-04 15:55:08 字數 2294 閱讀 2868

c語言執行順序問題?

1樓:快樂翔雲

沒看到第三個printf,而且如果發生跳過,你是怎麼確定是跳過了?很明顯,是輸入的格式錯誤導致第二個scanf沒有取到資料,最後乙個printf輸出為空導致看起來好像沒執行的樣子。

2樓:格里程式設計辦公技巧

好像問過同樣的問題,這個沒有跳過。

第乙個scanf你在輸入框輸入了3個字元,實際還有乙個回車符,第二個scanf就把回車符賦值給b+5了,第二個printf也沒有跳過它輸出了乙個換行。

c++程式的執行順序是什麼?

3樓:惠企百科

執行是從 main 函式開始,但如果在main函式前存在類物件變數的宣告,則可能會先呼叫類的建構函式來建立類物件。

第乙個問題,如果函式的呼叫語句在定義之前,則需要進行宣告,告訴計算機這個程式中有這麼乙個函式。因為編譯是從上至下進行編譯的,如果函式的呼叫放在了這個函式定義之前(未經宣告),在編譯時就會報錯。

如果要使用的函式的定義在它使用之前,則不用進行宣告(因為此時編譯器已經知道這是乙個函式了)(但是一般程式設計師都會把主函式放在程式的最上面,這樣可以讓程式很直觀,但這樣做則需要將後面定義的函式先進行宣告)。

第二個問題,其中函式什麼時候需要宣告,什麼時候不需要宣告,我在上乙個問題中已經講了。區分函式的定義和其宣告有一種方法。

函式的宣告一般只有一句話(比如: int sum (int i);)這句話其實就是函式的定義的首句話。而函式的定義則會在其後面新增該函式的內容(既大括號裡的語句。

如:int sum (int i) )

另外,int sum (int i) 這個並不是函式的呼叫,而是函式的定義。函式的呼叫這是這樣的(就用程式中的sum做例子):sum(這裡填寫實參)。

c++程式的執行順序究竟是什麼?

4樓:匿名使用者

第乙個問題:當你編寫好乙個程式以後,計算機要先編譯以後,才能執行,編譯的過程是至上而下的,如果你的函式定義是在main()函式之前,那麼不用宣告,就可以直接在main()函式中呼叫,因為計算機在編譯的過程中已經知道了這個函式了,但是如果你的函式定義是在main()函式之後,且main()函式中需要呼叫它,則需要在呼叫之前宣告,原因很簡單,就是告訴計算機你下面要呼叫這個函式了,讓它注意找到相應的定義部分。第二個問題:

你的問題中的**有點錯誤,函式宣告就是整個函式頭 加上乙個分號,函式呼叫只是函式名和實參以及分號組成,你的main()函式中int sum (int i) 這不叫函式呼叫,這叫函式定義,而且是巢狀定義,這是不允許的。c語言允許函式巢狀呼叫,但是不允許巢狀定義。這是破壞c語言結構化程式思想的。

5樓:匿名使用者

int sum (int i); //宣告語句 int sum (int i) // 呼叫語句 你在main函式中定義了函式,這個應該是放到main外面使用的。 int main ()int sum (int i) // 呼叫語句,定義函式。

c語言程式的執行順序

6樓:習奕聲賴鸞

c語言是一條語句一條語句的執行,從上到下。當然,迴圈,條件,選擇等語句時根據條件進行選擇執行。還有,遇到子程式和中斷服務程式也會跳到相應的介面上去執行。

1.以上是先執行內嵌語句,就是j<10,等迴圈10次後再執行一次i<8,如何又繼續執行裡面的for一次類推,知道i的條件不滿足為止。

2.語句到分號為止。

關鍵是內嵌語句比較不好看,多看看,多練練。

7樓:始霞賞婉

for多重迴圈的執行順序是先執行內部迴圈,再執行外部迴圈通過對**進行等價轉換,按照上述原理即可知道**的執行順序對於上面**:

for(i=0;i<8;i++)

for(j=0;j<10;j++)

scanf("%d,%d",&i,&j); 它等價於下面for(i=0;i<8;i++)

從上面可以看出,每執行完一次j迴圈,i的值才增加1但是注意,該**有乙個陷阱:scanf函式會改變i和j的值實際執行順序會受使用者輸入的i、j值的不同而不同對於下面的**。

for(i=0;i<8;)

min_m(i++)=i

for(j=0;j<8;j++)它等價於下面的**:

for(i=0;i<8;)

for(j=0;j<8;j++)會先執行min_m函式8次然後再執行j迴圈。

注意,該**有乙個問題,就是min_m函式的返回值必須是乙個左值。

這意味著某些變數的值發生了更改,可能會影響到迴圈。

c語言問題,C語言問題C語言問題

沒有縮排,看來比較累 但是輸入一串字元以後要輸入結束標誌eof表示你的輸入結束了 如果你是unix,就用ctrl d,dos就用ctrl z include define maxline 1000 maximum input line length int getline char line,int...

c語言問題,C語言問題C語言問題

把檔案中所有逗號用空格替換。把if fp fopen goods.dat rb null 改成fp fopen goods.dat r null 把 feof fp 換成 0。把 一行刪除。以上3 4也可以在while前新增一行 解決 把printf s,2s,d,d n name,price,in...

c語言問題,C語言問題

您好,c語言經典100題 題目 有1,2,3,4個數字,能組成多少個互不相同且無重複數字的三位數 都是多少 1.程式分析 可填在百位,十位,個位的數字都是1,2,3,4.組成所有的排列後再去 掉不滿足條件的排列.2.程式源 main 程式2 題目 企業發放的獎金根據利潤提成.利潤 i 低於或等於10...