第五章MOOC C語言_第1頁
第五章MOOC C語言_第2頁
第五章MOOC C語言_第3頁
第五章MOOC C語言_第4頁
第五章MOOC C語言_第5頁
已閱讀5頁,還剩20頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、1判斷一個整型數(shù)據(jù)有幾位v2.0(4分)題目內(nèi)容:從鍵盤輸入一個整型數(shù)據(jù)(int型),編寫程序判斷該整數(shù)共有幾位,并輸出包含各個數(shù)字的個數(shù)。例如,從鍵盤輸入整數(shù)16644,該整數(shù)共有5位,其中有1個1,2個6,2個4。程序運(yùn)行結(jié)果示例1:Please enter the number:1222612226: 5 bits1: 12: 36: 1程序運(yùn)行結(jié)果示例2:Please enter the number:-12243-12243: 5 bits1: 12: 23: 14: 1輸入格式: "%d"輸出格式:輸入提示信息:"Please enter t

2、he number:n"判斷該整數(shù)共有幾位:"%d: %d bitsn"包含數(shù)字0的個數(shù):"0: %dn"包含數(shù)字1的個數(shù):"1: %dn"包含數(shù)字2的個數(shù):"2: %dn"包含數(shù)字3的個數(shù):"3: %dn"包含數(shù)字4的個數(shù):"4: %dn"包含數(shù)字5的個數(shù):"5: %dn"包含數(shù)字6的個數(shù):"6: %dn"包含數(shù)字7的個數(shù):"7: %dn"包含數(shù)字8的個數(shù):"8: %dn"包含數(shù)字9的

3、個數(shù):"9: %dn"為避免出現(xiàn)格式錯誤,請直接拷貝粘貼題目中給的格式字符串和提示信息到你的程序中。題目內(nèi)容:企業(yè)發(fā)放的獎金根據(jù)利潤提成。利潤低于或等于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%提成,從鍵盤輸入當(dāng)月利潤i,求應(yīng)發(fā)放獎金總數(shù)?程序運(yùn)行結(jié)果示例1:789bonus=7

4、8程序運(yùn)行結(jié)果示例2:789516bonus=36342輸入格式: "%ld"輸出格式:"bonus=%ldn"為避免出現(xiàn)格式錯誤,請直接拷貝粘貼題目中給的格式字符串和提示信息到你題目內(nèi)容:修改下面這個程序使其快速計(jì)算1+2+3+n的值,n從鍵盤輸入。并按照下面給出的運(yùn)行示例檢查程序。1. #include  <stdio.h>2. int main()3. 4. int i, j, sum = 0, n=100;5. for (i=

5、1,j=n; i<=j; i+,j-)6. 7. sum = sum + i + j;8. 9. printf("sum = %d", sum);10. return 0;11. 程序運(yùn)行結(jié)果示例1:5sum = 15程序運(yùn)行結(jié)果示例2:6sum = 21輸入格式: "%d"輸出格式: "sum = %d"  (注意:等號兩側(cè)各有一個空格)為避免出現(xiàn)格式錯誤,請直接拷貝粘貼題目中給

6、的格式字符串和提示信息到你的程序中。修改下面這個用do-while語句實(shí)現(xiàn)的程序,改用while語句實(shí)現(xiàn),并對比其優(yōu)缺點(diǎn)。1. #include  <stdio.h>2. int main()3. 4. int sum = 0, m;5. do6. printf("Input m:n");7. scanf("%d", &m);8. sum = sum + m;9. printf("sum 

7、;= %dn", sum);10. while (m != 0);11. return 0;12. 程序運(yùn)行結(jié)果示例:Input m:1sum = 1Input m:2sum = 3Input m:3sum = 6Input m:4sum = 10Input m:0輸入格式:"%d"輸出格式:輸入提示: "Input m:n"輸出累加和: "sum = %dn"(注意:等號兩側(cè)各有一個空格)為避免出現(xiàn)格式錯誤,請直接拷貝粘貼題目中給的格式字符串和提示信息到你的程序中

