c語言的一個問題,c語言的幾個問題

2023-04-19 18:50:21 字數 5752 閱讀 7345

1樓:網友

執行過程是這樣的:

for (i=1;i<=5;i++)

當i=1時,b=i%2=1:

while (b-->0)先把b=1和0進行比較。然後運算b--得b=0;(這裡的b--無論真假都在比較後運算)第一次迴圈條件表達試完成。再計算迴圈體k++;得k=1;

第一次迴圈後得b=0;k=1;

while (b-->0)再把b=0和0進行比較。然後運算b--得b=-1;(這裡的b--無論真假都在比較後運算)第二次迴圈條件表達試完成。再計算迴圈體k++;得k=2;

第二次迴圈後得b=-1;k=2;

while (b-->0)再把b=-1和0進行比較。然後運算b--得b=-2;(這裡的b--無論真假都在比較後運算)迴圈條件不成立。跳出迴圈;

跳出迴圈後得b=-2;k=2;

當b=1時迴圈兩次,b--執行3次,k+2;

當b=0時迴圈一次,b--執行2次,k+1;

所以:i=1,b=1時:b--執行3次b=-2, k++ 兩次k=2;

i=2,b=0時:b--執行2次b=-2, k++ 一次k=3;

i=3,b=1時:b--執行3次b=-2, k++ 兩次k=5;

i=4,b=0時:b--執行2次b=-2, k++ 一次k=6;

i=5,b=1時:b--執行3次b=-2, k++ 兩次k=8;

明白麼?

2樓:匿名使用者

b-->0這麼理解 (b--)0

其中,--為減一運算子。b--運算順序是先取b值,然後b=b-1。

b=i%2是除以2取餘數。

以i=1為例,則b=1

while(b-->0)中,內部過程為:

b=1:k++,得k=1;

b--為b減一,則b=0,仍滿足》=0的條件,所以k再加1,等於2以此類推,k=8。

不過,b應該為-1啊,b為-1即跳出迴圈。

3樓:匿名使用者

這段程式裡的i每當是奇數的時候while迴圈就執行兩遍,而i為偶數的時候while只執行一遍。而while每執行一遍,k值就加一,i從1到5共有三個奇數兩個偶數所以k的值是2+1+2+1+2=8

而b在for做最後一次迴圈時,b=1,while第一次執行,b=0;while第二次執行,b=-1;但由於b--這條語句是先引用b的值,再對b減一,所以b最後的值是-2

b-->0)是先把b和0進行比較,比較之後 b再減一。

c語言的幾個問題

4樓:從玉枝拱珍

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:

5樓:閃蘭允未

你這麼多題誰會一下子答給你啊。

很浪費時間的。

如果你分為10個問題,一個問題5分,保證你10分鐘以內每個題都會有好答案,這麼多別人沒那麼時間和閒功夫。

我先幫你做2題,你先採納我的答案吧!

這兩個題是要看你的scanf中他們有沒空格,如果有空格輸入就要有空格,如果沒空格輸入也不需要有空格,你這是輸入進去的,我看一模一樣,估計是你不仔細造成的。

連輸入兩個數字當然要用空格隔開,不然那就是連成一個大數了。

c語言的幾個問題

6樓:義昀欣

分析如下:1.用exit語句種植執行報告錯誤。

優點:處理簡便,直接終止程式,並可以將錯誤通知給作業系統。

缺點:無論在哪個函式中執行,程式會直接終止,沒有機會對錯誤進行進一步處理。

2.以函式的返回值區別正確返回或錯誤返回。

缺點:函式多層呼叫時,需將錯誤資訊層層傳遞。

3.設定一個整形變數的函式引數以區別正確返回或某種錯誤返回。

優點:可以返回更豐富的錯誤資訊,方便進一步處理。

7樓:匿名使用者

