MATLAB两份试题较基础.docx
- 文档编号:6285743
- 上传时间:2023-01-05
- 格式:DOCX
- 页数:17
- 大小:29.74KB
MATLAB两份试题较基础.docx
《MATLAB两份试题较基础.docx》由会员分享,可在线阅读,更多相关《MATLAB两份试题较基础.docx(17页珍藏版)》请在冰豆网上搜索。
MATLAB两份试题较基础
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=[235];
A(s)
Sa=[102030]'
A(s)=Sa
2、写出下列指令运行结果。
A=reshape(1:
16,2,8)
reshape(A,4,4)
s=[13689111416];
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、下面的函数主要完成什么功能?
functionf=factor(n)
ifn<=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)={'thisiscell'};
A{1,2}={[123;456]};
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\itt’);
ylabel(‘\bf\ity’);
gridon;
四、编程题(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<5003%折扣
500≤price<10005%折扣
1000≤price<25008%折扣
2500≤price<500010%折扣
5000≤price14%折扣
输入所售商品的价格,求其实际销售价格。
(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函数文件的结构:
函数申明(定义)行(Functiondeclarationline)、
H1行(Thefirsthelptextline)、在线帮助文本(Helptext)区、编写和修改记录、
函数体(Functionbody)。
4、简述绘制二维图形的一般步骤。
绘制二维图形的一般步骤为:
曲线数据准备、选定图形窗及子图位置、调用二维曲线绘图指令、设置轴的范围、坐标分格线、图形注释、图形的精细操作。
三、阅读程序并回答问题(每题4分,共28分)
1、写出下列指令运行结果。
A=zeros(2,4);
A(:
)=1:
8;
s=[235];
A(s)
Sa=[102030]'
A(s)=Sa
ans=
235
Sa=
10
20
30
A=
120307
10468
2、写出下列指令运行结果。
A=reshape(1:
16,2,8)
A=
13579111315
246810121416
reshape(A,4,4)
ans=
15913
261014
371115
481216
s=[13689111416];
A(s)=0
A=
0057001315
2400101200
3、写出下列指令运行结果。
A=[1,2;3,4];
B=[-1,-2;2,1];
S=3;
A.*B
A*B
S.*A
S*B
ans=
-1-4
64
ans=
30
5-2
ans=
36
912
ans=
-3-6
63
4、下面的函数主要完成什么功能?
functionf=factor(n)
ifn<=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)={'thisiscell'};
A{1,2}={[123;456]};
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}=
thisiscell
A{2,1}=
1.0000+2.0000i
A{1,2}{1}=
123
456
A{2,2}=
789
101112
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-.')
holdon
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('请输入商品价格');
switchfix(price/100)
case{0,1}%价格小于200
rate=0;
case{2,3,4}%价格大于等于200但小于500
rate=3/100;
casenum2cell(5:
9)%价格大于等于500但小于1000
rate=5/100;
casenum2cell(10:
24)%价格大于等于1000但小于2500
rate=8/100;
casenum2cell(25:
49)%价格大于等于2500但小于5000
rate=10/100;
otherwise%价格大于等于5000
rate=14/100;
end
price=price*(1-rate)%输出商品实际销售价格
4、答案
functionf=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('pleaseinputstudentsnumber:
');
fori=1:
n
str1=input('Name:
');
str2=input('No.:
');
%fork=1:
2
%val(k,:
)=input('CurriculumsandScores:
');
%a(k,1)=val{k,2};
%end
%val(1,:
)=input('Curriculum:
');
%val(:
2)=input('Scores:
');
val=input('pleaseinputfiveCurriculumsandScores:
');
fork=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
forii=1:
(length(student)-1)
iptr=ii;
forjj=ii+1:
length(student)
if(student(jj).Ave>student(iptr).Ave)
iptr=jj;
end
end
ifii~=iptr
temp=student(ii);
student(ii)=student(iptr);
student(iptr)=temp;
end
end
forii=1:
length(student)
ifstudent(ii).Ave>80
disp(student(ii).Name);
disp(student(ii).Ave);
end
end
disp(['studentname',blanks(6),'studentno.',blanks(6),'studentaverage']);disp('')
forii=1:
length(student)
disp([student(ii).Name,blanks(20),student(ii).No,blanks(20),num2str(student(ii).Ave)]);
end
一、填空题(每空2分,总共30分)
1.已知A=[096;130];B=[143;150];写出下列各指令运行的结果。
A&B的运行结果ans=;
A./B的运行结果ans=。
2.产生4阶全0方阵的命令为zeros(4);产生3阶全1方阵的命令为ones(3)。
3.A=rand(2,5);b=size(A);c=length(A);则b和c的值分别为和[2,5],[5]。
4.标点符号分号可以使命令行不显示运算结果,百分号用来表示该行为注释行。
5.用if判断语句判断80≥x>60,在MATLAB中if语言后的判断应写为ifx<=80&x>60。
6.P,Q分别是个多项式的系数矢量,求P对应的多项式的积分(对应的常数项为K),使用的命令是polyint(P,K);求P/Q的解,商和余数分别保存在k和r,使用的命令是[k,r]=deconv(P,Q);
7.为了使两个plot的图形在同一个坐标显示,可以使用holdon命令进行图形保持;可以使用gridon命令为图形添加网格。
8.MATLAB的工作空间中有三个变量v1,v2,v3,写出把它们保存到文件my_data.mat中的指令savemy_data;写出把my_data.mat文件中的变量读取到MATLAB工作空间内的指令loadmy_data。
二、选择题(每空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.486.393.938.52]取整,结果为C
(A)[2638](B)[2648](C)[2649](D)[3749]
6.已知a=2:
2:
8,b=2:
5,下面的运算表达式中,出错的为C
(A)a'*b(B)a.*b(C)a*b(D)a-b
7.角度
,计算其正弦函数的运算为D
(A)SIN(deg2rad(x))(B)SIN(x)(C)sin(x)(D)sin(deg2rad(x))
8.下面的程序执行后array的值为(A)
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=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)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
三、写出程序的执行结果或写出给定要求的指令(总共35分)
1.写出执行以下代码后C,D,E的值(6分)
A=[1,2,3;4:
6;7:
9];
C=[A;[10,11,12]],
D=C(1:
3,[23])
E=C(2,[12])
2.写出执行以下代码后,MATLAB命令窗口上显示的x矩阵的值(5分)
x=[0,1,0,2,0,3,0,4];
fork=1:
8
ifx(k)==0
x(k)=k;
else
x(k)=2*k+1;
end
end
disp(x);
3.创建符号函数并求解,要求写出步骤和运行结果(7分)
(1)创建符号函数f=ax2+bx+c
(2)求f=0的解
4.求解以下线性方程组,要求写出程序代码和运行结果(5分)
5.绘制函数曲线,要求写出程序代码(12分)
(1)在区间[0:
2π]均匀的取50个点,构成向量π
(2)在同一窗口绘制曲线y1=sin(2*t-0.3);y2=3cos(t+0.5);要求y1曲线为红色点划线,标记点为圆圈;y2为蓝色虚线,标记点为星号
四、使用MATLAB语言进行编程(15分)
打印出所有的水仙花数。
所谓“水仙花数”,是指一个三位数,其各位数字立方之和等于该数本身。
一、填空题
1、
ans=
011
110
ans=
02.25002.0000
1.00000.6000NaN
2、zeros(4)ones(3)
3、[25][5]
4、;%
5、ifx<=80&x>60
6、polyint(P,K)[k,r]=deconv(P,Q)
7、holdongridon
8、savemy_dataLoadmy_data
二、选择题
1、A2、C3、B4、C5、C6、C7、D8、A9、C10A
三、写出程序的执行结果或写出给定要求的指令
1、
c=
0+2.0000i
D=
23
56
89
E=
45
2、
1539513717
3、
>>symsabcx
>>s=a*x^2+b*x+c;
>>solve(s)
ans=
[1/2/a*(-b+(b^2-4*a*c)^(1/2))]
[1/2/a*(-b-(b^2-4*a*c)^(1/2))]
4、
>>symsabcx
>>symsx1x2x3x4
>>clear
>>symsx1x2x3x4
>>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
5、t=linspace(0,2*pi,50);
plot(t,y1,'r-o',t,y2,'b--*');
四、使用MATLAB语言进行编程
fork=100:
999
a=fix(k/100);
b=rem(fix(k/10),10);
c=rem(k,10);
ifa.^3+b.^3+c.^3==k
fprintf(“%u,\t\t”,k) ;
end
end
问题补充
1、标点符号(;)可以使命令行不显示运算结果,(%)用来表示该行为注释行。
2、下列变量名中(A)是合法的。
(A)char_1;(B)x*y;(C)x\y;(D)end
3、为~,步长为的向量,使用命令(本题题意不清)创建。
4、输入矩阵,使用全下标方式用(本题题意不清)取出元素“”,使用单下标方式用(本题题意不清)取出元素“”。
5、符号表达式中独立的符号变量为()。
6、M脚本文件和M函数文件的主要区别是(变量生存期和可见性)和(函数返回值)。
7、在循环结构中跳出循环,但继续下次循环的命令为(C)。
(A)return;(B)break;(C)continue;(D)keyboad
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- MATLAB 试题 基础