8、。時間限制:500ms內(nèi)存限制:32000kbC題目內(nèi)容:我國古代的張丘建算經(jīng)中有這樣一道著名的百雞問題:“雞翁一,值錢五;雞母一,值錢三;雞雛三,值錢一。百錢買百雞,問雞翁、母、雛各幾何?”其意為:公雞每只5元,母雞每只3元,小雞3只1元。用100元買100只雞,問公雞、母雞和小雞各能買多少只?目前程序運(yùn)行結(jié)果有誤,請問為什么會比正確答案多出三個解?不僅要找出錯誤和修正錯誤,還要求利用以前學(xué)過的知識分析錯誤的原因。1. #include <stdio.h>2. int main()3. 4. int x, y, z;5. for&

9、#160;(x=0; x<=20; x+)6. 7. for (y=0; y<=33; y+)8. 9. z = 100 - x - y;10. if (5*x + 3*y + z/3 = 100)11. 12. printf("x=%d, y=%d, z=%dn", x, y, z);13. 14. 15. 16. return

10、60;0;17. 程序目前的運(yùn)行結(jié)果:x=0, y=25, z=75x=3, y=20, z=77x=4, y=18, z=78x=7, y=13, z=80x=8, y=11, z=81x=11, y=6, z=83x=12, y=4, z=84程序正確的運(yùn)行結(jié)果:x=0, y=25, z=75x=4, y=18, z=78x=8, y=11, z=81x=12, y=4, z=84輸入格式: 無輸出格式:"x=%d, y=%d, z=%dn為避免出現(xiàn)格式錯誤,請直接拷貝粘貼題目中給的格式字符串和提示信息到你的程序中。時間限制:500ms內(nèi)存限制:32000kbC題目內(nèi)容:從鍵盤任

11、意輸入一個正整數(shù),編程判斷它是否是素?cái)?shù),若是素?cái)?shù),輸出“Yes!”,否則輸出“No!”。已知負(fù)數(shù)、0和1都不是素?cái)?shù)。請找出下面程序的錯誤并改正之,同時按照給出的運(yùn)行示例檢查修改后的程序。1. #include <stdio.h>2. #include <math.h>3. int main()4. 5. int n, i;6. printf("Input n:n");7. scanf("%d", &n);8. for (i=2; i&

12、lt;=sqrt(n); i+)9. 10. if (n % i = 0)11. 12. printf("No!n");13. 14. 15. printf("Yes!n");16. return 0;17. 程序的運(yùn)行結(jié)果示例1:Input n:-3No!程序的運(yùn)行結(jié)果示例2:Input n:0No!程序的運(yùn)行結(jié)果示例3:Input n:1No!程序的運(yùn)行結(jié)果示例4:Input n:6No!程序的運(yùn)行結(jié)果示例5:Input n:7Yes!輸入格式: "%d&quo

13、t;輸出格式:輸入提示信息: "Input n:n"是素?cái)?shù): "Yes!n"不是素?cái)?shù): "No!n"為避免出現(xiàn)格式錯誤,請直接拷貝粘貼題目中給的格式字符串和提示信息到你的程序中。時間限制:500ms內(nèi)存限制:32000kbC7程序改錯-3(4分)題目內(nèi)容:從鍵盤任意輸入兩個符號各異的整數(shù),直到輸入的兩個整數(shù)滿足要求為止,然后打印這兩個數(shù)。請通過測試找出下面這個程序存在的問題(不止一個問題哦),并改正。同時用下面給出的運(yùn)行結(jié)果示例檢查修改后的程序。1. #include <stdio.h>2.

14、int main()3. 4. int x1, x2;5. do6. printf("Input x1, x2:");7. scanf("%d,%d", &x1, &x2);8. while (x1 * x2 > 0);9. printf("x1=%d,x2=%dn", x1, x2);10. return 0;11. 程序正確的運(yùn)行結(jié)果示例:Input x1, x

15、2:a,sInput x1, x2:a,1Input x1, x2:2,sInput x1, x2:1,2Input x1, x2:-1,-2Input x1, x2:0,3Input x1, x2:1.2,3.4Input x1, x2:1.2,5Input x1, x2:-1,3x1=-1,x2=3輸入格式: "%d,%d"輸出格式:輸入提示信息:"Input x1, x2:n"輸出: "x1=%d,x2=%dn"為避免出現(xiàn)格式錯誤,請直接拷貝粘貼題目中給的格式字符串和提示信息到你的程序中。時間限制:500ms

