第一篇:MATLAB 編程題總結
MATLAB 編程題總結
LY 1.輸出x,y兩個中值較大的一個值。
x=input('x=');y=input('y=');if x>y x else y end 2.輸入x,計算y的值。計算函數的值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分為“優秀”,80~89分為“良好”,70~79分為“中等”,60~69分為“及格”,60分以為“不合格”
x=input('x=');if x>100 | x<0 y='輸入錯誤' elseif x>=90 y='優秀' elseif x>=80 y='良好' elseif x>=70 y='中等'
elseif x>=60 y='及格' else
y='不合格' end
4.某購物超市節日期間舉辦購物打折扣的促銷活動,優惠辦法是:每位顧客當天一次性購物在100元以上者,按九五折優惠;在200元以上者,按九折優惠;在300元以上者,按八五折優惠;在500元以上者,按八折優惠。則可以根據顧客購物款數計算出優惠價。
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的奇數和.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元。現在有100元錢要求買100只雞,編程列出所有可能的購雞方案。
設母雞、公雞、小雞各為x、y、z只,根據題目要求,列出方程為:
x+y+z=100 3x+2y+0.5z=100
三個未知數,兩個方程,此題有若干個解。
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億。分析:解此問題兩種方法,可根據公式: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.求水仙花數,水仙花數是指一個 n 位數(n≥3),它的每個位上的數字的 n 次冪之和等于它本身。(例如:1^3 + 5^3 + 3^3 = 153)(求出1000以內)
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個,求籠內關了多少只兔子和多少只雞?
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分別表
示一個三位數)。
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編程求這堆零件總數。
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之間的回文數.回文數是指正讀與反讀都一樣的數,如1221.for i=1000:1000:9999 for j=0:9
n=i+j*100+j*10+i/1000 end 6.作函數
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函數 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函數??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:根據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整除的整數。
for n=100:200 if rem(n,21)~=0 continue end break end
n
5:編寫函數文件求半徑為r的圓的面積和周長。
function [s,p]=fcircle(r)s=pi*r*r;p=2*pi*r;
6:根據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最大值、最小值、各數之和。
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)公元年數如能被4整除,而不能被100
整除,則是閏年;
(2)公元年數能被400整除也是閏年。
for year=1000:2000
if(mod(year,4)==0&mod(year,100)~=0)|mod(year,400)==0 year end end
5.將10個整數輸入到一個數組中,然后再將
其按輸入順序的逆序進行排列并輸出。
for i=1:10
a(i)=input('x=');end
for i=10:-1:a(i)end
6.一球從100米高度自由落下,每次落地后反跳回原高度的一半,再落下。求它在第10次落地時,共經過多少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數組的元素滿足fibonacci規則:
x=d & c ak+2=ak+ak+1,(k=1,2,…);且a1=a2=1。現要求求出該數組中
y=d|c 第一個大于10000的元素。
z=~d
(4)計算1!+2!+3!+4!+5!+6!+?+n!值的程
寫出x、y、z的結果
序。(n可以自由輸入)
三、(1)建立M函數完成下列運算(函數名為
五、分析下面程序運行后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,采取調用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 中的函數或命令重名,那么這個函數或命令將不能被訪問 好的編程習慣
給你的變量起一個描述性的且易于記憶的變量名。例如,貨幣匯率可以exchange_rate 為變量名。這種方法將使得你的程序更加明確且易于理解。好的編程習慣
在每次用到一個變量時,我們要確保變量名的大小寫的精確匹配。在變量名中只使用
小寫字母是一個好的編程習慣。好的編程習慣
在MATLAB 賦值語句后加上一個分號來禁止變量值在命令窗口(The Command Windows)的重復。這將大大提高編譯的速度。好的編程習慣 如果你在調試程序時需要檢測一個語句的結果,可能把句后的分號去掉,這樣結果將
會出現在命令窗口(The Command Windows)。編程隱患
不要重定義有意義的預定義變量。否則將后患無窮,制造成出小而難以發現的錯誤。編程隱患
fprintf 函數只能復數的實部,所以在有復數參加或產生的計算中,可能產生錯誤的結 果。好的編程習慣
如果數據需要在MATLAB 和其他程序之間交換使用,那么以ASCII 格式存儲數據。
如果只在MATLAB 中使用那么,應以mat 文件的形式存儲數據。好的編程習慣
以“dat”的擴展名保存ASCII 數據文件,以區別于以“mat”為擴展名的mat 文件。編程隱患
在你的MATLAB 代碼中,仔細區分數組運算和矩陣運算。數組乘法和矩陣乘法極易混 淆。好的編程習慣 當你讀取和寫入數據時,使用適當的單位
自上而下的編程方法是我們正規編程設計的基礎。1.清晰地陳述你所要解決的問題
編寫的程序大多數情況下要滿足一些感覺上的需要,但這種需要不一定能夠被人清晰地
表達出來。例如,用戶需要一個解線性方程組的表達式。像這樣的要求就不夠清楚,程序員
就很難編出一個使他滿意的程序。他必須弄清楚要有多少問題需要解決?在這些方程式中有
沒有對稱的形式使我們的開發變得簡單?程序設計者必須和使用者討論所需的程序,他們必
須要對完成的任務有一個精確細致的描述。對問題清晰的描述可以防止誤解,并且能夠幫助
程序員合理的組織他的思想。上面的例子對問題合適的陳述應為: 設計一個用于解決聯立線性方程組的程序,這些方程中未知數的系數為實數,最多有 20 個未知數。
2.定義程序所需的輸入量和程序所產生的輸出量
指定輸入量和輸出量,只有這樣新的程序才能適應全過程計劃。在這個例子中方程式的
系數可能有其預先存在的順序,我們的新程序必須能按照順序讀取它們。相似地,也需要產 生出這個程序所要求的結果,即輸出量,我們還要以一定的格式打印出來。
3.設計你的程序得以實現的算法
算法是指為某個問題找到答案一步接一步的程序。在這個階段自上而下的編程方法發揮
了作用。編程設計者開始對這個問題進行邏輯劃分,把它逐步分解為一個又一個子工作。這
個過程叫做分解(decomposition)。如果一些子工作還是比較大,設計者還可以把他它分解成
更小的塊。這個過程將會繼續到問題被分解成許多簡單且易理解的小塊為止。
在問題被分解成小塊之后,每一個小塊要被進一步的求精,這個過程叫做逐步求精
(stepwise refinement)。在這個過程中,設計者開始于對本小塊代碼總括性的描述,然后開始
一步一步地定義所需的函數,越來越具體,直到他能夠轉化為MATLAB 語句。逐步求精的
過程中,我們要用到的偽代碼將會在下節為大家介紹。
在算法開發過程中,這個方法是非常有用的。如果設計者真正理解了解決問題這個些步
驟,他將會對問題進行分解和逐步求精。4.把算法轉化為代碼 如果分解和逐步求精的過程已經順利完成,那么這一步將會異常地簡單。所有程序員都
會將偽代碼一句一句地轉化為合適地MATLAB 語句。5 檢測產生的MATLAB 程序
這一步是真正的攔路虎。首先,程序的每一部分將會被單獨地檢測,如果有可能的話,整個程序還要被檢測一遍。在我們檢測程序時,我們必須證明所有合法輸入數據值都能夠正
常運行。用標準的輸入值檢測程序,看它是否產生了值。如果在一個程序中執行的算法包含
了不同的分支,你必須檢測每一個分支,以保證產生正確的答案。大程序在交付大眾使用之
前,必須經過一系列地檢測(圖3.2)。檢測的第一步有時被稱為單元檢測(unit testing)。在單
元檢測過程中,程序的子程序將會被獨立地檢測以證明它的正確性。當單元檢測結束之后,這個程序將進行一系列的組合,把獨立的子程序聯合產生出最后的程序。程序第一步的聯合
通常只包括很少的子程序。通過組合這些子程序,經常用檢查子程序或函數之間的聯系。在
一系列地組合過程中,越來越多的子程序被加了進來,直到整個程序的完成。在每一次組合 的過程中,每一個錯誤都會被發現并在進行下一次組合之前糾正過來。好的編程習慣
在我們檢測兩數值是否相等時一定要小心,因為round off 錯誤可能會使兩個本來應該
相等的值不相等了。這時你可以在round off 錯誤的范圍內它是不是近似相等。好的編程習慣
if 結構體經常縮進2 到3 個空格,以增強程序的可讀性。好的編程習慣
對于有許多選項的選擇結構來說,最好在一個if 結構中使用多個elseif 語句,盡量不用 if 的嵌套結構。好的編程習慣
對于for 循環體總是要縮進兩個或更多空格,以增強程序的可讀性。好的編程習慣
在循環執行開始之前,總是要預先分配一個數組,這樣能大大增加循環運行的速度。好的編程習慣
那種既可以用向量可以解決的問題,也可以用循環解決的問題,最好用向量解決,這
是因為向量執行的速度快。好的編程習慣
把大的程序分解成函數,有很多的好處,例如,程序部分的獨立檢測,代碼的可復用
性,避免意想不到的錯誤。好的編程習慣
最是把全局變量聲明在函數的開頭,這樣可以區別于本地變量。好的編程習慣
在函數中的初始注釋行之后和第一個可執行性語句之前聲明全局變量。好的編程習慣
在兩次函數調用之間有持久內存保存本地數據。好的編程習慣
用子函數或私有函數來隱藏特殊目的的函數,這些隱藏的函數只能被其他函數調用。
隱藏這些函數防止了它們偶然的使用,也能防止與其他公共函數重名時發生的沖突。編程隱患
當我們應用關系運算符對復數運算時,一定要小心。關系運算符>,<,<=或>=只比較
復數的實部,而不是它們的模。如果你要用這些關系運算符對一復數進行運算,比較兩復 數的模將更加常見。好的編程習慣
用char 函數創建二維字符數組,我們就不用擔心每一行的長度不相同了。好的編程習慣
當你訪問一單元陣列時,不要把()與{}混淆。它們完全不同的運算。編程隱患
不要創建一個與已存在的數字數組重名的元陣列。如果得名了,MATLAB 會認為你把
單元陣列的內容賦值給一個普通的數組,這將會產生一個錯誤信息。在創建單元陣列之前,確保同名的數字數字數組已經被刪除。編程隱患
應用函數text 從ascii 文件中按行格式讀取數據,這個ascii 文件可能是其他語言生成的,或是由其他的應用程序生成的,例如表格。好的編程習慣
除非我們必須與非MATLAB 程序進行數據交換,存儲和加載文件時,都應用mat 文
件格式。這種格式是高效的且移植性強,它保存了所有MATLAB 數據類型的細節。好的編程習慣
對于那些必須進行人工檢查的數據,或對于那些必須在不同的計算機上運行的數據,用格式化文件創建數據。對于那些不需要進行人工檢查的數據且在相同類型的計算機創建
并運行的數據,用無格式文件創建數據,當I/O 速度緩慢時,用格式化文件創建數組。
第三篇:編程題總結
C作業匯總
1.short a,b=32767;/*short類型在內存中占2B*/ a=b+1;問:a的值是多少?并分析原因。
2.有一4位數整數,假設用abcd表示,請把這個4位數的每個數位用表達式表示出來。3.從鍵盤輸入圓的半徑r,計算并輸出圓的面積s(要求:半徑r定義為float型;圓周率?定義為符號常量;面積s保留2位小數)#define PI 3.14159 #include
4.輸入m>=3的正整數,判斷m是否素數。畫出算法流程圖及NS圖
5.有一函數:
x?1 ?x ?y??2x?1 1?x?10
?3x-11 x?10 ?寫一段程序,輸入x,輸出y值。
要求x,y聲明為float類型,y保留2位小數。#include
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)利用泰勒級數sinx?x?計算sinx的3!5!7!9!值。要求最后一項的絕對值小于10,并統計出此時累加了多少項。#include
/*記錄每個項數*/ int n=1,count=0;/*count記錄累加了多少項*/
printf(“請輸入x值(弧度):n”);scanf(“%f”,&x);
term=x/n;while(fabs(term)>1e-5)
/* while循環*/ {
sinx+=term;
count++;
n+=2;
term=-term*x*x/((n-1)*n);}
/* do
/*do while循環*/ {
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
/*y1記錄f(x0),y2記錄f(x0)的導數*/
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.寫一函數,輸入一個16進制整數,輸出相應的10進制數。例:從鍵盤輸入2a,輸出結果是42。
要求:若輸入數據不合法,則輸出提示信息。如輸入了35g,輸出“您輸入的16進制數不合法!”。
#include
printf(“請輸入一個16進制數字: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進制數是:%dn”,sum);} 方法2:用字符串處理的方式 #include
printf(“請輸入一個16進制數字: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進制數是:%dn”,sum);} 方法3:用字符數組及指針處理的方式 #include
{ char str[20],*p=str;int sum=0;
printf(“請輸入一個16進制數字: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進制數是:%dn”,sum);} 9.編寫一個小函數,其功能是計算兩個整數的平均值,該函數要在主函數中調用。
#include
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用宏定義為符號常量)個元素的一維整型數組,該數組中各元素值從鍵盤隨機輸入。然后,將這個整型數組中的值逆序存放。例如,原來5個元素的順序為8、1、4、6、5,逆序之后各元素的值是5、6、4、1、8 #define N 5 #include
printf(“輸入%d個整數,用空格或回車分隔:n”,N);for(i=0;i scanf(“%d”,&a[i]); printf(“數組原來的值是: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逆序之后數組的值是:n”);for(i=0;i printf(“%dt”,a[i]); printf(“n”);} 11.有N(N用宏定義為符號常量)個元素的一維整型數組,該數組中各元素值從鍵盤隨機輸入。然后,對該數組元素進行由小到大排序(要求,該功能用函數實現),輸出數組中各元素值。最后,從鍵盤隨機輸入一個整數,并把該整數插入上述數組中(該功能用函數實現),使得插入該整數后的數組仍然有序,輸出數組中各元素的值。#define N 5 #include int i,x;void sort(int array[],int n);void insert(int array[],int n,int x); printf(“輸入%d個整數,用空格或回車分隔:n”,N);for(i=0;i scanf(“%d”,&a[i]); sort(a,N); /*調用sort對數組進行排序*/ printf(“n升序排序之后數組的值是:n”);for(i=0;i printf(“%d ”,a[i]); printf(“n輸入一個x值插入到數組中:n”);scanf(“%d”,&x); insert(a,N,x); printf(“n插入%d之后數組的值是:n”,x);for(i=0;i printf(“%d ”,a[i]); printf(“n”);} void sort(int array[],int n)/*用選擇法對數組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.有一整型數組,N(N用宏定義為符號常量)個元素,該數組中各元素值從鍵盤隨機輸入。從鍵盤隨機輸入一個整數x,刪除該數組中值與x相同的所有元素(該功能用函數實現),輸出數組中各元素的值。#define N 5 #include printf(“輸入%d個整數,用空格或回車分隔:n”,N);for(i=0;i scanf(“%d”,&a[i]); printf(“數組原來的值是:n”);for(i=0;i printf(“%dt”,a[i]); printf(“n請輸入要刪除的值x:n”);scanf(“%d”,&x); n=delet(a,N,x); /*n值是刪除與x相同的元素后,數組剩余元素的個數。*/ printf(“刪除%d之后數組的值是: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值為偶數的字符輸出。例如:輸入abc123,輸出結果是b2(因為b的ASCII值是98,2的ASCII值是50,其他字符的ASCII值都是奇數) #include printf(“輸入字符串:n”);gets(str); printf(“ASCII碼是偶數的字符有:”);for(i=0;str[i];i++) if(str[i]%2==0)putchar(str[i]); printf(“n”);} 14.從鍵盤輸入兩個字符串s1,s2,把s2連接到s1的末尾。不能用strcat函數 #include 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='
主站蜘蛛池模板:
天天影视网色香欲综合网|
竹菊影视欧美日韩一区二区三区四区五区|
亚洲熟妇丰满大屁股熟妇|
精品久久久久久久免费影院|
樱桃视频影视在线观看免费|
中文有码无码人妻在线|
狠狠狠色丁香综合婷婷久久|
精品无码免费专区毛片|
日韩av无码午夜免费福利制服|
欧美极品色午夜在线视频|
狠狠色成人一区二区三区|
成年网站未满十八禁视频天堂|
亚洲成a人无码亚洲成www牛牛|
小13箩利洗澡无码免费视频|
在线观看国产精品va|
亚洲youwu永久无码精品|
久久久亚洲欧洲日产国码αv|
99re6热精品视频在线观看|
亚洲精品久久久无码av片软件|
亚洲精品久久一区二区三区四区|
中文字幕一区二区三区精彩视频|
亚洲精品成人福利网站app|
亚洲婷婷开心色四房播播|
精品深夜av无码一区二区老年|
人人超人人超碰超国产97超碰|
亚洲国产综合精品 在线 一区|
东北妇女xx做爰视频|
天堂v亚洲国产v第一次|
一区二区三区久久含羞草|
国产在线观看超清无码视频一区二区|
人妻一区二区三区高清av专区|
亚洲国产午夜精品理论片|
国产精品办公室沙发|
夜晚被公侵犯的人妻深田字幕|
久久伊人蜜桃av一区二区|
久久亚洲中文字幕伊人久久大|
亚洲精品久久久无码av片软件|
强伦人妻一区二区三区视频18|
亚洲精品乱码久久久久久蜜桃|
欧美老妇交乱视频在线观看|
国产成人免费高清直播|