c語言的問題

時間 2021-09-11 22:33:37

1樓:

swap1中的引數是個陣列地址,也就是指標,所以交換的是兩個元素在記憶體中的地址,所以達到了交換兩個數的目的,屬於按址傳遞,而swap2中接收的是兩個整型數,屬於按值拷貝,交換的只是這兩個數的拷貝,所以實參本身並沒有交換

2樓:

確實是這樣的,這是c語言的一個難點,要好好掌握哦

3樓:鞠茉揚穀蕊

巨集是預編譯

所以只是簡單置換

這和函式不同

你這題目認真算算即可

如果我算得沒錯的話

應該是3113

過程和cdma980大致相同

4樓:鄂然帛奇邃

恩,用switch選擇符號,很簡單的,

最後做除法的時候,

要判斷除數是否為0,2樓的顯然寫的不是很好

5樓:夷詠緒如彤

左邊補零,有點像求餘(模運算)

6樓:翟燎牧香菱

在程式中,m等於0或者x=a[i]=44時,while迴圈就終止。實際執行是在x=a[i]=44時,while迴圈就終止,列印結果44

5。具體執行步驟如下:

(1)i

=y/2+1

=9/2

+1=4+1

=5;m=

y/2=

9/2=

4;m!=0

進入while迴圈

(2)a[i]

=a[5]=44

(a數列從a[0]開始),x=a[i]=44if()和else

if()內條件都不成立,執行else

break跳出迴圈執行printf()語句(3)列印x和i,因為從列印格式,它們的值連在一起,是445(44是x值,5是i值)

7樓:戢琪強平心

因為s1=min(a=b,b-a)即s1=min(3,3-2)=1所以輸出3

又s2=113

故結果為3113

8樓:哀微浮柔婉

char

(*p3)[5]、char

(*p4)[5]等分別表示的是一個二維陣列。char(*p3)[10]

=&a;中&a是存放一維陣列地址的地址,char(*p4)[5]

=a;中,a是一個一維陣列的地址。p3+1為未知值,而p4初始化編譯通不過

9樓:迮蕊釗德潤

a>>4

右移4位

右移的那4位補零

10樓:喜羊羊

#include "stdio.h"

int main()

int sum=0,i;

for (i=2;i<=100;i=i+2)sum=sum+i;

return 0;

#include "stdio.h"

#include "string.h"

int main()

char s1[6]={};

char s2[6]=;

int i;

printf("輸入字串: \n");

gets(s1);

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

if(s1[i]!=s2[i])

break;

if(i==5)

printf("this word is water\n");

else

printf("this word is not water\n");

return 0;

11樓:鎮嶽邸嘉德

答案為monkey~1

c的識別符號必須是字母或下劃線_及$開頭的,且只能由數字,字母,_及$組成

12樓:堅鶯南宮冬雁

本人沒有考慮演算法的正確性與否,完全按照您出示的演算法寫的如下程式:

#include

void

main()

printf("結果為:%f\n",term);}

13樓:蓬闌餘安萱

a.8e-4合法的。

e前面的是小於10大於1的小數,e表示是以10為底的冪,-4是冪的次方數,都合法正確。

b.錯:e前無數字,次方是小數是不允許的。

c.錯:e前無數字。

d.錯:e前無數字,e後無次方數。

c的科學計數語法是e前的1和e後的1都不能省略。

14樓:桂娥淳于丹萱

當然是錯的,c語言的語句必須在函式內,

你的system("color

a")位置不對的

正確可以執行的程式為

15樓:鈔瓊習幻玉

您好,c語言經典100題:

【程式1】

題目:有1,2,3,4個數字,能組成多少個互不相同且無重複數字的三位數

都是多少

1.程式分析:可填在百位,十位,個位的數字都是1,2,3,4.組成所有的排列後再去

掉不滿足條件的排列.

2.程式源**:

main()

}【程式2】

題目:企業發放的獎金根據利潤提成.利潤(i)低於或等於10萬元時,獎金可提10%;利潤高

於10萬元,低於20萬元時,低於10萬元的部分按10%提成,高於10萬元的部分,可可提

成7.5%;20萬到40萬之間時,高於20萬元的部分,可提成5%;40萬到60萬之間時高於

40萬元的部分,可提成3%;60萬到100萬之間時,高於60萬元的部分,可提成1.5%,高於

100萬元時,超過100萬元的部分按1%提成,從鍵盤輸入當月利潤i,求應發放獎金總數

1.程式分析:請利用數軸來分界,定位.注意定義時需把獎金定義成長整型.

2.程式源**:

main()

【程式3】

題目:一個整數,它加上100後是一個完全平方數,再加上168又是一個完全平方數,請問該數是多少

1.程式分析:在10萬以內判斷,先將該數加上100後再開方,再將該數加上268後再開方,如果開方後

的結果滿足如下條件,即是結果.請看具體分析:

2.程式源**:

#include

"math.h"

main()

【程式4】

題目:輸入某年某月某日,判斷這一天是這一年的第幾天?

1.程式分析:以3月5日為例,應該先把前兩個月的加起來,然後再加上5天即本年的第幾天,特殊

情況,閏年且輸入月份大於3時需考慮多加一天。

2.程式源**:

main()

sumsum+day;

/*再加上某天的天數*/

判斷是不是閏年*/

leap1;

else

leap0;

if(leap1&&month>2)/*如果是閏年且月份大於2,總天數應該加一天*/

sum++;

