c程式分析,C 程式解析(需分析)

2025-02-07 07:15:24 字數 4217 閱讀 4751

1樓:靈虛上人

#include

2 void add(int a,int b,int c) /函式add,計算a+b,並賦值給c

8 void minus(int a,int b,int c) /函式minus,計算a-b,賦值給c

14 void multiplication(int a,int b,int c) /函式。

20 void div(int a,int b,float c)//函式。

26 void main() 主函式。

27 while(p!='0');輸入0運算子的時候退出,45 }

程式執行的時候,從mian()函式(26行)開始執行,執行到地39行,根據p的值呼叫前面4個定義的函式,如果p的值是+,則呼叫函式add,函式add執行完後,回到main()函式39行,跳過40-43行,進入44行,判斷p的值,由於此時p的值是+,不為0,迴圈繼續,程式跳到第35行,繼續執行,讓使用者輸入運算子,此時如果使用者輸入0,程式會輸出「沒有註冊這個運算子號」,程式結束。

本人新手,如有不對請指正,大家一起學習~~

c++程式解析(需分析)

2樓:

a正確, 題有錯,應該是10+i+'f'吧?這樣的話結果是int型,因為10是預設int,i是宣告的int,'f'預設char,都提公升為int型。

d正確,浮點數可以++、=和/操作。

a正確,bool和char都是1位元組,int為2或4位元組,long和float4位元組,double8位元組。

66,'a'的ascii碼是65,65+取整為66。

c正確,對a=(b=1)+2,所有編譯器都會解釋為b=1;a=b+2;,而其他各項不同的編譯器可能會有不同解釋。

結果是60,x = ( a = 3 * 5 , a * 4), a + 5 ;是x = ( a = 3 * 5 , a * 4)和a + 5;兩個逗號表示式,前者的運算結果是最後乙個表示式即a * 4的值,因為它被編譯器解釋為 a = 3 * 5;,x=a*4;。

double型,10是預設int型,3被強制為float型,所以10/static_cast (3)是float型;而是預設double型,double最長,所以都被提公升為double型,最後結果也是double型。

3樓:匿名使用者

第乙個最後那應該是印刷錯誤。

10+i+f的結果是double型別,表示式做自動型別轉換的方向是儘量不丟失精度。

第二題d,浮點數可以做自增運算。

第三題a,bool,char都是1byte,int是2或4bytes,long和float是4bytes,double是8bytes

第四題,a還是int,結果為66,a的asc值為65,加是,轉為int損失小數變成66

第五題就是c,這個實在沒法解釋,標準的描述是」運算子兩側運算元的求值順序不作規定「,所以各種不加括號的複合賦值,自增自減連用都是未定義行為,有***。

第六題是兩個字尾表示式,字尾表示式的值就是最後乙個表示式的值,搞明白這個就好理解了,輸出x=20,a=15

第七題麼,結果是0,10是int,static_cast (3)是float,是float,'a'是char, 10l 是long, 5>10是bool,最後10/扣掉小數就是0了。

4樓:ta夏了夏天

第一題的f就是float型的數。第二題d。第三題bool型別,長度為8位,只能進行異或操作。 char型別,長度為8位,能進行+ -/ %和字元操作。

5樓:篤俠

1. b

2. d (取模運算的運算量必須為整型)

3. a4. int (賦值表示式(語句)值的型別為被賦值的變數型別)

5. a (b,c,d都是為乙個變數賦值的同時改變了另乙個變數的值——***)

6. 60 這是逗號表示式語句:x = ( a = 3 * 5 , a * 4), a + 5 ;

x = ( a = 3 * 5 , a * 4)為第乙個表示式,a + 5為第二個表示式。x被賦的值為( a = 3 * 5 , a * 4)中的 a * 4),所以結果為60。

7.10 / static_cast (3) -float, float (兩個運算量均轉換為float)

10 / static_cast (3) *double, double(的型別為double——浮點常量預設型別為double)

10 / static_cast (3) *'a' --double, double

10l * 5 > 10) -long, long

10 / static_cast (3) *'a' + 10l * 5 > 10)--double, double

c語言程式設計怎樣分析資料

6樓:

