Matlab-期末考试题库(共12套卷)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第一套
华东交通大学2015-2016学年第一学期Matlab期末考试
一、填空题(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*pi;
subplot(2,3,1) y1=sin(t); plot(t,y1) title('y1=sin(t)')
subplot(2,3,2) y2=cos(2*t); plot(t,y2) title('y2=cos(2t)')
subplot(2,3,3) y3=sin(t)+cos(t); plot(t,y3)
title('y3=sin(t)+cos(t)')
subplot(2,3,4) y4=3*t; plot(t,y4) title('y4=3t')
subplot(2,3,5) y5=2*log(t); plot(t,y5) title('y5=2ln(t)')
subplot(2,3,6) y6=exp(t); plot(t,y6) title('y6=e^t')
14(10分)、某商场对顾客所购买的商品实行打折销售,标准如下(商品价格用price来表示):
price<200 没有折扣
200≤price<500 3%折扣
500≤price<1000 5%折扣
1000≤price<2500 8%折扣
2500≤price<5000 10%折扣
5000≤price 14%折扣
输入所售商品的价格,求其实际销售价格。
答案14.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) %输出商品实际销售价格
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.*exp(-x1);
x2=1:0.1:2;
y2=sin(x2)+cos(x2);
plot(x1,y1,'r--o',x2,y2,'b-.')
legend('y1','y2')
title('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 =
1 2 3
4 5 6
7 8 9
10 11 12
D =
2 3
5 6
8 9
E =
4 5
17(12分)、已知系统函数为
试画出零极点分布图,并求系统的冲激响应h(t)和频率响应H(jw),并判断系统是否稳定。
17.已知系统函数H(s),求系统的冲激响应h(t)和频率响应H(jw),可调用
impulse函数和freqs函数。
num=[1];
den=[1 2 2 1];
sys=tf(num,den);
poles=roots(den)
figure(1);pzmap(sys);
t=0:0.02:10;
h=impulse(num,den,t);
figure(2);plot(t,h)
title('Impulse Respone')
[H,w]=freqs(num,den);
figure(3);plot(w,abs(H))
xlabel('\omega')
title('Magnitude Respone')
第二套
Matlab模拟试卷一、填空题(每空2分,总分20)。
1.MATLAB 常用操作界面包括 命令窗口 、工作空间窗口(浏览器)、命令历史窗口、当前目录窗口、内存数组编辑器、M 文件编辑/调试器、帮助导航/浏览器、图形窗口等。
2.MATLAB 中逗号主要用作 要显示计算结果的指令与其后指令的分隔 ;用作输入量与输入量之间的分隔符; 用作数组元素分隔符号 。
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. 用round 函数四舍五入对数组[2.48
6.39 3.93 8.52]取整,结果为( C )
(A) [2 6 3 8] (B) [2 6 4 8] (C) [2 6 4 9] (D) [3 7 4 9]
6. 已知a=2:2:8, b=2:5,下面的运算表达式中,出错的为( C )
(A) a'*b (B) a .*b (C) a*b (D) a-b
7. 角度[]604530=x ,计算其正弦函数的运算为( 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 ① hold on
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
① hold on
② axis([-3 3 m2 m1])
③xlabel(‘时间’); ylabel(‘幅度’);
④x = input(‘请输入数据 \n’) 或x = input(‘请输入数据’)
⑤ v = var(y) 或 1/(length(y)-1) * (sum((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分)function f=fab(n)
if (n==1)
f = 1;
elseif (n==2)
f =2;
else
f = fab(n-1) + fab(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] = solve(f,g,h,i)
x1 =
13/17
x2 =
320/187
x3 =
212/187
x4 =
19/187
4、打印出所有的水仙花数。
所谓“水仙花数”,是指一个三位数,其各位数字立方之和等于该数本身。
(10分)
for k = 100:999
a = fix(k/100);
b = rem(fix(k/10),10);
c = rem(k,10);
if a.^3 + b.^3 + c.^3 == k
fprintf( “%u,\t\t”, k ) ;
end
end
第三套
MATLAB试卷
一、填空题(每题2分,共10题,共20分,错一个得1分,错2个得0分)
1.MATLAB命令窗口中可用命令清除工作区中的变量;用命令清除命令
窗口中的内容。
2.MATLAB中的运算包括、、。
3.MATLAB中的M文件有、。
4.MATLAB中的程序控制结构包括、、。
5.已知矩阵A[1 2 3;4 5 6;7 8 9],A(6) A(1,3)。
6.MATLAB中用函数完成矩阵的求逆运算,用函数求矩阵的行列式。
7.在MATLAB中,如果需要绘制出具有不同纵坐标标度的两个图形,可以使用
函数。
8.MATLAB提供了函数和函数来绘制三维曲面图。
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两种方法实现。
答案
一、填空题
1 clear 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
.
第四套
MATLAB期末考试
一、填空题(每题2分,共10)
1:MATLAB的通用命令中若对函数功能和用法不熟悉,可用 help 命令;显示变量、阵列或文本时,可用 disp 命令;清除工作空间中的变量时,可用 clear 命令;保存和恢复工作空间,或者工作空间中的特定变量时,可用 save 和 load 命令。
2:在MATLAB图形系统中,如果需要给已经绘制好的图形加上栅格线,可以使用grid on 命令,如果需要在指定的坐标位置标注文本时使用的函数为text 。
3:MATLAB中用于控制不定次重复循环语句为 while ,若在循环执行过程中需要终止该循环时采用的语句为 break 。
4:用if判断语句判断80≥ x >60,在MATLAB中if语言后的判断应写为 if x<=80&x>60 。
5:为了使两个plot的图形在同一个坐标显示,可以使用 hold on 命令进行图形保持;
二、选择题(每题2分,共20)
1.下列哪个变量的定义是不合法的 C
(A) abcdef (B) xyz_3 (C) abcd-3 (D) x3yz
2:已知a=2:2:8, b=2:5,下面的运算表达式中,出错的为 C
(A) a'*b (B) a .*b (C) a*b (D) a-b
3:下面的程序执行后array的值为 ( D)
for k=1:10
if k>6
break;
else
array(k) = k;
end
end
(A) array =10. (B) array = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] (C) array =6 (D) array = [1, 2, 3, 4, 5, 6]
4:设A=[2 4 3; 5 3 1; 3 6 7],则sum(A),length(A)和size(A)的结果(A ) A. [10 13 11] 3 [3 3] B. [9 9 16] 3 [3 3]
C. [9 9 16] 9 [3 3]
D. [10 13 11] 9 [3 3]
5:下列关于脚本文件和函数文件的描述中不正确的是( B )
A. 去掉函数文件第一行的定义行可转变成脚本文件;
B. 函数文件可以在命令窗口直接运行;
C. 脚本文件可以调用函数文件;
D. 函数文件中的第一行必须以function开始;
6:.i=2; a=2i; b=2*i; c=2*sqrt(-1); 程序执行后;a, b, c的值分别是多少? (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
7:下列哪条语句是正确的( C )
A=[1 2;3 4];B=[3;7]; A.*B;
(B) A=cell(2,3); A(1,2)=[4;5]
(C) A=[2 3 5 7;9 4 6 1;7 3 2 5];B=[1 7;0 5];A(2:end,2:2:end)
(D) x=-5:5;y=-5:5;z=x.*x-y.*y;surf(x,y,z)
8:
三、程序执行题(共30分)
1:写出执行以下代码后,MATLAB命令窗口上显示的x矩阵的值 (6分) x=[0,1,0,2,0,3,0,4];
for k=1:8
if x(k)==0
x(k)=k;
else
x(k)=2*k+1;
end
end
disp(x);
答案:1 5 3 9 5 13 7 17
2:为解下列线性方程组,请写出MALAB语言程序。
(8分)
4 x1 +2 x3 +3 x4 = 9
3 x2 +2 x3 + 3x
4 = 8
2 x1 + x4 = 10
x3 -2 x2 + 3x4 =7
答案:A=[4 0 2 3; 0 3 2 3; 2 0 0 1; 0 -2 1 3;]; %3分 b=[9 8 10 7]'; %2分
x=A\b; 或x=inv(A)*b; %3分
3:下面的函数主要完成什么功能?(8分)
function f=factor(n)
if n<=1
f=1;
else
f=factor(n-1)*n;
end
答案:利用函数的递归调用,求n!。
4:下面的程序完成功能是什么?(8分)
t=0:pi/50:3*pi;
y0=exp(-t/2);
y=exp(-t/3).*sin(2*t);
plot(t,y,'-r',t,y0,':b',t,-y0,':b')
xlabel(‘\bf\it t’);
ylabel(‘\bf\it y’);
答案:在同一个图中绘制两个函数,这两个函数分别是:
y=e(-t/3) y0=e(-t/3)*sin(3t)
四、编程题(每题10分,共20)
1:求解以下线性方程组,要求写出程序代码和运行结果(10分)
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] = solve(f,g,h,i)
2:设x=sint, y=sin(nt+a),
(1)若a=1,令n =1,2,3,4,在四个子图中分别画出其曲线。
(2)若n=2,取a=0,π/3,π/2,及π,在四个子图中分别画出其曲线。
(1)matlab源程序如下;
t=-pi:0.1:pi; %t的取值范围
a=1;n=1;%a=1,n=1
x=sin(t);%x的表达
y=sin(n*t+a); %y的表达式
subplot(221),plot(x,y)%在子图第一张,画出图像
hold on保持figure不关闭
t=-pi:0.1:pi; %t的取值范围
a=1;n=2; %a=1,n=2
x=sin(t);%x的表达式
y=sin(n*t+a); %y的表达式
subplot(222),plot(x,y) %在子图的第二张画出图像
hold on %保持figure不关闭
t=-pi:0.1:pi; %t的取值范围
a=1;n=3; %a=1,n=3
x=sin(t); %x的表达式
y=sin(n*t+a); %y的表达式
subplot(223),plot(x,y);%在子图的第三张,画出图像
hold on %保持figure 不关闭
t=-pi:0.1:pi; %t 的取值范围
a=1;n=4; %a=1,n=4
x=sin(t); %x 的表达式
y=sin(n*t+a); %y 的表达式
subplot(224),plot(x,y) %在子图的第四张上
五、程序填空和改错(每空5分,共20)
1:抛物线的方程为2y ax cx =+,输入c 后,绘制该曲线,寻找曲线的最小值和对应的x 值。
小明编写程序如下:
clc;clear;close all;
c=input('c=');
a=1;
x=-2:0.1:2;
xnum=length(x) or xnum=size(x,2); %(1)对变量xnum 赋为数组x 的个数 y=zeros(1,xnum);
y=a*x^2+c*x;→ y=a*x.^2+c*x; %(2)按照函数形式对y 赋值
figure; plot(x,y)
%(3)绘制曲线
xlabel('x');ylabel('y');
[ymin,Imin]=min(y);
xmin=x(ymin);→ xmin=x(Imin); %(4)找到最小函数值对应的x值
第五套
matlab期末考试试卷
考试时间:120分钟考试分数:100分
一、填空题(每空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、MATLAB中clf用于清除、clc用于清除、clear用于清除
MATLAB 。
二、选择题(每题2分,20分)
1. 在matlab中_______用于括住字符串。
A.,
B.;
C.‘’
D.“”
2.下列___D____是合法变量。
A. 1_1
B. a/b
C.变量1
D. Eps
3.产生所有元素均为1的2行3列矩阵的命令是______。
A. ones(2,3)
B.ones(3,2)
C.eye(2,3)
D.eye(3,2)
4.下列哪个变量的定义是不合法的
A. abcd-3
B. xyz_3
C. abcdef
D. x3yz
5.已知数组a=⎥⎥⎥⎦
⎤⎢⎢⎢⎣⎡678954324321,若要产生a 的一个子矩阵⎥⎦⎤⎢⎣⎡5443,则下 列命令中错误的是_____________。
A.a([1 2],[3 4])
B.a(1:2,3:end)
C.a(linspace(1,2,2),3:4)
D.a(:,:)
6.下面的程序执行后array 的值为_____________。
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.
7.在循环结构中跳出循环,但继续下次循环的命令为_________。
A.return;
B. break ;
C. continue ;
D.keyboad
8.图形窗口(Figure)显示网格的命令是_____________。
A. axis on
B. grid on
C. box on
D. hold on
9.已知a=2:2:8, b=2:5,下面的运算表达式中,出错的为 ____。
A.a' *b
B.a .*b
C. a*b
D. a-b
10.运行如下程序后, 命令窗口(command windows)显示的结果为__。
A=[13,-56,78; 25,63,-735; 78,25,563; 1,0,-1];
y=max(max(A))
A.y=564
B.y=9
C.y=-735
D.y=563
三、阅读程序并回答问题(每题4分,共28分)
1、写出下列指令运行结果。
A=[1,2,3;4:6;7:9];
C=[A;[10,11,12]],
D=C(1:3,[2 3])
E=C(2,[1 2])
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、在同一图上分别用红色实线和绿色虚线绘制y1=sin(x)和y2=cos(x)在区间[0,4*pi]的曲线,并用星号*标出两条曲线的交点以及建立图例。
(6分)
2、求解以下线性方程组,要求写出程序代码。
(6分)
2x1-3x2+x3+2x4=8
x1+3x2+x4=6
x1-x2+x3+8x4=1
7x1+x2-2x3+2x4=5
3、某商场对顾客所购买的商品实行打折销售,标准如下(商品价格用price来表示):
price<200 没有折扣
200≤price<500 3%折扣
500≤price<1000 5%折扣
1000≤price<2500 8%折扣
2500≤price<5000 10%折扣
5000≤price 14%折扣
输入所售商品的价格,求其实际销售价格。
(8分)
4、编写程序实现f(n)=f(n-1)+f(n-2)(f(1)=1和f(2)=2)函数。
(6分)
5、编写M函数文件,利用for循环或while循环完成计算函数
y=sum(n)=的任务,并利用该函数计算 n=20时的和(将总程序保存为??.m文件)。
(6分)
.
参考答案
一、填空题
1、命令窗口命令历史窗口当前目录窗口。
2、无穷大不是一个数函数输出宗量数目。
3、显示计算结果的指令与其后指令的分隔用作数组元素分隔符号。
4、查阅保存编辑。
5、 Sub2ind Ind2sub。
6、“全下标”标识“单下标”标识。
7、A(2,3) A{2,3}。
8、清除图形窗清除指令窗中显示内容清除MATLAB工作空间中保存的
变量。
二、选择题(每题2分,共20分)
1、C
2、D
3、A
4、A
5、D
6、A
7、C
8、B
9、C 10、D
三、阅读程序并回答问题(每题4分,共28分)
1、C =
1 2 3
4 5 6
7 8 9
10 11 12
D =
2 3
5 6
8 9
E =
4 5
2、A =
1 3 5 7 9 11 13 15
2 4 6 8 10 12 14 16
ans =
1 5 9 13
2 6 10 14
3 7 11 15
4 8 12 16
A =
0 0 5 7 0 0 13 15
2 4 0 0 10 12 0 0
3、ans =
-1 -4
6 4
ans =
3 0
5 -2
ans =
3 6
9 12
ans =
-3 -6
6 3
4、利用函数的递归调用,求n!。
5、
subch =
ABc12
revch =
9gF65e4d321cBA
ans =
ABC123D4E56FG9
6、
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、function sum=text4(n);
sum=0;
m=1;
while m<=n;
sum=sum+m^m
m=m+1;
end
当n=20时用上述程序求得的和为: 1.0688e+026
第六套
一、选择题(2×10)
1.变量名是以____开头,后接字母、数字或下划线的字符序列,最多63个字符。
变量名区分大小写。
A
A. 字母
B.数字
C.下划线
D.大写字母
2.冒号表达式的一般格式为:B
A.初始值:终止值:步长
B. 初始值:步长:终止值
C. 初始值:终止值:元素总数
D. 初始值:元素总数:终止值
3.linspace函数调用的格式为:C
A.linspace(初始值:终止值:步长)
B.linspace( 初始值:步长:终止值)
C.linspace( 初始值:终止值:元素总数)
D. linespace(初始值:元素总数:终止值)
4. A\B等效于:A
A.inv(A)* B
B. inv(B)*A
C. A*inv(B)
D. B*inv(A)
5.case子句后面的表达式不可以为:
A.标量
B.字符串
C.单元矩阵
D.数值矩阵
6.以下关于函数的说法错误的是:B
A.在M文件中只有一个主函数
B.主函数不一定在最上方
C.主函数不能被其他文件的函数调用
D.help和lookfor找不到子函数
7.函数subplot(m,n,p),m,n,p中哪个表示区号,区号按行还是列优先编号?D
A.p 列
B. n 列
C.n 行
D.p 行
8.下列哪个函数用来绘制三维网格图:B
A.surf函数
B.mesh函数
C.plot3函数
D.以上都不是
9.gcf函数表示:A
A.获取当前图形窗口的句柄
B.获取当前坐标轴的句柄
C.获取最近被选中的图形对象的句柄
D.按照指定的属性来获取图形对象的句柄
10.N次多项式用长度为___的___向量表示。
C
A.N+1 列
B.N 列
C.N+1 行
D.N 行
二、填空题(2×10)
1.注释以 _ % 开头,后面是注释的内容.
2.__clear__命令用于删除MATLAB工作空间中的变量,_clc___命令用于清屏。
3.矩阵元素按列(列/行)编号。
4.点运算要求两矩阵的维数相同。
5.MATLAB实现将全下标转换为单下标的指令为 Sub2ind 、据单下标换算出全下标的指令为 Ind2sub 。
6.命令文件可以(不可以/可以)直接运行,函数文件不可以(不可以/可以)直接运行。
7.函数文件定义的变量为局部变量(局部/全局)。
三、程序阅读(4×10)
写出程序运行结果。
1. >>A=[3 5 7 9;0 2 4 1;6 4 4 8];
>>B=A([1 2],2:3)
答案:
B=5 7
2 4
2.>>a=[6 9 3;2 7 5];
>> b=[2 4 1;4 6 8];
>> c=a.*b
答案:
c=12 36 3
8 42 40
3.>>A=[6 4 4 8];
>>B=[1 1 1 0;1 1 1 0;1 1 1 0; 0 0 0 5];
>>C=[A;B(:,1:3)’]
答案:
C=
6 4 4 8
1 1 1 0
1 1 1 0
1 1 1 0
4. x=[0,1,0,2,0,3,0,4];
for k=1:8
if x(k)==0
x(k)=k;
else
x(k)=2*k+1;
end
end
答案:x=1 5 3 9 5 13 7 17
四、编程(2×10)
1.输入三个数按从大到小的顺序输出。
(使用if)答案:
a=input('a=?'); if a(1)<a(2)
temp=a(1); a(1)=a(2); a(2)=temp; end
if a(1)<a(3)
temp=a(1); a(1)=a(3); a(3)=temp; end
if a(2)<a(3) temp=a(2); a(2)=a(3); a(3)=temp; end
a
2. 请输入星期几的第一个字母来判断一下是星期几,如果第一个字母一样,则继续判断第二个字母。
f=input('输入第一个字母(大写字符)');
switch f
case 'S'
s=input('输入第二个字母(小写字符)'); if s=='a'
disp('Saturday')
elseif s=='u'
disp ('Sunday');
else
disp('data error');
end
break;
case 'F'
disp('Friday');break;
case 'M'
disp('Monday');break;
case 'T'
s=input('输入第二个字母(小写字符)’); if s=='u'
disp('Tuesday');
elseif s=='h'
disp ('Thursday');
else
disp('data error');
end
break;
case 'W'
disp('Wednesday');
break;
otherwise
disp('data error');
end
第七套
一、填空题(每题5分,共25分)
1)rand(2,3)的含义为生成2×3随机矩阵。
2)MATLAB语言支持的3种最基本的控制结构为顺序结构、选择结构和循环结构。
3)在循环结构中跳出当前循环,继续下一次循环的命令为comtinue。
4)MATLAB中逗号主要用作要显示计算结果的指令与其后指令的分隔;用作输入量与输入量之间的分隔符;用作数组元素分隔符号。
5)工作空间浏览器主要用于内存变量的内存变量的查阅、保存和编辑。
二、单选题(每题5分,共25分)
1.下列哪个变量的定义是不合法的 A
(A) abcd-3 (B) xyz_3 (C) abcdef (D) x3yz
2.下列哪条指令是求矩阵的行列式的值 C
(A) inv (B) diag (C) det (D) eig
3.用round函数四舍五入对数组[2.48 6.39 3.93 8.52]取整,结果为 C
(A) [2 6 3 8] (B) [2 6 4 8] (C) [2 6 4 9] (D) [3 7 4 9]
4.已知a=2:2:8, b=2:5,下面的运算表达式中,出错的为 C
(A) a'*b (B) a .*b (C) a*b (D) a-b
5.下面的程序执行后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
三、简答题(20分)
1.求积分(5分)
2.求微分方程的数值解(5分)
dsolve('D2y*(x-1)+2*Dy+y=0','y(0)=1,Dy(0)=1','x')
3.抛物线的方程为2y ax cx =+,输入c 后,绘制该曲线,寻找曲线的最小值和对应的x 值。
(10分)
小明编写程序如下:
clc;clear;close all;
c=input('c=');
a=1;
x=-2:0.1:2; ;
% (1)对变量xnum 赋为数组x 的个数
y=zeros(1,xnum);
y=a*x^2+c*x;→ %(2)按照函数形式对y 赋值 figure; ; %(3)绘制曲线 xlabel('x');ylabel('y');
[ymin,Imin]=min(y);
xmin=x(ymin);→ %(4)找到最小函数值对应的x 值
答案:。