如果用户使用一个参数调用函数testarg1,函数执行什么功能?如果使用两个参数调用函数testarg1,函数又执行什么?
答:题干程序中nargin是判断输入参数个数,根据不同输入参数执行不同操作。如果用户使用一个参数(a)调用函数testarg1,函数执行c=a.^2。如果使用两个参数(a,b)调用函数testarg1,函数执行c=a+b。 3.写出下列指令的运行结果。(7分) >>X=[2,0;2,4];Y=[-1 -4;1 0];A=3; >>X.*Y >>X*Y >>X.*A 答:ans = -2 0 2 0 ans = -2 -8 2 -8 ans = 6 0 6 12
4.现有下列脚本程序,请分析该“for”循环执行情况并写出该程序运行结果。(for m=1:3 for n=1:3 H(m,n)=m^2+n end end 答:H =
10分)
2 H = 2 3 5 H = 2 3 4 H = 2 3 4 5 0 0 H = 2 3 4 5 6 0 H = 2 3 4 5 6 7 H = 2 3 4 5 6 7 10 0 0 H = 2 3 4 5 6 7 10 11 0 H = 2 3 4 5 6 7 10 11 12
四、使用MATLAB语言进行编程(30分)
1. 在同一图上分别用红色实线和绿色虚线绘制y1=sin(x)和y2=cos(x)在区间[0,4*pi]的曲线,并用星号*标出两条曲线的交点以及标注图例。(5分) clf
x=0:pi/200:4*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 on
plot(zz,sin(zz),'*') legend('sin','cos')
2.A 是一个維度m×n的矩阵. 写一段程序, 算出A中有多少个零元素(10分) 答:>> A= input ('请输入一个矩阵') [m,n]= size(A); sig=0; for i=1:m for j=1:n if A(i,j)==0 sig = sig+1; end end end
请输入一个矩阵[0 1 2;1 0 2; 0 0 0] A = 0 1 2 1 0 2 0 0 0 >> sig sig = 5
3.打印出所有的水仙花数。所谓“水仙花数”,是指一个三位数,其各位数字立方之和等于该数本身。(15分)
解:
for k = 100:999 a = fix(k/100);
b = rem(fix(k/10),10); c = rem(k,10);
if a.^3 + b.^3 + c.^3 == k fprintf( “%u,\\t\\t”, k ) end end
第十一套
《MATLAB语言与编程及技术》期末试卷
一,填空题(25’)
1、MATLAB中逗号主要用作显示计算结果的指令与其后指令的分隔;用作输入量与输入量之间的分隔符;用作数组元素分隔符号。
2、 已知A=[0 9 6;1 3 0];B=[1 4 3;1 5 0];写出下列各指令运行的结果。 A & B 的运行结果 ans =
0 1 1 1 1 0 ;
A ./ B 的运行结果 ans=
0 2.2500 2.0000
1.0000 0.6000 NaN 。
3、标点符号分号可以使命令行不显示运算结果, 百分号用来表示该行为注释行。
4、MATLAB的通用命令中列出内存中的变量目录可用whos命令;若对函数功能和用法不熟悉,可用help命令;显示变量、阵列或文本时,可用disp命令;清除工作空间中的变量时,可用clear命令;保存和恢复工作空间,或者工作空间中的特定变量时,可用save和load命令。
5、MATLAB中用于控制不定次重复循环语句为while(while end),若在循环执行过程中需要break 终止该循环时采用的语句为 。
二,选择题(25’)
1、下列哪个变量的定义是不合法的 (A) (A) abcd-3 (B) xyz_3 (C) abcdef (D) x3yz
2、在循环结构中跳出循环,执行循环后面代码的命令为 (B) (A) return (B) break (C) continue (D) keyboard
3、下列关于脚本文件和函数文件的描述中不正确的是 ( B ) A. 去掉函数文件第一行的定义行可转变成脚本文件; B. 函数文件可以在命令窗口直接运行; C. 脚本文件可以调用函数文件;
D. 函数文件中的第一行必须以function开始;