MATLAB编程题总结LYLiYang第1页/共6页1.输出x,y两个中值较大的一个值。x=input('x=');y=input('y=');ifxyxelseyend2.输入x,计算y的值。计算函数的值01201xxxxy,,x=input('x=');ifx0y=x+1elsey=2*x-1End3.输入一学生成绩,评定其等级。方法是:90~100分为“优秀”,80~89分为“良好”,70~79分为“中等”,60~69分为“及格”,60分以为“不合格”x=input('x=');ifx100|x0y='输入错误'elseifx=90y='优秀'elseifx=80y='良好'elseifx=70y='中等'elseifx=60y='及格'elsey='不合格'end4.某购物超市节日期间举办购物打折扣的促销活动,优惠办法是:每位顾客当天一次性购物在100元以上者,按九五折优惠;在200元以上者,按九折优惠;在300元以上者,按八五折优惠;在500元以上者,按八折优惠。则可以根据顾客购物款数计算出优惠价。x=input('x=');ifx=500y=x*0.8elseifx=300y=x*0.85elseifx=200y=x*0.9elsey=x*0.95end5.编程计算:S=1+2+3+…+100sum=0;fori=1:100sum=sum+i;endsum6.计算1~100的奇数和.sum=0;fori=1:2:100sum=sum+i;endSum或sum=0;fori=1:100ifmod(i,2)==1sum=sum+i;endendsum7.百元买百鸡问题。假定小鸡每只5角,公鸡每只2元,母鸡每只3元。现在有100元钱要求买100只鸡,编程列出所有可能的购鸡方案。设母鸡、公鸡、小鸡各为x、y、z只,根据题目要求,列出方程为:x+y+z=1003x+2y+0.5z=100三个未知数,两个方程,此题有若干个解。forx=1:33fory=1:50forz=1:200ifx+y+z==100&3*x+2*y+0.5*z==100[x,y,z]endendendend8.我国有13亿人口,按人口年增长0.8%计算,多少年后我国人口超过26亿。分析:解此问题两种方法,可根据公式:26=13*(1+0.008)nMATLAB编程题总结LYLiYang第2页/共6页n=1;m=13;whilem26m=m*(1+0.008);n=n+1;endn9.求水仙花数,水仙花数是指一个n位数(n≥3),它的每个位上的数字的n次幂之和等于它本身。(例如:1^3+5^3+3^3=153)(求出1000以内)fori=100:999a(1)=fix(i/100);a(2)=fix((i-a(1)*100)/10);a(3)=i-a(1)*100-a(2)*10;ifa(1)^3+a(2)^3+a(3)^3==iiendend10.鸡兔同笼问题:鸡和兔子关在一个笼子里,已知共有头36个,脚100个,求笼内关了多少只兔子和多少只鸡?fori=1:50forj=1:36ifi+j==36&i*2+j*4==100[i,j]endendend1.用matlab编程求算式xyz+yzz=532中x,y,z的值(其中xyz和yzz分别表示一个三位数)。forx=1:9fory=1:9forz=1:9i=100*x+10*y+z+100*y+10*z+z;ifi==532[x,y,z]endendendend2.用matlab编程完成用一元人民币换成一分、两分、五分的所有兑换方案(即输出所有的组合方式)。fori=0:20forj=0:50k=100-i*5-j*2;if(k=0)[i,j,k]endendend3.有1020个西瓜,第一天卖一半多两个,以后每天卖剩下的一半多两个,问几天后可以卖完,请用matlab编程计算。day=0;x1=1020while(x1)x2=x1/2-2;x1=x2;day=day+1;endday4.有一堆零件(100到200之间),如果分成4个零件一组的,则多2个零件;若分成7个零件一组的,则多3个零件;若分成9个零件一组的,则多5个零件。用matlab编程求这堆零件总数。fori=100:200if(mod(i-2,4)==0)if(mod(i-3,7)==0)if(mod(i-5,9)==0)iendendendend5.编写程序,求1000至9999之间的回文数.回文数是指正读与反读都一样的数,如1221.fori=1000:1000:9999forj=0:9n=i+j*100+j*10+i/1000endend6.作函数的图象,用蓝色五角星表示点。x=0:pi/10:2pi;y=sin(x);plot(x,y,’b-p’);]2,0[),sin(xxyMATLAB编程题总结LYLiYang第3页/共6页1:编写M函数32226.30.053.14xxxfxx,计算)3()2()1(2ffffunctiony=fun1(x)y=(x^3-2*x^2+x-6.3)/(x^2+0.05*x-3.14);fun1(1)*fun1(2)+fun1(3)*fun1(3)ans=-12.60232:编写M函数1,23,28()45,820cossin,20xxxxfxxxxxx,计算(0.1)f,(1)f,(9)f,(22)f,(2)ffunctiony=fff(x)ifx2y=x+1;elseifx=2&x=8y=3*x;elseifx8&x=20y=4*x-5;elsey=cos(x)+sin(x);end3:根据pi*pi/6=1/1^2+1/2^2+1/3^2+……+1/n^2,求pi的近似值。当n分别取100,1000,10000时,结果是多少?y=0;n=100;fori=1:ny=y+1/i/i;endyy=1.6350pi=sqrt(6*y)pi=3.1321y=0;n=1000;fori=1:ny=y+1/i/i;endyy=1.6439pi=sqrt(6*y)pi=3.1406y=0;n=10000;fori=1:ny=y+1/i/i;endyy=1.6448pi=sqrt(6*y)pi=3.1415(2)y=0;n=8;y=1./2*n-1;yy=34:编程求[100,200]之间第一个能被21整除的整数。forn=100:200ifrem(n,21)~=0continueendbreakendn5:编写函数文件求半径为r的圆的面积和周长。function[s,p]=fcircle(r)s=pi*r*r;p=2*pi*r;6:根据y=1+1-n215131,求:(1)y3时的最大n值。(2)与(1)的n值对应的y值。y=1;n=1;while(y3)n=n+2;y=y+1/n;endy=y-1/nn=(n+1)/2运行结果:y=2.9944n=MATLAB编程题总结LYLiYang第4页/共6页577:已知3,23,12,01,1321321nnnnfffffffnnnn求ff1001~中:最大值、最小值、各数之和。f(1)=1;f(2)=0;f(3)=1;fori=4:100f(i)=f(i-1)-2*f(i-2)+f(i-3);endmax(f)min(f)sum(f)1.编程计算3+33+333+3333+…..前10项之和。m=3;n=0;s=0;fori=1:10n=10*n+m;s=s+n;ends2.编程求1-1/2+1/3-1/4+.......+1/99-1/100的值。s=0;fori=1:100s=s+(-1)^(i-1)*1/i;ends3.编写程序,求1-3+5-7+…-99+101的值。s=0;j=1;fori=1:2:101s=s+(-1)^(j-1)*i;j=j+1;ends4.编写程序,输出从公元1000年至2000年所有闰年的年号。判断公元年是否为闰年的条件是:(1)公元年数如能被4整除,而不能被100整除,则是闰年;(2)公元年数能被400整除也是闰年。foryear=1000:2000if(mod(year,4)==0&mod(year,100)~=0)|mod(year,400)==0yearendend5.将10个整数输入到一个数组中,然后再将其按输入顺序的逆序进行排列并输出。fori=1:10a(i)=input('x=');endfori=10:-1:1a(i)end6.一球从100米高度自由落下,每次落地后反跳回原高度的一半,再落下。求它在第10次落地时,共经过多少m?第10次反弹多高?Sn=100;Hn=Sn/2;forn=0:10Sn=Sn+2*Hn;Hn=Hn/2;endSnHn7.猴子吃桃问题。猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个。第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下的一半零一个。到第10天早上再想吃时,见只剩一个桃子了。求第一天共摘多少桃子。day=9;x=1;while(day0)x=(x+1)*2;day=day-1;endxMATLAB编程题总结LYLiYang第5页/共6页附:matlab期中试卷及答案一、计算题1.已知A=[123;456;789],B=[150;103;034],试写出下列指令运行的结果: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(i100)mysum=mysum+i;i=i+1;endmysum2、A=[1,2,3;4,5,6;7,8,9];C=[A;[10,11,12]];D=C(1:3,[23]);E=C(1:3,:)写出C、D、E的结果3、x=[0,1,0,10,1,0,1];fori=1:7ifx(i)==0x(i)=1;elsex(i)=0;endendx4、c=6;d=[4,0,6;0,8,0];x=d&cy=d|cz=~d写出x、y、z的结果三、(1)建立M函数完成下列运算(函数名为jygxfun))3sin(),,()(zyxzyxzezyxfyx(2)若x=1,y=2,z=3,采取调用jygxfun方式计算f值,试编程.四、(1)编程计算下面问题,x值由键盘输入(input语句).1,111,1,1222xxxxxxy(2)某商场对顾客所购买的商品实行打折销售,标准如下(商品价格用price来表示):price200没有折扣200≤price5003%折扣500≤price10005%折扣1000≤price25008%折扣2500≤price500010%折扣5000≤price14%折扣输入所售商品的价格,求其实际销售价格。(3)fibonccci数组的元素满足fibonacci规则:ak+2=ak+ak+1,(k=1,2,…);且a1=a2=1。现要求求出该数组中第一个大于10000的元素。(4)计算1!+2!+3!+4!+5!+6!+…+n!值的程序。(n可以自由输入)五、分析下面程序运行后s1,n1,s2,n2,m的值.s1=0;s2=0;n1=0;n2=0x=[1,-4,-8,3,10,-9,7,-3,10,8,-5,-2,2,0];m=length(x);fori=1:mifx(i)0s1=s1+x(i);n1=n1+1;elses2=s2+x(i);n2=n2+1;endends1,n1,s2,n2,m2