1樓:
1.fun()函式主體中少寫了一句: return c;
2.a是陣列名稱,並非變數所以不能寫為:a++;
3.while(k=1)中k=1為賦值語句,語句的值為1,故語句為while(1)……,因此執行無數次;
4.你可以這樣理解define語句僅為機械的代換,因此a的值為a /= k+m*k+m/k+m*k+m,等號右邊按照先乘除後加減得到7,那麼a = a/7,則a=2;
5.這個我沒有辦法解釋,只能說不能以這種形式作為常量。
2樓:寧心聽曲
1:並不是函式返回不返回的問題,而是變數使用的合法性,你在入口引數宣告了變數,並未保護它,導致別人呼叫的時候位址將會隨機分配,所以,產生的結果所隨機數;正確修改是原型fun中c替換成*c,呼叫的main中改為fun(2,3, &c);這樣就儲存了原型中c的位址;
2:++運算不能用於陣列名;
3:while(條件),只要條件為真,將無無限執行迴圈體內的內容;
4:這是帶引數的巨集定義的典型問題,sqr(k+m)/sqr(k+m)按照巨集應該是2+1*2+1/2+1*2+1,又因為都是整數,所以,sqr(k+m)/sqr(k+m) = 7,於是a /= 7 就為2了;
5,指數型常量定義e字元左右都必須有數字,左邊數字沒有限制,右邊的數字必須是整數,可以為正,也可以為負;
3樓:易受傷的敏敏
第乙個題:由於定義的fun函式沒有定義返回值型別,而且沒有返回值,所以呼叫的時候無法將a*b的值返回給c,系統會隨機給c賦值。所以結果無法確定,選d。
第二題:a中*a表示取陣列a[4]的首位址;b中a[0]表示首個數;c中a也可表示陣列首位址;d中a++無意義。這是指標類問題,可以看一下書。
第三題:while(k=1)k++;while後的條件為「k=1」是給k賦值為1。所以可以無限次迴圈下去。如果寫成「k==1」表示的「k等於1」的意思,這樣就迴圈0次了。
第四題: a/=sqr(k+m)/sqr(k+m);等價於「 a=a/(sqr(k+m)/sqr(k+m));」你原題寫的對嗎?#define sqr(x) x*x;printf(「d\n」,a);這個我也沒看懂
第五題:b中如果算作字串常量的話要加引號,如果算作實型常量的話,e尾數部分只有一位非零整數的形式,所以b不對。
c語言 試題 求答案,C語言 試題 求答案
呵呵,問題比較簡單,屬於入門級的。1 輸入3個int型的整數,求其最大數。main int max int x,int y 2 輸入一批整數,統計出其中的整數和負數的個數,輸入0則結束。main printf d,d n i.j 2 閱讀如下程式,寫出程式執行結果 每題各5分,共20分 1 輸出 a...
c語言考試題,C語言考試題
文庫精選 內容來自使用者 張斌 一 單項選擇題 每小題2分 1.對於一個正常執行的c程式,以下敘述正確的是 a.程式的執行總是從main 開始,在main 中結束。b.程式的執行總是從第一個函式開始,在main 中結束。c.程式的執行總是從main 開始,在最後一個函式中結束。d.程式的執行總是從m...
c語言問題。急求詳細解答,C語言問題。急求詳細解答!!
與影 第一個呼叫把i 2的值傳遞給fun2的形參,而形參變數只有在被呼叫時才分配記憶體單元,在呼叫結束時,即刻釋放所分配的記憶體單元。因此,形參只在函式內部有效。函式呼叫結束返回主呼叫函式後則不能再使用該形參變數,所以呼叫結束後i的值並未改變。雖然fun2的返回值是處理後的i,但是由於並未將函式呼叫...