1樓:網友
問題出在這裡:
int *a,*b;
*a=10;*b=20;
你的 a,b 都沒有初始化,指向了未知的地方,也就是所謂的野指標。
可以設定兩個變數x,y,將 a,b 指向這兩個變數,然後作為引數呼叫 swap 函式。
另外,你的 swap 函式忘寫函式名了吧?指標一般以小寫字母 p 開頭,表示 pointer,好習慣!
2樓:匿名使用者
//改成如下。
#include ""
void swap(int *p,int *q)int main()
你的源程式指標的賦值有錯誤。
3樓:匿名使用者
#include
void swap(int *p,int *q)void main()
已經交換了啊。。*a和*b 指標所指向的變數要設定一個吧。防止*a的地址為關鍵地址。
4樓:匿名使用者
因為*a 和*b 根本沒有初始化,就直接往裡面賦值。不知道會把10和20寫到那個地址中了。
肯定會出錯。
5樓:匿名使用者
首先,void 後邊少了函式名,其次,*a是要給地址它的,而10和20是整型數值。
6樓:匿名使用者
指標變數賦值不對。
一個簡單c語言小問題?
7樓:旅初彤
a-=a+b這個等價於a=a-(a+b).所以a=a-a-b,故a=-b
c語言的一些小問題
8樓:雙靜安兆勇
1.因為運算子=為從右到左的結合方向,,所以你可以一次提取一個等號進行計算,即x-=x-x,-號移到右邊即x=x-(x-x);這時的x=10,再接著去一個等號進行計算,x+=x->x=x+x;所以x=20;
2.這個題應該選d,goto可以到達程式的任意標誌點,所以能跳出迴圈體,break能退出一個迴圈,return返回整個函式的結果,它表示退出函式,也就退出了迴圈體,只有continue這個,它表示結束本次迴圈而進入下一次迴圈,還是得執行迴圈體的語句,所以沒有退出迴圈體。
3.改正程式的一些**輸入錯誤,可以知道fun程式的作用是輸出字串到這個檔案中,fun被呼叫了兩次,所以把「new
world"和"hello,"輸入到檔案中。
9樓:佟佳陽頓孤
1、你說先計算x-x沒錯,但是你繼續想,x-=x-x是把x減x-x的結果作為x的值,所以x仍然為10,x+=10,結果就是20
2、注意看題目,問的是不能夠跳出的。
3、最後這個**有問題,我正在修改,等會告訴。
c語言的幾個問題
10樓:從玉枝拱珍
1:字母只讀一個,而數字可以很多個一起讀。
(我汗,以前都沒注意著,c的題目越出越細了)
2.空格也是字母的一種如果是10
20ab,那麼10
3:那個逗號有,你輸資料的時候也要相應的有逗號,d裡z是double型,應該用%lf;
4:長度是3沒錯,逗號同上。
至於那個45678,45後面是不是有空格的啊。空格說的是數字取到這裡結束咯。浮點數列印的時候小數點後6~7位都打出來的,沒有實際價值。
5:輸入流。
%指的是一共有3位,包含小數點。
6:scanf裡沒有逗號,所以輸入的時候也不能有逗號,此題y=',這個資料時不確定的。
7:同5;一共4位,包含小數點,小數點後取兩位。
8:選a的話abc之間沒有空格,看了我上面的,第8題應該沒問題了。
9:字元型變數ch,能夠賦值給他的只有單個字元和小於255的數字,至於為什麼小於255,等你看了書後面的內容就懂了。
10:b選項指的是16進位制的ff,就是『\255』,asc碼裡是有這個字元的10:
11樓:閃蘭允未
你這麼多題誰會一下子答給你啊。
很浪費時間的。
如果你分為10個問題,一個問題5分,保證你10分鐘以內每個題都會有好答案,這麼多別人沒那麼時間和閒功夫。
我先幫你做2題,你先採納我的答案吧!
這兩個題是要看你的scanf中他們有沒空格,如果有空格輸入就要有空格,如果沒空格輸入也不需要有空格,你這是輸入進去的,我看一模一樣,估計是你不仔細造成的。
連輸入兩個數字當然要用空格隔開,不然那就是連成一個大數了。
c語言4個簡單問題不懂 求解
12樓:十四個矮子
a1.對於字面常量4,編譯器認為是int型的,而是double型的,因此雖然4/3的值等於1.
333333,但是當它轉換成整型之後就是1了,而對於那個表示式,它的結果是double型的,因此可以保留小數部分。這個問題涉及到的知識是型別的隱式轉換。
函式是接受整型引數,返回其絕對值,而fabs()函式是接受double型別引數,並返回其絕對值,例如,現a=,那麼abs(a)就是0,fabs(a)就是0.
在用scanf()函式進行輸入時,%f表示得到一個float型別的值,4個位元組,%lf表示得到一個double型別的值,8個位元組,兩者是不同的。
a4.對於if-else語句,當條件不符合時不需要執行其他動作時,可以不用else。
對於一連串的if-else,只要注意else的匹配,那麼最後一個else是可以省略的,條件同上。如果省略中間的else的話,那麼就把一個if-else拆成多個語句了。
if ()else 與 if ()的區別是:前者是一個語句,即語句1和語句2有且僅有一個執行;後者是兩個語句,即語句2是必然執行的,它不屬於if-else,你可以把它的花括號去掉。
有什麼問題可以再發訊息。望採納。
13樓:石水
1,整除時 4/3==1
2,我沒碰到你那種情況。
#include
#include
int main()
3,double對應的格式控制符是%lf,float對應的格式控制符是%f
4,不懂你的具體意思是什麼,在可以省略的地方可以省。
14樓:匿名使用者
1.在c/c++中 4/3 = 1 結果是整型。 4.
0/ =結果是浮點型。
兩個數相乘或相除,結果的型別為兩個數中範圍最大的那個,所以 =
函式返回值是整型的,語句a=abs(a)自動將返回值轉成浮點型,因為a為浮點型。但printf("%
2f",abs(a))放回整型0,所以結果為。可以使用fabs()函式解決。
3.%lf與%f沒有區別。
語句後不一定要有else。可以寫。
if(a ==b)
就這樣結束了,沒有else也行,但如果你想讓a不等於b時做其他動作,可以這麼寫。
if (a ==b)
else
c語言簡單問題?
15樓:金色潛鳥
c /c++ 語言結構 ,就是由 一個一個函式組成。例如:
fun1(){fun2(){main(){fun3(){
程式執行 從main() 的頭開始 到 main() 的結束為止,main裡的語句可以呼叫函式並返回,其它函式也可呼叫其它函式。
被調函式在後的,那麼前面要寫 函式原型宣告。
例如,main() 要調 max();max() 定義 在 main() 以後。所以在 main(){以前,寫了:
double max(double x, double y); 帶分號的 「max()函式原型宣告」
這樣,main() 就能呼叫 後面的 max() 了。
max()的函式原型宣告,也可寫在 main() 程式的 開始部分(宣告區),並在呼叫max()以前寫即可。
16樓:匿名使用者
在外面宣告後可以被同一個原始檔的所有函式呼叫。 但如果只在main中宣告,則只能被main呼叫,如果還有個函式f也想呼叫max,則在f中也要宣告。
17樓:白狼聖狂
你沒有準確吃透函式,屬於範圍傷的認識錯誤,在這裡的結構是這樣的:
這是這個**的結構體系。
你以前都以為只有這樣才行:
這是最容易理解的結構體系。
你需要知道的一件事,**定義的max函式和main函式是同級關係,不是包含關係,在c語言裡同級關係可以相互呼叫,現在的直接在main裡定義函式的幾乎沒有了,有些編譯器還不支援,建議你以後用第一種定義方案。
你也可以去搜尋一下關於**塊{}的作用範圍,這裡不多講。
18樓:薩誠友妍
我想是這樣的:那個後面連續的三個(++j)表示先把j加上1再用做計算,這樣的話,j就加了3次,所以是8,j做完自身的加法後就做j+j+j,所以是三個8相加,是24.至於為什麼不同的編譯器結果不同我就不知道了。
簡單c語言小問題
19樓:皮蛋工程師
do迴圈程式段可以等效簡化為:doi=i+1;//1)
if(i%2!=0)
x=x+i;//2)
i=i+1;//3)
y=y+i;//4)
i=i+1;//5)
}while(i<=7)
do迴圈過程如下:第一遍do迴圈中:
(1)式i=1
(2)式x=1
(3)式i=2
(4)式y=2
(5)式i=3
第二遍do迴圈中:
(1)式i=4
(2)式不執行。
(3)式不執行。
(4)式y=6
(5)式i=5
第三遍do迴圈中:
(1)式i=6
(2)式不執行。
(3)式不執行。
(4)式y=12
(5)式i=7
第四遍do迴圈中:
(1)式i=8
(2)式不執行。
(3)式不執行。
(4)式y=20
(5)式i=9
退出do迴圈。
結果x=1,y=20.
需要注意:單個語句(i++;i;)均等價於(i=i+1;),
語句(y=y+i++;等價於y和i相加後的值賦值給y,然後i再自增1
謝謝!望採納!
簡單的c語言問題?
20樓:共享人間真情
xyz()是建構函式,是用來初始化例項物件的成員變數的,比如這裡的name,它是一個字元指標型別,其實就是代表一個字串。在xyz()中手動給其分配了記憶體資源,需要在物件銷燬的時候釋放記憶體資源,物件銷燬的時候系統會自動呼叫解構函式,也就是~xyz(),這些是程式設計語法的歸定。所以,delete釋放記憶體資源的操作要放在~xyz()裡,如果你放在xyz()裡,剛new開闢的記憶體資源就被你delete釋放了,那相等於沒有開闢記憶體資源。
注:new,delete操作符是c++中的,c語言中沒有,c語言中開闢記憶體空間用的是malloc,釋放用free。
祝你學習愉快!
C語言簡單問題,一個簡單c語言小問題?
程式沒有錯誤,不過輸入時注意要加逗號例如12,13,14規範點的話逐個輸入 scanf d a 這樣就不會出現錯誤了。一個簡單c語言小問題?a a b這個等價於a a a b 所以a a a b,故a b c語言基本問題 一 c語言規定總是從main 開始執行的 這個函式也叫 主函式 因此,你發來的...
簡單的c語言問題,一個簡單的C語言問題
陽頂天鹿鼎記 第六行末尾缺少分號 取模運算利用 即int k m n 取餘的運算要放在輸入m和n變數後再做,否則,m和n中的值是隨機的,得到的結果也就是錯誤的 判斷k是不是等於0應該用if k 0 兩個等號 為什麼都是成功,而沒有一個人失敗呢?可能嗎,既然是生意就一定有風險,這個行業似乎聽到的都是成...
一個簡單的C語言問題
選d 如果你沒把程式寫沒錯的話。這裡關鍵是陣列a的首地址即a 0 0 是隨機的,所以p就是隨機的,那麼迴圈for i p i 9 i 就是不確定的,也許p是本來就大於9呢,所以 a 1 2 賦沒賦值 賦什麼值都是未知的,而陣列中的值又都是隨機的,所以選d。如果把迴圈中的初始條件p換成0的話,即把迴圈...