16、內(nèi)存限制:32000kbC提交答案本次得分/總分:4.00/4.00分8猴子吃桃程序_擴(kuò)展1(4分)題目內(nèi)容:猴子第一天摘了若干個桃子,吃了一半,不過癮,又多吃了1個。第二天早上將剩余的桃子又吃掉一半,并且又多吃了1個。此后每天都是吃掉前一天剩下的一半零一個。到第n天再想吃時,發(fā)現(xiàn)只剩下1個桃子,問第一天它摘了多少桃子?為了加強(qiáng)交互性,由用戶輸入不同的天數(shù)n進(jìn)行遞推,即假設(shè)第n天的桃子數(shù)為1。程序的運(yùn)行結(jié)果示例1:Input days:5x=46程序的運(yùn)行結(jié)果示例2:Input days:10x=1534輸入格式: "%d"輸出格式:輸入提示信息:"In

17、put days:n"輸出:"x=%dn"為避免出現(xiàn)格式錯誤,請直接拷貝粘貼題目中給的格式字符串和提示信息到你的程序中。時間限制:500ms內(nèi)存限制:32000kbC猴子第一天摘了若干個桃子,吃了一半,不過癮,又多吃了1個。第二天早上將剩余的桃子又吃掉一半,并且又多吃了1個。此后每天都是吃掉前一天剩下的一半零一個。到第n天再想吃時,發(fā)現(xiàn)只剩下1個桃子,問第一天它摘了多少桃子?為了加強(qiáng)交互性,由用戶輸入不同的天數(shù)n進(jìn)行遞推,即假設(shè)第n天的桃子數(shù)為1。同時還要增加對用戶輸入數(shù)據(jù)的合法性驗(yàn)證(如:不允許輸入的天數(shù)是0和負(fù)數(shù))程序運(yùn)行結(jié)果示例:Input days:0In

18、put days:-5Input days:aInput days:3x=10輸入格式: "%d"輸出格式:輸入提示信息:"Input days:n"輸出:"x=%dn"為避免出現(xiàn)格式錯誤,請直接拷貝粘貼題目中給的格式字符串和提示信息到你的程序中。時間限制:500ms內(nèi)存限制:32000kbC題目內(nèi)容:從鍵盤輸入6位僅由數(shù)字09組成的密碼。用戶每輸入一個密碼并按回車鍵后,程序給出判斷:如果是數(shù)字,則原樣輸出該數(shù)字,并提示用戶目前已經(jīng)輸入了幾位密碼,同時繼續(xù)輸入下一位密碼;否則,程序提示"error",并讓

19、用戶繼續(xù)輸入下一位密碼。直到用戶輸入的密碼全部是數(shù)字為止。程序的運(yùn)行結(jié)果示例:Input your password:11, you have enter 1-bits number66, you have enter 2-bits numberaerrorderror44, you have enter 3-bits number66, you have enter 4-bits number88, you have enter 5-bits number22, you have enter 6-bits number輸入提示信息:"Input your password:n&qu

20、ot;輸入格式: "%c"輸出格式:如果輸入的是數(shù)字,輸出格式為:"%c, you have enter %d-bits numbern"如果輸入的不是數(shù)字,輸出提示信息:"errorn"為避免出現(xiàn)格式錯誤,請直接拷貝粘貼題目中給的格式字符串和提示信息到你的程序中。時間限制:500ms內(nèi)存限制:32000kbC題目內(nèi)容:從鍵盤輸入一個整型數(shù)據(jù)(int型),編寫程序判斷該整數(shù)共有幾位。例如,從鍵盤輸入整數(shù)16644,該整數(shù)共有5位。程序運(yùn)行結(jié)果示例1:Please enter the number:2112521125: 5

21、bits程序運(yùn)行結(jié)果示例2:Please enter the number:-12234-12234: 5 bits輸入提示信息:"Please enter the number:n"輸入格式: "%d"輸出格式:"%d: %d bitsn"為避免出現(xiàn)格式錯誤,請直接拷貝粘貼題目中給的格式字符串和提示信息到你的程序中。本次得分/總分:4.00/4.00分12檢測輸入數(shù)據(jù)中奇數(shù)和偶數(shù)的個數(shù)(4分)題目內(nèi)容:從鍵盤輸入一系列正整數(shù),輸入-1表示輸入結(jié)束(-1本身不是輸入的數(shù)據(jù))。編寫程序判斷輸入數(shù)據(jù)中奇數(shù)和偶數(shù)的個數(shù)。如果用戶輸

