Matlab经典复习试题.docx
《Matlab经典复习试题.docx》由会员分享,可在线阅读,更多相关《Matlab经典复习试题.docx(31页珍藏版)》请在冰点文库上搜索。
Matlab经典复习试题
模拟试题一
注:
红色部分为试题答案
一、单项选择题
1.符号计算与一般数值计算有很大区别,它得到准确的符号表达式。
在MATLAB命令窗口中键入命令symsx,y1=sqrt(x);y2=x^2;int(y1-y2,x,0,1),屏幕显示的结果是
(A)y1=x^(1/2)(B)ans=2/3;(C)y2=x^2;(D)ans=1/3
2.在MATLAB命令窗口中键入命令A=[142;312;615];det(A(1:
2,2:
3).*A(1:
2,2:
3))。
结果是
(A)ans=-143(B)ans=60(C)ans=-16(D)ans=-19
3.设n阶方阵A的特征值为:
(i=1,2,…,n),称
为矩阵A的谱半径,则下列MATLAB求谱半径命令是
(A)max(abs(eig(A)));(B)abs(max(eig(A)));
(C)max(norm(eig(A)));(D)norm(max(eig(A)))
4.MATLAB系统运行时,内存中有包括X和Y在内的多个变量(数据),要删除所有变量(数据),应该使用的命令是
(A)clear;(B)clc;(C)home;(D)clearXY
5.用赋值语句给定x数据,计算
对应的MATLAB表达式是
(A)sqrt(7*sin(3+2*x)+exp
(2)*log(3))(B)sqrt(7sin(3+2x)+exp
(2)log(3))
(C)sqr(7*sin(3+2*x)+e^2*log(3))(D)sqr(7sin(3+2x)+e^2log(3))
6.在MATLAB命令窗口中输入命令data=[4123131324];y=hist(data,4),结果是
(A)y=4123;(B)y=3232;
(C)y=1324;(D)y=4211
7.在MATLAB命令窗口中键入A=magic(6);B=A(2:
5,1:
2:
5)将得到矩阵B,B是
(A)2行5列矩阵;(B)4行两列矩阵;(C)4行3列矩阵;(D)4行5列矩阵
8.MATLAB绘三维曲面需要构建网格数据,语句[x,y]=meshgrid(-2:
2)返回数据中
(A)x是行向量,y是列向量;(B)x是列向量,y是行向量;
(C)x是行元素相同的矩阵;(D)x是列元素相同矩阵
9.下面有关MATLAB函数的说法,哪一个是错误的
(A)函数文件的第一行必须由function开始,并有返回参数,函数名和输入参数;
(B)MATLAB的函数可以有多个返回参数和多个输入参数;
(C)如果函数文件内有多个函数,则只有第一个函数可以供外部调用;
(D)在函数中可以用nargin检测用户调用函数时的输出参数个数
10.将带小数的实数处理为整数称为取整,常用四种取整法则是:
向正无穷大方向取整、向负无穷大方向取整、向零方向取整和四舍五入取整。
MATLAB提供了如下四个取整函数,若a=-1.4,对a取整的结果是-1,则不应该选用下面哪个函数。
(A)floor;(B)round;(C)ceil;(D)fix
二、程序阅读理解
1.如果存在一条曲线L与曲线簇中每一条曲线相切,则称L为曲线簇的包络。
简单直线簇的实验程序如下
N=input('inputN:
=');
x=[0:
N]/N;y=1-x;
O=zeros(1,N+1);
X=[x;O];Y=[O;y];
plot(X,Y,'b'),holdon
Xt=x.^2;Yt=(1-x).^2;
plot(Xt,Yt,'r','LineWidth',2)
(1)对k=1,…,N。
关于直线簇说法错误的是
(A)直线簇与X轴的交点是(k/N,0);
(B)直线簇与Y轴的交点是(0,1–k/N);
(C)直线簇在第一象限内共(N+1)条;
(D)直线簇在第一象限中每条直线段等长。
(2)程序中关于直线簇与其包络曲线说法错误的是
(A)X是2×(N+1)阶矩阵;(B)Y是2×(N+1)阶矩阵;
(C)直线簇的方程是
;(D)包络曲线的方程是
2.关于“牟合方盖”的实验程序如下
h=2*pi/100;t=0:
h:
2*pi;
r=0:
0.05:
1;x=r'*cos(t);y=r'*sin(t);
z=sqrt(1-x.^2);%第三行
meshz(x,y,z),axisoff
colormap([001])
view(-47,56),holdon
x1=cos(t);y1=sin(t);z1=abs(sin(t));
plot3(x1,y1,z1,'ro');
(1)下面有关程序的功能的说法确切的是
(A)绘圆柱面x2+y2=1,x2+z2=1的交线;
(B)绘圆柱面x2+y2=1,x2+z2=1所围区域的边界曲面;
(C)绘圆柱面x2+y2=1,x2+z2=1的交线及所围区域的边界曲面;
(D)绘圆柱面x2+y2=1,x2+z2=1的交线及所围区域的边界曲面的上半部分。
(2)关于第三行语句错误的解释是
(A)z是矩形域上曲顶柱面高度值;(B)z是与y同型的矩阵;
(C)z是圆域上曲顶柱面高度值;(D)z是与x同型的矩阵
3.中国农历年由天干(10干)和地支(12支)相配而成,计算农历年的MATLAB程序如下
year=input('inputyear:
=');
S1='辛壬癸甲乙丙丁戊己庚';
S2='酉戍亥子丑寅卯辰巳午未申';
k1=mod(year,10);k2=mod(year,12);
ifk1==0,k1=10;end
ifk2==0,k2=12;end%第六行
s1=S1(k1);s2=S2(k2);
strcat(int2str(year),'年是',s1,s2,'年')
(1)输入2006,实验程序的结果将给出
(A)2006年是丁亥年;(B)2006年是乙酉年;
(C)2006年是戊子年;(D)2006年是丙戍年
(2)第六行语句的功能是
(A)当年份是12的倍数时定位为地支12
(B)当年份是12的倍数时定位为天干12;
(C)当年份是10的倍数时定位为地支10;
(D)当年份是10的倍数时定位为天干10
4.一个古典概率问题叙述如下:
甲乙丙丁四人按逆时针方向围坐玩扑克牌.将两枚均匀骰子同时掷一次,根据骰子点数之和确定第一摸牌者.例如点数之和为3,7,11时均确定为丙先摸牌。
实验程序如下
functionFn=playingcard(k)
ifnargin==0,k=2;end
ifk<1|k>4,error('请输入正确编号1到4');end
k1=k+4;k2=k+8;N=2000;
x=1+fix(6*rand(1,N));
y=1+fix(6*rand(1,N));
w=find(x+y==k|x+y==k1|x+y==k2);%第七行
n=length(w);Fn=n/N;
(1)没有输入数据时调用该函数,则程序运行后,将显示
(A)甲是第一摸牌者的频率;(B)乙是第一摸牌者的频率;
(C)丙是第一摸牌者的频率;(D)丁是第一摸牌者的频率
(2)第七行语句的功能是
(A)统计2000次随机试验中编号为k的人成为第一模牌者的频数;
(B)统计2000次随机试验中编号为k的人成为第一模牌者的次数;
(C)统计2000次随机试验中编号为k的人成为第一模牌者的索引值;
(D)计算2000次随机试验中编号为k的人成为第一模牌者的频率。
三、程序填空
1.下面实验程序的功能是输入三角形边长数据用海伦公式计算出三角形面积。
仔细阅读程序开始部分符号“%”后的注记,根据注记提示的功能完成程序填空
function[S,C]=triangle_area(a,b,c)
%海伦公式计算三角形面积(2007-06-20)
%triangle_area(a,b,c):
得到边长为a,b,c三角形的面积
%如果输入数据不满足三角形两边之和大于第三边则返回出错信息
%triangle_area(a,b):
a是等腰三角形的腰长,b是另外一边,返回面积
%triangle_area(a):
a是等边三角形的边长,返回面积
%[S,C]=triangle_area(a):
S是等边三角形面积,C是等边三角形周长
ifnargin==1
b=a;c=a;
end
ifnargin==2
c=a;①
end
if(a+berror('请输入正确的三角形边长');
end
C=a+b+c;p=C/2;
S=sqrt(p*(p-a)*(p-b)*(p-c));
2.对于二重积分
,D是直线y=x–2和抛物线y2=x所围区域。
下面数学实验程序的功能是利用MATLAB符号计算方法将二重积分处理为二次积分进行计算(选择先对x积分后对y积分的秩序),然后将计算结果的符号表达式转换为双精度实数,并绘出抛物线图和求积区域的填充图。
完成下面实验程序填空。
symsxy;
f=sin(x+y)/(x+y);
x1=y*y;x2=2+y;
S1=int(f,x,x1,x2);
S2=int(S1,y,-1,2);
S=double(S2);①
y1=-1:
.1:
2;y2=2:
-.1:
-1;
x11=y1.*y1;x22=y2+2;
y0=-1.2:
.1:
2.2;x0=y0.*y0;
plot(x0,y0),holdon
fill([x11,x22],[y1,y2],'c');②
axis([0,4.8,-1.2,2.2])
3.某年A、B两城镇人各有1000人,以后每年A镇人口10%迁往B镇;B镇人口15%迁往A镇。
则有迁移矩阵L,L有两个互异特征值1,2,属于两个特征值的特征向量分别为:
1,2,记初始人口分布X0=[1000,1000]T,则存在不全为零的数c1,c2使得X0=c11+c22(解此方程组求出c1,c2)。
下面实验程序主要功能是利用LnX0=c11n1+c22n2计算人口变化。
完成程序填空
n=input('inputn:
=');
A=[0.9,0.15;0.1,0.85];
X0=[1000;1000];
[P,D]=eig(A);
C=P\X0;①
c1=C
(1);c2=C
(2);
alfa1=P(:
1);
alfa2=P(:
2);
lamda1=D(1,1);
lamda2=D(2,2);
Xn=c1*lamda1^n*alfa1+c2*lamda2^n*alfa2;②
4.一条船从岸边O处出发驶向大河对岸,航行中船头总是指向对岸B点。
设船的静水速度为V1=1(米/秒),河水流速为V2=0.5(米/秒),河宽a=100(米),船在时刻t位置为P(x,y)。
此时船到B点的直线距离为
,由于水流作用,船的航速V在Y方向和X方向的分量分别为
,
下一时刻位移变化规律为
,
下面仿真程序功能是绘出船的航线;并计算出航程以及走完航程所用时间。
完成程序填空
function[distance,times]=searoute(V2)
ifnargin==0,V2=0.5;end
B=[0,100];
V1=1;dt=1;
x=V2;y=V1;distance=sqrt(x^2+(100-y)^2);
P=[x,y];times=1;
whiledistance>0.5
x=x+dt*(V2-V1*x/distance);①
y=y+dt*V1*(100-y)/distance;
distance=sqrt(x^2+(100-y)^2);②
P=[P;x,y];times=times+1;
end
X=P(:
1);Y=P(:
2);
plot(0,0,'r>',0,100,'r>',X,Y,'r',X,Y,'go')
axis([-10,30,0,110])
模拟试题二
一、单项选择题
1.在MATLAB命令窗口中,键入命令symsx;int(x*sin(x))。
结果是
(A)ans=sin(x)-x*cos(x);(B)ans=cos(x)+x*sin(x);
(C)ans=sin(x)-cos(x);(D)ans=-1/2*cos(x)*sin(x)+1/2*x
2.在MATLAB命令窗口中,键入命令symsx,F=1/(2+cos(x));ezplot(diff(F)),结果是
(A)绘出函数F在[0,2]的图形;
(B)绘出函数F在[–2,2]的图形;
(C)绘函数F的导函数在[0,2]的图形;
(D)绘函数F的导函数在[–2,2]的图形
3.在MATLAB命令窗口中键入命令B=[8,1,6;3,5,7;4,9,2];B*B(:
2)。
结果是
(A)ans=(B)ans=(C)ans=(D)ans=
91676767
67916767
67679167
4.MATLAB命令x=3:
2:
100将创建等差数列,该数列是()
(A)以3为初值的98个数,;(B)以100为终值的98的个数;
(C)以99为终值的97个数;(D)以3为初值的49个数。
5.MATLAB语句strcat(int2str(2008),'年是',s,'年')的功能是
(A)将数据2008转换为符号;(B)将数据2008与符号变量合并;
(C)将几个符号变量合并为一个;(D)将符号变量转换为数值变量;
6.数学表达式
对应的MATLAB表达式是。
(A)sqrt(7*sin(3+2*x)+exp
(2)*log(3))(B)sqrt(7sin(3+2x)+exp
(2)log(3))
(C)sqrt(7*sin(3+2*x)+e^2*log(3))(D)sqrt(7sin(3+2x)+e^2log(3))
7.语句L=sqrt(pi);x=fix(100*L)/100的功能是
(A)将无理数取三位近似;(B)将
取两位近似数
(C)将
取三位近似数;(D)将无理数取两位近似
8.MATLAB语句[x,y]=meshgrid(-2:
2)的数据结果中
(A)x是行向量,y是列向量;(B)x是列向量,y是行向量;
(C)y是行元素相同的矩阵;(D)y是列元素相同的矩阵
9.MATLAB的语句colormap(001)
(A)将三维网面图确定为红色;(B)将三维网面图确定为绿色;
(C)将三维网面图确定为蓝色;(D)语句使用格式错误
10.设a,b,c表示三角形的三条边,表达式a+b(A)是三条边构成三角形的条件;(B)是三条边不构成三角形的条件;
(C)构成三角形时逻辑值为真;(D)不构成三角形时逻辑值为假
二、程序阅读理解
1.数学实验程序如下
symsx
f=3*x^2+6*x-1;g=x^2+x-3;
R=f/g;
ezplot(R,[-10,10])
R1=diff(R,x);
simplify(R1);
[f1,g1]=numden(R1);%第七行
R2=diff(R,x,2)
simplify(R2)
[f2,g2]=numden(R2);
(1)程序运行后将显示
(A)有理函数的分子和分母;(B)有理函数的一阶导数;
(C)有理函数的二阶导数;(D)有理函数的一阶导数分子
(2)第七行语句的功能是
(A)分离有理函数的一阶导数分子;(B)分离有理函数的二阶导数分子和分母;
(C)分离有理函数的一阶导数分母;(D)分离有理函数的一阶导数分子和分母
2.数学实验程序如下
L=[3/4,1/8,1/8;1/6,2/3,1/6;1/4,1/4,1/2]';
X1=[100;80;120];
X=X1;x1=X
(1);
fork=1:
4
X=L*X
x1=[x1;X
(1)];
end
bar(x1)%第八行
colormap([111])
(1)实验程序中的循环语句将显示
(A)三阶矩阵L的特征值;(B)方程组X=LX的解;
(C)LX的第一分量数据;(D)向量LnX变化规律
(2)第八行语句的功能是
(A)绘X的变化曲线;(B)绘图表示方程组X=LX的解;
(C)绘LX的第一分量曲线;(D)绘LnX第一分量条形图
3.十二属相的生肖问题的MATLAB程序如下
year=input('inputyear:
=');
S='鸡狗猪鼠牛虎兔龙蛇马羊猴';
k=mod(year,12);
ifk==0,k=12;end%第四行
s=S(k);
s=strcat(int2str(year),'年是',s,'年')
(1)输入2000,实验程序的结果将给出
(A)2000年是龙年;(B)2000年是蛇年;
(C)2000年是马年;(D)2000年是羊年
(2)第四行语句的功能是
(A)当年份是12的倍数时定位为猪年;
(B)当年份是12的倍数时定位为第12属相;
(C)当年份是12的倍数时定位为猴年;
(D)当年份是12的倍数时定位为鼠年
4.数学实验程序如下
h=439;H=2384;R=6400;
a=(h+H+2*R)/2;c=(H-h)/2;
e1=c/a;b=sqrt(a*a-c*c);
symse2t
f=sqrt(1-e2*cos(t)^2);
ft=subs(f,e2,e1*e1);
S=int(ft,0,pi/2);
L=4*a*double(S);
V=L/(114*60);
s1=pi*a*b/(114*60);%第十行
Vmax=2*s1/(h+R)
Vmin=2*s1/(H+R)
(1)实验程序的运行后,将显示的数据是()
(A)卫星轨道的周长数据;(B)卫星运行的最大速度和最小速度;
(C)卫星运行时向径每秒扫过的面积;(D)卫星运行的平均速度数据
(2)第十行语句的功能是
(A)计算卫星运行的最小速度;(B)计算卫星运行时向径每秒扫过的面积;
(C)计算卫星运行的最大速度;(D)计算卫星运行轨道的周长
三、程序填空
1.维维安尼(Viviani)体是圆柱体(x–R/2)2+y2≤R2/4被球面x2+y2+z2=R2所割下的立体。
下面的实验程序功能是取R=2求体积上半部分,先利用符号计算处理重积分并转换为数值数据,再用蒙特卡罗方法计算体积做对比。
完成下面程序填空
symsxy;
f=sqrt(4-x^2-y^2);
y1=-sqrt(2*x-x^2);
y2=sqrt(2*x-x^2);①
S1=int(f,y,y1,y2);
S2=int(S1,x,0,2)
V=double(S2);②
P=rand(10000,3);
X=2*P(:
1);Y=2*P(:
2)-1;Z=2*P(:
3);
II=find((X-1).^2+Y.^2<=1&Z<=sqrt(4-X.^2-Y.^2));
V1=8*length(II)/10000
2.对于任意正整数n,如果n只能被1和它自身整除,则称这个数为素数(或质数)。
判素数程序的算法思想是试商法,即用2,3,……,(n-1)去除n,如果能被这些数中一个整除,则n是素数,否则不是素数。
完成下面填空。
n=input('inputn:
=');
fork=2:
n-1
ifmod(n,k)==0,break,end①
end
ifkdisp('不是素数')
else
disp('是素数')②
end
3.已经知道我国1991至1996年的人口数据,分别利用线性函数和指数函数做数据拟合实验,并绘出数据拟合曲线的图,计算出残差平方和,完成如下实验程序填空
T=[1991:
1996]';
N=[11.58,11.72,11.85,11.98,12.11,12.24]';
L=polyfit(T,N,1);
PL=polyval(L,T);
figure
(1),plot(T,N,'o',T,PL)
RL=sum((N-PL).^2)
E=polyfit(T,log(N),1);
PE=exp(polyval(E,T));①
figure
(2),plot(T,N,'o',T,PE)
RE=sum((N-PE).^2);②
L2008=polyval(L,2008)
E2008=exp(polyval(E,2008))
4.二阶正交矩阵
作用于向量时,其效果是将向量旋转,旋转角为θ(逆时针旋转为正)。
把一个以原点为中心的正方形旋转pi/24,并做适当缩小,迭代30次形成下图。
完成如下程序填空
xy=[-4-4;4-4;44;-44;-4-4];
A=[cos(pi/24)-sin(pi/24);sin(pi/24)cos(pi/24)];
x=xy(:
1);y=xy(:
2);
axisoff
line(x,y)
fork=1:
30
xy=.89*xy*A';
x=xy(:
1);①
y=y=xy(:
2);②
line(x,y),
end
模拟题三
(1)下列哪个变量的定义是不合法()
A.abcd-3B.xyz-3C.abcdefD.x3yz
(2)下列哪条指令是求矩阵的行列式的值()
A.invB.diagC.detD.eig
(3)在循环结构中跳出循环,执行循环后面的代码的命令为()
A.returnB.breakC.continueD.keyboard
(4)清空MATLAB工作空间内所有变量的指令是()
A.clcB.clsC.clearD.clf
(5)用round函数四舍五入对数组[2.486.393.938.52]取整,结果为()
A.[2638]B.[2648]C.[2649]D.[3749]
(6)已知a=2:
2:
8,b=2:
5.下列运算表达式中错误的为()
A.a’*bB.a.*bC.a*bD.a-b
(7)角度x=[304560],计算其正弦函数的运算为()
A.SIN(deg2rad(x))B.SIN(x)C.sin(x)
D.sin(deg2rad(x))
(8)下面程序执行后array的值为()
Fork=1:
10
Ifk>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=6D.array=10
(9)i=2;a=2i;b=2*i;c=2*s