大学专业试题-Matlab期末考试及答案
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
大学专业试题-Matlab期末考试及答案
一、填空题(一题3分,共15分)
1、标点符号可以使命令行不显示运算结果。
答案:%
2、x为0〜4,步长为0.1pi的向量,使用命令创建。
答案:x=0:0.1*pi:4。
3、输入矩阵A=[1 2 3;7 -5 8;9-1-7],使用全下标方式用A(2,2)取出元素“-5 ”,使
用单下标方式用取出元素“-5 ”。
答案:A (5)。
4、在while表达式,语句体,End循环语句中,表达式的值__时表示循环条件为真,体
语句将被执行,否则跳出该循环语句。
答案:非零。
5、要从键盘读入一个字符串并赋值给变量x,且给出提示“Hello",应使用命令—答案:x=input(‘Hello,;s')b
二、选择题(一题3分,共15分)
1、下列表示可以作为MATLAB的变量的是(D )
A. abcd-2
B. xyz_2#
C. @h
D. X_1_a
2、如果x=1: 2 : 8,则U x(1)和x(4)分别是(B )
A. 1, 8
B. 1,7
C. 2,8
D. 2,7
3、指出下列错误的指令(B)。
A.symsa b;
B. symsa, b;
C.syms('a',’b');
D. syms('a','b','positive');
4、下列哪条指令是求矩阵的行列式的值(C)。
A .inv B. diag C. det D.eig
5、清空Matlab工作空间内所有变量的指令是(C)。
A. clc
B.cls
C.clear
D. clf
三、程序分析题(一题10分,共20分)
1、分析下面程序运行后s1,n1,s2,n2,m的值。
s1=0;s2=0;n1=0;n2=0;
x=[1,-4,-8,3,10,-9,7,-3,10, 8,-5,-2,2,0 ]; m=length(x); fori=1:m
if x(i)<0
s1=s1+x(i); n1=n1+1; else
s2=s2+x(i); n2=n2+1;
end end
s1,n1,s2,n2,m
请回答s1,n1,s2,n2,m的结果。
答案:s1=-31, n1=6,s2=41,n2=8,m=14。
2、求出mysum的值
mysum=0;
i=1;
while(i<=100)
mysum=mysum+i;i=i+1;
end mysum
答:mysum = 5050
四、程序改错题(一题10分,共10分)
1.下面的语句用来判断一个人的体温是否处于危险状态(华氏温度),请找出错误并改正。temp=input('Enter temperature:')
if temp<97.5
disp('Temperaturebelow normal');
elseif temp>97.5 改正:temp>97.5 &temp<=99.5
disp('Temperaturenormal');
elseif temp>99.5 改正:temp>99..5 &temp<=103.0
disp('Temperatureslightly high');
else temp>103.0 改正:去掉temp>103.0
disp('Temperaturedangerously high');
end
五、程序编程题(共40分)
1、用MATLAB 编程求下列联立方程的解3x+4y-7z-12w=4 ;5x-7y+4z+2w=-3;x +8z- 5w=9 ;-
6x+5y-2z+10w=-8。求系数矩阵的秩,求出方程组的解。(5分)
答案:a=[3 4 -7 -12; 5 -742;108 -5; -65 -2 10];
c=[4; -3; 9;-8];
b=rank(a)
d=a\c
X=d(1)
Y=d(2)
Z=d(3)
W=d(4)
>> b = 4
x=-1.4841;y= -0.6816;z= 0.5337;w=-1.2429
2、编写函数文件求半径为r的圆的面积和周长。(5分) 答案:function
[s,p]=fcircle(r)
s=pi*r*r;
p=2*pi*r;
3、Fibonacci数列的各元素为:1、1、2、3、5、8、……,满足以下关系F1=1,
F2=1,Fn=Fn-1+Fn-2,用M函数文件实现,数列的元素个数为输入变量,且当某个元素大于50时,退出循环结构。(10分)
答案:
function f=shiyan5(n)
f(1)=1;f(2)=1;
for i=2:n
if f(i+1)>50 break;
end
end
4、从键盘输入任意个正整数,以0结束,输出那些正整数中的素数。(20分) 答案:
clc;clear;
zzs(1)=input('请输入正整数:’);
k=1;
n=0;%素数个数
while zzs(k)~=0
flag=0; %是否是素数,是则为1
foryz=2:sqrt(zzs(k)) %因子从2至此数平方根
if mod(zzs(k),yz)==0
flag=1;
break; %非素数跳出循环
end end
if flag==0&zzs(k)>1 %忽略0 和 1 的素数
n=n+1;sus(n)=zzs(k);
end k=k+1;
zzs(k)=input(请输入正整数:’);
end
disp(['你共输入了'num2str(k-1)’个正整数。它们是:'])
disp(zzs(1:k-1)) %不显示最后一个数0
if n==0
disp('这些数中没有素数!‛)%无素数时显示else
disp('其中的素数是:’)
disp(sus)
end
MATLAB试题
一、填空题。(每空1分,共20分) 1、MATLAB中(clc )用于清除指令窗中显示的内容,(clear )用于清除工作空间中保存的变量,(clf )用于清除图形窗