printf("it

isthe

%dth

day.",sum);}

【程式5】

題目:輸入三個整數x,y,z,請把這三個數由小到大輸出.

1.程式分析:我們想辦法把最小的數放到x上,先將x與y進行比較,如果x>y則將x與y的值進行交換,

然後再用x與z進行比較,如果x>z則將x與z的值進行交換,這樣能使x最小.

2.程式源**:

main()

/*交換x,y的值*/

if(x>z)

/*交換x,z的值*/

if(y>z)

/*交換z,y的值*/

printf("small

tobig:

%d%d

%d\n",x,y,z);

}【程式6】

題目:用*號輸出字母c的圖案.

1.程式分析:可先用'*'號在紙上寫出字母c,再分行輸出.

2.程式源**:

#include

"stdio.h"

main()

【程式7】

題目:輸出特殊圖案,請在c環境中執行,看一看,very

beautiful!

1.程式分析:字元共有256個.不同字元,圖形不一樣.

2.程式源**:

#include

"stdio.h"

main()

【程式8】

題目:輸出9*9口訣.

1.程式分析:分行與列考慮,共9行9列,i控制行,j控制列.

2.程式源**:

#include

"stdio.h"

main()

printf("\n");/*每一行後換行*/}}

【程式9】

題目:要求輸出國際象棋棋盤.

1.程式分析:用i控制行,j來控制列,根據i+j的和的變化來控制輸出黑方格,還是白方格.

2.程式源**:

#include

"stdio.h"

main()

}【程式10】

題目:列印樓梯,同時在樓梯上方列印兩個笑臉.

1.程式分析:用i控制行,j來控制列,j根據i的變化來控制輸出黑方格的個數.

2.程式源**:

#include

"stdio.h"

main()

}【程式11】

題目:古典問題:有一對兔子,從出生後第3個月起每個月都生一對兔子,小兔子長到第三個月

後每個月又生一對兔子,假如兔子都不死,問每個月的兔子總數為多少

1.程式分析:

兔子的規律為數列1,1,2,3,5,8,13,21....

2.程式源**:

main()

}【程式12】

題目:判斷101-200之間有多少個素數,並輸出所有素數.

1.程式分析:判斷素數的方法:用一個數分別去除2到sqrt(這個數),如果能被整除,

則表明此數不是素數,反之是素數.

2.程式源**:

#include

"math.h"

main()

if(leap)

leap1;

}printf("\nthe

total

is%d",h);}

16樓:銀輝獨以柳

a=b=c=2;a=

a+b=4b=

b+a=

6c=c+b=8

所以輸出的為

6yes

a=4,b=6,c=8

17樓:亓馨咎範明

看截圖,你用的應該是vc++編譯器,但你的源副檔名估計是.c字尾的,如果是.c字尾的,那麼編譯器會以c規則編譯**。

在c語言裡,區域性變數的定義必須在最前面,p=head;屬於賦值,那麼後面就不能再出現定義語句,int

max,num;違反了這條規則,而structstudent

*p=head;屬於定義,後面的int

max,num;就不違反規則。

把int

max,num;移到前面就行了,或者把原始檔字尾改為.cpp,以c++規則編譯就沒這樣的限制了。

18樓:沐閔馬佳晉

迴圈佇列的幾個公式給你總結下:

對頭指標+1:q.front=(q.front+1)%maxsize

隊尾指標+1:q.reae=(q.rear+1)%maxsize

初始化:q.front=q.rear=0

隊空:q.front=q.rear

隊滿:(q.rear+1)%maxsize=q.front

求長度:(q.rear-q.front+maxsize)%maxsize

%maxsize是為了防止越界,比如一共30個位置,隊尾指到30了,如果+1就到31了,這時候再取模30就得1,那麼隊尾指到的30向後+1就到了1了,迴圈回來了。

題目中,容量也就是maxsize=30。

由上述倒數第二個共識式子(q.rear+1)%maxsize=q.front得出(15+1)%30=16指到佇列已經滿了。

區分隊滿與對空的條件,隊滿是頭尾指標差一個,也就是隊尾指標當前位置如果再後移一個就等於對頭了。滿的情況下,最大容量是比maxsize少1的。

也就是29,也就是你的題的答案。

或者你用求長度的公式來算一下,(15-16+30)%30答案也是29。

C語言問題,C語言問題C語言問題

選a首先,空格也是一種字元,b d選項分別把空格賦給了c1,c1 其次,c選項不完整,排除 不僅a這樣,10a20b也是可以的。 聽不清啊 答案a 10a 20b cr 是正確的。因為scanf d c 時,會忽略數字前面的空格,遇到非數字字元就會結束讀取 非數字字元會留待下一次讀取,即被後面的 c...

c語言的問題,C語言問題?

魘傳說 這個 的作用就是利用do while將陣列算出來,然後利用for迴圈遍歷,倒序輸出陣列。我感覺很奇怪,devc 出來的結果是10010。我算出來的結果應該是00010,因為強轉int型別應該是取0的,而不是取1.然後我用c 試了多個數字,發現所有的結果都是以1開頭,至於為什麼我也不知道,希望...

C語言的問題,C語言的問題

布什不死 在vc 下沒有問題 改過你存在的問題後 include void main 你的程式 錯誤地方太多,當然得不到正確 結果你能通過 編譯?你在什麼 環境下執行的?正確的應該是 include int main scanf 是輸入函式,n換行符是針對輸出函式 printf來說的! 浩星浦秋梵 ...