A. 閱讀下面的程序,分析代碼是否能夠編譯通過,如果能編譯通過,請列出運行的結果。否則請說明編譯失敗的原
第一個可以通過編譯,如下圖:
B. 下面哪些代碼能通過編譯
編譯檢查的是你的語法,語法沒錯通常就可以通過; 運行是出現這個錯誤可能是你申請的某塊內存有問題,或者你使用的指針指向的內存其實是不可用的。檢查一下你所用的指針看看代碼不看了。
C. 能通過編譯,但卻不能成功運行
通不過MS VC++ 編譯器。
(1)stacknode *newptr=(struct stacknode *)malloc(sizeof(stacknode));
應當是:
stacknode *newptr=(stacknode *)malloc(sizeof(stacknode));
(2)linkstack *s; s->top=NULL;
s沒有初始化,就使用了。
(3)char elem;
scanf("%d",&elem); char 型不能用%d 格式
要麼改成 unsigned char elem
要麼改成 %s
D. 在java中,源程序能通過編譯,能說明什麼問題
通過編譯只能說明當前沒有語法錯誤,例如String s = null;就是個合乎語法的寫法,但是如果這樣 Sring s = null;就會出現編譯錯誤,因為沒有Sring這個類型。
通過編譯的程序不一定會正確的運行,因為可能存在邏輯錯誤,邏輯錯誤就是諸如數組越界這類的錯誤。
不知道這么說樓主明白了沒~
除數不為0不是語法錯誤,首先來看,1/0這個式子是沒有錯的,錯的是結果,因為0不能作為除數,所以這是邏輯錯誤。
E. 為什麼java裡面它能通過編譯
在編譯的時候編譯器不管你右邊是什麼類,只要左邊的CircleFromGeometricObject
類能編譯通過就不會報錯。但是運行的時候就要按照右邊的類實際情況來運行。
如果強轉失敗就會拋出異常,編譯是沒有問題的
F. 能正確通過編譯的程序一定是正確的程序嗎
不一定啊。而且大部分程序都是要反復調試才能正確。
編譯過的程序只是編譯器能夠識別,沒有語法錯誤。
G. 以下 C 語言代碼是否能編譯通過並請說明原因。
如果是原原本本的話不能通過,因為你調用了system函數,這個函數包含在stdlib.h這個庫中,你並沒有把它包含進來。所以執行的時候會報錯,但是有些編譯器會忽略它,報錯之後仍然執行。
在包含之後該程序是可以編譯通過並且正常運行的。這邊就是利用了define的功能而已。
功能是輸出:hello world 。
並且使用了pause進行暫停,也就是你要敲兩次回車才能結束程序,你會在屏幕上看到兩個請按任意鍵繼續。
H. 表達式int z=7&&15;能通過編譯嗎
如果是C或者C++的話是可以的
int是整數型的變數,&&是「與」的判斷符,只要符號兩邊的數字不等於零或者判別式正確,就會返回1,表示成立,通常用於bool變數或者if判斷中,但也是可以在int里成立的。
(望採納)
判別式返回值
I. JAVA中,是不是所有異常都能通過編譯,只是運行時才產生錯誤
如果你代碼寫的就有錯誤的話肯定是無法通過編譯的,運行時異常是可以通過編譯的,但是運行就會報錯