结果: 1*3=3 1*5=5
End of inner loop! 2*3=6 2*5=10
End of inner loop! 3*3=9 3*5=15
End of inner loop! End of outer loop!
2、简述下面的函数主要完成什么功能 function f=factor(n) if n<=1 f=1; else
f=factor(n-1)*n; end
答案:利用函数的递归调用求n! 四、编程题。(共40分)
1、求下列联立方程的解 (10分) 3x+4y-7z-12w=4 5x-7y+4z+ 2w=-3 x+8z- 5w=9 -6x+5y-2z+10w=-8
(1)求系数矩阵的秩;(2) 求出方程组的解。答案:
A=[3 4 -7 -12; 5 -7 4 2 ; 1 0 8 -5; -6 5 -2 10]; B=[4; -3; 9;-8]; C=rank(A)
D=A\\C
2、设 y1=4exp(-2x)cos(3sin(pi*x)) ,y2=2exp(-0.5x)sin(2pi*x) 把x=0~4π间分为100点,在一个图形窗口中画出以x为横坐标,y为纵坐标的两条曲线,并设置曲线y1颜色为红色,y2为绿色,y2线型为虚线,添加图例。(15分) 答案:
x=linspace(0,4*pi,100);
y1=4*exp(-2*x).*cos(3*sin(pi*x)); y2=2*exp(-0.5*x).*sin(2*pi*x); plot(x,y1,'r'); hold on
plot(x,y2,'g--')
legend('曲线y1','曲线y2');
3、若一个数等于它的各个真因子之和,则称该数为完数,如6=1+2+3,所以6是 完数。求[1,500]之间的全部完数。(15分) 答案:
for m=1:500 s=0;
for k=1:m/2 if rem(m,k)==0 s=s+k; end end
if m==s disp(m); end end
第十套
一、选择题(每小题2分,共22分) 1. 在matlab中____C____用于括住字符串。 A., B.; C.?? D.“”
2. 在matlab的命令窗口中执行__A_______命令,可将命令窗口中所有变量清空。 A. clear B. clc C. echo off D. cd 3.下列___D____是合法变量。 A. 1_1 B. a/b C.变量1 D. eps
4产生所有元素均为1的2行3列矩阵的命令是_A______。 A. ones(2,3) B.ones(3,2) C.eye(2,3) D.eye(3,2)
5.已知a=0:4,b=1:5,下面的运算表达式出错的是_D_______。 A. a+b B. a./b C. a.*b D. a*b
6. subplot(2,1,2)是指__B_______的子图。
A.两行一列的上图 B.两行一列的下图 C.两列一行的左图 D.两列一行的右图
7.在多个句柄对象中,句柄是1的应该是_C_____对象。 A.根对象 B.坐标轴 C.窗口 D.屏幕
8.使用from:step:to方式生成向量,“-3:1:3”,其中-3,1,3分别是:(B) A、步长值,结束值,开始值 B、开始值,步长值,结束值 C、结束值,步长值,开始值 D、开始值,结束值,步长值
9.i=2; a=2i; b=2*i; c=2*sqrt(-1); 程序执行后a, b, c的值分别是多少?(C ) A.a=4, b=4, c=2.0000i 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. 下列关于脚本文件和函数文件的描述中不正确的是(B ) A. 去掉函数文件第一行的定义行可转变成脚本文件; B. 函数文件可以在命令窗口直接运行; C. 脚本文件可以调用函数文件;
D. 函数文件中的第一行必须以function开始;
11.下列对条件语句、分支语句、固定循环次数语句、不定循环次数语句关键字排序正确的是( B)
A. if else end; for end; switch case end; while end; B. if else end; switch case end; for end; while end; C. for end; if else end; while end; switch case end; D. while end; for end; switch case end; if else end;
二、填空题(20分,1空2分)
1. 求可逆矩阵A的逆矩阵的指令是__inv(A) __.
2. A=[0 2 3 0],B=[4 5 0 0],则X=A&B的显示结果为__ 0 1 0 0___. 3. Matlab中用来表示不确定值的变量是 _NaN_。. 4. M文件包括__M脚本__文件和__M函数__文件. 5.下面的程序执行后array的值为__[1,2,3,4,5,6]_______.
for k=1:10 if k>6 break; else array(k) = k; end end
6. w=[zeros(3,1) ones(1,3)' (3:5)']的结果是
0 1 3 0 1 4 0 1 5
7.把一个图形显示在一个图像窗口的m×n个子图像中的第p个位置的命令是subplot(m,n,p)
8.在一个元胞数组A中寻访第2行第3列元胞元素用A(2,3);寻访数组第2行第3列元胞中的内容用A{2,3}。
三、程序分析(28分)
1.下面的程序完成功能是什么?(5分) 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\\it t?);ylabel(?\\bf\\it y?); grid on;
解:在同一个图中绘制两个函数,这两个函数分别是:
y=exp(-t/3)y0=exp(-t/3)*sin(3t)
2.分析以下函数执行过程,回答问题:(6分)
function c = testarg1(a, b) if (nargin == 1) c = a .^ 2; elseif (nargin == 2) c = a + b; end