《第4章MATLAB程序流程控制-习题答案(共9页).doc》由会员分享,可在线阅读,更多相关《第4章MATLAB程序流程控制-习题答案(共9页).doc(9页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、精选优质文档-倾情为你奉上第4章MATLAB程序流程控制习题4一、选择题1下列关于脚本文件和函数文件的描述中不正确的是()。AA函数文件可以在命令行窗口直接运行B去掉函数文件第一行的定义行可转变成脚本文件C脚本文件可以调用函数文件D函数文件中的第一行必须以function开始2下列程序的输出结果是()。Dy=10;ify=10y=20;elseify0y=30enddisp(y)A1B30C10D203有以下语句:a=eye(5);forn=a(2:end,:)for循环的循环次数是()。CA3B4C5D104设有程序段k=10;whilekk=k-1end则下面描述中正确的是()。AAwhi
2、le循环执行10次B循环是无限循环C循环体语句一次也不执行D循环体语句执行一次5有以下程序段:x=reshape(1:12,3,4);m=0;专心-专注-专业n=0;fork=1:4ifx(:,k)f=(x,y)log(exp(x+y);A=f(22,3);A22,3B22C3D2510程序调试时用于设置断点的函数是()。AAdbstopBdbclearCdbcontDdbstack二、填空题1将有关MATLAB命令编成程序存储在一个扩展名为.m的文件中,该文件称为。M文件2有语句“fork=12;34”引导的循环结构,其循环体执行的次数为。13MATLAB中用于控制不确定重复次数的循环语句为
3、,若在循环执行过程中需要终止该循环时采用的语句为。whileend,break4函数文件由语句引导。在函数定义时,函数的输入输出参数称为参数,简称。在调用函数时,输入输出参数称为参数,简称。function,形式,形参,实际,实参5在MATLAB中,函数文件中的变量是变量。定义变量是函数间传递信息的一种手段,可以用命令定义。局部,全局,global6应用程序的错误有两类,一类是错误,另一类是运行时的错误,即23错误。MATLAB程序调试方法有两种,一是利用进行程序调试,二是利用进行程序调试。语法,逻辑,调试函数,调试工具三、应用题1写出下列程序的输出结果。s=0;a=12,13,14;15,1
4、6,17;18,19,20;21,22,23;fork=aforj=1:4ifrem(k(j),2)=0s=s+k(j);endendends2分别用if语句和switch语句实现以下计算,其中a、b、c的值从键盘输入。2axbxc,0.5x1.5cyasinbx,1.5x3.5lnbcx,3.5x5.5if语句:a=input(a=);b=input(b=);c=input(c=);x=input(x=);if0.5=x&x1.5y=a*x2+b*x+c;elseif1.5=x&x3.5y=a*(sin(b)c+x;elseif3.5=x&x5.5y=log(abs(b+c/x);endys
5、witch语句:a=input(a=);b=input(b=);3c=input(c=);x=input(x=);switchfix(x*10)casenum2cell(5:14)y=a*x2+b*x+c;casenum2cell(15:34)y=a*(sin(b)c+x;casenum2cell(35:54)y=log(abs(b+c/x);otherwisedisp(nsrdxcw)endy3产生20个两位随机整数,输出其中小于平均值的偶数。x=fix(10+rand(20)*89);a=sum(x)/20;fori=1:20ifx(i)A(i)mi=A(i);endifmaA(i)ma=
6、A(i);45endenddisp(ma)disp(mi)max、min函数:fora=1:20A(a)=input(请输入20个数:);endAmi=min(A),ma=max(A)5已知s=1+2+22+23+263分别用循环结构和调用MATLAB的sum函数求s的值。循环结构:s=0;forx=0:63s=2x+s;enddisp(s)sum函数:i=0:63;f=2.i;sum(f)6当n分别取100、1000、10000时,求下列各式的值:1111n1(1)1(1)(ln2)234n111(2)1()357411111(3)()n(2n)(2n)(4)()(2n1)(2n1)2要求分
7、别用循环结构和向量运算(使用sum或prod函数)来实现。(1):循环结构:n=input(请输入n的值:);5s=0;fora=1:ns=s+(-1)(a+1)/a;ends向量运算:n=input(请输入n的值:);a=1:n;f=(-1).(a+1)./a;s=sum(f)(2):循环结构:n=input(请输入n的值:);s=0;fora=1:n;s=s+(-1)(a+1)/(2*a-1);ends向量运算:n=input(请输入n的值:);a=1:n;f=(-1).(a+1)./(2*a-1);s=sum(f)(3):循环结构:n=input(请输入n的值:);s=0;fora=1:
8、ns=s+(1/4)a;ends向量运算:n=input(请输入n的值:);a=1:n;f=(1/4).a;s=sum(f)(4):67循环结构:n=input(请输入n的值:);s=1;fora=1:nf=(2*a)2/(2*a-1)*(2*a+1);s=s*f;ends向量运算:n=input(请输入n的值:);a=1:n;f=(2*a).2./(2*a-1).*(2*a+1);s=prod(f)7编写一个函数文件,求小于任意自然数n的斐波那契(Fibnacci)数列各项。斐波那契数列定义如下:f11f12fff(n2)nn1n2functionf=Fibnacci(n)fori=1:ni
9、fi=1f=1;elseifi=2f=1;elsef=Fibnacci(i-1)+Fibnacci(i-2);endendn=input(n=);f=Fibnacci(n)8编写一个函数文件,用于求两个矩阵的乘积和点乘,然后在脚本文件中调用该函数。functionC,D=CJ(A,B)C=A*B;D=A.*B;7A=123;456;789;B=111;111;111;C,D=CJ(A,B)9先用函数的递归调用定义一个函数文件求nmi,然后调用该函数文件求i112kk。kk1k1kfunctionf=xt4_10(m,n)ifn1f=0;elsef=nm+xt4_10(m,n-1);endxt4_10(1,100)+xt4_10(2,50)+xt4_10(-1,10)10写出下列程序的输出结果。脚本文件exe.m:globalxx=1:2:5;y=2:2:6;sub(y);xy函数文件sub.m:functionfun=sub(z)globalxz=3*x;x=x+z;8