2022年MATLAB期末考试试卷及其参考答案.docx
名师归纳总结 精品学习资料 - - - - - - - - - - - - - - -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=zeros2,4; A:=1:8; 细心整理归纳 精选学习资料 - - - - - - - - - - - - - - - 第 1 页,共 9 页 - - - - - - - - - 名师归纳总结 精品学习资料 - - - - - - - - - - - - - - -s=2 3 5; As Sa=10 20 30' As=Sa 2、写出以下指令运行结果;A=reshape1:16,2,8 reshapeA,4,4 s=1 3 6 8 9 11 14 16; As=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=factorn if n<=1 f=1; else f=factorn-1*n; end 5、写出以下指令运行结果;ch=ABc123d4e56Fg9;subch=ch1:5 revch=chend:-1:1 细心整理归纳 精选学习资料 - - - - - - - - - - - - - - - 第 2 页,共 9 页 - - - - - - - - - 名师归纳总结 精品学习资料 - - - - - - - - - - - - - - -k=findch>=a&ch<=z; chk=chk- -aA; charch 6、写出以下指令运行结果;A1,1='this is cell' A1,2=1 2 3;4 5 6; A2,1=1+2*i; A2,2=A1,21+A1,211,1+A1,212,2; celldispA 7、下面的程序完胜利能是什么?t=0:pi/50:4*pi; y0=exp-t/3; y=exp-t/3.*sin3*t; plott,y,'-r',t,y0,':b',t,-y0,':b' xlabel it t;ylabel it y;grid on; 四、编程题( 32 分)1、1、在同一图上分别用红色实线和绿色虚线绘制y1=sinx和 y2=cosx在区间 0,4*pi 的曲线,并用星号 *标出两条曲线的交点以及建立图例; (5 分)2、分别在同一图形窗的不同子图绘制 络线;(4 分)y=sintsin9t和 y=sintsin9t及其包3、某商场对顾客所购买的商品实行打折销售,标准如下商品价格用price来表示 :细心整理归纳 精选学习资料 price<200 没有折扣(5 分) 第 3 页,共 9 页 200price<500 3%折扣500price<1000 5%折扣1000price<2500 8%折扣2500price<5000 10%折扣5000price 14%折扣输入所售商品的价格,求其实际销售价格; - - - - - - - - - - - - - - - - - - - - - - - - 名师归纳总结 精品学习资料 - - - - - - - - - - - - - - -4、编写程序实现 fn=fn-1+fn-2 (f1=1 和 f2=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实现将全下标转换为单下标的指令为 下标的指令为 Ind2sub;Sub2ind、据单下标换算出全6、二维数组的标识有“ 全下标” 标识、 “ 单下标” 标识、“ 规律 1” 标识;7、在一个元胞数组A 中寻访第 2 行第 3 列元胞元素用 A2,3;寻访数组第2 行第 3 列元胞中的内容用A2,3 ;clear 8、MATLAB 中 clf 用于清除图形窗、 clc 用于清除指令窗中显示内容、用于清除 MATLAB 工作空间中储存的变量;二、简答题(每题5 分,共 20 分)1、简述 MATLAB 历史指令窗的主要作用;录 过历史指令窗记录着用户在 MATLAB 指令窗中所输入过的全部指令;历史记包括:每次开启 MATLAB 的时间,每次开启 MATLAB 后在指令窗中运行的全部指令;应用功能有单行或多行指令的复制和运行、生成 M 文件等;2、简述空数组的功用;“ 空” 数组的功用:在没有“ 空” 数组参加的运算时,运算结果中的“ 空”可以合理地说明“ 所得结果的含义”;运用“ 空” 数组对其他非空数组赋值,可以转变数组的大小,但不能转变数组的维数;细心整理归纳 精选学习资料 - - - - - - - - - - - - - - - 第 4 页,共 9 页 - - - - - - - - - 名师归纳总结 精品学习资料 - - - - - - - - - - - - - - -3、简述 MATLAB 函数的基本结构;典型 M 函数文件的结构: 函数申明(定义)行Function declaration line、H1 行The first help text line、在线帮忙文本 Help text区、编写和修改记录、函数体 Function body;4、简述绘制二维图形的一般步骤;绘制二维图形的一般步骤为:曲线数据预备、选定图形窗及子图位置、调用 二维曲线绘图指令、设置轴的范畴、坐标分格线、图形注释、图形的精细操 作;三、阅读程序并回答疑题(每题 4 分,共 28 分)1、写出以下指令运行结果;A=zeros2,4; A:=1:8; s=2 3 5; As Sa=10 20 30' As=Sa ans = 2 3 5 Sa = 10 20 30 A = 1 20 30 7 10 4 6 8 2、写出以下指令运行结果;A=reshape1:16,2,8 A = 1 3 5 7 9 11 13 15 2 4 6 8 10 12 14 16 reshapeA,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; As=0 A = 0 0 5 7 0 0 13 15 2 4 0 0 10 12 0 0 细心整理归纳 精选学习资料 - - - - - - - - - - - - - - - 第 5 页,共 9 页 - - - - - - - - - 名师归纳总结 精品学习资料 - - - - - - - - - - - - - - -3、写出以下指令运行结果;A=1,2;3,4; B=-1,-2;2,1; S=3; A.*B A*B S.*A S*B ans = -1 6 ans = 3 5 -4 4 0 -2 ans = 3 9 ans = -3 6 6 12 -6 34、下面的函数主要完成什么功能?function f=factorn if n<=1 f=1; else f=factorn-1*n; end n!;利用函数的递归调用,求 5、写出以下指令运行结果;ch=ABc123d4e56Fg9;subch=ch1:5 revch=chend:-1:1 k=findch>=a&ch<=z; chk=chk- -aA; charch lengthk subch = ABc12 revch = 细心整理归纳 精选学习资料 - - - - - - - - - - - - - - - 第 6 页,共 9 页 - - - - - - - - - 名师归纳总结 精品学习资料 - - - - - - - - - - - - - - -9gF65e4d321cBA ans = ABC123D4E56FG9 6、写出以下指令运行结果;A1,1='this is cell' A1,2=1 2 3;4 5 6; A2,1=1+2*i; A2,2=A1,21+A1,211,1+A1,212,2; celldispA A1,1 = this is cell A2,1 = 1.0000 + 2.0000i A1,21 = 1 2 3 4 5 6 A2,2 = 8 9 7 10 11 12 7、在同一个图中绘制两个函数,这两个函数分别是:-t/3 y=e y0=e -t/3*sin3t 其中 y 是用红色的细实线,而y0 是用兰色的虚线绘制, t 的区间是 0:4 ,t 的步长为 四、编程题/50,t 轴和 y 轴分别用斜粗题指示,图中有网格表示;1、clfx=0:pi/200:2*pi; y1=sinx; y2=cosx; zz=xfindabsy1-y2<0.005 z=minzz plotx,y1,'r-',x,y2,'g-.' hold on plotzz,sinzz,'*' legend'sin','cos' 2、答案 t=0:pi/100:pi' y1=sint*1,-1; y2=sint.*sin9*t; t3=pi*0:9/9; y3=sint3.*sin9*t3;subplot1,2,1 plott,y1,'r:',t,y2,'b',t3,y3,'bo' subplot1,2,2 细心整理归纳 精选学习资料 - - - - - - - - - - - - - - - 第 7 页,共 9 页 - - - - - - - - - 名师归纳总结 精品学习资料 - - - - - - - - - - - - - - -plott,y2,'b' axis0,pi,-1,1 3、答案 price=input'请输入商品价格 ' switch fixprice/100 case 0,1 %价格小于 200 rate=0; case 2,3,4 %价格大于等于 200 但小于 500 rate=3/100; case num2cell5:9 rate=5/100; case num2cell10:24 rate=8/100; case num2cell25:49 rate=10/100; %价格大于等于 500 但小于 1000 %价格大于等于 1000 但小于 2500 %价格大于等于 2500 但小于 5000 otherwise rate=14/100; %价格大于等于 5000 end 4、答案price=price*1-rate %输出商品实际销售价格function f=fabn if n=1 f = 1; elseif n=2 f =2; else f = fabn-1 + fabn-2; end 5、答案 str1 = '' str2 = '' str3= '' val = cell5,2 a=zeros5,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 % valk,: = input'Curriculums and Scores:' % ak,1=valk,2; 细心整理归纳 精选学习资料 - - - - - - - - - - - - - - - 第 8 页,共 9 页 - - - - - - - - - 名师归纳总结 精品学习资料 - - - - - - - - - - - - - - - %end %val1,: = input'Curriculum:' %val:,2 = input'Scores:' val = input'please input five Curriculums and Scores:' for k=1:5 ak,1=valk,2; end studenti.Name = str1; studenti.No = str2; studenti.Scores = val; studenti.Ave = meana; end for ii= 1:lengthstudent-1 iptr = ii; for jj=ii+1 : lengthstudent if studentjj.Ave > studentiptr.Ave iptr = jj; end end if ii =iptr temp = studentii; studentii =studentiptr; studentiptr = temp; end end for ii=1 : lengthstudent if studentii.Ave > 80 dispstudentii.Name; dispstudentii.Ave; end end disp'student name',blanks6,'student no.',blanks6,'student average'disp' ' for ii=1 : lengthstudent dispstudentii.Name,blanks20,studentii.No,blanks20,num2strs tudentii.Ave; end细心整理归纳 精选学习资料 - - - - - - - - - - - - - - - 第 9 页,共 9 页 - - - - - - - - -