1. 单选题(1.0分)难度:易
得分:1.0分
下列程序的输出结果是( )
y=20;
if y==30
y=y*2;
elseif y>0
y=10;
end
disp(y)
A.
1
B.
30
C.
10
D.
60
回答正确
参考答案C
试题解析
因为y=20,不满足y==30,所以不运行 y=y*2;又y=20,满足y>0,所以运行y=10,最后结果是y=10;
2. 单选题(1.0分)难度:易
得分:1.0分
下列程序的输出结果是( )
a=6;
switch a
case {3, 4}
disp('ok')
case {1,2}
disp('perfect')
otherwise
disp('no')
end
A.
ok
B.
perfect
C.
no
D.
无显示
回答正确
参考答案C
试题解析
a=6不在集合{1,2,3,4}中,所以执行otherwise后面的语句,选C
3. 单选题(1.0分)难度:易
得分:1.0分
clear all;
for k=2:2:13
k
end
扏行该程,k的值被取的次数为( )
A.
0
B.
6
C.
13
D.
1
回答正确
参考答案B
试题解析
k=2:2:13,其中结果为:2,4,6,8,10,12,共6个数
4. 单选题(1.0分)难度:易
得分:1.0分
退出循环之后,k的值为( )。
for k=1:3:11
end
k
A.
7
B.
10
C.
11
D.
13
回答正确
参考答案B
试题解析
k=1:3:11的值为1, 4,7,10,当运行到k=1,按要求加3,超过了11,不满足条件,所以停止这个加法操作,k的值仍然是10.也就是说遇到逻辑结果为0,则此操作不进行
5. 单选题(1.0分)难度:易
得分:1.0分
设有程序段:
k=10;
while k
k=k-1
end
则下面描述中正确的是( )
A.
while循环执行10次
B.
循环是无限循环
C.
循环体语句一次也不执行
D.
循环体语句执行一次
回答正确
参考答案A
试题解析
当k=10时,逻辑值是1,所以执行语句k=k-1,k的值为9.然后再次判断逻辑值,直到k=1时,逻辑值是1,执行语句,k=0.再次判断时,逻辑值是0,结束循环体。从10到1共执行了10次
6. 单选题(1.0分)难度:易
得分:1.0分
下列程序的输出结果是( )
clear all;
s=0;
for i=1:10
if mod(i,2)==0
continue
end
if mod(i,7)==0
break
end
s=s+i;
end
disp(s)
A.
3
B.
9
C.
10
D.
7
回答正确
参考答案B
试题解析
当i=1时,s=1;
当i=2时,s=1;
当i=3时,s=4;
当i=4时,s=4;
当i=5时,s=9;
当i=6时,s=9;
当i=7时,退出循环,s=9;
7. 单选题(1.0分)难度:易
得分:1.0分
定义了一个函数文件fsum.m:
function s=fsum(n)
if n<=1
s=1;
else
s=fsum(n-1)+n;
end
在命令行窗口调用fsum函数的结果为( )
>> fsum(5)
A.
15
B.
5
C.
14
D.
10
回答正确
参考答案A
试题解析
当n=5时,执行else语句fsum(5)=fsum(4)+5;
计算机会递归,计算fsum(4),当n=4时,执行else语句fsum(4)=fsum(3)+4;
计算机会递归,计算fsum(3),当n=3时,执行else语句fsum(3)=fsum(2)+3;
计算机会递归,计算fsum(2),当n=2时,执行else语句fsum(2)=fsum(1)+2;
计算机会递归,计算fsum(1),当n=1时,执行fsum(1)=1;
从而fsum(5)=1+2+3+4+5=15
8. 多选题(1.0分)难度:易
得分:1.0分
求分段函数的值,正确的程序是( )
A.
x=input('x=:');
y=(x+10)*(x>0)+(x-10)*(x<=0);
disp(y)
B.
x=input('x=:');
y=x+10;
if x<=0
y=x-10;
end
disp(y)
C.
x=input('x=:');
if x>0
y=x+10;
else
y=x-10;
end
disp(y)
D.
x=input('x=:');
if x>0
y=x+10;
elseif x<=0
y=x-10;
end
disp(y)
回答正确
参考答案A.B.C.D.
试题解析
9. 单选题(1.0分)难度:易
得分:1.0分
执行下列语句后,变量A的值是( )
>> f=@(x,y) 2*(x+y);
>> A=f(2,3);
A.
2,3
B.
3
C.
10
D.
5
回答正确
参考答案C
试题解析
x=2,y=3,代入可得f=10
10. 简答题(10.0分)难度:易
得分:5.0分
编写m函数文件,对于输入的向量x=(-2,12,4.5,-7,0.3,-0.8,-20), 计算由下列分段函数值构成的向量(主程序与M函数区分),并写出结果。解答要求:程序在Matlab软件中运行成功后,再将代码复制过来。
我的答案
fxx
function fx=fun2(x)
if x<-1
fx=2*x+3;
elseif -1<=x && x<1
fx=sin(x)+exp(x);
else
fx=log(sqrt(x^2+2));
end
end
参考答案
主程序:
clear all;clc
fun=@fun2;
x=[-2,12,4.5,-7,0.3,-0.8,-20];
n=length(x);
for i=1:n
fxx(i)=fun(x(i));
end
fxx
fun2.m函数文件:
function fx=fun2(x)%数
if x<-1
fx=2*x+3;
elseif -1<=x & x<1
fx=sin(x)+exp(x);
else
fx=log(sqrt(x^2+2));
end
end
结果:
fxx =
-1.0000 2.4918 1.5512 -11.0000 1.6454 -0.2680 -37.0000
试题解析