收藏 分销(赏)

第4章MATLAB程序流程控制-习题答案.doc

上传人:快乐****生活 文档编号:10821220 上传时间:2025-06-18 格式:DOC 页数:8 大小:85.55KB 下载积分:6 金币
下载 相关 举报
第4章MATLAB程序流程控制-习题答案.doc_第1页
第1页 / 共8页
第4章MATLAB程序流程控制-习题答案.doc_第2页
第2页 / 共8页


点击查看更多>>
资源描述
7 第4章 MATLAB程序流程控制 习题4 一、选择题 1.下列关于脚本文件和函数文件的描述中不正确的是( )。 A A.函数文件可以在命令行窗口直接运行 B.去掉函数文件第一行的定义行可转变成脚本文件 C.脚本文件可以调用函数文件 D.函数文件中的第一行必须以function开始 2.下列程序的输出结果是( )。D y=10; if y==10 y=20; elseif y>0 y=30 end disp(y) A.1 B.30 C.10 D.20 3.有以下语句: a=eye(5); for n=a(2:end,:) for循环的循环次数是( )。C A.3 B.4 C.5 D.10 4.设有程序段 k=10; while k k=k-1 end 则下面描述中正确的是( )。A A.while循环执行10次 B.循环是无限循环 C.循环体语句一次也不执行 D.循环体语句执行一次 5.有以下程序段: x=reshape(1:12,3,4); m=0; n=0; for k=1:4 if x(:,k)<=6 m=m+1; else n=n+1; end end 则m和n的值分别是( )。C A.6 6 B.2 1 C.2 2 D.1 2 6.调用函数时,如果函数文件名与函数名不一致,则使用( )。A A.函数文件名 B.函数名 C.函数文件名或函数名均可 D.@函数名 7.如果有函数声明行为“function [x,y,z]=f1(a,b,c)”,则下述函数调用格式中错误的是( )。B A.x=f1(a,b,c) B.[x,y,z,w]=f1(a,b,c) C.[x,b,z]=f1(a,y,c) D.[a,b]=f1(x,y,z) 8.执行语句“fn=@(x) 10*x;”,则 fn是( )。A A.匿名函数 B.函数句柄 C.字符串 D.普通函数 9.执行下列语句后,变量A的值是( )。D >> f=@(x,y) log(exp(x+y)); >> A=f(22,3); A.22,3 B.22 C.3 D.25 10.程序调试时用于设置断点的函数是( )。A A.dbstop B.dbclear C.dbcont D.dbstack 二、填空题 1.将有关MATLAB命令编成程序存储在一个扩展名为.m的文件中,该文件称为 。M文件 2.有语句“for k=[12;34]”引导的循环结构,其循环体执行的次数为 。1 3.MATLAB中用于控制不确定重复次数的循环语句为 ,若在循环执行过程中需要终止该循环时采用的语句为 。while…end,break 4.函数文件由 语句引导。在函数定义时,函数的输入输出参数称为 参数,简称 。在调用函数时,输入输出参数称为 参数,简称 。 function,形式,形参,实际,实参 5.在MATLAB中,函数文件中的变量是 变量。定义 变量是函数间传递信息的一种手段,可以用 命令定义。局部,全局,global 6.应用程序的错误有两类,一类是 错误,另一类是运行时的错误,即 错误。MATLAB程序调试方法有两种,一是利用 进行程序调试,二是利用 进行程序调试。 语法,逻辑,调试函数,调试工具 三、应用题 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 end end s 2.分别用if语句和switch语句实现以下计算,其中a、b、c的值从键盘输入。 if语句: a=input('a='); b=input('b='); c=input('c='); x=input('x='); if 0.5<=x&x<1.5 y=a*x^2+b*x+c; elseif 1.5<=x&x<3.5 y=a*(sin(b))^c+x; elseif 3.5<=x&x<5.5 y=log(abs(b+c/x)); end y switch语句: a=input('a='); b=input('b='); c=input('c='); x=input('x='); switch fix(x*10) case num2cell(5:14) y=a*x^2+b*x+c; case num2cell(15:34) y=a*(sin(b))^c+x; case num2cell(35:54) y=log(abs(b+c/x)); otherwise disp('nsrdxcw') end y 3.产生20个两位随机整数,输出其中小于平均值的偶数。 x=fix(10+rand(20)*89); a=sum(x)/20; for i=1:20 if x(i)<a if rem(x(i),2)==0 disp(x(i)) end end end 4.输入20个数,求其中最大数和最小数。要求分别用循环结构和调用MATLAB的max函数、min函数来实现。 循环结构: for a=1:20 A(a)=input('请输入20个数:'); end A mi=A(1);ma=A(1); for i=1:20 if mi>A(i) mi=A(i); end if ma<A(i) ma=A(i); end end disp(ma) disp(mi) max、min函数: for a=1:20 A(a)=input('请输入20个数:'); end A mi=min(A),ma=max(A) 5.已知 s=1+2+22+23+…+263 分别用循环结构和调用MATLAB的sum函数求s的值。 循环结构: s=0; for x=0:63 s=2^x+s; end disp(s) sum函数: i=0:63; f=2.^i; sum(f) 6.当n分别取100、1000、10000时,求下列各式的值: (1) (2) (3) (4) 要求分别用循环结构和向量运算(使用sum或prod函数)来实现。 (1): 循环结构: n=input('请输入n的值:'); s=0; for a=1:n s=s+(-1)^(a+1)/a; end s 向量运算: 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); end s 向量运算: 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:n s=s+(1/4)^a; end s 向量运算: n=input('请输入n的值:'); a=1:n; f=(1/4).^a; s=sum(f) (4): 循环结构: n=input('请输入n的值:'); s=1; for a=1:n f=(2*a)^2/((2*a-1)*(2*a+1)); s=s*f; end s 向量运算: 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:n if i==1 f=1; elseif i==2 f=1; else f=Fibnacci(i-1)+Fibnacci(i-2); end end n=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 n<1 f=0; else f=n^m+xt4_10(m,n-1); end xt4_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 x z=3*x; x=x+z; 7
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 考试专区 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服