第一套
华东交通大学2015-2016学年第一学期M a t l a b期末考试
一、填空题(4*6=24 分)
1、在MATLAB 命令窗口中的“>>”标志为MATLAB 的命令行提示符,“│”标志为输入提示符。
2、符号表达式 sin(2*a+t)+m 中独立的符号变量为_t_。
3、在通常情况下,左除x=a\b 是的解,右除x=b/a 是的解,一般情况下,。
4、为了使两个plot 的图形在同一个坐标显示,可以使用hold on命令进行图形保持;可以使用_ grid on命令为图形添加网格。
5、倘若要是对 x 进行赋值,从 5 到25,间隔是 0.1,为x=5:0.1:25;倘若要是对x进行赋值,从2到20,中间间隔100个点 , 为
x=linspace(2,20,100)
6 、A=[1,2;3,4];B=[1,0;0,1]; A*B= [1 2;3 4] _ , A.*B=_ [1 0;
0 4] _;
3.a*x=b,x*a=b,a\b,b/a;
二、选择题(4*6=24 分)
7、如果x=1: 2 : 8,则x(1)和x(4)分别是( B )
A.1,8 B.1, 7 C.2, 8 D.2, 7
8、运行如下程序后,输入9回车,命令窗口(command windows)显示的结
果为( A)
c=input('请输入一个字符','s');
if c>='A' & c<='Z'
disp(setstr(abs(c)+abs('a')-abs('A')));
elseif c>='a'& c<='z'
disp(setstr(abs(c)- abs('a')+abs('A')));
elseif c>='0'& c<='9'
disp(abs(c)-abs('0'));
else disp(c); end
A. 9
B. 8
C. 7
D. 6
9、MATLAB 表达式2*2^3^2 的结果是( A )
A.128 B.4096 C. 262144 D.256
10、在循环结构中跳出循环,执行循环后面代码的命令为(B )
(A) return (B) break (C) continue (D) keyboard
11、在图形指定位置加标注命令是(C)
A. title(x,y,?y=sin(x)?);
B. xlabel(x,y,?y=sin(x)?);
C. text(x,y,?y=sin(x)?);
D. legend(x,y,?y=sin(x)?); 12、
下列哪个变量的定义是不合法的(A)。
(A) abcd-3 (B) xyz_3 (C) abcdef (D) x3yz
三、程序题(52 分)
13(10 分)、在同一窗口绘制 6 个子图,已知 t=0.1:0.1:2*pi,每个子图分别绘制(其中 y1=sin(t),y2=cos(2t),y3=sin(t)+cos(t),y4=3t,
y5=2ln(t),y6=et);
答案13.t=0.1:0.1:2*p i;
s u bp l o t(2,3,1)y1=s i n(t);p l o t(t,y1)t i t l e('y1=s i n(t)')
s u bp l o t(2,3,2)y2=c o s(2*t);p l o t(t,y2)t i t l e('y2=c o s(2t)')
s u bp l o t(2,3,3)y3=s i n(t)+c o s(t);p l o t(t,y3)
t i t l e('y3=s i n(t)+c o s(t)')
s u bp l o t(2,3,4)y4=3*t;p l o t(t,y4)t i t l e('y4=3t')
s u bp l o t(2,3,5)y5=2*l og(t);p l o t(t,y5)t i t l e('y5=2l n(t)')
s u bp l o t(2,3,6)y6=ex p(t);p l o t(t,y6)t i t l e('y6=e^t')
14(10 分)、某商场对顾客所购买的商品实行打折销售,标准如下(商品价格用price 来表示):
price<200 没有折扣
200≤price<5003%折扣
500≤price<10005%折扣
1000≤price<25008%折扣
2500≤price<500010%折扣
5000≤price14%折扣
输入所售商品的价格,求其实际销售价格。
答案14.p r i c e=i n p u t('请输入商品价格');
s w i t c h f i x(p r i c e/100)
c a s e{0,1}%价格小于200
r a t e=0;
c a s e{2,3,4}%价格大于等于200但小于500
r a t e=3/100;
c a s e nu m2c e ll(5:9)%价格大于等于500但小于1000
r a t e=5/100;
c a s e nu m2c e ll(10:24)%价格大于等于1000但小于2500
r a t e=8/100;
c a s e nu m2c e ll(25:49)%价格大于等于2500但小于5000
r a t e=10/100;
o t h e r w i s e%价格大于等于5000
r a t e=14/100;
end
p r i c e=p r i c e*(1-r a t e)%输出商品实际销售价格
15(10 分)、在同一图形窗口中按照 x=0.1 的步长间隔分别绘制曲线 y1=,0x;y1=sin(x)+cos(x),1≤x≤2。要求 y1 曲线为红色虚线,数据点用圆圈标识;y2 曲线为蓝色点划线;给出图例;标记图名为 y1,y2。
答案15.x1=0:0.1:1;
y1=x1.^2.*ex p(-x1);
x2=1:0.1:2;
y2=s i n(x2)+c o s(x2);
p l o t(x1,y1,'r--o',x2,y2,'b-.')
l e g e n d('y1','y2')
t i t l e('y1,y2')
16(10 分)、写出执行以下代码后 C,D,E 的值
A=[1,2,3;4:6;7:9];
C=[A;[10,11,12]],
D=C(1:3,[2 3])
E=C(2,[1 2])
16.
C =
123
456
789
101112
D =
2 3
5 6
8 9
E =
4 5
17(12分)、已知系统函数为
试画出零极点分布图,并求系统的冲激响应h(t)和频率响应H(jw),并判断系统是否稳定。
17.已知系统函数H(s),求系统的冲激响应h(t)和频率响应H(j w),可调用
i m p u l s e函数和f r e q s 函数。
nu m=[1];
d e n=[1221];
s y s=t f(nu m,d e n);
po l e s=r oo t s(d e n)
f i
g u r e(1);p z m a p(s y s);
t=0:0.02:10;
h=i m p u l s e(nu m,d e n,t);
f i
g u r e(2);p l o t(t,h)
t i t l e('I m p u l s e R e s po n e')
[H,w]=f r e q s(nu m,d e n);
f i
g u r e(3);p l o t(w,a b s(H))
x l a b e l('\o m e g a')
t i t l e('M a g n i t u d e R e s po n e')
第二套
M a t l a b模拟试卷
一、填空题(每空 2 分,总分 20)。
1.M ATLAB 常用操作界面包括命令窗口、工作空间窗口(浏览器)、命令历史窗口、当前目录窗口、内存数组编辑器、M 文件编辑/调试器、帮助导航/ 浏览器、图形窗口等。
2.M ATLAB 中逗号主要用作要显示计算结果的指令与其后指令的分
隔;用作输入量与输入量之间的分隔符;用作数组元素分隔符
号。
3.工作空间浏览器主要用于内存变量的查阅、保存和编
辑。
4.MATLAB 实现将全下标转换为单下标的指令为Sub2ind 、据单下标换算出全下标的指令为Ind2sub 。
5.二维数组的标识有“全下标”标识、“单下标”标识、“逻辑1”标识。
二、选择题(每空 2 分,总共 20 分)
1.下列哪个变量的定义是不合法的( A )
(A) abcd-3 (B) xyz_3 (C) abcdef (D) x3yz
2.下列哪条指令是求矩阵的行列式的值( C )
(A) inv (B) diag (C) det (D) eig
3.在循环结构中跳出循环,执行循环后面代码的命令为(B )
(A) return (B) break (C) continue (D) keyboard
4.清空Matlab 工作空间内所有变量的指令是( C )
(A) clc (B) cls (C) clear (D) clf
5.用r o un d函数四舍五入对数组[2.48
6.393.938.52]取整,结果为(C )
(A)[2638](B)[2648](C)[2649](D)[374 9]
6.已知a=2:2:8,b=2:5,下面的运算表达式中,出错的为(C)
(A)a'*b(B)a.*b(C)a*b(D)a-b
7.角度x =[30 45 60],计算其正弦函数的运算为( D )
(A) SIN(deg2rad(x))(B) SIN(x) (C) sin(x) (D) sin(deg2rad(x))
8.下面的程序执行后array 的值为( A )
for k=1:10
if k>6
break;
else
array(k) = k;
end
end
(A) array = [1, 2, 3, 4, 5, 6] (B) array = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
(C) array =6 (D) array =10.
9.i=2; a=2i; b=2*i; c=2*sqrt(-1); 程序执行后;a, b, c 的值分别是多少?
(A)a=4, b=4, c=2.0000i ( C )
(B)a=4, b=2.0000i, c=2.0000i
(C)a=2.0000i, b=4, c=2.0000i
(D) a=2.0000i, b=2.0000i, c=2.0000i
10.求解方程x4-4x3+12x-9 = 0 的所有解(A)
(A)1.0000, 3.0000, 1.7321, -1.7321
(B)1.0000, 3.0000, 1.7321i, -1.7321i
(C)1.0000i, 3.0000i, 1.7321, -1.7321
(D)-3.0000i, 3.0000i, 1.7321, -1.7321
三、阅读程序并回答问题(每题 5 分,共 20 分)
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)
reshape(A,4,4)
s=[1 3 6 8 9 11 14 16];
A(s)=0
答案: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!。
四、程序填空(每空3 分,共15 分)
1.编写MATLAB 程序,在同一图形窗口中绘制y1 和y2 两条曲线,并对图形坐
标轴进行控制。程序如下:
x = -3:0.1: 3;
y1 = 2*x+5; y2 = x.^2-3*x;
plot(x,y1); %绘制曲线y1
①; %保持曲线y1 ①h o l d o n
plot(x,y2); %绘制曲线y2
m1 = max([y1, y2]); m2 = min([y1, y2]);
②; %用axis 调制坐标轴,横坐标在[-3 3]之间,且完全显示图形
③; %加入图形注释,横坐标为“时间”,纵坐标为“幅度”
2.编写MATLAB 程序,对于用户输入的向量或矩阵,计算其平均值和方差:
④; % 提示输入数据并保存到x 中,命令行显示“请输入数据”
y = reshape(x,1, prod(size(x)));
m = mean(y); % 计算均值m
⑤; % 计算方差v
①h o l d o n
②ax i s([-33m2m1])
③x l a b e l(‘时间’);y l a b e l(‘幅度’);
④x=i n p u t(‘请输入数据\n’)或x=i n p u t(‘请输入数据’)
⑤v=va r(y)或1/(l e n g t h(y)-1)*(s u m((y-m).^2))
五、编程题(40 分)
1、分别在同一图形窗的不同子图绘制y=sin(t)sin(9t)和y=sin(t)sin(9t)及其包络线。(5 分)
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])
2、编写程序实现f(n)=f(n-1)+f(n-2)(f(1)=1 和f(2)=2)函数。(5 分)
f un c t i o n f=f a b(n)
i f(n==1)
f=1;
e l s e i f(n==2)
f=2;
e l s e
f=f a b(n-1)+f a b(n-2);
End
3、求解以下线性方程组,要求写出程序代码和运行结果(5 分)
2x1-3x2+x3+2x4=8
x1+3x2+x4=6
x1-x2+x3+8x4=1
7x1+x2-2x3+2x4=5
>> syms a b c x
>> syms x1 x2 x3 x4
>> clear
>> syms x1 x2 x3 x4
>>f=2*x1+3*x2+x3+2*x4-8;
>>g=x1+3*x2+x4-6;
>>h=x1-x2+x3+8*x4-1;
>>i=7*x1+x2-2*x3+2*x4-5;
>>[x1,x2,x3,x4]= s o l ve(f,g,h,i)
x1 =
13/17
x2 =
320/187
x3 =
212/187
x4 =
19/187
4、打印出所有的水仙花数。所谓“水仙花数”,是指一个三位数,其各位数字立方之和等于该数本身。(10 分)
f o r k=100:999
a=f i x(k/100);
b=r e m(f i x(k/10),10);
c=r e m(k,10);
i f a.^3+b.^3+c.^3==k
f p r i n t f(“%u,\t\t”,k);
end
end
第三套
MATLAB 试卷
一、填空题(每题2 分,共10 题,共20 分,错一个得1 分,错 2 个得0 分)
1.M ATLAB 命令窗口中可用命令清除工作区中的变量;用命令清除命令窗口中的内容。
2.M ATLAB 中的运算包括、、。
3.M ATLAB 中的M 文件有、。
4.M ATLAB 中的程序控制结构包括、、。
5.已知矩阵A[1 2 3;4 5 6;7 8 9],A(6) A(1,3)。
6.M ATLAB 中用函数完成矩阵的求逆运算,用函数求矩阵的行列式。
7.在MATLAB 中,如果需要绘制出具有不同纵坐标标度的两个图形,可以使用
函数。
8.M ATLAB 提供了函数和函数来绘制三维曲面图。
9.用 if 语句判断60≤x≤80,在 MATLAB 中 if 语言后面的判断应写为。
10.为了使两个plot 的图形在同一坐标显示,可以使用命令进行图形保持,可以使用命令为图形添加网格。
二、选择题(每题2 分,共10 题,共20 分)
1.下列哪个变量的定义是不合法的
(A) abcd-3 (B) xyz_3 (C) abcdef (D) x3yz
2.在循环结构中跳出循环,执行循环后面代码的命令为
(A) return (B) break (C) continue (D) keyboard
3、下列变量名中是合法的。
(A) char_1 ; (B) x*y ; (C) x\y ; (D) end
4. 如果x=1:-1:-8,则x(1)和x(5)分别是
A.-1,-3 B.-1,-7 C.-1,-6 D.1,-3
5.在MATLAB 中下列数值的表示不正确的是
A.+25 B.1.3e-5 C.4-3*e^2 D.3-2*pi
6.用round 函数四舍五入对数组[2.48 6.39 3.93 8.52]取整,结果为
(A) [2 6 3 8] (B) [2 6 4 8] (C) [2 6 4 9] (D) [3 7 4 9]
7.下列哪条指令是求矩阵的行列式的值
(A) inv (B) diag (C) det (D) eig
8.在图形指定位置加标注命令是
A. title(x,y,’y=sin(x)’);
B. xlabel(x,y,’y=sin(x)’);
C. text(x,y,’y=sin(x)’);
D. legend(x,y,’y=sin(x)’);
9.i=2; a=2i; b=2*i; c=2*sqrt(-1); 程序执行后;a, b, c 的值分别
(A)a=4, b=4, c=2.0000i
(B)a=4, b=2.0000i, c=2.0000i
(C)a=2.0000i, b=4, c=2.0000i
(D)a=2.0000i, b=2.0000i, c=2.0000i
10、在循环结构中跳出循环,但继续下次循环的命令为
(A) return; (B) break ; (C) continue ; (D) keyboard
三、简答题(每题 7.5 分,共 4 题,共 30 分)
1.A = [1 2; 3 4]; B = [1 2; 1 4];
写出下面几条指令的运行结果:
C = A*B
D = A+B
E = A.*B
2.在MATLAB 窗口中,用哪两种方法启动 Simulink?
3.判断下列一段程序的错误,并进行改正。
x=-2:0.2:2;
y=x.^2;
plot(x,y)
str1 = num2str(min(x));% 数字转化为字符串
str2 = num2str(max(x));% 数字转化为字符串
out = [Value of f from 'str1' to 'str2'];
xlabel(out);
4.一个 3 位整数各位数字的立方和等于该数本身则称该数为水仙花数。输出 100- 999 之间的全部水仙花数。请补全程序中所空缺的部分。
For m=100:999
m1=fix(m/100);
m2=rem(fix(m/10),10);
m3=rem(m,10);
If m==( )
disp(m)
end
end
四、编程题(每小题 15 分,共 2 题,共 30 分)
1.编写 MATALAB 程序,完成下列任务(将程序保存为 test04.m 文件):
(1)在区间 [0,4*pi]上均匀地取 20 个点构成向量;
(2)分别计算函数 y1=sin(t) 与 y2=2cos(2t) 在向量 t 处的函数值;
(3)在同一图形窗口绘制曲线 y1=sin(t) 与 y2=2cos(2t) ,要求 y1 曲线为黑色点画线,y2 曲线为红色虚线圆圈;并在图中恰当位置标注两条曲线的图例;给图形加上标题“y1 and y2”。
2、Fibonacci 数列的各元素为:1、1、2、
3、5、8、……,满足以下关系F1=1,F2=1,Fn=Fn-1+Fn-2
用 while 和 for 两种方法实现。
答案
一、填空题
1clear clc
2算术运算关系运算逻辑运算
3命令文件函数文件
4顺序结构循环结构选择结构
5. 8 3
6.Inv det
7.plotyy
8.mesh surf
9. If x<=80&>=60
10.hold on grid on
二、选择题
1-5 ABADB 6-10 CCCCC
三、简答题
1.C=3 10 D=2 4 E=1 4
7 22 4 8 3 16
2.在 MATLAB 命令窗口中输入“simulink”再回车,或者单击工具栏中的 SIMULINK 图标
3.out = ['Value of f from ' str1 ' to ' str2];
或 out = ['Value of f from str1 to str2’];
4.m1*m1*m1+m2*m2*m2+m3*m3*m3
四、编程题
1.程序如下:
(1)t=linspace(0,4*pi,20);
(2)y1=sin(t);
y2=2*cos(2*t);
(3)plot(t,y1,'k-.');
text(1.2,sin(1.2),'y1\leftarrow','FontSize',12); hold on;
plot(t,y2,'r--o');
text(6,1.5,'y2\leftarrow','FontSize',12);
title('y1 and y2')
2.按M 函数文件格式创建文件开头
function f=chengxu(n)
用while 循环实现程序功能
f(1)=1;f(2)=1;
i=2;
while i<=n
f(i+1)=f(i-1)+f(i);
i=i+1;
end
用for 循环实现
f(1)=1;f(2)=1;
for i=2:n
f(i+1)=f(i-1)+f(i);
end