你的問題問的太籠統了。

程式的靈魂—演算法。

乙個程式應包括:

對資料的描述:在程式中要指定資料的型別和資料的組織形式,即資料結構(data structure)。

對操作的描述:即操作步驟,也就是演算法(algorithm)。

nikiklaus wirth提出的公式:

資料結構+演算法=程式。

教材認為:程式=演算法+資料結構+程式設計方法+語言工具和環境。

這4個方面是乙個程式涉及人員所應具備的知識。

演算法的概念。

做任何事情都有一定的步驟。為解決乙個問題而採取的方法和步驟,就稱為演算法。

計算機演算法:計算機能夠執行的演算法。

計算機演算法可分為兩大類:

數值運算演算法:求解數值;

非數值運算演算法:事務管理領域。

簡單演算法舉例。

例】求1×2×3×4×5。

最原始方法:

步驟1:先求1×2,得到結果2。

步驟2:將步驟1得到的乘積2乘以3,得到結果6。

步驟3:將6再乘以4,得24。

步驟4:將24再乘以5,得120。

這樣的演算法雖然正確,但太繁。

改進的演算法:

s1: 使t=1

s2: 使i=2

s3: 使t×i, 乘積仍然放在在變數t中,可表示為t×i→t

s4: 使i的值+1,即i+1→i

s5: 如果i≤5, 返回重新執行步驟s3以及其後的s4和s5;否則,演算法結束。

如果計算100!只需將s5:若i≤5改成i≤100即可。

如果該求1×3×5×7×9×11,演算法也只需做很少的改動:

s1: 1→t

s2: 3→i

s3: t×i→t

s4: i+2→t

s5:若i≤11, 返回s3,否則,結束。

該演算法不僅正確,而且是計算機較好的演算法,因為計算機是高速運算的自動機器,實現迴圈輕而易舉。

思考:若將 s5寫成:s5:若i<11, 返回s3;否則,結束。

c語言程式分析問題

7樓:網友

由於i*j=168,j>=2,且i與j均是大於等於2的偶數,所以1

c++程式分析,請給出分析和結果,謝謝

8樓:網友

m p(5),q(10);

這句話構造了p和q兩個m物件,所以建構函式呼叫了兩次那麼 靜態成員變數 b就被執行兩次 b+=a;,b的初始值為0(m::b=0得到)

第一次a=5,第二次a=10;

所以b=15;

所以m::f1(p)輸出結果就是。

a=5,b=15

m::f1(q)輸出結果就是。

a=10b=15

朋友,請【採納答案】,您的採納是我答題的動力,如果沒有明白,請追問。謝謝。

程式分析的介紹

9樓:點點犬吠

程式分銷餘析是指對電腦程式行為虧物滾螞皮進行自動分析的過程,主要包括靜態分析和動態分析兩種策略。

c++,程式分析 謝謝

10樓:無懈可擊

n是求1+2+3,m始終是1,若把條件i<3和j<3改成i<100和j<100,則n是1+2+3+……100。

說明n是求1+2+3+……n(n不同於程式中的n)

11樓:小龍夕

61注意n++後面是; 即m不參加迴圈 只執行一次。

C語言程式解析,c語言程式詳解

一看就是個數列問題 從n 1,p t 1 p 2009,s s t 2009 n 2 p i 1 t 1 p 2009 s s t 2009 t 2009 i 2 t 1 p 2009 p 2009 j 1 s s t 2009 t 2009 t 2009 j 2 s s t 2009 t 2009...

c分析下列程式中類MyClass的定義

y是父類例項物件,你沒有給y.i賦值,系統預設int型別的值為0 c 分析下列程式中類myclass的定義 myclass y new myclass baseclass x y x.i 100 console.writeline x.i,y.i x.i 100,已經給他copy賦值bai了100,...

C語言程式分析,給我解釋一下下面這段程式,具體是怎麼完成的呢

define active high 這樣程式中的巨集替換最終是 if p0 1 相當於if p0 1 0 c語言的,有沒有大神給看下這段程式是怎麼解讀的?看不全 printf c class 2 name 初始化的時候 第二個為mary 也就是class 2 name字串的第一個字元 新手學c語言...