欧美色欧美亚洲高清在线观看,国产特黄特色a级在线视频,国产一区视频一区欧美,亚洲成a 人在线观看中文

  1. <ul id="fwlom"></ul>

    <object id="fwlom"></object>

    <span id="fwlom"></span><dfn id="fwlom"></dfn>

      <object id="fwlom"></object>

      MATLAB 編程題總結

      時間:2019-05-12 12:56:56下載本文作者:會員上傳
      簡介:寫寫幫文庫小編為你整理了多篇相關的《MATLAB 編程題總結》,但愿對你工作學習有幫助,當然你在寫寫幫文庫還可以找到更多《MATLAB 編程題總結》。

      第一篇:MATLAB 編程題總結

      MATLAB 編程題總結

      LY 1.輸出x,y兩個中值較大的一個值。

      x=input('x=');y=input('y=');if x>y x else y end 2.輸入x,計算y的值。計算函數(shù)的值y???x?1,x?0

      ?2x?1,x?0x=input('x=');if x<0 y=x+1 else y=2*x-1 End 3.輸入一學生成績,評定其等級。方法是:90~100分為“優(yōu)秀”,80~89分為“良好”,70~79分為“中等”,60~69分為“及格”,60分以為“不合格”

      x=input('x=');if x>100 | x<0 y='輸入錯誤' elseif x>=90 y='優(yōu)秀' elseif x>=80 y='良好' elseif x>=70 y='中等'

      elseif x>=60 y='及格' else

      y='不合格' end

      4.某購物超市節(jié)日期間舉辦購物打折扣的促銷活動,優(yōu)惠辦法是:每位顧客當天一次性購物在100元以上者,按九五折優(yōu)惠;在200元以上者,按九折優(yōu)惠;在300元以上者,按八五折優(yōu)惠;在500元以上者,按八折優(yōu)惠。則可以根據(jù)顧客購物款數(shù)計算出優(yōu)惠價。

      x=input('x=');if x>=500

      y=x*0.8 elseif x>=300 y=x*0.85 elseif x>=200 y=x*0.9 else

      y=x*0.95 end

      5.編程計算:S=1+2+3+?+100

      sum=0;

      for i=1:100 sum=sum+i;end sum

      6.計算1~100的奇數(shù)和.sum=0;

      for i=1:2:100 sum=sum+i;end Sum 或

      sum=0;

      for i=1:100

      if mod(i,2)==1 sum=sum+i;end

      end sum

      7.百元買百雞問題。假定小雞每只5角,公雞每只2元,母雞每只3元。現(xiàn)在有100元錢要求買100只雞,編程列出所有可能的購雞方案。

      設母雞、公雞、小雞各為x、y、z只,根據(jù)題目要求,列出方程為:

      x+y+z=100 3x+2y+0.5z=100

      三個未知數(shù),兩個方程,此題有若干個解。

      for x=1:33

      for y=1:50

      for z=1:200

      if x+y+z==100 & 3*x+2*y+0.5*z==100 [x,y,z] end end end end

      8.我國有13億人口,按人口年增長0.8%計算,多少年后我國人口超過26億。分析:解此問題兩種方法,可根據(jù)公式:26=13*(1+0.008)n

      LiYang

      第 1 頁 / 共 6 頁

      MATLAB 編程題總結

      LY n=1;m=13;while m<26 m=m*(1+0.008);n=n+1;end n 9.求水仙花數(shù),水仙花數(shù)是指一個 n 位數(shù)(n≥3),它的每個位上的數(shù)字的 n 次冪之和等于它本身。(例如:1^3 + 5^3 + 3^3 = 153)(求出1000以內(nèi))

      for i=100:999 a(1)=fix(i/100);a(2)=fix((i-a(1)*100)/10);a(3)=i-a(1)*100-a(2)*10;if a(1)^3+a(2)^3+a(3)^3==i i end end 10.雞兔同籠問題:雞和兔子關在一個籠子里,已知共有頭36個,腳100個,求籠內(nèi)關了多少只兔子和多少只雞?

      for i=1:50 for j=1:36 if i+j==36&i*2+j*4==100 [i,j] end end end 1.用matlab編程求算式xyz+yzz=532中x,y,z的值(其中xyz和yzz分別表

      示一個三位數(shù))。

      for x=1:9

      for y=1:9 for z=1:9

      i=100*x+10*y+z+100*y+10*z+z;

      if i==532 [x,y,z] end end end end

      2.用matlab編程完成用一元人民幣換成一分、兩分、五分的所有兌換方案(即輸出所有的組合方式)。

      for i=0:20

      for j=0:50

      k=100-i*5-j*2;if(k>=0)[i,j,k] end end end

      3.有1020個西瓜,第一天賣一半多兩個,以后每天賣剩下的一半多兩個,問幾天后可以賣完,請用matlab編程計算。

      day=0;x1=1020 while(x1)

      x2=x1/2-2;x1=x2;

      day=day+1;

      end day

      4.有一堆零件(100到200之間),如果分成4個零件一組的,則多2個零件;若分成7個零件一組的,則多3個零件;若分成9個零件一組的,則多5個零件。用matlab編程求這堆零件總數(shù)。

      for i=100:200

      if(mod(i-2,4)==0)

      if(mod(i-3,7)==0)

      if(mod(i-5,9)==0)i end end end end

      5.編寫程序,求1000至9999之間的回文數(shù).回文數(shù)是指正讀與反讀都一樣的數(shù),如1221.for i=1000:1000:9999 for j=0:9

      n=i+j*100+j*10+i/1000 end 6.作函數(shù)

      yend ?sin(x),x?[0,2?]的圖象,用藍色五角星表示點。

      x=0:pi/10:2pi;y=sin(x);

      plot(x,y,’b-p’);

      LiYang

      第 2 頁 / 共 6 頁

      MATLAB 編程題總結

      LY 1: 編寫M函數(shù) 32f?x?2x?x?6.3, x2?0.05x?3.14計算f(1)f(2)?f2(3)

      function y= fun1(x)y=(x^36.3)/(x^2 + 0.05*x-3.14);fun1(1)*fun1(2)+fun1(3)*fun1(3)ans =-12.6023 2:編寫M函數(shù)??x?1,x?2f(x)???3x,2?x?8?4x?5,8?x?20,??cosx?sinx,x?20計算f(0.1),f(1),f(9),f(22),f(2?)

      function y=fff(x)if x<2 y=x+1;elseif x>=2 & x<=8 y=3*x;elseif x>8 & x<=20 y=4*x-5;else y=cos(x)+sin(x);end 3:根據(jù)pi*pi/6=1/1^2+1/2^2+1/3^2+??+1/n^2,求pi的近似值。當n分別取100,1000,10000時,結果是多少?

      y=0;n=100;

      for i=1:n y=y+1/i/i;end y y =

      1.6350 pi=sqrt(6*y)pi =

      3.1321 y=0;n=1000;for i=1:n y=y+1/i/i;end y y =

      1.6439 pi=sqrt(6*y)pi =

      3.1406 y=0;n=10000;for i=1:n y=y+1/i/i;end y y =

      1.6448 pi=sqrt(6*y)pi =

      3.1415(2)y=0;n=8;

      y=1./2*n-1;y y=

      4:編程求[100,200]之間第一個能被21整除的整數(shù)。

      for n=100:200 if rem(n,21)~=0 continue end break end

      n

      5:編寫函數(shù)文件求半徑為r的圓的面積和周長。

      function [s,p]=fcircle(r)s=pi*r*r;p=2*pi*r;

      6:根據(jù)y=1+11,求: 3?15???2n-1(1)y<3時的最大n值。(2)與(1)的n值對應的y值。

      y=1;n=1;while(y<3)n=n+2;y=y+1/n;

      end

      y=y-1/n n=(n+1)/2 運行結果: y =

      2.9944

      n =

      LiYang

      第 3 頁 / 共 6 頁

      MATLAB 編程題總結

      LY 57 7: 已知??f1?1,n?1??f2?0,n?2?f3?1,n?3

      ??fn?fn?1?2fn?2?fn?3,n?3求f中:

      1~f100最大值、最小值、各數(shù)之和。

      f(1)=1;f(2)=0;f(3)=1;for i=4:100

      f(i)=f(i-1)-2*f(i-2)+f(i-3);end max(f)min(f)sum(f)

      1.編程計算3+33+333+3333+?..前10項之和。

      m=3;n=0;s=0;for i=1:10 n=10*n+m;s=s+n;end s

      2.編程求

      1-1/2+1/3-1/4+.......+1/99-1/100的值。

      s=0;

      for i=1:100

      s=s+(-1)^(i-1)*1/i;end

      s3.編寫程序,求 1-3+5-7+?-99+101的值。

      s=0;j=1;

      for i=1:2:101

      s=s+(-1)^(j-1)*i;j=j+1;end

      s4.編寫程序,輸出從公元1000年至2000年所有閏年的年號。判斷公元年是否為閏年的條件是:

      (1)公元年數(shù)如能被4整除,而不能被100

      整除,則是閏年;

      (2)公元年數(shù)能被400整除也是閏年。

      for year=1000:2000

      if(mod(year,4)==0&mod(year,100)~=0)|mod(year,400)==0 year end end

      5.將10個整數(shù)輸入到一個數(shù)組中,然后再將

      其按輸入順序的逆序進行排列并輸出。

      for i=1:10

      a(i)=input('x=');end

      for i=10:-1:a(i)end

      6.一球從100米高度自由落下,每次落地后反跳回原高度的一半,再落下。求它在第10次落地時,共經(jīng)過多少m?第10次反彈多高?

      Sn=100;Hn=Sn/2;for n=0:10

      Sn=Sn+2*Hn;Hn=Hn/2;end Sn Hn

      7.猴子吃桃問題。猴子第一天摘下若干個桃子,當即吃了一半,還不過癮,又多吃了一個。第二天早上又將剩下的桃子吃掉一半,又多吃了一個。以后每天早上都吃了前一天剩下的一半零一個。到第10天早上再想吃時,見只剩一個桃子了。求第一天共摘多少桃子。

      day=9;x=1;while(day>0)x=(x+1)*2;day=day-1;end x

      LiYang

      第 4 頁 / 共 6 頁

      MATLAB 編程題總結

      LY 附:

      matlab期中試卷及答案

      一、計算題

      1.已知A=[1 2 3;4 5 6;7 8 9],B=[1 5 0;1 0 3;0 3 4],試寫出下列指令運行的結果: A<=2=,A*B=,A(1, :)*A(:, 3)=。

      2.設a= [1,-2,3;4,5,9;6,3,-8], b= [2,6,1;-3,2,7;4,8,-1]。

      (1)求a.*b

      (2)求a.^2

      (3)求 2-a

      (4)求a(1:2,2:3)

      (5)求min(a(:))

      二、計算下列程序運行的結果

      1、mysum=0;i=1;

      while(i<100)

      mysum=mysum+i;

      i=i+1;

      end

      mysum

      2、A=[1,2,3;4,5,6;7,8,9];

      C=[A;[10,11,12]];

      D=C(1:3,[2 3]);

      E=C(1:3,:)

      寫出C、D、E的結果

      3、x=[0,1,0,10,1,0,1];

      for i=1:7 if x(i)==0

      x(i)=1;

      else

      500≤price<1000

      5%折扣

      x(i)=0;

      1000≤price<2500

      8%折扣

      end

      2500≤price<5000

      10%折扣

      end 5000≤price

      14%折扣

      x

      輸入所售商品的價格,求其實際銷售價格。

      4、c=6;d=[4,0,6;0,8,0];(3)fibonccci數(shù)組的元素滿足fibonacci規(guī)則:

      x=d & c ak+2=ak+ak+1,(k=1,2,…);且a1=a2=1?,F(xiàn)要求求出該數(shù)組中

      y=d|c 第一個大于10000的元素。

      z=~d

      (4)計算1!+2!+3!+4!+5?。??。?+n!值的程

      寫出x、y、z的結果

      序。(n可以自由輸入)

      三、(1)建立M函數(shù)完成下列運算(函數(shù)名為

      五、分析下面程序運行后s1,n1,s2,n2,m的值.jygxfun)

      s1=0;s2=0;n1=0;n2=0

      f(x,y,z)?ze?(x?y)?x?y?z?sin(x?y?3z)x=[1,-4,-8,3,10,-9,7,-3,10, 8,-5,-2,2,0 ];

      m=length(x);(2)若x=1,y=2,z=3,采取調(diào)用jygxfun方式計算

      for i=1:m f值, 試編程.if x(i)<0

      四、(1)編程計算下面問題, x值由鍵盤輸入

      s1=s1+x(i);?2n1=n1+1;

      y??x?1,x?1else ?x2,?1?x?

      1s2=s2+x(i);

      ?

      n2=n2+1;

      (input語句).?x2?1,x??1 end

      end

      (2)某商場對顧客所購買的商品實行打折銷

      s1,n1,s2,n2,m 售,標準如下(商品價格用price來表示):

      2.(1)

      price<200

      沒有折扣

      2-12

      200≤price<500

      3%折扣

      a.*b=-12 10

      24

      LiYang

      第 5 頁 / 共 6 頁

      MATLAB 編程題總結

      LY(2)1 a.^2= 16 25 81 36 9

      64(3)2-a= 1

      4-1-2

      –7(4)-4

      -1-2 a(1:2,2:3)= 5

      (5)min(a(:))=-8 二1、4950

      2、C =1 10 D = E = 1

      3、x =1

      0

      0

      0

      4、x = 1

      0

      0

      0

      y = 1 z = 0

      0

      0

      三、解:(1)

      function [f]=jygxfun(x,y,z)

      f=z*exp(-(x+y))+sqrt(x+y+z)*sin(x+y+3*z);(2)

      x=1;y=2;z=3;f= jygxfun(x,y,z)

      四、(1)解: x=input('x=?');

      if x>=1

      y=x^2+1;else if x<-1 y=x^2-1;else y=x^2;end end

      y

      (2)price=input('請輸入商品價格');switch fix(price/100)

      0 case {0,1}

      %價格小于200 rate=0;

      case {2,3,4} %價格大于等于200但小于500

      rate=3/100;

      case num2cell(5:9)%價格大于等于500但小于1000

      rate=5/100;

      case num2cell(10:24)%價格大于等于1000但小于2500

      rate=8/100;

      case num2cell(25:49)%價格大于等于2500但小于5000

      rate=10/100;

      otherwise %價格大于等于5000 rate=14/100;end

      price=price*(1-rate)%輸出商品實際銷售價格(3)

      (4)n=input('n=')

      s=0

      for i=1:n

      m=1

      for j=1:i

      m=m*j;

      end

      s=s+m;end s

      五、s1=-31;n1=6;s2=41;n2= 8;m= 14

      LiYang

      第 6 頁 / 共 6 頁

      第二篇:Matlab編程習慣總結

      好的編程習慣

      為了增強程序的可讀性,在if 結構體開頭縮進兩格或更多的空間。編程隱患

      確保變量名的前三十一個字符是獨一無二的,否則,MATLAB 將辨認不出兩變量的不 同。編程隱患

      如果變量名與MATLAB 中的函數(shù)或命令重名,那么這個函數(shù)或命令將不能被訪問 好的編程習慣

      給你的變量起一個描述性的且易于記憶的變量名。例如,貨幣匯率可以exchange_rate 為變量名。這種方法將使得你的程序更加明確且易于理解。好的編程習慣

      在每次用到一個變量時,我們要確保變量名的大小寫的精確匹配。在變量名中只使用

      小寫字母是一個好的編程習慣。好的編程習慣

      在MATLAB 賦值語句后加上一個分號來禁止變量值在命令窗口(The Command Windows)的重復。這將大大提高編譯的速度。好的編程習慣 如果你在調(diào)試程序時需要檢測一個語句的結果,可能把句后的分號去掉,這樣結果將

      會出現(xiàn)在命令窗口(The Command Windows)。編程隱患

      不要重定義有意義的預定義變量。否則將后患無窮,制造成出小而難以發(fā)現(xiàn)的錯誤。編程隱患

      fprintf 函數(shù)只能復數(shù)的實部,所以在有復數(shù)參加或產(chǎn)生的計算中,可能產(chǎn)生錯誤的結 果。好的編程習慣

      如果數(shù)據(jù)需要在MATLAB 和其他程序之間交換使用,那么以ASCII 格式存儲數(shù)據(jù)。

      如果只在MATLAB 中使用那么,應以mat 文件的形式存儲數(shù)據(jù)。好的編程習慣

      以“dat”的擴展名保存ASCII 數(shù)據(jù)文件,以區(qū)別于以“mat”為擴展名的mat 文件。編程隱患

      在你的MATLAB 代碼中,仔細區(qū)分數(shù)組運算和矩陣運算。數(shù)組乘法和矩陣乘法極易混 淆。好的編程習慣 當你讀取和寫入數(shù)據(jù)時,使用適當?shù)膯挝?/p>

      自上而下的編程方法是我們正規(guī)編程設計的基礎。1.清晰地陳述你所要解決的問題

      編寫的程序大多數(shù)情況下要滿足一些感覺上的需要,但這種需要不一定能夠被人清晰地

      表達出來。例如,用戶需要一個解線性方程組的表達式。像這樣的要求就不夠清楚,程序員

      就很難編出一個使他滿意的程序。他必須弄清楚要有多少問題需要解決?在這些方程式中有

      沒有對稱的形式使我們的開發(fā)變得簡單?程序設計者必須和使用者討論所需的程序,他們必

      須要對完成的任務有一個精確細致的描述。對問題清晰的描述可以防止誤解,并且能夠幫助

      程序員合理的組織他的思想。上面的例子對問題合適的陳述應為: 設計一個用于解決聯(lián)立線性方程組的程序,這些方程中未知數(shù)的系數(shù)為實數(shù),最多有 20 個未知數(shù)。

      2.定義程序所需的輸入量和程序所產(chǎn)生的輸出量

      指定輸入量和輸出量,只有這樣新的程序才能適應全過程計劃。在這個例子中方程式的

      系數(shù)可能有其預先存在的順序,我們的新程序必須能按照順序讀取它們。相似地,也需要產(chǎn) 生出這個程序所要求的結果,即輸出量,我們還要以一定的格式打印出來。

      3.設計你的程序得以實現(xiàn)的算法

      算法是指為某個問題找到答案一步接一步的程序。在這個階段自上而下的編程方法發(fā)揮

      了作用。編程設計者開始對這個問題進行邏輯劃分,把它逐步分解為一個又一個子工作。這

      個過程叫做分解(decomposition)。如果一些子工作還是比較大,設計者還可以把他它分解成

      更小的塊。這個過程將會繼續(xù)到問題被分解成許多簡單且易理解的小塊為止。

      在問題被分解成小塊之后,每一個小塊要被進一步的求精,這個過程叫做逐步求精

      (stepwise refinement)。在這個過程中,設計者開始于對本小塊代碼總括性的描述,然后開始

      一步一步地定義所需的函數(shù),越來越具體,直到他能夠轉化為MATLAB 語句。逐步求精的

      過程中,我們要用到的偽代碼將會在下節(jié)為大家介紹。

      在算法開發(fā)過程中,這個方法是非常有用的。如果設計者真正理解了解決問題這個些步

      驟,他將會對問題進行分解和逐步求精。4.把算法轉化為代碼 如果分解和逐步求精的過程已經(jīng)順利完成,那么這一步將會異常地簡單。所有程序員都

      會將偽代碼一句一句地轉化為合適地MATLAB 語句。5 檢測產(chǎn)生的MATLAB 程序

      這一步是真正的攔路虎。首先,程序的每一部分將會被單獨地檢測,如果有可能的話,整個程序還要被檢測一遍。在我們檢測程序時,我們必須證明所有合法輸入數(shù)據(jù)值都能夠正

      常運行。用標準的輸入值檢測程序,看它是否產(chǎn)生了值。如果在一個程序中執(zhí)行的算法包含

      了不同的分支,你必須檢測每一個分支,以保證產(chǎn)生正確的答案。大程序在交付大眾使用之

      前,必須經(jīng)過一系列地檢測(圖3.2)。檢測的第一步有時被稱為單元檢測(unit testing)。在單

      元檢測過程中,程序的子程序將會被獨立地檢測以證明它的正確性。當單元檢測結束之后,這個程序將進行一系列的組合,把獨立的子程序聯(lián)合產(chǎn)生出最后的程序。程序第一步的聯(lián)合

      通常只包括很少的子程序。通過組合這些子程序,經(jīng)常用檢查子程序或函數(shù)之間的聯(lián)系。在

      一系列地組合過程中,越來越多的子程序被加了進來,直到整個程序的完成。在每一次組合 的過程中,每一個錯誤都會被發(fā)現(xiàn)并在進行下一次組合之前糾正過來。好的編程習慣

      在我們檢測兩數(shù)值是否相等時一定要小心,因為round off 錯誤可能會使兩個本來應該

      相等的值不相等了。這時你可以在round off 錯誤的范圍內(nèi)它是不是近似相等。好的編程習慣

      if 結構體經(jīng)??s進2 到3 個空格,以增強程序的可讀性。好的編程習慣

      對于有許多選項的選擇結構來說,最好在一個if 結構中使用多個elseif 語句,盡量不用 if 的嵌套結構。好的編程習慣

      對于for 循環(huán)體總是要縮進兩個或更多空格,以增強程序的可讀性。好的編程習慣

      在循環(huán)執(zhí)行開始之前,總是要預先分配一個數(shù)組,這樣能大大增加循環(huán)運行的速度。好的編程習慣

      那種既可以用向量可以解決的問題,也可以用循環(huán)解決的問題,最好用向量解決,這

      是因為向量執(zhí)行的速度快。好的編程習慣

      把大的程序分解成函數(shù),有很多的好處,例如,程序部分的獨立檢測,代碼的可復用

      性,避免意想不到的錯誤。好的編程習慣

      最是把全局變量聲明在函數(shù)的開頭,這樣可以區(qū)別于本地變量。好的編程習慣

      在函數(shù)中的初始注釋行之后和第一個可執(zhí)行性語句之前聲明全局變量。好的編程習慣

      在兩次函數(shù)調(diào)用之間有持久內(nèi)存保存本地數(shù)據(jù)。好的編程習慣

      用子函數(shù)或私有函數(shù)來隱藏特殊目的的函數(shù),這些隱藏的函數(shù)只能被其他函數(shù)調(diào)用。

      隱藏這些函數(shù)防止了它們偶然的使用,也能防止與其他公共函數(shù)重名時發(fā)生的沖突。編程隱患

      當我們應用關系運算符對復數(shù)運算時,一定要小心。關系運算符>,<,<=或>=只比較

      復數(shù)的實部,而不是它們的模。如果你要用這些關系運算符對一復數(shù)進行運算,比較兩復 數(shù)的模將更加常見。好的編程習慣

      用char 函數(shù)創(chuàng)建二維字符數(shù)組,我們就不用擔心每一行的長度不相同了。好的編程習慣

      當你訪問一單元陣列時,不要把()與{}混淆。它們完全不同的運算。編程隱患

      不要創(chuàng)建一個與已存在的數(shù)字數(shù)組重名的元陣列。如果得名了,MATLAB 會認為你把

      單元陣列的內(nèi)容賦值給一個普通的數(shù)組,這將會產(chǎn)生一個錯誤信息。在創(chuàng)建單元陣列之前,確保同名的數(shù)字數(shù)字數(shù)組已經(jīng)被刪除。編程隱患

      應用函數(shù)text 從ascii 文件中按行格式讀取數(shù)據(jù),這個ascii 文件可能是其他語言生成的,或是由其他的應用程序生成的,例如表格。好的編程習慣

      除非我們必須與非MATLAB 程序進行數(shù)據(jù)交換,存儲和加載文件時,都應用mat 文

      件格式。這種格式是高效的且移植性強,它保存了所有MATLAB 數(shù)據(jù)類型的細節(jié)。好的編程習慣

      對于那些必須進行人工檢查的數(shù)據(jù),或對于那些必須在不同的計算機上運行的數(shù)據(jù),用格式化文件創(chuàng)建數(shù)據(jù)。對于那些不需要進行人工檢查的數(shù)據(jù)且在相同類型的計算機創(chuàng)建

      并運行的數(shù)據(jù),用無格式文件創(chuàng)建數(shù)據(jù),當I/O 速度緩慢時,用格式化文件創(chuàng)建數(shù)組。

      第三篇:編程題總結

      C作業(yè)匯總

      1.short a,b=32767;/*short類型在內(nèi)存中占2B*/ a=b+1;問:a的值是多少?并分析原因。

      2.有一4位數(shù)整數(shù),假設用abcd表示,請把這個4位數(shù)的每個數(shù)位用表達式表示出來。3.從鍵盤輸入圓的半徑r,計算并輸出圓的面積s(要求:半徑r定義為float型;圓周率?定義為符號常量;面積s保留2位小數(shù))#define PI 3.14159 #include void main(){ float r,s;printf(“請輸入半徑r:n”);scanf(“%f”,&r);s=PI*r*r;printf(“面積是:%.2fn”,s);}

      4.輸入m>=3的正整數(shù),判斷m是否素數(shù)。畫出算法流程圖及NS圖

      5.有一函數(shù):

      x?1 ?x ?y??2x?1 1?x?10

      ?3x-11 x?10 ?寫一段程序,輸入x,輸出y值。

      要求x,y聲明為float類型,y保留2位小數(shù)。#include void main(){ float x,y;printf(“請輸入x的值:n”);scanf(“%f”,&x);

      if(x<1)

      y=x;else

      if(x<10)

      y=2*x-1;

      else

      y=3*x-11;

      }

      printf(“y=%.2fn”,y);

      x3x5x7x9?????,6.課后習題4.17(P159)利用泰勒級數(shù)sinx?x?計算sinx的3!5!7!9!值。要求最后一項的絕對值小于10,并統(tǒng)計出此時累加了多少項。#include #include void main(){ float x,sinx=0;float term;

      /*記錄每個項數(shù)*/ int n=1,count=0;/*count記錄累加了多少項*/

      printf(“請輸入x值(弧度):n”);scanf(“%f”,&x);

      term=x/n;while(fabs(term)>1e-5)

      /* while循環(huán)*/ {

      sinx+=term;

      count++;

      n+=2;

      term=-term*x*x/((n-1)*n);}

      /* do

      /*do while循環(huán)*/ {

      sinx+=term;

      count++;

      n+=2;

      term=-term*x*x/((n-1)*n);}while(fabs(term)>1e-5);

      */

      printf(“sin(%.2f)=%.4fn”,x,sinx);printf(“一共累加了:%d項。n”,count);}

      7.用牛頓迭代法求下面方程在1.5附近的根:

      2x?4x?3x?6?0 32?5

      牛頓迭代公式:

      x1?x0?f(x0)f?(x0)

      #include #include void main(){ float x0,x1=1.5;float y1,y2;

      /*y1記錄f(x0),y2記錄f(x0)的導數(shù)*/

      do {

      x0=x1;

      y1=2*x0*x0*x0-4*x0*x0+3*x0-6;

      y2=6*x0*x0-8*x0+3;

      x1=x0-y1/y2;}while(fabs(x1-x0)>1e-5);

      printf(“the root is:%.2fn”,x1);}

      8.寫一函數(shù),輸入一個16進制整數(shù),輸出相應的10進制數(shù)。例:從鍵盤輸入2a,輸出結果是42。

      要求:若輸入數(shù)據(jù)不合法,則輸出提示信息。如輸入了35g,輸出“您輸入的16進制數(shù)不合法!”。

      #include #include void main(){ char c;int sum=0;

      printf(“請輸入一個16進制數(shù)字:n”);

      while((c=getchar())!='n'){

      if(c>='0' && c<='9')

      sum=sum*16+c-'0';

      else

      if(c>='a' && c<='f')

      sum=sum*16+c-87;

      else

      if(c>='A' && c<='F')

      sum=sum*16+c-55;

      else

      {

      printf(“您輸入的16進制不合法.n”);

      exit(0);

      } }

      printf(“相應的10進制數(shù)是:%dn”,sum);} 方法2:用字符串處理的方式 #include #include void main(){ char str[20];int i,sum=0;

      printf(“請輸入一個16進制數(shù)字:n”);gets(str);

      for(i=0;str[i];i++){

      if(str[i]>='0' && str[i]<='9')

      sum=sum*16+str[i]-'0';

      else

      if(str[i]>='a' && str[i]<='f')

      sum=sum*16+str[i]-87;

      else

      if(str[i]>='A' && str[i]<='F')

      sum=sum*16+str[i]-55;

      else

      {

      printf(“您輸入的16進制不合法.n”);

      exit(0);

      } }

      printf(“相應的10進制數(shù)是:%dn”,sum);} 方法3:用字符數(shù)組及指針處理的方式 #include #include void main()

      { char str[20],*p=str;int sum=0;

      printf(“請輸入一個16進制數(shù)字:n”);gets(p);

      while(*p){

      if(*p>='0' && *p<='9')

      sum=sum*16+*p-'0';

      else

      if(*p>='a' && *p<='f')

      sum=sum*16+*p-87;

      else

      if(*p>='A' && *p<='F')

      sum=sum*16+*p-55;

      else

      {

      printf(“您輸入的16進制不合法.n”);

      exit(0);

      }

      p++;}

      printf(“相應的10進制數(shù)是:%dn”,sum);} 9.編寫一個小函數(shù),其功能是計算兩個整數(shù)的平均值,該函數(shù)要在主函數(shù)中調(diào)用。

      #include void main(){ int x,y;float avg;float average(int,int);printf(“輸入x,y的值,用空格分隔兩個數(shù):n”);scanf(“%d%d”,&x,&y);

      avg=average(x,y);

      printf(“%d,%d的平均值是:%.2fn”,x,y,avg);}

      float average(int x,int y)

      { return(x+y)/2.0;}

      10.有N(N用宏定義為符號常量)個元素的一維整型數(shù)組,該數(shù)組中各元素值從鍵盤隨機輸入。然后,將這個整型數(shù)組中的值逆序存放。例如,原來5個元素的順序為8、1、4、6、5,逆序之后各元素的值是5、6、4、1、8 #define N 5 #include void main(){ int a[N];int i,t;

      printf(“輸入%d個整數(shù),用空格或回車分隔:n”,N);for(i=0;i

      scanf(“%d”,&a[i]);

      printf(“數(shù)組原來的值是:n”);for(i=0;i

      printf(“%dt”,a[i]);

      for(i=0;i

      t=a[i];

      a[i]=a[N-1-i];

      a[N-1-i]=t;}

      printf(“n逆序之后數(shù)組的值是:n”);for(i=0;i

      printf(“%dt”,a[i]);

      printf(“n”);} 11.有N(N用宏定義為符號常量)個元素的一維整型數(shù)組,該數(shù)組中各元素值從鍵盤隨機輸入。然后,對該數(shù)組元素進行由小到大排序(要求,該功能用函數(shù)實現(xiàn)),輸出數(shù)組中各元素值。最后,從鍵盤隨機輸入一個整數(shù),并把該整數(shù)插入上述數(shù)組中(該功能用函數(shù)實現(xiàn)),使得插入該整數(shù)后的數(shù)組仍然有序,輸出數(shù)組中各元素的值。#define N 5 #include void main(){ int a[N+1];

      int i,x;void sort(int array[],int n);void insert(int array[],int n,int x);

      printf(“輸入%d個整數(shù),用空格或回車分隔:n”,N);for(i=0;i

      scanf(“%d”,&a[i]);

      sort(a,N);

      /*調(diào)用sort對數(shù)組進行排序*/

      printf(“n升序排序之后數(shù)組的值是:n”);for(i=0;i

      printf(“%d

      ”,a[i]);

      printf(“n輸入一個x值插入到數(shù)組中:n”);scanf(“%d”,&x);

      insert(a,N,x);

      printf(“n插入%d之后數(shù)組的值是:n”,x);for(i=0;i

      printf(“%d

      ”,a[i]);

      printf(“n”);}

      void sort(int array[],int n)/*用選擇法對數(shù)組array升序排序*/ { int i,j,t,min;

      for(i=0;i

      min=i;

      for(j=i+1;j

      if(array[j]

      min=j;

      if(min!=i)

      {

      t=array[i];

      array[i]=array[min];

      array[min]=t;

      } } }

      void insert(int array[],int n,int x){ int i,pos;

      for(i=0;i

      pos=i;

      for(i=n-1;i>=pos;i--)

      array[i+1]=array[i];

      array[pos]=x;}

      12.有一整型數(shù)組,N(N用宏定義為符號常量)個元素,該數(shù)組中各元素值從鍵盤隨機輸入。從鍵盤隨機輸入一個整數(shù)x,刪除該數(shù)組中值與x相同的所有元素(該功能用函數(shù)實現(xiàn)),輸出數(shù)組中各元素的值。#define N 5 #include void main(){ int a[N];int i,x,n;int delet(int a[],int n,int x);

      printf(“輸入%d個整數(shù),用空格或回車分隔:n”,N);for(i=0;i

      scanf(“%d”,&a[i]);

      printf(“數(shù)組原來的值是:n”);for(i=0;i

      printf(“%dt”,a[i]);

      printf(“n請輸入要刪除的值x:n”);scanf(“%d”,&x);

      n=delet(a,N,x);

      /*n值是刪除與x相同的元素后,數(shù)組剩余元素的個數(shù)。*/

      printf(“刪除%d之后數(shù)組的值是:n”,x);for(i=0;i

      printf(“%d

      ”,a[i]);

      printf(“n”);

      }

      int delet(int a[],int n,int x){ int i,j;

      for(i=0,j=0;i

      if(a[i]!=x)

      a[j++]=a[i];

      return j;}

      13.從鍵盤隨機輸入一字符串,將所有ASCII值為偶數(shù)的字符輸出。例如:輸入abc123,輸出結果是b2(因為b的ASCII值是98,2的ASCII值是50,其他字符的ASCII值都是奇數(shù))

      #include #define N 40 void main(){ char str[N];int i;

      printf(“輸入字符串:n”);gets(str);

      printf(“ASCII碼是偶數(shù)的字符有:”);for(i=0;str[i];i++)

      if(str[i]%2==0)putchar(str[i]);

      printf(“n”);}

      14.從鍵盤輸入兩個字符串s1,s2,把s2連接到s1的末尾。不能用strcat函數(shù) #include #define N 40 void main(){ char str1[N],str2[N];void mystrcat(char *p1,char *p2);

      printf(“輸入兩個字符串,輸入回車鍵結束:n”);gets(str1);gets(str2);

      mystrcat(str1,str2);

      printf(“連接在一起的字符串是:n”);puts(str1);

      }

      void mystrcat(char *p1,char *p2){ while(*p1)p1++;while(*p2)

      *p1++=*p2++;*p1='