百度文库1 1, 编写M 函数实现求一个数是否为素数,再编写一主程序(脚本文件),要求通过键盘输入一个整数,然后调用判断素数函数,从而确定它是否素数。x=input('请输入一个整数 x:'); if myprime(x) disp('您输入的整数 x 是一个素数。 ') else disp('您输入的数 x 不是一个素数。 ') end function y=myprime(x) y=1; for i=2:fix(sqrt(x)) if mod(x,i)==0 y=0; end end 2, 编写M 函数统计一数值中零的个数, 然后编写脚本文件, 实现统计从 1— 2007 中零的总个数。function num=number0(a) %统计值中 0的个数sa=num2str(a);% 将数值装化为字符串num=length(find(sa=='0' )); % ));% 求取字符串中 '0 ’的个数y=0; for a=1:2006 num=number0(a); y=num+y; end disp(y) 504 3, 编写程序计算 x∈[-3,3],字长 0.01 :并画出曲线x = -3:0.01:3; y=zeros(size(x)); for i = 1:length(x) if -3<= x(i)& x(i)<=-1 y(i)=(-x(i).^2-4*x(i)-3)/2; elseif -1<= x(i) & x(i)<=1 y(i)=-x(i).^2+1; elseif 1<=x(:,i)<=3 y(i)=(-x(i).^2+4*x(i)-3)/2; end end plot(x,y) -3-2-1012300.10.20.30.40.50.60.70.80.91百度文库2 4 ch= menu('please choose a number','1','2','3','4') switch ch case 1 a=10-20*rand(1); case 2 a=5-10*rand(1); case 3 a=1-2*rand(1); case 4 a=randn(1); end disp(a) 5 编写良好的用户界面程序,完成输入全班学生某学期6 门课程(任意指定)的成绩,并按学分数分别为2、3、2、4、2、5,进行加权平均,计算出每个学生的加权平均。a=input('请依次输入语言,数学,英语,物理,化学,生物成绩;如:[68 72 65 68 35 79]:'); w=[2 3 2 4 2.5 1]; sum=0;w1=0; for e=1:6 w1=w1+w(e); end for j=1:6 sum=sum+a(j).*w(j); end y=sum./w1; disp(y) 6、企业发放的奖金按个人完成的利润提成。分段提成比例 K1为:当 I ≤10 万元时 K1=10%;当 10<I ≤20 万元时, K1=5%;当 20<I ≤40 万元时, K1=2%;当I>40 万元时, I =1%。function y=lirun(x) if x<=10 y=x*0.1; elseif x>10&&x<=20 y=(x-10)*0.05+10*0.1; elseif x>20&&x<=40 y=(x-20)*0.02+10*0.05+10*0.1; elseif x>40 y=(x-40)*0.01+10*0.02+10*0.05+10*0.1; End X=25; 百度文库3 Y=lirun(x) 9、有一分数序列 2/1,3/2,5/3,8/5,13/8,21/13,, 求前 15 项的和。d=0 ; a(1)=2; b(1)=1; a(2)=3; b(2)=2; c(1)=a(1)./b(1); c(2)=a(2)./b(2); for i=3:15 a(i)=a(i-2)+a(i-1); b(i)=b(i-2)+b(i-1); c(i)=a(i)./b(i); end for j=1:15 d=d+c(j); end disp(d) 24.5701 10、有 n 个人围成一圈, 按列号编号。 从第一个人开始报数, 数到 m时该人退出,并且下一个人从 1 开始报数,求出出圈人的顺序。function y=shaixuan(a,b) n=a; x=[1:n]; i=0;m=0;j=1; while (n>0) i=i+1;m=m+1; if (m==b) k(j)=x(i);j=j+1;n=n-1; for (v=i:n) x(v)=x(v+1); endm=0;i=i-1; endif (i==n) i=0; endendy=k; y=shaixuan(20,7) y = 7 14 1 9 17 5 15 4 16 8 20 13 11 10 12 19 6 18 20 3