《2022年第4章MATLAB程序流程控制_习题答案 .pdf》由会员分享,可在线阅读,更多相关《2022年第4章MATLAB程序流程控制_习题答案 .pdf(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=30 end disp(y) A1 B30 C10 D20 3有以下语句:a=eye(5); for n=a(2:end,:) for 循环的循环次数是() 。CA3 B4 C5 D 10 4设有程序段k=10; while k k=k-
2、1 end 则下面描述中正确的是() 。AA while 循环执行10 次B循环是无限循环C循环体语句一次也不执行D循环体语句执行一次5有以下程序段:x=reshape(1:12,3,4); m=0; 精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 1 页,共 8 页2 n=0; for k=1:4 if x(:,k) f=(x,y) log(exp(x+y); A=f(22,3); A22,3B22 C3 D 25 10程序调试时用于设置断点的函数是() 。AAdbstop Bdbclear Cdbcont Ddbstack 二、填空题1将有关M
3、A TLAB命令编成程序存储在一个扩展名为.m 的文件中,该文件称为。 M 文件2有语句“ for k=12;34 ”引导的循环结构,其循环体执行的次数为。 13MATLAB中用于控制不确定重复次数的循环语句为,若在循环执行过程中需要终止该循环时采用的语句为。 whileend,break 4 函数文件由语句引导。 在函数定义时, 函数的输入输出参数称为参数,简称。在调用函数时,输入输出参数称为参数,简称。function ,形式,形参,实际,实参5在 MA TLAB 中,函数文件中的变量是变量。定义变量是函数间传递信息的一种手段,可以用命令定义。 局部,全局, global 6应用程序的错误
4、有两类,一类是错误,另一类是运行时的错误,即精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 2 页,共 8 页3 3 错误。 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 的值从键
5、盘输入。5 .55.3,ln5.35 .1,sin5.15.0,2xxcbxxbaxcbxaxycif语句 : a=input(a=); b=input(b=); c=input(c=); x=input(x=); if 0.5=x&x1.5 y=a*x2+b*x+c; elseif 1.5=x&x3.5 y=a*(sin(b)c+x; elseif 3.5=x&x5.5 y=log(abs(b+c/x); end y switch语句:a=input(a=); b=input(b=); 精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 3 页,共
6、8 页4 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); 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(i) mi=A(i); end if maA(i) ma
7、=A(i); 精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 4 页,共 8 页5 5 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=2x+s; end disp(s) sum 函数 : i=0:63; f=2.i; sum(f) 6当 n 分别取
8、100、 1000、10000 时,求下列各式的值:(1) )2ln(1) 1(41312111nn(2) )4(7151311(3) )31(4164116141n(4) )2() 12)(12()2)(2(756653443122nnnn要求分别用循环结构和向量运算(使用sum 或 prod 函数)来实现。(1): 循环结构 : n=input(请输入 n 的值: ); 精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 5 页,共 8 页6 s=0; for a=1:n s=s+(-1)(a+1)/a; end s 向量运算 : n=input(
9、请输入 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).
10、a; s=sum(f) (4): 精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 6 页,共 8 页7 7 循环结构 : 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)数列各项。斐波那契数列定义如下:121211(2)nnnfff
11、ffnfunction 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; 精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 7 页,共 8 页8 A=1 2 3;4 5 6;7 8 9; B=1 1 1;1 1
12、 1;1 1 1; C,D=CJ(A,B) 9先 用函数的递 归调用定义一 个函 数文件求1nmii, 然后调用该 函数文件求10501210011kkkkkk。function f=xt4_10(m,n) if n1 f=0; else f=nm+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; 精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 8 页,共 8 页