内容发布更新时间 : 2024/12/23 5:16:43星期一 下面是文章的全部内容请认真阅读。
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('Temperature below normal');
elseif temp>97.5 改正:temp>97.5 &temp<=99.5 disp('Temperature normal');
elseif temp>99.5 改正:temp>99..5 &temp<=103.0 disp('Temperature slightly high');
else temp>103.0 改正:去掉temp>103.0 disp('Temperature dangerously 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 -7 4 2 ;1 0 8 -5; -6 5 -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
f(i+1)=f(i-1)+f(i); 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
for yz=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 )用于清除图形窗口。
2、MATLAB中(help)命令只搜索出关键字完全匹配的结果,(lookfor)命令对搜索范围内的M文件进行关键字搜索。
3、MATLAB变量名必须以(字母)开头,MATLAB提供的标准函数名以及命令必须用(小写字母)。
4、t是0~4pi,步长为0.1pi的向量,使用冒号表达式建立向量为(t=0:0.1*pi:4*pi),使用linspace函数建立向量为linspace(0,4*pi,10)。 2 -6 0
5、已知矩阵A= 3 1 -8 ,用全下标方式( A(3,2) )取得元素‘8’,用单 5 8 6 下标方式( A(8) )取得元素‘-8’.。
6、在MATLAB矩阵除法中,A\\B等效于( inv(A)*B ),B/A等效于( B*inv(A) )
7、A=[1 2;3 4],B=[1 0;0 1],A*B=( [1 2;3 4] ),A.*B=( [1 0;0 4] )。
8、为了使两个plot的图形在同一个坐标显示,可以用(hold on)命令进行图形保持,一个图形窗口上绘制多个图形可以用( subplot() )函数进行分割窗口。
9、MATLAB提供了mesh函数和surf函数分别用来绘制(三维网格图)和(三位曲面图)。
10、对于线性方程组Ax=B,其求解方式为(x=A\\B)。 二、选择题。(每题3分,共30分) 1、关于主函数,以下说法正确的是(B) A.主函数名必须与文件名相同
B.主函数的工作空间与子函数的工作空间是嵌套的 C.主函数中不能定义其他函数 D.每个函数文件中都必须有主函数
2、已知数组A=[1 2;4 5] ,则A(1,:)是指(B)
A.第一行向量 B.第一列向量 C.整个数组 D.第一个元素 3、legend()命令是(A) A.在图中标注“图例”; B.在图中加上网格线
C.在图中加上标题 D.打印图形
4、指出下列错误的指令(B)。
A.syms a b; B.syms a, b; C.syms(?a', ?b'); D.syms(?a','b','positive');
5、下列哪条指令是求矩阵的行列式的值(C)。 A .inv B. Diag C.det D .eig 6、下列MATLAB语句不正确的是(C) A. A=[1,2,3; 4 5 6; 7 8 0]; sum(A(:)) B. A=[1,2,3; 4 5 6; 7 8 0]; C=A>6
C. A=[1,2,3; 4,5,6; 7,8,0]; A(1,:).*A(:,3) D. A=[1,2,3; 4,5,6; 7,8,0]; A(1,:)*A(:,3)
7、如果有函数声明行为:function[x,y,z]=exefun1(a,b,c)。则下述函数调用格式错误的是(B)。
A. x=exefun1(a,b,c) B. [x,y,z,w]=exefun1(a,b,c) C. [x,b,z]=exefun1(a,y,c) D. [a,b]=exefun1(x,y,z)
8、在循环结构中跳出循环,但继续下次循环的命令为( C ) A. return; B. break C. continue D. keyboad
9、运行如下程序后,输入9回车,命令窗口(command windows)显示的结果为(A)
c=input('请输入一个字符','s'); if c>='A' & c<='Z'
disp(setstr(abs(c)+abs('a')-abs('A'))); elseif c>='a'& c<='z'
disp(setstr(abs(c)- abs('a')+abs('A'))); elseif c>='0'& c<='9' disp(abs(c)-abs('0')); else disp(c); End
A. 9 B. 8 C. 7 D. 6
10、下列哪个函数名是四舍五入到最邻近的整数(C) A.mod B.ceil C.round D.floor 三、程序阅读题(每题5分,共10分) 1、请写出下面程序执行后的结果。 for i=1:3 for j=3:5 if j==4; continue; end
product=i*j;
fprintf('%d*%d=%d\\n',i,j,product); end
fprintf('End of inner loop!\\n'); end
fprintf('End of outer loop!\\n');