




已阅读5页,还剩13页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
编程题目历年竞赛题目及编程培训P(135至137)1.编写一个程序,要求输入五个整数,然后由小到大排序再输出%首先在MATLAB编辑器中建立如下程序并保存在文件名为t1中%然后在命令窗口定义 x 为所输入的5个整数的行向量形式,再输入 t1(x)function f=t1(x)for i=1:4for j=(i+1):5 if x(i)x(j) a=x(i); x(i)=x(j); x(j)=a; end endend disp(x)2.将一个整型数组的元素按逆序重新存放(如原序为:8,6,5,4改为:4,5,6,8)。%首先在MATLAB编辑器中建立如下程序并保存在文件名为t2中%然后在命令窗口定义 x 为所输入的数组,再输入 t2(x)function t2(x)s=length(x);a=fix(s/2);for i=1:a j=s-i+1; c=x(i); x(i)=x(j); x(j)=c;enddisp(x) 3.输入一个字符,如果是大写字母,则将其转换成小写并输出;若是小写则直接输出;若是非字母字符则打印:“Dataerror!”。%首先在MATLAB编辑器中建立如下程序并保存在文件名为t3中%然后在命令窗口直接输入 t3function t3()a=input(输入一个字符:string);%输入的形式为 x x为输入的字符if a=48 fprintf(“Dataerror!”n)elseif a=65 fprintf(%cn,a+32) elseif a=97 a end4.输入一个整数,写一程序输出它是几位数。%此程序可以计算一万位整数的位数%首先在MATLAB编辑器中建立如下程序并保存在文件名为t4中%然后在命令窗口直接输入 t4(x) x为所输入的整数function t4(x)i=0;for j=1:10000 x=abs(x/10); a=fix(x);if a0 i=i+1;end if a=0 i=i+1; break endenddisp(i)5.写一程序求1!+2!+10!%首先在MATLAB编辑器中建立如下程序并保存在文件名为t5中%然后在命令窗口直接输入t5function t5()j=1;s=0;for i=1:10 j=i*j; s=s+j;enddisp(s)6.从键盘上输入a与n的值,计算sum=a+aa+aaa+aaaa+(共n项)的和。例a=2,n=4,则sum=2+22+222+2222.%首先在MATLAB编辑器中建立如下程序并保存在文件名为t6中%然后在命令窗口直接输入 t6(a,n) a和n分别是一个数function t6(a,n)x=a;t=a;for i=1:(n-1) t=t+10i*a; sum=x+t;endsum 7.编程求数列1,1/2 ,1/3 ,1/4 ,1/5 ,的所有大于等于0.000001的数据项之和并输出结果%首先在MATLAB编辑器中建立如下程序并保存在文件名为t7中%然后在命令窗口直接输入 t7function t7()s=0;for c=1:100000 d=1/c; s=s+d;ends 8.求3*3矩阵的主对角线元素之和。%首先在MATLAB编辑器中建立如下程序并保存在文件名为t8中%然后在命令窗口直定义 x 为一个三行三列矩阵%最后输入 t8(x)function t8(x)s=0;for i=1:3; j=i; s=s+x(i,j);ends 9.从键盘输入的10个整数中,找出第一个能被7整除的数。若找到,打印此数后退出循环;若未找到,打印“not exist”。%首先在MATLAB编辑器中建立如下程序并保存在文件名为t9中%然后在命令窗口定义 x为输入的10个数的行向量形式%最后输入 t9(x)function t9(x)for i=1:10 a=x(i)/7; b=fix(a); if a-b=0 disp(x(i) break end if i=10 fprintf(not existn); endend10.设计一个用于计算个人所有税的程序。假设个人所得税的缴纳标准为:月收入少于等于800元者不纳税;超出800元的部分,纳税5%;超出2000元的部分,纳税10%;超出5000元的部分,纳税20%;超出10000元的部分,纳税30%;超出100000元的部分,纳税40%。%首先在MATLAB编辑器中建立如下程序并保存在文件名为t10中%然后在命令窗口直接输入 t10(x) x为月收入 function g=t10(x) b=90000*0.3; c=5000*0.2; d=3000*0.1; e=1200*0.05;if x=100000 a=(x-100000)*0.4; g=a+b+c+d+e;elseif x=10000 a=(x-10000)*0.3; g=a+c+d+e;elseif x=5000 a=(x-5000)*0.2; g=a+d+e;elseif x=2000 a=(x-2000)*0.1; g=a+e;elseif x=800 g=(x-800)*0.05;else g=0;endelseif x=5000 a=(x-5000)*0.2; g=a+d+e;elseif x=2000 a=(x-2000)*0.1; g=a+e;elseif x=800 g=(x-800)*0.05;else g=0;end11.编写一个程序,用循环结构输出以下图形。&%首先在MATLAB编辑器中建立如下程序并保存在文件名为t11中%然后在命令窗口直接输入 t11 function t11() for i=9:-2:1 for j=1:i fprintf(&) end fprintf(n); end12.编写一个程序求出1000以内的所有素数。%首先在MATLAB编辑器中建立如下程序并保存在文件名为t12中%然后在命令窗口直接输入 t12function t12()x=;for i=2:1000 t=1;j=0; for j=2:i-1 a=i/j-fix(i/j); if a=0 t=0; break end endif t0 x=x,i;endenddisp(x)13. 输入两个整型变量a,b的值,输出a+b,a-b,a*b,a/b,的结果,要求连同算式一起输出,每个算式占一行。例:a等于10,b等于5,a+b的结果输成 10+5=15%首先在MATLAB编辑器中建立如下程序并保存在文件名为t13中%然后在命令窗口直接输入 t13(a,b) a,b为要输入的两个整形变量function t13(a,b)c=a+b;d=a-b;e=a*b;f=a/b;fprintf(%d+%d=%dn%d-%d=%dn%d*%d=%dn%d/%d=%dn,a,b,c,a,b,d,a,b,e,a,b,f); 14. 求前驱字符和后继字符。输入一个字符,找出它的前驱字符和后继字符,并按ASCII码值,按从大到小的顺序输出这三个字符及其对应的ASCII码值。%首先在MATLAB编辑器中建立如下程序并保存在文件名为t14中%然后在命令窗口直接输入 t14(x) x为输入的字母function t14(x)if x=a x=z;else a=x-1;end if x=z x=a; else b=x+1; endfprintf(%c %d,%c %d,%c %d n,b,b,x,x,a,a);15. 输入三角形的边长,写一求三角形面积的函数。(面积=sqrt(s(s-a)(s-b)(s-c), s=(a+b+c)/2)%首先在MATLAB编辑器中建立如下程序并保存在文件名为t15中%然后在命令窗口直接输入 t15(a,b,c) a,b,c分别是三角形的边长function t15(a,b,c)s=(a+b+c)/2;d=sqrt(s*(s-a)*(s-b)*(s-c)fprintf(面积=%dn,d)16. 输入某个点A的平面坐标(x,y),判断(输出)A点是在圆内、圆外还是在圆周上,其中圆心坐标为(2,2),半径为1 。%首先在MATLAB编辑器中建立如下程序并保存在文件名为t16中%然后在命令窗口直接输入 t16(x,y) x,y为点A的横纵坐标function t16(x,y)a=(x-2)2;b=(y-2)2;c=sqrt(a+b);if c=1 fprintf(A点在圆上n)end if c1 fprintf(A点在圆外n) end if c= a&x(i)= A&x(i)= 0&x(i)0 g=1; break end end if g=1&k=1 fprintf(Yes!n);end if g=0|k=0 fprintf(No!n); end20. 设某县2000年工业总产值为200亿元,如果该县预计平均年工业总产值增长率为4.5%,那么多少年后该县年工业总产值将超500亿元?%首先在MATLAB编辑器中建立如下程序并保存在文件名为t20中%然后在命令窗口直接输入 t20function t20()sum=200;a=0;for i=1:1000 a=sum*0.045; sum=sum+a; if sum-200=300 break endendfprintf(%dn,i); 21. (1)输入一个三位数,判断是否是一个“水仙花数”。水仙花数是指三位数的各位数字的立方和等于这个三位数本身。例如: 153=1*1*1+5*5*5+3*3*3%首先在MATLAB编辑器中建立如下程序并保存在文件名为t211中%然后在命令窗口直接输入 t211(x) x为一个三位数function t211(x)y=x;a=mod(x,10);x=x/10;b=fix(mod(x,10);x=x/10;c=fix(x);if y=a*a*a+b*b*b+c*c*c fprintf( %d是水仙花数n,y)else fprintf( %d不是水仙花数n,y)end (2)一个整数等于该数所有因子之和,则称该数是一个完数。例如:6和28都是完数。因为:6=1+2+3,28=1+2+4+7+14. 输出三位数中所有完数。%首先在MATLAB编辑器中建立如下程序并保存在文件名为t212中%然后在命令窗口直接输入 t212function t212()for i=100:999 sum=0; for j=1:i-1 if mod(i,j)=0 sum=sum+j; end end if sum=i disp(sum) continueendend22. 输入10个数,将10个整数按生序排列输出,并且奇数在前,偶数在后。如果输入的10个数是:10 9 8 7 6 5 4 3 2 1 ,则输出:1 3 5 7 9 2 4 6 8 10。%首先在MATLAB编辑器中建立如下程序并保存在文件名为t22中%然后在命令窗口将需输入的10个数存入数组 x 中,%最后直接输入 t22(x)function t22(x)y=;d=;k=1;a=0;for i=1:10 if mod(x(i),2)=0 d(k)=x(i); k=k+1; endend t(d) k=1; for i=1:10 if mod(x(i),2)=0 d(k)=x(i); k=k+1; end end t(d) function t(d) ii=numel(d); for i=1:ii y(i)=d(i); endfor j=1:ii for r=1:ii-1 if y(r)y(r+1) t=y(r); y(r)=y(r+1); y(r+1)=t; end endendfprintf(%d ,y)23. 将数组an中的每一个元素依次循环向后移动一位。%首先在MATLAB编辑器中建立如下程序并保存在文件名为t23中%然后在命令窗口直接输入 t23function t23x=0;x=input(输入一个数组a,输入格式为a1 a2 a3 n,s);x=str2num(x);if x=0 t(x)else fprintf(Not input!);end function f=t(x)a=;k=0;b=numel(x);for i=1:b-1 a(i+1)=x(i); enda(1)=x(b);for j=1:benddisp(a)24. 将一个正整数n输出成“千分位”形式,即从个位数起,每三位之间加一个逗号,例如,将7654321输出成7,654,321.%首先在MATLAB编辑器中建立如下程序并保存在文件名为t24中%然后在命令窗口直接输入 t24function t24x=input(输入一个整数n,s);a=numel(x);x=str2num(x);b=ceil(a/3);for i=1:b a(i)=mod(x,1000); x=fix(x/1000);endfor j=b:-1:2 fprintf(%d,a(j);endfprintf(%d,a(1);fprintf(n);25. 求出矩阵a中每行元素的平均值和平均最大的行号。%首先在MATLAB编辑器中建立如下程序并保存在文件名为t25中%然后在命令窗口定义矩阵a为需要输入的矩阵,再输入 t25(a)function t25(a)m=;n=;max=0;k=0;p=;c=numel(a);m=a(1,:);b=numel(m);d=c/b;for i=1:d n(i)=sum(a(i,:);endfor i=1:d p(i)=n(i)/b; if n(i)max max=n(i); k=i; endendfprintf(每行元素的平均值为:n);for i=1:d fprintf(%d ,p(i);endfprintf(n);fprintf(平均值最大的行号为: %dn,k);26. 编写一个函数,找出矩阵A中最大元素和最小元素所在的行列号.%首先在MATLAB编辑器中建立如下程序并保存在文件名为t26中%然后在命令窗口将需要处理的矩阵存入 a 中%最后输入 t26(a)function t26(a)e=1;f=1;g=1;k=1;c=numel(a);m=a(1,:);b=numel(m);d=c/b;min1=a(1,1);max1=a(1,1);for i=1:d for j=1:b if max1=a(i,j) min1=a(i,j); g=i; k=j; end endendfprintf(最大元素所在的行列号为%d %dn,e,f);fprintf(最小元素所在的行列号为%d %dn,g,k);27. 给出年、月、日,计算该日是该年的第几天?%首先在MATLAB编辑器中建立如下程序并保存在文件名为t27中%然后在命令窗口将需要处理的年月日按 年 月 日 顺序存入数组x 中%最后输入 t27(x)function t27(x)a=0;if mod(x(1),4)=0&mod(x(1),100)=0|mod(x(1),400)=0 a=1;end tian=30*(x(2)-1)+x(3); for i=1:x(2)-1 if i=3|i=5|i=7|i=8|i=10 tian=tian+1; end endif x(2)=1|x(2)=2 if a=0 tian=tian-1; endend tian28. 输入数组a,b的元素,用数组a和b构造数组c,使得: c(i)=a(i)-b(i) 当a(i)b(i)时;c(i)= a(i)+b(i) 当a(i)b(i) c(i)=a(i)-b(i); elseif a(i)b*cans=41 6558 78a.*cans=20 1842 10 d=a(:),b(:),c(:)d=4 7 57 8 62 1 95 3 2 d(:) %转置符号“ ”ans =4 7 2 5 7 8 1 3 5 6 9 2 法2e1=cat(1,a(:),b(:),c(:) e2=e1 A=4 9 2;7 6 4;3 5 7;B=1 2 3;4 5 6;7 8 9;X=ABX=0.1043 0.1374 0.1706-0.1754 -0.0948 -0.01421.0806 1.1517 1.2227det(X) %计算矩阵行列式的值ans=-3.1825e-017eig(X) %计算特征值ans=1.33850.0000-0.1062x=0:0.02*pi:4*pi;%必须有时间域申明y1=sin(x);y2=cos(x);.plot(x,y1.*y2)x1=input(x1=); y1=input(y1=); z1=input(z1=); x2=input(x2=);.y2=input(y2=); z2=input(z2=); d=sqrt(x1-x2)2+(y1-y2)2+(z1-z2)2)x1=2y1=3z1=1x2=8y2=-5z2=-1d=10.1980 t=0:0.5:10;y1=exp(-0.1*t);y2=exp(-0.2*t);y3=exp(-0.5*t);.plot(t,y1,-.b,t,y2,-k,t,y3,:r) grid on,title(指数曲线) grid on,xlabel(t),ylabel(y) gtext(蓝色a=0.1 黑色a=0.2 红色a=0.5)%以鼠标取点方式标注3、求出任意矩阵a中每行元素的平均值和平均最大的行号。m=;n=;max=0;k=0;p=;a=input(请输入一个矩阵);d,b=size(a);for ii=1:d n(ii)=sum(a(ii,:);endfor ii=1:d p(ii)=n(ii)/b; if n(ii)max max=n(ii); k=ii; endendfprintf(每行元素的平均值为:n);for i=1:d fprintf(%4.3f ,p(ii);endfprintf(n);fprintf(平均值最大的行号为: %dn,k); 编写一个函数,找出任意矩阵A中最大元素和最小元素所在的行列号.e=1;f=1;g=1;k=1;a=input(请输入一个矩阵);d,b=size(a);min1=a(1,1);max1=a(1,1);for ii=1:d for jj=1:b if max1=a(ii,jj) min1=a(ii,jj); g=ii; k=jj; end endendfprintf(最大元素所在的行列号为%d %dn,e,f);fprintf(最小元素所在的行列号为%d %dn,g,k);飞船的运转半径。一个做匀速圆周运动的物体,其向心加速度公式为 . a代表向心加速度,单位为 m/s*s。v 代表物体运动的速率,单位为 m/s,,r 代表半径,单位为m. 假设这个物体是一个飞机,回答下列问题 :1、假设飞机的运动速度为0.85 马赫, 即声速的85%. 如果向心加速度2g, 那么飞机的半径为多少?2、假设飞行员能忍耐的最大加速度为7g. 那么以 1. 5 马赫飞行的最小半径为多少?3、画出以向心加速度为自变量的半径函数, 向心加速度的取值为2g,6g, 假设运转速度为 0.85 马赫 .程序:1.% Define variables:% g - Max acceleration (g)% grav - Acceleration of gravity (9.81 m/s2)% mach1 - Speed of sound (340 m/s)% radius - Turning radius (m)% speed - Aircraft speed in Mach% Initialise valuesgrav = 9.81;mach1 = 340;% Get speed and max gspeed = input(Enter speed (Mach): );g = input(Enter max acceleration (g): );% Calculate radiusradius = (speed * mach1). 2 / ( g * grav );% Tell userfprintf(Turning radius = %f mn,radius); 2.% max_speed - Maximum speed in Mach numbers% min_speed - Minimum speed in Mach numbers% radius - Turning radius (m)% speed - Aircraft speed in Mach % Initialise valuesgrav = 9.81;mach1 = 340;% Get speed and max gmin_speed = input(Enter min speed (Mach): );max_speed = input(Enter min speed (Mach): );g = input(Enter max acceleration (g): );% Calculate range of speedsspeed = min_speed:(max_speed-min_speed)/20:max_speed; % Calculate radiusradius = (speed * mach1). 2 / ( g * grav );% Plot the turning radius versus speedplot(speed,radius/1000);title(Plot of turning radius versus speed);xlabel(Speed (Mach);ylabel(Turning radius (km);grid on; 3.% max_g - Maximum accleration in gs% min_g - Minimum accleration in gs% radius - Turning radius (m)% speed - Aircraft speed in Mach% Initialise valuesgrav = 9.81;mach1 = 340;% Get speed and max gspeed = input(Enter speed (Mach): );min_g = input(Enter min acceleration (g): );max_g = input(Enter min acceleration (g): );% Calculate range of accelerationsg = min_g:(max_g-min_g)/20:max_g;% Calculate radiusradius = (speed * mach1). 2 ./ ( g * grav );% Plot the turning radius versus speedplot(g,radius/1000);title(Plot of turning radius versus acceleration);xlabel(Centripetal acceleration (g);ylabel(Turning radius (km);grid on;Decibels. Engineers often measure the ratio of two power measurements in decibels, or dB. The equation for the ratio of two power measurements in decibels is Where P2 is the power level being measured, and P1 is some reference power level.A. Assume that the reference power level P1 is 1 milliwatt, and write a program that accepts an input power P2 and converts it into dB with respect to 1 mW reference level.(Engineers have a special unit for dB power levels with respect to a 1 mW reference: dBm). Use good programming practices in your program.B. Write a program that creates a plot of power in watts versus power in dBm with respect to a 1 mW reference level. Create both a linear xy plot and a log-linear xy plot.程序1:% Script file: decibel.m% Define variables:% dBm - Power in dBm% pin - Power in watts % Prompt the user for the input power.pin = input(Enter the power in watts: ); % Calculate dBmdBm = 10 * log10( pin / 1.0e-3 ); % Tell userdisp (Power = num2str(dBm) dBm);程序2:% Define variables:% dBm - Power in dBm% pin - Power in watts % Create array of power in wattspin = 1:2:100; % Calculate power in dBmdBm = 10 * log10( pin / 1.0e-3 ); % Plot on linear scalefigure(1);plot(dBm,pin);title(Plot of power in watts vs power in dBm);xlabel(Power (dBm);ylabel(Power (watts);grid on; % Plot on semilog scalefigure(2);semilogy(dBm,pin);title(Plot of power in watts vs power in dBm);xlabel(Power (dBm);ylabel(Power (watts);grid on;Current Through a Diode. (Suggestion: you had better use the function file )Figure. A semiconductor diode.The current flowing through the semiconductor diode(半导体二极管) shown in Figure is given by the equation Where = the voltage across the diode, in volts = the current flow through the diode ,in amps = the leakage current of the diode, in amps.q = the charge on an electron, 1.60210-19coulombs(库仑) k = Boltzmanns constant, 1.3810-23joule/kT = temperature, in kelvins (K)The leakage current I0 of the diode is 2.0uA (Hint:210-6A). Write a program to calculate the current flowing through this diode for all voltages from -1.0 V to +0.6V, in 0.1Vsteps. Repeat this process for the following temperatures: 750F, 1000F and 1250F. Create a plot of the current as a function of applied voltage, with the curves for three different temperatures appearing as different colors.(Hint:The formula for the conversion from temperature in degrees Fahrenheit to absolute temperature in kelvins: )% Define variables:% i0 - Le
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024秋三年级英语上册 Unit 5 Let's eat课时4 Let's talk Let's play教学设计 人教PEP
- 三年级英语下册 Unit 1 School Subjects Lesson 2 教学设计1 人教新起点
- 14《有趣的冰箱贴》(教学设计)-2024-2025学年人美版(北京)(2024)美术一年级下册
- 物资采购双方协议书7篇
- 2024-2025学年高中化学 第四单元 化学与技术的发展 4.2 表面活性剂 精细化工品教学设计 新人教版选修2
- 进修医生规范操作
- 9《这些是大家的》(教学设计)-2024-2025学年统编版道德与法治二年级上册
- 2024-2025学年高中物理 第10章 热力学定律 2 热和内能教学设计 新人教版选修3-3
- 2024秋八年级道德与法治上册 第一单元 在集体中 第一课 大家之家教学设计 教科版
- 17 《松鼠》 (教学设计)2024-2025学年-统编版语文五年级上册
- 学术论文的撰写方法与规范课件
- 勇敢面对挫折和困难课件
- 徐士良《计算机软件技术基础》(第4版)笔记和课后习题详解
- 房屋建造过程课件
- 坯布检验标准及检验规范
- 带压堵漏、带压开孔作业安全管理制度
- (新教材)教科版二年级上册科学 1.2 土壤 动植物的乐园 教学课件
- 采用冷却塔变流量的中央空调冷却水系统能效分解
- 航空航天技术概论
- 篮球比赛记录表(上下半场)
- 毕业设计-太平哨水利枢纽引水式水电站设计
评论
0/150
提交评论