C語言一道題,求講解,馬上考試了,不會啊

2023-01-30 22:35:09 字數 4086 閱讀 9860

1樓:匿名使用者

沒有問題。

c=d時,k原來等於2,k%=2以後k=0,你用的continue,後面不會執行k++方法。

然後c=e k原來等於0,k=k*2 不還是等於0麼 ,break以後執行k++以後,k就等於1了。

2樓:匿名使用者

case'd':k%=2;continue;執行完以後k=1,之後的continue是直接開始下一次迴圈,既不執行k++;直接開始c==『e』的迴圈,執行k=k*2;和k++;所以結果是3。如果還有疑問可以到vc++6.

0裡面debug一下,就能看清每一步的運**況。

一道c語言試題,求講解!!!

3樓:匿名使用者

p = int*)a; 就是讓p指向a的首地址。

p[1][1]是不可以的, 因為p的型別是 int* 它不是二維的所以不能用二維陣列的語法。

關鍵點就是: 1.要了解記憶體的狀態。 2.要了解語法的限制。

程式思想正確和語法能通過 這兩者是必須同時具備的, 但思想和語法未必要一回事, 只要他們各自正確就行了。

4樓:匿名使用者

p=(int *)a

相當於 p = a,就是把a[3][4]的首地址賦給p.

二維陣列在記憶體中也是順序儲存的:

a[0][0] a[0][1] a[0][2] a[0][3] a[1][0] a[1][1] a[1][2] a[1][3]..

。a的第2行第2列 為 a[1][1];等於從首地址移動5 p = p + 5 ,也就是p[5]

5樓:匿名使用者

p=(int *)a是對於二維陣列的指標定義方法p指向陣列a的首地址 沒錯。

二維陣列是一維陣列的擴充套件。

也就是特殊的一維陣列。

在記憶體當中存放的方式 二維陣列和一維陣列是一樣的都是連續的空間存放。

p開始指向首地址。

然後p[5]也就不難理解了。

一道c語言試題求講解,十分感謝!!

6樓:網友

p=(char *)a;將a的地址轉換為字元指標,也就是原來放的整數0x4145現在當成字串來解釋,在記憶體裡面0x4145是這樣存放的,先在一個低位元組裡放0x45再在接下來的一個高位元組裡放0x41,intel的cpu是小端位元組處理器,也就是說如果一個物件需要超過一個位元組的記憶體來存放,那麼它的地址就是最低的那個位元組的地址,0x4146的地址就是存放0x45那個單元的地址,p指向0x4145於是p實際就是0x45那一個單元的地址,*p就取出了0x45這個值。。。明白了吧。

7樓:匿名使用者

int a=0x4145;

a 在記憶體佔 4 個位元組,ox45存放在低位元組,ox41存放在高位元組char *p;

p 是一個指向單個字元的指標,這就決定了它的運算規則,指標運算子 * 也只取1個位元組的值。

p=(char *)a;

p 指向 a 的那塊記憶體首地址,即指向ox45*p+=1;

p 指向的那個位元組的值自增,即ox45+1 = ox46printf(「%x」 ,p);

以十六進位制輸出 p 指向的記憶體的值。

8樓:網友

int a=0x4145;在記憶體中, 低位位元組在前,高位位元組在後,即0x45,0x41.

&在這做取址符。即獲得a的地址。因為a 是整形是,而p是指向字元型,即從所指地址讀一個位元組,通過(char *)強制把整形的地址轉化為字元型,即p指向0x45,加1後成0x46

9樓:網友

我覺得答案應該是a吧,c的語法我忘的差不多了,不過*p是char型的,在記憶體中指向兩個位元組的資料,而a是int型的,是4個位元組,第三句話應該是與a相與,1和0相與就是0,1和1相與不變,a是16進位制,那麼就保留最後的兩位,即45,指標p再加1的話就是46,用排除法也可以做出來。

c語言的一道題,看不懂題意,求大神講解,謝謝啦

10樓:匿名使用者

就比如6=1+2+3。有三個因子(不包括6)分別是1,2,3 它們的和等於這個數本身,這個數就是完數了。

int number,i,sum=0;

printf("請輸入一個正整數:")

scanf("%d",&number);

for(i=1,i}if(sum==number)

printf("%d是完數。",number);

c語言題目 有一道題目不會做了,求大神指點

