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

上传人:b****8 文档编号:28208801 上传时间:2023-07-09 格式:DOCX 页数:12 大小:38.14KB
下载 相关 举报
第4章MATLAB程序流程控制习题答案.docx_第1页
第1页 / 共12页
第4章MATLAB程序流程控制习题答案.docx_第2页
第2页 / 共12页
第4章MATLAB程序流程控制习题答案.docx_第3页
第3页 / 共12页
第4章MATLAB程序流程控制习题答案.docx_第4页
第4页 / 共12页
第4章MATLAB程序流程控制习题答案.docx_第5页
第5页 / 共12页
点击查看更多>>
下载资源
资源描述

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

《第4章MATLAB程序流程控制习题答案.docx》由会员分享,可在线阅读,更多相关《第4章MATLAB程序流程控制习题答案.docx(12页珍藏版)》请在冰豆网上搜索。

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

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

第4章MATLAB程序流程控制

习题4

一、选择题

1.下列关于脚本文件和函数文件的描述中不正确的是()。

A

A.函数文件可以在命令行窗口直接运行

B.去掉函数文件第一行的定义行可转变成脚本文件

C.脚本文件可以调用函数文件

D.函数文件中的第一行必须以function开始

2.下列程序的输出结果是()。

D

y=10;

ify==10

y=20;

elseify>0

y=30

end

disp(y)

A.1B.30C.10D.20

3.有以下语句:

a=eye(5);

forn=a(2:

end,:

for循环的循环次数是()。

C

A.3B.4C.5D.10

4.设有程序段

k=10;

whilek

k=k-1

end

则下面描述中正确的是()。

A

A.while循环执行10次B.循环是无限循环

C.循环体语句一次也不执行D.循环体语句执行一次

5.有以下程序段:

x=reshape(1:

12,3,4);

m=0;

n=0;

fork=1:

4

ifx(:

k)<=6

m=m+1;

else

n=n+1;

end

end

则m和n的值分别是()。

C

A.66B.21C.22D.12

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,3B.22C.3D.25

10.程序调试时用于设置断点的函数是()。

A

A.dbstopB.dbclearC.dbcontD.dbstack

二、填空题

1.将有关MATLAB命令编成程序存储在一个扩展名为.m的文件中,该文件称为。

M文件

2.有语句“fork=[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];

fork=a

forj=1:

4

ifrem(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=');

if0.5<=x&x<1.5

y=a*x^2+b*x+c;

elseif1.5<=x&x<3.5

y=a*(sin(b))^c+x;

elseif3.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=');

switchfix(x*10)

casenum2cell(5:

14)

y=a*x^2+b*x+c;

casenum2cell(15:

34)

y=a*(sin(b))^c+x;

casenum2cell(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;

fori=1:

20

ifx(i)

ifrem(x(i),2)==0

disp(x(i))

end

end

end

4.输入20个数,求其中最大数和最小数。

要求分别用循环结构和调用MATLAB的max函数、min函数来实现。

循环结构:

fora=1:

20

A(a)=input('请输入20个数:

');

end

A

mi=A

(1);ma=A

(1);

fori=1:

20

ifmi>A(i)

mi=A(i);

end

ifma

ma=A(i);

end

end

disp(ma)

disp(mi)

max、min函数:

fora=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;

forx=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;

fora=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;

fora=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;

fora=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;

fora=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)数列各项。

斐波那契数列定义如下:

functionf=Fibnacci(n)

fori=1:

n

ifi==1

f=1;

elseifi==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=[123;456;789];

B=[111;111;111];

[C,D]=CJ(A,B)

9.先用函数的递归调用定义一个函数文件求

,然后调用该函数文件求

functionf=xt4_10(m,n)

ifn<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:

globalx

x=1:

2:

5;

y=2:

2:

6;

sub(y);

x

y

函数文件sub.m:

functionfun=sub(z)

globalx

z=3*x;

x=x+z;

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 自然科学 > 物理

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1