MATLAB期末考试试卷及其参考答案[1]

MATLAB期末考试试卷及其参考答案[1]
MATLAB期末考试试卷及其参考答案[1]

MATLAB期末考试试卷及其参考答案[1]

MATLAB期末考试试卷及其参考答案

一、填空题(每空1分,20分)

1、MATLAB常用操作界面包括、工作空间窗口、

、、内存数组编辑器、M文件编辑/调试器、帮助导航/浏览器、图形窗口等。

2、MATLAB中Inf或inf表示、NaN或nan表示、

nargout表示。

3、MATLAB中逗号主要用作;

用作输入量与输入量之间的分隔符;。

4、工作空间浏览器主要用于内存变量的、和。

5、MATLAB实现将全下标转换为单下标的指令为、据单下标换

算出全下标的指令为。

6、二维数组的标识有、、“逻辑1”标识。

7、在一个元胞数组A中寻访第2行第3列元胞元素用;寻访数

组第2行第3列元胞中所存的内容用。

8、4、MATLAB中clf用于、clc用

于、

clear用于。

二、简答题(每题5分,共20分)

1、简述MATLAB历史指令窗的主要作用。

2、简述空数组的功用。

3、简述MATLAB函数的基本结构。

4、简述绘制二维图形的一般步骤。

三、阅读程序并回答问题(每题4分,共28分)

1、写出下列指令运行结果。

A=zeros(2,4);

A(:)=1:8;

s=[2 3 5];

A(s)

Sa=[10 20 30]'

A(s)=Sa

2、写出下列指令运行结果。

A=reshape(1:16,2,8)

reshape(A,4,4)

s=[1 3 6 8 9 11 14 16];

A(s)=0

3、写出下列指令运行结果。

A=[1,2;3,4];

B=[-1,-2;2;1];

S=3;

A.*B

A*B

S.*A

S*B

4、下面的函数主要完成什么功能?

function f=factor(n)

if n<=1

f=1;

else

f=factor(n-1)*n;

end

5、写出下列指令运行结果。

ch=‘ABc123d4e56Fg9’;

subch=ch(1:5)

revch=ch(end:-1:1)

k=find(ch>=‘a’&ch<=‘z’);

ch(k)=ch(k)-(‘a’-‘A’);

char(ch)

6、写出下列指令运行结果。

A(1,1)={'this is cell'};

A{1,2}={[1 2 3;4 5 6]};

A{2,1}=[1+2*i];

A{2,2}=A{1,2}{1}+(A{1,2}{1}(1,1)+A{1,2}{1}(2,2));

celldisp(A)

7、下面的程序完成功能是什么?

t=0:pi/50:4*pi;

y0=exp(-t/3);

y=exp(-t/3).*sin(3*t);

plot(t,y,'-r',t,y0,':b',t,-y0,':b')

xlabel(‘\bf\it t’);

ylabel(‘\bf\it y’);

grid on;

四、编程题(32分)

1、1、在同一图上分别用红色实线和绿色虚线绘制y1=sin(x)和y2=cos(x)

在区间[0,4*pi]的曲线,并用星号*标出两条曲线的交点以及建立图例。

(5分)2、分别在同一图形窗的不同子图绘制y=sin(t)sin(9t)和

y=sin(t)sin(9t)及其包络线。(4分)

3、某商场对顾客所购买的商品实行打折销售,标准如下(商品价格用

price来表示):

price<200 没有折扣

200≤price<500 3%折扣

500≤price<1000 5%折扣

1000≤price<2500 8%折扣

2500≤price<5000 10%折扣

5000≤price 14%折扣

输入所售商品的价格,求其实际销售价格。(5分)

4、编写程序实现f(n)=f(n-1)+f(n-2)(f(1)=1和f(2)=2)函数。(6分)

5、编写一个学生成绩管理的程序(12分)

A.构造一个学生结构,包括学生的学号,姓名,课程名称(限五门),

考试成绩和平均值等域;(4分)

