MATLAB试题标准答案
- -上-装-订-线-西安邮电学院试题卷标准答案专用纸- -密-封-装-订-线-西安邮电学院2006-2007学年第二学期试题卷标准答案课程:MATLAB程序设计基础 类型:B卷 专业、年级:计科、网络04级题号一二三四五六七八九总分得分2020202515一、填空题(每空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列元胞中的内容用A2,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)。共 页 第 页 说明:1。标准答案务必要正确无误。 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 5Sa = 10 20 30A = 1 20 30 710 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 2将每道大题得分和总分填入得分栏中。-上-装-订-线-西安邮电学院试题卷标准答案专用纸-密-封-装-订-线-3、写出下列指令运行结果。A=1,2;3,4; B=-1,-2;2,1;S=3;A.*BA*BS.*AS*Bans = -1 -4 6 4ans = 3 0 5 -2ans = 3 6 9 12ans = -3 -6 6 34、下面的函数主要完成什么功能? 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 =ABc12revch =9gF65e4d321cBAans =ABC123D4E56FG96、写出下列指令运行结果。A(1,1)='this is cell'A1,2=1 2 3;4 5 6;A2,1=1+2*i;A2,2=A1,21+(A1,21(1,1)+A1,21(2,2);celldisp(A) A1,1 = this is cellA2,1 = 1.0000 + 2.0000iA1,21 = 1 2 3 4 5 6A2,2 = 7 8 9 10 11 127、在同一个图中绘制两个函数,这两个函数分别是: y=e(-t/3) y0=e(-t/3)*sin(3t) 其中y是用红色的细实线,而y0是用兰色的虚线绘制,t的区间是(0:4p),t的步长为p/50,t轴和y轴分别用斜粗题指示,图中有网格表示。四、编程题1、答案clfx=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 onplot(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;endprice=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);end5、答案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)=valk,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)=valk,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;endendfor ii=1 : length(student) if student(ii).Ave > 80 disp(student(ii).Name); disp(student(ii).Ave); endend 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