exit(?)是程式退出的出口,呼叫後你的程序就徹底退出了,返回碼要其他程序去接收供它們使用(理論上,那些程式也得你或你所在的開發團隊去編寫——繫鈴解鈴分開不是自找麻煩嗎?)。

以函式返回值或引用引數傳遞來返回錯誤碼,都差不多,問題是你的函式必須確保全面處理了所有錯誤並填寫返回碼,否則這種機制就有缺陷。

你放到一起討論的東西有點風馬牛不相及。

關於c語言的一個問題

8樓:萢萢

這種題目挺坑人的,基本都是在玩文字遊戲。

第一題中的c的意思是,如果一門程式語言要成為結構化程式,必須要具備順序、分支、迴圈這三種基本結構。比如:一個人要是人,就必須是人生出來的,而不是狗或者豬生出來的,因為基因不一樣。

這裡的順序、分支、迴圈結構就相當於基因。

第二題中的c的意思是,如果一個程式是由結構化程式語言寫的,那麼這個程式就是結構化程式,它不一定需要具備順序、分支、迴圈等基本結構,但是用來寫這個程式的程式語言一定是具備寫順序、分支、迴圈等基本結構能力的程式語言,也就是說如果把這個程式擴充套件,是可以寫出順序、分支、循序結構的。比如:一個已經出生了的人,由於天生殘疾,缺了胳膊斷了腿,雖然這樣,但是他仍然是一個人,因為他具備的基因是人的基因,只是不完全而已。

c語言的問題

9樓:恆戰天兵

「/」代表整除的意思,5/2=2,不是,double意思是強制轉為雙精度型,通常是6位小數。所以(double)(5/2)=(double)2= 。

但是(double) 5/2=,這時的算式是先算(double)5 =,然後再算5.

000000除以2得到。請注意上述兩式的區別。

int)就是強制轉為整型的意思,即把小數部分都去掉。

最後結果為4。

10樓:嬌嬌的藍水晶

5/2=2 ;

2強制轉換成double之後變成了;

強制轉換成int之後變成4

11樓:畫雲舞語

注意c語言的資料是帶型別的。

從括號最裡面開始。

int 5/int 2 = int 2 (/對於整形是整除)(double) int 2 = double 2double 2 + double = double 4.

5 = int 4 (double轉化成int向下取整)

c語言的問題

12樓:星辰冰逸

選da. 函式不准許巢狀定義,就是不准許函式里面定義函式b. 不必須。

只要再呼叫前,申明這個函式,或者呼叫前,定義這個函式就行,貌似c還有很多其他規則。這些情況,都可以不放在同一個檔案中。

c.可以使用void型別,沒有返回值。

d.確實不能把形參傳給實參,實參傳給形參值後,函式內部,實參是不可見的,可見的只是實參的「替代品」——形參。

13樓:拒絕996的瀟灑程式設計師

答案:d

a: c語言函式可以遞迴呼叫,但不能巢狀定義。

b: 不需要放在同一個源程式檔案中,只需在同一個標頭檔案中宣告。

c: void型函式沒有返回值。

d: 是的。這和形參、實參的定義有關。

一個c語言的問題 5

14樓:滄海雄風

你的題目不對。

下面4個選項中,均是合法轉義字元的選項是( )

a.''b.'\017' 'n'

c.'\018' 'f' 'xab'

d.'\0' '101' 'x1f'

ba 很明顯'\'這個不對。

c '\018',8進位制數里會有計數符8麼 'xab'

d '\0' 'x1f' 這兩個都不對。

15樓:

4個選項都沒有全部合法的!

c語言的幾個問題

16樓:匿名使用者

a!=y 是一個判斷語句 要麼為0 要麼為1 (但題目中沒有給x y賦值 所以執行時程式會出錯)c a*u u是什麼看不懂誒 如果是unsiged 那麼用法不對 如果是變數 那麼u未定義 也錯的 d x+y=x 明顯不對 如果x y都賦值了的話 那麼x的值不能賦給x+y

