《第4章--MATLAB程序流程控制-习题答案.doc》由会员分享,可在线阅读,更多相关《第4章--MATLAB程序流程控制-习题答案.doc(8页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、精品文档,仅供学习与交流,如有侵权请联系网站删除第4章 MATLAB程序流程控制习题4一、选择题1下列关于脚本文件和函数文件的描述中不正确的是( )。 AA函数文件可以在命令行窗口直接运行B去掉函数文件第一行的定义行可转变成脚本文件C脚本文件可以调用函数文件D函数文件中的第一行必须以function开始2下列程序的输出结果是( )。Dy=10;if y=10 y=20;elseif y0 y=30enddisp(y)A1 B30 C10 D203有以下语句:a=eye(5);for n=a(2:end,:)for循环的循环次数是( )。CA3 B4 C5 D104设有程序段k=10;while
2、 k k=k-1end则下面描述中正确的是( )。AAwhile循环执行10次 B循环是无限循环C循环体语句一次也不执行 D循环体语句执行一次5有以下程序段:x=reshape(1:12,3,4);m=0;n=0;for k=1:4 if x(:,k) f=(x,y) log(exp(x+y); A=f(22,3);A22,3 B22 C3 D2510程序调试时用于设置断点的函数是( )。AAdbstop Bdbclear Cdbcont Ddbstack二、填空题1将有关MATLAB命令编成程序存储在一个扩展名为.m的文件中,该文件称为 。M文件2有语句“for k=12;34”引导的循环结
3、构,其循环体执行的次数为 。13MATLAB中用于控制不确定重复次数的循环语句为 ,若在循环执行过程中需要终止该循环时采用的语句为 。whileend,break4函数文件由 语句引导。在函数定义时,函数的输入输出参数称为 参数,简称 。在调用函数时,输入输出参数称为 参数,简称 。function,形式,形参,实际,实参5在MATLAB中,函数文件中的变量是 变量。定义 变量是函数间传递信息的一种手段,可以用 命令定义。局部,全局,global6应用程序的错误有两类,一类是 错误,另一类是运行时的错误,即 错误。MATLAB程序调试方法有两种,一是利用 进行程序调试,二是利用 进行程序调试。
4、语法,逻辑,调试函数,调试工具三、应用题1写出下列程序的输出结果。s=0;a=12,13,14;15,16,17;18,19,20;21,22,23;for k=a for j=1:4 if rem(k(j),2)=0 s=s+k(j); end endends2分别用if语句和switch语句实现以下计算,其中a、b、c的值从键盘输入。if语句:a=input(a=);b=input(b=);c=input(c=);x=input(x=);if 0.5=x&x1.5y=a*x2+b*x+c;elseif 1.5=x&x3.5y=a*(sin(b)c+x;elseif 3.5=x&x5.5y=
5、log(abs(b+c/x);endyswitch语句:a=input(a=);b=input(b=);c=input(c=);x=input(x=);switch fix(x*10)case num2cell(5:14)y=a*x2+b*x+c;case num2cell(15:34)y=a*(sin(b)c+x;case num2cell(35:54)y=log(abs(b+c/x);otherwisedisp(nsrdxcw)endy3产生20个两位随机整数,输出其中小于平均值的偶数。x=fix(10+rand(20)*89);a=sum(x)/20;for i=1:20if x(i)A
6、(i)mi=A(i);endif maA(i)ma=A(i);endenddisp(ma)disp(mi)max、min函数:for a=1:20A(a)=input(请输入20个数:);endAmi=min(A),ma=max(A)5已知 s=1+2+22+23+263分别用循环结构和调用MATLAB的sum函数求s的值。循环结构:s=0;for x=0:63s=2x+s;enddisp(s)sum函数:i=0:63;f=2.i;sum(f)6当n分别取100、1000、10000时,求下列各式的值:(1) (2) (3) (4) 要求分别用循环结构和向量运算(使用sum或prod函数)来实
7、现。(1):循环结构:n=input(请输入n的值:);s=0;for a=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;for a=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;for a=1:ns=s+(1/4)a;ends向量运算:n=in
8、put(请输入n的值:);a=1:n;f=(1/4).a;s=sum(f)(4):循环结构:n=input(请输入n的值:);s=1;for a=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)数列各项。斐波那契数列定义如下:function f=Fibnacci(n)for i=1:nif i=1f=1;elseif i=2f=1;elsef=Fibnacci(i-1)
9、+Fibnacci(i-2);endendn=input(n=);f=Fibnacci(n)8编写一个函数文件,用于求两个矩阵的乘积和点乘,然后在脚本文件中调用该函数。function C,D=CJ(A,B)C=A*B;D=A.*B;A=1 2 3;4 5 6;7 8 9;B=1 1 1;1 1 1;1 1 1;C,D=CJ(A,B)9先用函数的递归调用定义一个函数文件求,然后调用该函数文件求。function f=xt4_10(m,n)if n1 f=0;else f=nm+xt4_10(m,n-1);endxt4_10(1,100)+xt4_10(2,50)+xt4_10(-1,10)10写出下列程序的输出结果。脚本文件exe.m:global x x=1:2:5;y=2:2:6; sub(y); x y 函数文件sub.m:function fun=sub(z) global xz=3*x; x=x+z;【精品文档】第 7 页