c語言問題,C語言問題

2021-03-03 23:52:36 字數 6091 閱讀 3359

1樓:山水阿銳

您好,c語言經典100題:

題目:有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 is the %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("**all to big: %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);}

c語言問題?

2樓:澄雯賽空

for(k=1;k+1;k++)

中,k=1是設循bai環du的初值,zhik+1是執行循dao環的條件,k++是迴圈的增量回。

k=1時,k+1=2,為非0,c語言中,0代表答假,非0代表真。

所以,k=1時往下執行迴圈,

滿足k<4

列印k的值,即1。

break

退出for

迴圈,下面的printf("%d",k++);

沒有執行。

所以,程式的執行結果是1

3樓:聽不清啊

最後資料型別自動轉換的結果是double型,因為是向長度最大的型別轉換的。

4樓:匿名使用者

應該是d double

5樓:叫我淡藍

s是char型別,可以ascii變int型別115

115+23-2.56=135.44

所以選b

6樓:褚姣姣威智

答案是b。。多維陣列的元素是線性儲存的。所以在記憶體中a陣列是存放在一片專連續的記憶體空間裡。元素的順

屬序為:a[0][0]

a[0][1]

a[1][0]

a[1][1]

a[2][0]

a[2][1]

。c語言對陣列下標越界不作檢查,所以a[0][2]是合法的。它相當於a[0][1]的下一個元素。

而a[0][1]在記憶體中的下一個元素其實是a[1][0]。所以a[0][2]=a[1][0]=1

3/2/1,結果是1啦。。

7樓:森布彭宣

可以對調,也可以寫在同一行

disc的意思是將b*b-4*a*c運算得到的值賦給disc,也就是說它是一個變數

8樓:蟻昂雄賞敬

1,逗號表示式的值是最後一個的值,前面給t賦值為1,然後t+5只是做了運算,沒有把值賦給t,最後t自加,但是是後自加,所以先取其值在自加,整個表示式值為1,t為2.

9樓:納喇樂松丘火

錯誤為d

原因:要說明這個錯誤的原因我要先解釋下什麼叫做函式形參函式形參就是函式的形式引數

也許這樣說你不太明白

舉個列子吧

例如:函式:int

test(int

i)說明這裡的i就是形參

所以d是錯誤的

10樓:冷冷冷冷

很高興為您解答!

答案選b哦

c語言問題?

11樓:友有友

嗯你的理解是對的,break就是用來跳出的switch,如果沒有break時就像你說的那樣,當其中一個case符合條件是,後面的全部語句都會當做成立的條件去執行

12樓:yfgh無悔

如果所有的case都不符合,就會執行default語句,之後會跳出這一層,繼續執行下一次迴圈。

13樓:蒼穹夜光

首先求解表示式,其計算結果若與下面某個常量表示式相等,則執行完該case,一專般後面後面加上break;跳出,

若該case沒有break,執行完後,後面的case會依次執行,直到碰到break,不然就會執行完所有語句。

對於你的問題,沒有break,舉個例子,若屬表示式結果為 第三個常量表示式,會執行完語句段3到語句段n+1所有語句。即(如果表示式的值與某個常量表示式的值相等,則執行該常量表示式後的所有語句段)

還有一般default後面只有一個語句段,說所有語句段不太合適。

應該是對的。

14樓:荊芳菲力蒼

這是一來

個for語句,根據for語句的源形式:for(語句bai1;語du句2;語句3){函式體;}

的執行順序是zhi:語句1,判斷dao語句2是否成立(非0為真,0為假)函式體,最後是語句3,(£)再進行判斷語句2,是否成立,在執行函式體,語句3

,在執行(£)知道條件不滿足語句2,跳出迴圈;如果,語句2是非邏輯表示式,即非判斷語句時,迴圈體內,必有滿足條件的跳出語句

break,否則為死迴圈;

這裡的for(k=1;k+1;k++)

可以這樣解釋:執行迴圈for()語句時,初始條件

k=1;之後執行

k+1(k=2,非0,條件為真繼續執行)之後執行函式體for下面花括號{}的內容,之後在執行

k++(k自增1)

所以,明白for()語句的執行順序就可以明白了,明白了嗎?

15樓:金蔚逮忻歡

main函式雖然是主函式、它是程式執行的開始處、但是、它也是函式、所以、也有返回值專和沒有返回值屬

c99標準規定main函式必須是int

返回值return

0;至於返回值是返回給作業系統的!

void

main

就是沒有返回值

16樓:蘇幹孟暢然

intmain()

在函式結尾需要給出返回值

void

main()

就不需要了。

一般,對於寫程式的來說,這兩個差別不大。

但是,不同編譯器對此的處理可能不同。

17樓:宋來吳冰菱

這一段**的思想是動態規劃

dp[j]

=dp[j]

+dp[j-a[i]];

拼出j的個數等於拼出j-a[i]的個數加上原本拼出j的個數

18樓:牧典表秀美

是的。表示已經定義了max這個巨集,而這個巨集的內容為空。如果後期進行巨集替換則該巨集被替換為空的內容。

比如int

a=max-5;就替換成int

a=-5;

19樓:覃奧韋向

可能是你沒有給兩個變數賦初值,你加兩句賦初值語句在試試看,希望能對你起到幫助

20樓:權敬枝浩然

int(*p)[5]

這是一個陣列指標

說明變數p是一個指標,指向了一個容量為5的陣列。

21樓:顧宜世依白

有區別假如你用的int

main()那麼你程式執行結束後的程序狀態值是在main裡返回的值。如果void的話,其他程式就不能得到你這個程式的結束返回值。。。

22樓:襲邵隱春燕

str1+strlen(str1)/2

strlen(str1)=13(空格也是1個)str+6是&[6]的地址

strcpy(str1+strlen(str1)/2,"esshe")

是將es

she複製到str1+strlen(str1)/2去,就是從第六位開版

始你說的也對權!

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

沒有縮排,看來比較累 但是輸入一串字元以後要輸入結束標誌eof表示你的輸入結束了 如果你是unix,就用ctrl d,dos就用ctrl z include define maxline 1000 maximum input line length int getline char line,int...

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

把檔案中所有逗號用空格替換。把if fp fopen goods.dat rb null 改成fp fopen goods.dat r null 把 feof fp 換成 0。把 一行刪除。以上3 4也可以在while前新增一行 解決 把printf s,2s,d,d n name,price,in...

c語言問題,C語言問題,謝謝!!!

按照你的要求編寫的c語言程式如下 整型 int 字元型 char 單精度型 float 雙精度型 double 整個程式 6陣列的首地址 主函式main 3strcmp malloc等 c exe c語言問題,謝謝!這樣簡單的 復問題,按照制書上的舉例。套出一bai個來就行了,就是du一個迴圈語句,...