一、填空题
1. MATLAB 命令中清空 workspace 的是
。
2. 已知函数的功能,但不确切知道函数名,可使用的搜索命令是
。
3. 语句 a=[1 2 3 4;5 6 7 8;9 10 11 12]; a([1 end],1:2)=[10 20;30 40];执行后,a=
。
4. w=[zeros(3,1) ones(1,3)' (3:5)']的结果是
。
5. 若 a=[1 0;2 1];c=[3;2],则 a*c=
6. 与指令 a\b 等价的运算是
。
。
7. 语句 a(:,3)=[1 2 3 4]';b=size(a)+length(a);执行后 b=
。
8. 把一个图形显示在一个图像窗口的 m×n 个子图像中的第 p 个位置的命令是
9. 显示图像标题
e
cos
sin
的语句是(其中的用斜体显示)
。
。
10. 求函数
xe 在区间[0 1]上的零点,可以用一条命令
2
求。
11. MATLAB 中 Inf 或 inf 表示
、NaN 或 nan 表示
、
nargout 表示
12. MATLAB 预定义变量 ans 表示
nargin 表示
。
。
、eps 表示
、
13. MATLAB 中 clf 用于
、clc 用于
、
clear 用于
14. MATLAB 命令中清除命令窗口所有内容的是
15. 语句 c(2,3)=5 执行后,c=
16. 若 x=-3.1,则 round(x)的值为
。
。
17. 指令 b\a 执行的结果是
。
。
。
18. A=[0 1 1 0],B=[1 1 0 0],则 X=A&B 的显示结果为
19. 语句 a=[0 1+7];b=[a(2) 7 a];执行后 b=
。
20. 语句 a(:,3)=[1 2 3 4]';b=size(a)+length(a);执行后 b=
。
。
21. 把一个图形显示在一个图像窗口的 m×n 个子图像中的第 p 个位置的命令是
。
22. 求函数 cos(x)在区间[0 pi]上的零点,可以用一条语句
23.
title('\theta varies from 0\circ to 90\circ')语句显示的图像标题是
求解。
。
二、阅读程序并回答问题
- 1 -
1. 请写出下面程序执行后的结果。
for ii=1:3
for jj=3:5
if jj==4;
continue;
end
product=ii*jj;
fprintf('%d*%d=%d\n',ii,jj,product);
end
fprintf('End of inner loop!\n');
end
fprintf('End of outer loop!\n');
2. 请写出下面程序执行后的结果。
for ii=1:3
for jj=3:5
if jj==4;
break;
end
product=ii*jj;
fprintf('%d*%d=%d\n',ii,jj,product);
end
fprintf('End of inner loop!\n');
end
fprintf('End of outer loop!\n');
3. 请分别写出下列语句执行后 arr1 中的内容。
(1)arr1=[1 2 3 4;5 6 7 8;9 10 11 12];
mask=mod(arr1,2)==0;
arr1(mask)=-arr1(mask);
(2)arr1=[1 2 3 4;5 6 7 8;9 10 11 12];
arr2=arr1<=5;
- 2 -
arr1(arr2)=0;
arr1(~arr2)=arr1(~arr2).^2;
4. 写出下列指令运行结果。
A=zeros(2,4);
A(:)=1:8;
s=[2 3 5];
A(s)
Sa=[10 20 30]'
A(s)=Sa
5. 写出下列指令运行结果。
A=zeros(2,5)
A(:)=-4:5;
L=abs(A)>3
Islogical(L)
X=A(L)
6. 写出下列指令运行结果。
A=[1,2;3,4];
B=[-1,-2;2;1];
S=3;
A.*B
A*B
S.*A
S*B
7. 下面的函数主要完成什么功能?
function f=factor(n)
if n<=1
f=1;
else
- 3 -
f=factor(n-1)*n;
end
8. 写出下列程序的执行结果。
A=[1 2 3;4 5 6];B=[7 8 9;10 11 12];
try
C=A*B;
catch
C=A.*B;
end
C
9. 下面的程序完成功能是什么?
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;
10. 请产生一个 100*5 的矩阵,矩阵的每一行都是[1 2 3 4 5].
11. 写出能产生以下图形的代码:
- 4 -
12. 请修改下面的程序,让他们没有 for 循环语句!
A=[1 2 3; 4 5 6; 7 8 9];
[r c]=size(A);
for i=1:1:r
for j=1:1:c
if (A(i,j)>8 | A(i,j)<2)
A(i,j)=0;
end
end
end
13. 请分别写出下列循环执行的次数和最后 ires 的值。
(1) ires=1;
(2) ires=2;
(3) ires=2;
while mod(ires,10)~=0
ires=ires+1;
end
while ires<=200
ires=ires^2;
end
while ires>200
ires=ires^2;
end
- 5 -
三、改错题
1. 下面的语句用来判断一个人的体温是否处于危险状态(华氏温度),请找出错误并改正。
temp=input('Enter temperature:')
if temp<97.5
disp('Temperature below normal');
elseif temp>97.5
disp('Temperature normal');
elseif temp>99.5
disp('Temperature slightly high');
else temp>103.0
disp('Temperature dangerously high');
end
2. 下面的语句用来计算
tf
t
sin
0
0
当
sin
t
其他
在区间
66 ,
的值,请找出错误并改正。
for ii=-6*pi:pi/10:6*pi
if sin(ii)>0
res(ii)=sin(ii);
else
res(ii)=0;
end
3. 下面的语句用来判断电压的高低并给出提示信息,请找出错误并改正。
if volts>105
disp('Line voltage is within tolerances.');
if volts>125
disp('WARNING: High voltage on line.');
else
disp('WARNING: Low voltage on line.');
end
四、编程题
1. 编写 matlab 语句计算 ty 的值,t 从-9 到 9 每隔 0.5 取一次值;
- 6 -
tf
5
2
3
t
2
3
t
5
0
t
0
t
要求分别采用两种方法,即一种运用循环和选择语句;一种用向量算法,并用逻辑数组作为掩
膜。
2. 设计函数 runstats 计算平均值与标准差,要求被统计数据在提示下依次输入,动态计算,并具有
reset 功能。
3. 设计函数 deri 完成对 f(x)求导的功能,并画出 f(x)及其导函数的图形。
4. 创建一个函数的函数 quickplot,它能够画出任意的单一自变量 MATLAB 函数在指定范围内的
图像。
5. 在邮局发一个包裹,不超过两英磅的收费为 10 美元。超过两英磅每英磅按 3.75 美元来计费,
如果包裹的重量超过了 70 英磅,还要加收 10 美元的附加费。如果超过了 100 英磅则拒绝邮递。
编写一个程序,输入包裹的重量,输出它的邮费,拒绝邮递的要输出提示信息。
6. 编 写 一 个 程 序 允 许 使 用 者 输 入 一 个 字 符 串 , 这 个 字 符 必 须 是 一 个 星 期 中 的 某 一 天 ( 即
"Sunday","Monday","Tuesday"等),应用 switch 结构把这些字符串转化为相应的数字,以星期天
为第一天,以星期六为最后一天。如果输入不是这七个字符串中的一个,那么输出提示信息。
7. 设计函数 random0 产生均匀分布的随机数, 随机数的范围在[0,1)。当函数有一个输入参数 n
时,生成大小为 n n 的随机数组;当函数有两个输入参数 n,m 时,生成大小为 n m 的随机
数组;随机数利用公式 1 mod(8121
n
i
n
i
28411,134456)
生成,并设计函数 seed 产生随机
数的初始值 0n 。
8. 设计函数 runstats 计算平均值与标准差,要求被统计数据在提示下依次输入,动态计算,并具有
reset 功能。
9. 设计函数 deri 完成对 f(x)求导的功能,并画出 f(x)及其导函数的图形。再编写一个测试程序
test_deri,调用函数 deri 对
xf
2
x
2
x
5
在区间[0,5]进行求导运算
10. 在同一图上分别用红色实线和绿色虚线绘制 y1=sin(x)和 y2=cos(x)在区间[0,4*pi]的曲线,并
用星号*标出两条曲线的交点以及建立图例。
11. 分别在同一图形窗的不同子图绘制 y=sin(t)sin(9t)和 y=sin(t)sin(9t)及其包络线。
12. 某商场对顾客所购买的商品实行打折销售,标准如下(商品价格用 price 来表示):
price<200
200≤price<500
500≤price<1000
没有折扣
3%折扣
5%折扣
- 7 -
1000≤price<2500
2500≤price<5000
5000≤price
8%折扣
10%折扣
14%折扣
输入所售商品的价格,求其实际销售价格。
13. 编写程序实现 f(n)=f(n-1)+f(n-2)(f(1)=1 和 f(2)=2)函数。
14. 编写程序实现从键盘上输入不同的直角坐标,转换为极坐标。
15. 编写一个函数实现以下功能:a.若没有实参输入变量,则用蓝色实线画出半径为 1 的圆;b.若
有两个实参输入变量 N,则用蓝色实线画出外接半径为 1 的正 N 多边形;c.若有两个实参输入
变量 N,R,则用蓝色实线画出外接半径为 R 的正 N 多边形;d.若有三个实参输入变量 N,R,str,则
用 str 指定的线形颜色画出外接半径为 R 的正 N 多边形;e.若有一个实参输出变量,则给出多
边形面积 S;f.若有两个实参输出变量,则分别输出正多边形的面积 S 和周长 L。如果输入变量
多于 3 个或输出变量多于两个则给出错误提示信息。
- 8 -