B.从键盘上,连续输入N个学生的情况,分别将这些学生的情况填入

到相应的域,若域中没有值即为空或0并计算平均成绩写入到平均值

域。(4分)

C.根据平均值排序,并输出学生的姓名、学号和平均成绩。(4分)

参考答案

一、填空题(每空1分,20分)

1、MATLAB常用操作界面包括命令窗口、工作空间窗口(浏览器)、

命令历史窗口、当前目录窗口、内存数组编辑器、M文件编辑/调试器、帮助导航/浏览器、图形窗口等。

2、MATLABInf或inf表示无穷大、NaN或nan表示不是一个数、nargout

表示函数输出宗量数目。

3、MATLAB中逗号主要用作要显示计算结果的指令与其后指令的分隔;

用作输入量与输入量之间的分隔符;用作数组元素分隔符号。

4、工作空间浏览器主要用于内存变量的查阅、保存和编辑。

5、MATLAB实现将全下标转换为单下标的指令为Sub2ind、据单下标换算出全

下标的指令为Ind2sub。

6、二维数组的标识有“全下标”标识、“单下标”标识、“逻辑1”标识。

7、在一个元胞数组A中寻访第2行第3列元胞元素用A(2,3);寻访数组第

2行第3列元胞中的内容用A{2,3}。

8、MATLAB中clf用于清除图形窗、clc用于清除指令窗中显示内容、clear

用于清除MATLAB工作空间中保存的变量。

二、简答题(每题5分,共20分)

1、简述MATLAB历史指令窗的主要作用。

历史指令窗记录着用户在MATLAB指令窗中所输入过的所有指令。历史记录

包括:每次开启MATLAB的时间,每次开启MATLAB后在指令窗中运行过

的所有指令。应用功能有单行或多行指令的复制和运行、生成M文件等。

2、简述空数组的功用。

“空”数组的功用:在没有“空”数组参与的运算时,计算结果中的“空”

可以合理地解释“所得结果的含义”;运用“空”数组对其他非空数组赋值,

可以改变数组的大小,但不能改变数组的维数。

3、简述MATLAB函数的基本结构。

典型M函数文件的结构:函数申明(定义)行(Function declaration line)、

H1行(The first help text line)、在线帮助文本(Help text)区、编写和修改记录、

函数体(Function body)。

4、简述绘制二维图形的一般步骤。

绘制二维图形的一般步骤为:曲线数据准备、选定图形窗及子图位置、

调用二维曲线绘图指令、设置轴的范围、坐标分格线、图形注释、图形

的精细操作。

三、阅读程序并回答问题(每题4分,共28分)

1、写出下列指令运行结果。

A=zeros(2,4);

A(:)=1:8;

s=[2 3 5];

A(s)

Sa=[10 20 30]'

A(s)=Sa

ans =

2 3 5

Sa =

10

20

30

A =

1 20 30 7

10 4 6 8

2、写出下列指令运行结果。

A=reshape(1:16,2,8)

A =

1 3 5 7 9 11 13 15

2 4 6 8 10 12 14 16

reshape(A,4,4)

ans =

1 5 9 13

2 6 10 14

3 7 11 15

4 8 12 16

s=[1 3 6 8 9 11 14 16];

A(s)=0

A =

0 0 5 7 0 0 13 15 2 4 0 0 10 12 0 0

3、写出下列指令运行结果。

A=[1,2;3,4];

B=[-1,-2;2,1];

S=3;

A.*B

A*B

S.*A

S*B

ans =

-1 -4

6 4

ans =

3 0

5 -2

ans =

3 6

9 12

ans =

-3 -6

6 3

4、下面的函数主要完成什么功能?

function f=factor(n)

if n<=1

f=1;

else

f=factor(n-1)*n;

end

利用函数的递归调用,求n!。

5、写出下列指令运行结果。

ch=‘ABc123d4e56Fg9’;

subch=ch(1:5)

revch=ch(end:-1:1)

