2.1 程序设计【选择题】

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分

求分段函数的值,正确的程序是(      )

742959e5c07106cffcdebd1212133f84.png

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软件中运行成功后,再将代码复制过来。

16f6dfcaed1819728e7a61df04e0f075.png

 

我的答案

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

试题解析

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值