的意思是a不等於b+c c是判斷a是否等於b+c 如果a++後是正數則if成立,否則不成立 選b

a=a++相當於a++ b 為判斷語句 當a+k<=i+k成立時 i=1 否則為0 c. 明顯對 d.明顯錯。

17樓:

第二題選a,樓上先看清題目啊,就a的「<>符號是錯誤的,bcd都可以。

c語言的幾個問題

18樓:巨季雅

1.完全不懂任何程式語言的人,從c語言開始,嚴格說從譚浩強c語言開始是可以的,這也是為什麼譚浩強那本書那麼暢銷的奧妙。譚浩強的那本書,從基礎開始,很基礎,由淺入深。

其實很多語言都是相通的,主要是要有個程式設計思想。

2.譚浩強那本書是基礎,前面幾張講的也是基礎,是關於一些變數,演算法,語言結構等。如果你baidu一個程式,一看,(.

c或。h格式)都是基本的c隊起來的。譚浩強的那本書並不是編不了視窗,只是你用的軟體不同罷了,練習譚浩強c語音,一般是在turbo c環境下,這個環境編不出windows串列埠的,你可以在vc或bcb環境下編寫視窗。

其實vb,delphi也可以,相對於vc還簡單一些。

3.任何語言都有一個演算法問題,比如從1加到100,常用的是一個一個加起來,這是最愚蠢的,如果用一個for迴圈,是不是很快啊。

我們見到的視窗介面只是表象,你可知道,他後面是需要有程式支援的,比如一個視窗,畫個「叉」,你點選一下,他為什麼會關閉,那是因為他後面有程式的。

如果你只是一個c初學者,建議你還是把譚浩強《c程式設計》前幾章好好看看,看到指標即可,如果想深入,或成為高手,指標連結串列,資料結構必須要看。

如果你急於實現視窗,建議你下幾個小程式,(用vc編寫的),邊琢磨邊學習。從中還可以自己設計幾個小軟體呢。

祝你學有所成,希望對你有幫助。

19樓:

問題一:譚浩強的《c程式設計》比較基礎,對沒程式設計基礎的人適用;

問題二:c語言功能較強,你可以通過圖形函式(畫點、畫線等)編寫出視窗(人機介面),更可以用vc++(visual c++\visual studio平臺,輕易實現);

問題三:程式設計,程式設計的主要目的是為了生成程式進行資料處理,所以主要是演算法,而演算法,主要與數學有關,它們緊密聯絡。舉一個簡單的例子:

你要程式設計序計算學生的平均分,那編寫的程式自然是按:將學生的成績加起來,再求平均的思路來編寫**,這與數學解答是一個理。

問C語言的問題,問一個C語言的問題?

include intrank k 階乘函式 void main else printf m,n值不符合條件!n 結果輸入m值 6 輸入n值 3 m n m n 20 press anykey tocontinue 平臺 vc6.0 說實話,沒明白你問的是什麼?你這程式ok了啊。就是呼叫子函式比大小...

C語言的小問題,C語言的一個小問題

for迴圈的結構如下 for 語句1 語句2 語句3 其中語句1用來對迴圈變數進行初始化,例如i 0 或者i 0,j 1 等等。語句2用來控制迴圈條件,例如i 100 等,表示如果迴圈變數滿足這個條件的時候,迴圈一直進行下去,直到迴圈變數不滿足條件為止。語句3一般用來對迴圈變數進行修改,例如i 等,...

C語言基礎問題,一個C語言基礎問題。。。

補充一點 兄弟,你是才入門學c語言的吧 我給你一個忠實的建議 學語言千萬不要在不值得的細節去扣 比如 i的問題 一般高手是不會寫出很難懂的語句 好的語言 可讀性 是很重要的 的確,有的時候高手也會被一些邏輯問題搞錯了,上機實踐是最好的確認方法 下面的分析真的錯了,因為for迴圈語句在意義上相當於我分...