k=find(ch>=‘a’&ch<=‘z’);

ch(k)=ch(k)-(‘a’-‘A’);

char(ch)

length(k)

subch =

ABc12

revch =

9gF65e4d321cBA

ans =

ABC123D4E56FG9

6、写出下列指令运行结果。

A(1,1)={'this is cell'};

A{1,2}={[1 2 3;4 5 6]};

A{2,1}=[1+2*i];

A{2,2}=A{1,2}{1}+(A{1,2}{1}(1,1)+A{1,2}{1}(2,2));

celldisp(A)

A{1,1} =

this is cell

A{2,1} =

1.0000 +

2.0000i

A{1,2}{1} =

1 2 3

4 5 6

A{2,2} =

7 8 9

10 11 12

7、在同一个图中绘制两个函数,这两个函数分别是:

y=e(-t/3)

y0=e(-t/3)*sin(3t)

其中y是用红色的细实线,而y0是用兰色的虚线绘制,t的区间是(0:4π),t的步长为π/50,t轴和y轴分别用斜粗题指示,图中有网格表示。

四、编程题

1、答案

clf

x=0:pi/200:2*pi;

y1=sin(x);

y2=cos(x);

zz=x(find(abs(y1-y2)<0.005))

z=min(zz)

plot(x,y1,'r-',x,y2,'g-.')

hold on

plot(zz,sin(zz),'*')

legend('sin','cos')

2、答案

t=(0:pi/100:pi)';

y1=sin(t)*[1,-1];

y2=sin(t).*sin(9*t);

t3=pi*(0:9)/9;

y3=sin(t3).*sin(9*t3);subplot(1,2,1)

plot(t,y1,'r:',t,y2,'b',t3,y3,'bo')

subplot(1,2,2)

plot(t,y2,'b')

axis([0,pi,-1,1])

3、答案

price=input('请输入商品价格');

switch fix(price/100)

case {0,1} %价格小于200

rate=0;

case {2,3,4} %价格大于等于200但小于500

rate=3/100;

case num2cell(5:9) %价格大于等于500但小于1000

rate=5/100;

case num2cell(10:24) %价格大于等于1000但小于2500

rate=8/100;

case num2cell(25:49) %价格大于等于2500但小于5000

rate=10/100;

otherwise %价格大于等于5000

rate=14/100;

end

price=price*(1-rate) %输出商品实际销售价格4、答案

function f=fab(n)

if (n==1)

f = 1;

elseif (n==2)

f =2;

else

f = fab(n-1) + fab(n-2);

end

5、答案

str1 = '';

str2 = '';

str3= '';

val = cell(5,2)

a=zeros(5,1);

ave = 0;

student = struct('Name',str1,'No',str2,'Scores',val,'Ave',ave); n = input('please input students number:');

for i=1 : n

str1 = input('Name:');

str2 = input('No.:');

%for k=1:2

% val(k,:) = input('Curriculums and Scores:');

% a(k,1)=val{k,2};

%end

%val(1,:) = input('Curriculum:');

%val(:,2) = input('Scores:');

val = input('please input five Curriculums and Scores:'); for k=1:5

a(k,1)=val{k,2};

end

student(i).Name = str1;

student(i).No = str2;

student(i).Scores = val;

student(i).Ave = mean(a);

end

for ii= 1:(length(student)-1)

iptr = ii;

for jj=ii+1 : length(student)

if (student(jj).Ave > student(iptr).Ave)

iptr = jj;

end

end

if ii ~=iptr

temp = student(ii);

student(ii) =student(iptr);

student(iptr) = temp;

end

end

for ii=1 : length(student)

if student(ii).Ave > 80

disp(student(ii).Name);

disp(student(ii).Ave);

end

end

disp(['student name',blanks(6),'student no.',blanks(6),'student average']);disp(' ')

for ii=1 : length(student)

disp([student(ii).Name,blanks(20),student(ii).No,blanks(20),num2str( student(ii).Ave)]);

end

相关文档
最新文档