11樓:宗茗

這函式要實現什麼功能,請給出來好麼。。。

12樓:匿名使用者

沒說要幹嘛真沒法寫。題目要求你幹嘛?

還有你的檔案頭沒寫完。#include

13樓:我不清楚唉

額 要打算完成啥功能啊。

14樓:匿名使用者

您是想把陣列元素經過函式呼叫之後逆序輸出吧?

c語言一道題求大神講解

15樓:網友

剛才又有了一點想法,就是在建立trie樹的時候,當出現一個分岔點,就用陣列記錄下正在進行建樹的字串還有多少個字元沒有新增到樹中(因為題目所求的結果就是一個字串刪去後面的一段之後新增另外一個字串的字尾,即兩個字串會有相同的字首),同時在建樹的過程中每一個節點都記錄該字串還有多少個字元沒有新增到樹中。這樣只要已出現分岔點,就可以將正在建樹的字串的長度加上之前進入了樹的字串在分岔點時剩下的字元個數,就可以得出那兩個字串的結果。用一個變數記錄最小值,最後就可以得到一個最小值了。

一道c語言的題,求講解

16樓:匿名使用者

首先要明確一點,for (i=0;i<2;i++)j+=fun(m++)迴圈的迴圈體只執行二次(分別是i=0和i=1)

在第一次執行前,j==0,m=2,第一次執行:

呼叫fun(m++)相當於執行fun(2),在fun函式體內,t被定義為靜態變數並且初始化為3,下面的m+=t++執行之後將使m的值增3(此時m值為5,並且t的值增1(即此時t值為4),接著返回m使得主程式中的j值增5(此時j值為5)。

第二次執行:

繼續呼叫fun(m++)此時m值3,在fun函式體內,由於t被定義為靜態變數,所以將保持上次呼叫時的值,即此時t值為4,此次fun()將返回7,這將使主程式中的j值增7成為12。

下面的printf("%d",j); 將輸出j值12。

由於m沒有定義為全域性變數或者外部變數,所以,主程式中的m和fun中的m是無關的,二者互不影響。

17樓:網友

第一次迴圈前:m=2,j=0,t=3

第一次迴圈:m=m+t=2+3=5,t=t+1=4;

j=j+m=5.

第二次迴圈前:m=3,j=5,t=4

第二次迴圈:m=m+t=3+4=7,t=t+1=5;

j=j+m=5+7=12.

18樓:匿名使用者

#include ""

int fun(int m)

/*fun可以改為。

int fun(int m)

*/main()

/*main可以改為。

main()

註釋裡的是執行語句後各值大小!~~

c語言分析幫我講解一道題目,省二級就快考試了,我覺得這道題目很典型~~

19樓:

10本程式就是計算進行引數的字元個數;2-4 123 45 67四個引數剛好10字元(不計空格).

20樓:陳學陽

應該是「divide error」

如果對您有幫助,請記得采納為滿意答案,謝謝!祝您生活愉快!

vaela

跪求c語言高手,下午考試,一道程式設計題,求高手啊

21樓:匿名使用者

c語言程式設計題多了去了?編哪個呀!

求一道C語言程式設計題,求助一道C語言程式設計題

char a 醋 a瓶裝醋 char b 醬油抄 b瓶裝醬襲油 char c c是一個空瓶子 strcpy c,a 先將a的醋放到c裡面strcpy a,b 再把b中醬油放到a裡面strcpy b,c 最後把原來放a中轉到c中的醋放到b中strcpy是一個字串複製語句 在前面加上標頭檔案 inclu...

急求一道c語言題答案及解析,急求一道C語言題答案及解析

這題你要理解i 與 i的用法,i 是指取值用後再減,i是指減了後在用。也一樣 還有你要明白邏輯運算 表示 與運算 表示或運算。他們有什麼特點呢?是見假為假,是見真為真 我給你分析一個其他的自己好好看看.m 1 x y z p x,y,z 首先判斷x 的值為1 這個x y z 句子就完了,可以判斷這句...

一道c語言程式設計題求大佬,如圖,一道C語言程式設計題,求大佬棒棒忙

void func for i 50 i 60 i for i 65 i 100 i i 10 printf n int main include int func int n return 0 int main 一道c語言程式設計題,求大佬棒棒忙 補充部分的 float av 0 int i fo...