22、入的第一個數(shù)據(jù)就是-1,則程序輸出"over!"。否則。用戶每輸入一個數(shù)據(jù),輸出該數(shù)據(jù)是奇數(shù)還是偶數(shù),直到用戶輸入-1為止,分別統(tǒng)計(jì)用戶輸入數(shù)據(jù)中奇數(shù)和偶數(shù)的個數(shù)。程序運(yùn)行結(jié)果示例1:Please enter the number:11:odd55:odd88:even99:odd1212:even1717:odd-1The total number of odd is 4The total number of even is 2程序運(yùn)行結(jié)果示例2:Please enter the number:-1over!The total number of odd is 0The

23、total number of even is 0輸入提示信息:"Please enter the number:n"輸入格式: "%d"輸出格式:用戶輸入的第一個數(shù)據(jù)就是-1,輸出格式:"over!n"奇數(shù)的輸出格式:"%d:oddn"偶數(shù)的輸出格式:"%d:evenn"輸入數(shù)據(jù)中奇數(shù)的個數(shù)統(tǒng)計(jì):"The total number of odd is %dn"輸入數(shù)據(jù)中偶數(shù)的個數(shù)統(tǒng)計(jì):"The total number of even is %dn&qu

24、ot;為避免出現(xiàn)格式錯誤,請直接拷貝粘貼題目中給的格式字符串和提示信息到你的程序中。時間限制:500ms內(nèi)存限制:32000kbC用例1通過1ms256kb2用例2通過18ms256kb2提交答案本次得分/總分:4.00/4.00分13計(jì)算球的反彈高度(4分)題目內(nèi)容:一個球從100米高度自由落下,每次落地后反跳回原高度的一半,再落下并反彈.,求它在第5次和第10次落地時,分別共經(jīng)過了多少米?第5次和第10次反彈分別是多高?要求計(jì)算結(jié)果保留到小數(shù)點(diǎn)后3位。用戶從鍵盤輸入想要計(jì)算的第n次(n<=15)。程序中所有浮點(diǎn)數(shù)的數(shù)據(jù)類型均為float。程序運(yùn)行結(jié)果示例1:Input:55 time

25、s:287.5003.125程序運(yùn)行結(jié)果示例2:Input:1010 times:299.6090.098輸入提示信息:"Input:n"輸入格式: "%d"輸出格式:反彈次數(shù):"%d times:n"第n次反彈共經(jīng)過多少米:"%.3fn"第n次的反彈高度:"%.3fn"為避免出現(xiàn)格式錯誤,請直接拷貝粘貼題目中給的格式字符串和提示信息到你的程序中。1#include<stdio.h>#include<math.h>int main() 

26、60;  int a,b,c,temp1,temp2,i,k;    int d0=0,d1=0,d2=0,d3=0,d4=0,d5=0,d6=0,d7=0,d8=0,d9=0;    int counter=1;    printf("Please enter the number:n");    scanf("%d"

27、;,&a);    c=a;    b=a/10;    while(b!=0)            counter+;        a=b;        b=a/10; &#

28、160;      printf("%d: %d bitsn",c,counter);    temp2=counter;    for(i=1;i<=counter;i+)            temp2-;       

29、; k=(int)pow(10,temp2);        temp1=fabs(c/k);        switch(temp1)                    case 0:d0+;break; 

30、;           case 1:d1+;break;            case 2:d2+;break;            case 3:d3+;break;    

31、;        case 4:d4+;break;            case 5:d5+;break;            case 6:d6+;break;       

32、;     case 7:d7+;break;            case 8:d8+;break;            case 9:d9+;break;          

33、;  default: printf("error");            break;                c=fabs(c)-temp1*(int)pow(10,temp2);      &#

34、160; if(d0!=0) printf("0: %dn",d0);    if(d1!=0) printf("1: %dn",d1);    if(d2!=0) printf("2: %dn",d2);    if(d3!=0) printf("3: %dn",d3);   

35、 if(d4!=0) printf("4: %dn",d4);    if(d5!=0) printf("5: %dn",d5);    if(d6!=0) printf("6: %dn",d6);    if(d7!=0) printf("7: %dn",d7);   

