编程练习题
1.有一组学生的考试成绩(见表),根据规定,成绩在100分时为满分,成绩在90-99之间时为优秀,成绩在80-89之间时为良好,成绩在60-79之间时为及格,成绩在60分以下为不及格,编制一个根据成绩划分等级的程序。
学生姓名王张刘李陈杨于黄郭赵
成绩 72 83 56 94 100 88 96 68 54 65
clc;clear;
A=['王','张','刘','李','陈','杨','于','黄','郭','赵';
72, 83, 56, 94, 100, 88, 96, 68, 54, 65];
B=[72, 83, 56, 94, 100, 88, 96, 68, 54, 65];
for i=1:10
index=A(2,i)/10;
switch floor(index)
case 10
disp([A(1,i),':']);disp(B(i));disp('满分');
case 9
disp([A(1,i),':']);disp(B(i));disp('优秀');
case 8
disp([A(1,i),':']);disp(B(i));disp('良好');
case {6,7}
disp([A(1,i),':']);disp(B(i));disp('及格');
case {0,1,2,3,4,5}
disp([A(1,i),':']);disp(B(i));disp('不及格');
otherwise
disp('invalid input');
end
end
2. 判断某一年是否为闰年。
算法为:
年数可以被4 整除为闰年。
年数被100 整除却不能被400 整除的为平年。
年数被100 整除也可以被400 整除的为闰年。
答案:
只需要掌握if else 用法;
3. 一个三位整数各位数字的立方和等于该数本身则称该数为水仙花数。试编写程序到并输出全部水仙花数。
解答:
clear;clc;
for i=100:999
a=mod(i,10);
b=mod(floor(i/10),10);
c=floor(i/100);
sum=a^3+b^3+c^3;
if i==sum
disp(i);
disp('是水仙花数');
end
end
4. 从键盘输入若干个数,当输入0 时结束输入,求这些数的平均值和它们之和。clear;clc;
i=1;
t=input('please input:');
while t~=0
n(i)=t;
t=input('please input:');
i=i+1;
end
disp('平均值:');
mean(n)
disp('和:')
sum(n)
5. 求[100,200]之间第一个能被21 整除的整数。
解答:
clear;clc;
i=100;
while i<201
if mod(i,21)==0
disp('第一个被21整除的数:');
disp(i);
i=200;
end
i=i+1;
end
6.若一个数等于它的各个真因子之和,则称该数为完数,如6=1+2+3,所以6 是完数。求[1,500]之间的全部完数。
解答:
clear;clc;
for i=1:500
sum=0;
j=1;
while j<=i/2
if mod(i,j)==0
sum=sum+j;
end
j=j+1;
end
if sum==i
disp(i);
disp('是完数');
end
end
7. 利用while 循环,求1+3+5+‥‥+99 的值。
这个比较简单就不解答了。
8.用if 与break 命令结合,停止while 循环,计算1+3+5+‥‥+100 的值,当和大于1000 时终止计算。
i=1;
sum=1;
while i<=99
i=i+2;
sum=sum+i;
if sum>1000
break;
end
end
disp('到');disp(i);
disp('和:');disp(sum);
9. 将if 命令与continue 命令结合,计算1~100 中所有素数的和。
解答:
clear;clc;
sum=0;
for i=2:100
for j=2:i-1
if mod(i,j)==0  %说明不是素数直接跳出
break;
end
end
if j~=i-1
matlab考试题库及答案continue;    end
sum=sum+i;
disp(i);
end
disp(sum);

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。