




已阅读5页,还剩15页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
五 编程训练题1. 编写一个程序,要求输入五个整数,然后由小到大排序再输出function f=tao(a)for i=1:5; for j=(i+1):5; if a(i)a(j); m=a(i);a(i)=a(j);a(j)=m; end endenda2.将一个整型数组的元素按逆序重新存放(如原序为:8,6,5,4改为:4,5,6,8)。function f=cunfang(a)n=length(a);for i=n:-1:1; j=n-i+1;b(j)=a(i);endb3.输入一个字符,如果是大写字母,则将其转换成小写并输出;若是小写则直接输出;若是非字母字符则打印:“Dataerror!”。function tao(x)if (x=A)&(x=a)&(x=0)&(y=1/100000; s=s+t; endend;fprintf(%12.18fn,s)8.求3*3矩阵的主对角线元素之和。function f=ww(a)s=0;n=length(a);for i=1:3; for j=1:i; if i=j; t=0; else s=a(i,j)+s; end endends9.从键盘输入的10个整数中,找出第一个能被7整除的数。若找到,打印此数后退出循环;若未找到,打印“not exist”。function f=tao(a)n=length(a);for i=1:10; if rem(a(i),7)=0; s=a(i);break else s=(not exist); endends10.设计一个用于计算个人所有税的程序。假设个人所得税的缴纳标准为:月收入少于等于800元者不纳税;超出800元的部分,纳税5%;超出2000元的部分,纳税10%;超出5000元的部分,纳税20%;超出10000元的部分,纳税30%;超出100000元的部分,纳税40%。function f=jiaoshui(n)if n800)&(n2000)&(n5000)&(n10000)&(n=j; fprintf( ); else fprintf(*); end end fprintf(n);end 12.编写一个程序求出1000以内的所有素数。function tao12()a=;for i=2:1000 k=1; for j=2:i-1 if rem(i,j)=0 k=0; break end end if k=1 a=a,i endend13.输入两个整型变量a,b的值,输出a+b,a-b,a*b,a/b,的结果,要求连同算式一起输出,每个算式占一行。例:a等于10,b等于5,a+b的结果输成 10+5=function tao(a,b)fprintf( %d+%d=%dn,a,b,a+b);fprintf( %d-%d=%dn,a,b,a-b);fprintf( %d*%d=%dn,a,b,a*b);fprintf( %d/%d=%fn,a,b,a/b);14. 求前驱字符和后继字符。输入一个字符,找出它的前驱字符和后继字符,并按ASCII码值,按从大到小的顺序输出这三个字符及其对应的ASCII码值。function tao(x)y=abs(x);a=y-1;b=y+1;f=char(y);g=char(a);h=char(b);fprintf(%s %s %s %d %d %dn,g,f,h,a,y,b)15. 输入三角形的边长,写一求三角形面积的函数。(面积=sqrt(s(s-a)(s-b)(s-c), s=(a+b+c)/2)function f=tao(a,b,c)s=0;x=0;l=a+b+c;x=l/2;s=(x*(x-a)*(x-b)*(x-c)(1/2);s16. 输入某个点A的平面坐标(x,y),判断(输出)A点是在圆内、圆外还是在圆周上,其中圆心坐标为(2,2),半径为1 。function f=tao(x,y)d=sqrt(x-2)2+(y-2)2);if d=1; fprintf(点A在圆上n);elseif d1; fprintf(点A在圆外n);else fprintf(点A在圆内n);end 17. 求爱因斯坦数学题。有一条长阶,若每步跨2阶,则最后剩余1阶;若每步跨3阶,则最后剩2阶;若每步跨5阶,则最后剩4阶;若每步跨6阶,则最后剩5阶;若每步跨7步,最后正好一阶不剩。function tao()a=;for i=1:1000000 ifrem(i,2)=1&rem(i,3)=2&rem(i,5)=4&rem(i,6)=5&rem(i,7)=0 a=a,i; end if i=1000 %1000以内满足爱因斯坦数学题条件的数 break endenda18输入一串字符,直到输入一个星号(*)为止,统计(输出)其中的字母个数和数字字符个数。(要求可输入任意字符)function tao3(a)x=;y=;n=length(a);for i=1:n; if a(i)=0&a(i)=A&a(i)=a&a(i)0 y=1; end endif x=y fprintf(同时含有奇偶数字n)else fprintf(不同时含有奇偶数字n)end20. 设某县2000年工业总产值为200亿元,如果该县预计平均年工业总产值增长率为4.5%,那么多少年后该县年工业总产值将超500亿元? function tao()s=0;i=200;for j=1:100; s=i*(1+0.045)j; if s=500 break endendsj21. (1)输入一个三位数,判断是否是一个“水仙花数”。水仙花数是指三位数的各位数字的立方和等于这个三位数本身。例如: 153=1*1*1+5*5*5+3*3*3function tao(x)a=fix(x/100);b=fix(x/10)-10*a;c=x-100*a-10*b;y=a3+b3+c3;if y=x; fprintf(%d是水仙花数n,x);else fprintf(%d不是水仙花数n,x);end (2)一个整数等于该数所有因子之和,则称该数是一个完数。例如:6和28都是完数。因为:6=1+2+3,28=1+2+4+7+14. 输出三位数中所有完数。function tao212()for a=100:999 x=0; for i=1:a-1 if rem(a,i)=0 x=x+i; end end if x=a disp(a); continue endend22. 输入10个数,将10个整数按生序排列输出,并且奇数在前,偶数在后。如果输入的10个数是:10 9 8 7 6 5 4 3 2 1 ,则输出:1 3 5 7 9 2 4 6 8 10。function tao22(a)x=;y=;n=length(a);for i=1:n if rem(a(i),2)=0 x=x,a(i); end if rem(a(i),2)=0 y=y,a(i); endendx=sort(x);y=sort(y);x y23. 将数组an中的每一个元素依次循环向后移动一位。function tao23(a)b=;n=length(a);for i=1:n b(i+1)=a(i);endb(1)=0;%空位补0b24. 将一个正整数n输出成“千分位”形式,即从个位数起,每三位之间加一个逗号,例如,将7654321输出成7,654,321.function tao24(a)c=num2str(a);n=numel(c);b=ceil(n/3);for i=1:n n(i)=rem(a,1000); a=fix(a/1000);endfor j=b:-1:2 fprintf(%d,n(j);end fprintf(%d,n(1);fprintf(n);25. 求出矩阵a中每行元素的平均值和平均最大的行号。function tao(v)n=length(v);x,y=size(v);for i=1:n s(i)=sum(v(i,:)./y;endsh=max(s,2);i,j=find(s=h);j26. 编写一个函数,找出矩阵A中最大元素和最小元素所在的行列号.function f=taomax(v)n,m=size(v);l=v(1,1);for i=1:n; for j=1:m; if v(i,j)l l=v(i,j); x=i;y=j; end endendx yfor i=1:n; for j=1:m; if v(i,j)b(i)时;c(i)= a(i)+b(i) 当a(i)b(i); c(i)=a(i)-b(i);else c(i)=a(i)+b(i);endendc*29. 编程求给定的4个数字的全排列。例如,若给定的4个数字为5、6、7、8,则这4个数字的全排列为:5687 5786 5768 5867 5876 5678 6587 6785 6758 6857 6875 6578 7586 7685 7658 7856 7865 7568 8576 8675 8657 8756 8765 8567function tao(x,y,z,p)m=x.9+y.9+z.9+p.9;for x=0:9 for y=0:9 for z=0:9 for p=0:9 h=x.9+y.9+z.9+p.9; if h=m fprintf(%d%d%d%dn,x,y,z,p) end end end endend30.编写程序求所有各位数字的立方和等于368的三位数function tao()m=0;for x=1:9 for y=0:9 for z=0:9 m=x.3+y.3+z.3; if m=368 fprintf(%d%d%dn,x,y,z) end end endend*31.学校要举行篮球循环赛,共有十个队参加比赛,请你安排一下比赛场次,使每队每次打完比赛后至少能隔一场不比赛,以便得到休息从而保持体力,请用matlab解决这个问题,并给出至少一个比赛日程表(每队休息的场次越多越好,但每队得到的休息应大体相同,不能出现某队刚打完比赛,马上和另一个已经休息了诺干场的球队比赛,这是不公平的)。32你玩过牌吗?把13张牌反过来(背面朝上)按一定的顺序排列,先把你已经排好的牌第一张取出放在这叠牌的最底层,拿出第二张放在桌面上,然后将第三张取出又放在最底层,取出第四张放在桌子上直到游戏结束,你依次取出放在桌子上的牌刚好为K,Q,J,10,9,8,7,6,5,4,3,2,A。问你一开始时这13张牌的顺序是怎样的?请你用MATLAB编程解决这个问题?请把程序附上。如果把第一张牌放在最底层,第二张放在最底层,取出第三张放在桌子上,依此类推,你最后把所有的牌取出刚好依次是A,2,3,4,5,6,7,8,9,10,J,Q,K.33. 编写一个函数,统计出具有n个元素的一维整数数组中大于等于所有元素平均值的元素个数。验证该函数function tao33(a)s=0;y=;n=numel(a);for i=1:n s=s+i;endx=s/n;for i=1:n if a(i)=x y=y,a(i); endendyn=numel(y) 34. 给一个数组中的元素从小到大进行编号,相同的数字编号相同,然后按照数组中元素的顺序输出相应编号。举个例子吧,输入5,3,2,3,5,7 输出3,2,1,2,3,4。35. 请将一个整数转化为其相应的字符串(如整
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论