36、0;if(d8!=0) printf("8: %dn",d8);    if(d9!=0) printf("9: %dn",d9);    return 0;2#include<stdio.h>main()    long bonus,a;    scanf("%ld",&a); 

37、0;  if(a<=100000)        bonus=a*0.1;    if(a>100000&&a<=200000)    bonus=100000*0.1+(a-100000)*0.075;    if(a>200000&&a<=400000)     

38、   bonus=100000*0.1+100000*0.075+(a-200000)*0.05;    if(a>400000&&a<=600000)        bonus=100000*0.1+100000*0.075+200000*0.05+(a-400000)*0.03;    if(a>600000&&a<=1000000) &

39、#160;      bonus=100000*0.1+100000*0.075+200000*0.05+200000*0.03+(a-600000)*0.015;    if(a>1000000)        bonus=100000*0.1+100000*0.075+200000*0.05+200000*0.03+400000*0.015+(a-1000000)*0.01;  

40、0; printf("bonus=%ldn",bonus);3#include  <stdio.h>  int main()        int i, n, sum=0;      scanf("%d",&n);      for(i=1;i<

41、;=n;i+)                sum=sum+i;            printf("sum = %d",sum);  4#include<stdio.h>  int main() 

42、60;      int sum = 0, m;      printf("Input m:n");      scanf("%d", &m);      while(m!=0)      &

43、#160;         sum = sum + m;          printf("sum = %dn", sum);          printf("Input m:n");&#

44、160;         scanf("%d", &m);            return 0;  5#include<stdio.h>  int main()       int x, 

45、;y, z;     for (x=0; x<=20; x+)              for (y=0; y<=33; y+)                

46、60;     z = 100 - x - y;             if(5*x + 3*y + (float)z/3 = 100)             

47、60;                printf("x=%d, y=%d, z=%dn", x, y, z);                     

48、60;          return 0;  6#include<stdio.h>#include<math.h>  int main()       int i, n;     int flag=0;     p

49、rintf("Input n:n");     scanf("%d",&n);     if(n>0&&n!=1)              for (i=2; i<=sqrt(n); i+)    &#

50、160;                 if (n%i=0)                              

51、;flag=1;                 break;                              

52、0;if(flag=0) printf("Yes!n");         else printf("No!n");          else printf("No!n");     return 0;  7#include<std

53、io.h>int main()    int x1,x2, b;    do            printf("Input x1, x2:n");        b=scanf("%d,%d",&x1,&

54、x2);        if(x1*x2)<0 && x1=(int)x1 && x2=(int)x2 && b=2)            break;        else  &#

55、160;         while(getchar()!='n');            continue;    while(1);    printf("x1=%d,x2=%dn",x1,x2);8#include<stdio.h>int ma

56、in()    int x=1,d;    printf("Input days:n");    scanf("%d",&d);    while(d>1)            x=(x+1)*2;    

57、;    d-;        printf("x=%dn",x);9#include<stdio.h>int main()    int x=1, d, n, i;    for(i=1;i+;)          

58、  printf("Input days:n");        n=scanf("%d",&d);        if(n!=1 | d<=0)                

59、;while(getchar()!='n');        continue;                if(d>0)                 

60、0;  while(d>1)                            x=(x+1)*2;                

61、;d-;                        printf("x=%d",x);            break;        

62、;    10#include<stdio.h>int main()    char n;    int count=0;    int flag=1;    printf("Input your password:n");    do  

63、0;         scanf("%c",&n);        if(n>='0'&& n<='9')                 flag=1;

64、0;       count+;        printf("%c, you have enter %d-bits numbern",n,count);                else  &

65、#160;             printf("errorn");        flag=0;                getchar();    while

66、(count<6 | flag=0);   return 0;11.#include<stdio.h> int main()      int a,b,c;     int counter=1;     printf("Please enter the number:n"

67、);     scanf("%d",&a);     c=a;     b=a/10;    while(b!=0)            counter+;        a=b;

68、        b=a/10;        printf("%d: %d bitsn",c,counter); 12.#include<stdio.h> int main()      int a, count=0, counter=0;  &#

69、160;  printf("Please enter the number:n");     scanf("%d",&a);     if(a=-1)        printf("over!n");     else              do                   

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論