C語言一個簡單的問題,一個簡單c語言小問題?

時間 2023-03-25 00:25:11

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的話,即把迴圈...