第一篇:改错编程题
实验二 VC++流程控制语句
(一)二 程序设计题
1、编写程序,输入一个不多于5位的整数,求出它是几位数,并分别打印出每一位数字,再按逆序打印出各位数字。
2、编写程序,输入三角形三边a、b、c,判断a、b、c能否构成三角形。若能,则判断组成的是等腰、等边、直角还是一般三角形;若不能,则输出相应的信息。
1、参考程序 方法一:
#include
int m,a,b,c,d,e;cout<<“输入一个不多于5位的数字:”;cin>>m;a=m%10;//个位 b=m/10%10;//十位 c=m/100%10;//百位 d=m/1000%10;//千位 e=m/10000;//万位
if(e!=0)cout<
个
5位
数,”<<“
逆
序
各
位
数
字
else if(d!=0)cout<
else if(c!=0)cout<
3位数,”<<“逆序各位数字是位数,”<<“逆序各位数字是2位数,”<<“逆序各位数字是”<
else if(b!=0)cout<
else cout<
} //当输入数字是012时,其实输入的是八进制数,对应的十进制是10。
方法二:
#include
int a,b,c;//b表示所输入数的位数
cout<<“请输入一个不多于5位数的正整数:”;cin>>a;cout<<“从个位到万位分别为:”;if(a==0)cout<
for(b=0;a;b++)
{
c=a%10;
cout<<'t'<
a=a/10;
}
cout<<“ 共”<
} }
2、参考程序 #include
} int a,b,c;cout<<“输入三边的长:”;cin>>a>>b>>c;if(a+b>c&& a-b
if(a==b&&b==c&&c==a)//错误的a==b==c cout<<“能构成等边三角形”<<'n';else if(a==b||a==c||b==c)
cout<<“能构成等腰三角形”<<'n';
else if(a*a+b*b==c*c||a*a+c*c==b*b||c*c+b*b==a*a)
cout<<“能构成直角三角形”<<'n';
else
cout<<“能构成一般角形”<<'n';} else cout<<“不能构成三角形”<<'n';实验二 VC++流程控制语句
(二)1、从键盘输入整数n,求n的阶乘。
2、从键盘输入若干个实数,以输入0结束。设计一程序,分别统计正数的个数和负数的个数,并求出正数之和、负数之和及总平均值
3、设计一个程序,求出满足以下条件的最小n值和s值:
s=1+2+3……….+n, 且s>=600
4、用二分法解方程f(x)=0的具体算法如下:
(1)输入x1,x2,直至f(x1)与f(x2)异号,说明方程在x1、x2之间有解。
(2)求x1和x2的中点x0.(3)如果f(x0)与f(x1)同号,表明方程的解在x0与x2之间,用x0取代x1;否则方程的解在x0与x1之间,用x0取代x2.(4)如果f(x0)的值足够小,则方程的近似解为x0;否则重复执行步骤(2)、(3)、(4),直至f(x0)足够小。
(5)输出方程的解x0.2要求用二分法求解方程x+4x-4=0.参考程序:
1、#include
}
2、#include
cin>>a;while(a){
if(a>0){ m++;s1+=a;} else{ n++;s2+=a;int i=1,n;long int s=1;cout<<“请输入一个整数:”;cin>>n;while(i<=n){ s*=i;i++;} cout<<“n!=”<>a;} cout<<“n正数有”<
cout<<“n正数之和为:”<
3、cout<<“n总的平均为:”<<(s1+s2)/(m+n)<<'n';#include
++n;} s+=n;cout<<“n=”<
4、#include
} float x0,x1,x2;double y0,y1,y2;do{ cout<<“请输入方程的两个初始区间值:”;cin>>x1>>x2;y1=x1*x1+4*x1-4;y2=x2*x2+4*x2-4;}while(y1*y2>0);
x0=(x1+x2)/2;y0=x0*x0+4*x0-4;do{ if(y0*y1>0){x1=x0;y1=y0;} else {x2=x0;y2=y0;}//可以不要y2=y0;x0=(x1+x2)/2;y0=x0*x0+4*x0-4;}while(fabs(y0)>1e-5);cout<<“方程x^2+4x-4=0的解为”<
(三)二、改错题 答案:
增加 #include
j=sqrt(i);修改为: int j=sqrt(i);if(i%n=0)break;修改为:if(i%n==0)break;if(k/5=0)cout<<'n';修改为:if(k%5==0)cout<<'n';
三、编程设计题
1、设计一个程序,输出所有的水仙花数。所谓水仙化数是一个三为数,其各位数字的立方和等于该数本身。列如153是一个水仙化数。水仙花数的算法分析:
1)用穷举法对100~999之间的每个数验证,验证公式为:x=h*h*h+d*d*d+n*n*n 2)分解一个3位数x的百位、十位和个位。
2、求出1000以内所有完全数,并输出。例如6就是一个完全数,6的因数共有4个:1、2、3、6,除了6自身这个因数外,其他的3个因数都是它的真因数,把6的所有真因数都加起来,正好等于6这个自然数本身。具有这种性质的自然数叫做完全数。
参考程序:
1、#include
int x,h,d,n;cout<<“水仙花数为:”;for(int i=100;i<1000;i++){
h=i/100;d=i/10%10;n=i%10;x=h*h*h+d*d*d+n*n*n;if(i==x)cout<
2、#include
} int s;for(int i=1;i<=1000;i++){
} s=0;for(int j=1;j<=i/2;j++)if(i%j==0)
s+=j;if(s==i)cout<
实验三 函数与编译预处理(一)
三、改错题
答案:
增加#include
四、编程设计题
1、设计一程序,计算组合数:C(m,r)=m!/(r!*(m-r)!),其中m,r为正整数,且m>r.分别求出C(4,2).C(6,4).C(8,7)的组合数。求阶乘和组合数须用函数来实现。
2、阿克曼函数定义如下,其中m、n为正整数,设计一个程序,分别求出Acm(3,2)和Acm(2,2)的值。
m0n1Acm(m,n)Acm(m1,1)n0
Acm(m1,Acm(m,n1))n0,m0参考程序:
1、#include
} if(m<=r){ cout<<“m必须大于r!”<<'n';exit(1);} c=jc(m)/(jc(r)*jc(m-r));return c;
void main(void){
}
2、#include
} if(n==0)return Acm(m-1,1);if(n>0&&m>0){ c=Acm(m,n-1);return Acm(m-1,c);}
void main(){
} int m,n;cout<<“Acm(5,3)=”<
实验三 函数与编译预处理(二)
三、改错题 答案:
在main()的上面增加语句int gys(int x,int y);return y;修改为:return x;
三、编程设计题
1、设计一程序,将求两个实数的最大值函数放在头文件myfun.h中,在源程序文件mypro.cpp中包含该头文件,并实现输入三个实数,求最大值。
2、设计一程序,定义重载函数area,分别求圆和长方形的面积。
3、用递归法将一个整数n转换成字符串。例如,输入整数567,应输出字符串“567”。n的位数不确定,可以是任意的整数。参考程序:
1、//myfun.h float max(float x, float y){
float z;if(x>y)z= x;else z=y;return z;} //mypro.cpp #include
cout<<“最大值为:”<< max(max(a,b),c)<<'n';}
2、#include
3、#include
} int a,b;a=n%10;b=n/10;if(b)fun(b);cout<
int m;
} cin>>m;cout<<“转换后的字符串为:”“;fun(m);cout<<”“"<
实验四 数组的应用
(一)一、程序设计题
1、定义一个10个整数的数组,从键盘输入数据,设计一程序,找出其中最大的偶数和最大的奇数(若设有奇数时,输出“没有奇数!”,若没有偶数,输出“没有偶数!”)。
2、输入一组非0整数(以输入0作为输入结束标志)到一维数组中。设计一程序,求出这一组数的平均值,并分别统计出这一组数中正数和负数的个数。参考程序:
1、#include
int max1,max2,j=0,k=0,m,n,t;cout<<”请输入10个整数:“;for(int i=0;i<10;i++)cin>>a[i];for(i=0;i<10;i++){
if(a[i]%2){ b[j++]=a[i];n=j;} else { c[k++]=a[i];m=k;} } if(j==0)cout<<”没有奇数。“;else {
max1=b[0];cout<<”输入的奇数有:“;for(i=0;i
for(i=0;i
2、#include
} int,j=0,k=0,t;float avg,s=0;cout<<”请输入一组整数(0结束):“;int i=0;do{ cin>>a[i];s+=a[i];i++;}while(a[i-1]);t=i-1;cout<<”共输入“<
实验四 数组的应用
(二)四、编程题
1、设计一程序,用cin.getline()将一个字符串输入到字符数组s(char s[200])中,删除字符串的所有空格后输出。参考程序 //方法一:
#include
}
//法二: #include
void main(){ char s[200];int i=0;cout<<”请输入字符串(回车结束):“;
cin.getline(s,200);cout<<”s=“<
第二篇:编程题总结
大家必须掌握每种类型的1-3题。
题号考点要求
48、将两个两位数的整数合并成一个整数
65、两个正整数合并成一个整数
71、两个正整数合并成一个整数
77、两个正整数合并成一个整数
81、两个正整数合并成一个整数
84、两个正整数合并成一个整数
87、两个正整数合并成一个整数
91、两个正整数合并成一个整数
8、s=1+1/(1+2)+1/(1+2+3)+...+1/(1+2+3+.....+n)
9、p=m!/(n!*(m-n)!)
26、连加
68、s=1+1/1!+1/2!+1/3!+........70、s=1/(1*2)+1/(2*3)+...+1/(n*(n+1))
76、s=1+0.5*x+(0.5*(0.5-1)*x*x/2!+......86、连加
90、连加
92、连加
93、连加
97、连加
100、连加
(2、)
类似素数或者闰年算法
2、求出1到1000之间能被7或11整除、但不能同时被7和11整除的所有整数,并将他们放在a所指的数组中,通过n返回这些数的个数。
58、求n以内同时能被3与7整除的所有自然数之和的平方根s3、求出能整除x且不是偶数的各整数,并按从小到大的顺序放在pp所指的数组中,这些除数的个数通过形参n返回。
27、求出1到m之间能被7或11整除的整数,放在数组中,通过n返回这些数的个数
63、求n的所有因子(不包括1与自身)
98、计算n以内能被5或9整除的所有自然数的倒数之和
15、w是大于10的无符号整数,若w是n(n>=2)位的整数,则函数求出w的后n-1位的数作为函数值返回。
24、将数字字符串转化为一个整数
16、对变量中的值保留两位小数,对第三位四舍五入
(3、)
1、一维数组中,将低于平均分的人数作为函数值返回,低于平均分的分数放在below所指的数组中。
82、计算一维数组中n门课程的平均分
96、一维数组中每相邻元素之平均值的平方根之和
28、找出一维数组中最大的值和它所在的下标,两者通过形参返回
7、求出数组的最大元素在数组中下标并存放在k所指的存贮单元中。
43、从num个字符串中找出最长的一个字符串,并通过形参指针传回
39、移动数组中的内容,前p个数移动到数组后面
40、移动数组中的内容,前m个字符移动到后面
5、将大于整数m且紧靠m的k个素数存入xx所指的数组中。
20、求出小于变量m的所有素数并放在一个数组中
51、将大于1小于m的非素数存入xx所指数组中,个数通过形参返回
99、计算3到n之间所有素数的平方根之和
29、将字符串中下标为奇数位置上的字母转化为大写
47、字符串中所有下标为奇数的字母转为大写
31、将字符串中除了下标为偶数、同时ASCII码也为偶数的字符外,其余的全都删除;串中剩余字符放在t字符串中
32、除了下标为奇数、同时ASCII码也为奇数的字符外,其余的全都删除;串中剩余字符放在t字符串中
49、将字符串中下标为偶数且ASCII码为奇数的字符删除
19、从字符串中删除指定字符
64、将字符串中ASCII值为奇数的字符删除,剩余字符放在t所指字符串中
72、将字符串中下标为偶数的字符删除
78、字符串中ASCII为偶数的字符删除
35、删除字符串中所有空格
6、删除一个字符串中指定下标的字符。
60、删去一维有序数组中所有相同的数,使之只剩一个
33、删除字符串中尾部*号,使不超过n个
36、把字符串中的前导*号全部移到字符串尾部
45、删除字符串中前导和尾部的*号
56、字符串中,除了尾部*号外,字符串中其余*号全部删除
73、删除字符串中除了前导和尾部*号外的所有*号
83、字符串中尾部*号删除
88、字符串中除了前导*外,删除其余*号
94、字符串中,前导*号全部删除
95、字符串中前导*号不得多于n个
66、删除字符串中所有*号
(4、)
17、字符串内容逆置
23、判断字符串是否为回文
25、比较两个字符串的长度(不能用strlen)
52、实现两个字符串连接
59、将字符串数组中的字符串依次合并到一个字符串中
21、字符串中字符按降序排列(选择法排序)
4、统计在tt字符串中“a”到“z”26个字母各自出现的次数,并依次放在pp所指数组中。
38、求出字符串中指定字符的个数
44、统计长度为2的字符串在另一个字符串出现的次数
62、统计一行字符串中单词个数
11、二维数组构成矩阵,使数组左下半三角元素中的值全部置成042、二维数组,将右上半角元素中的值乘以m80、二维数组中左下半三角中元素中的值乘以312、求出数组周边元素的平均值
14、求出二维数组周边元素之和
18、矩阵行列互换
53、矩阵B=A+A130、求出二维数组中最大元素的值,此值返回给调用函数
55、M行N列的二维数组中的数据,按行的顺序依次放到一维数组中
41、将二维数组中的字符,按列的顺序依次放到一个字符串中
75、二维数组中数按列的顺序放到一维数组中
13、求出二维数组每列中最小元素,并依次放在pp所指一维数组中
37、结构体数组(学号、8门成绩、平均成绩),求出每个学生的平均成绩
34、把结构体数组(学号、成绩)中分数最高的学生放到h数组中,函数返回人数
74、把结构体数组(学号、成绩)中分数最低的学生数据放在h所指数组中
50、结构体数组(学号、成绩),找出成绩最高的学生记录,通过形参返回
54、结构体数组(学号、成绩),低于平均分的学生数据放在b所指数组中
89、结构体数组(学号、成绩),高于等于平均分的学生人数通过形参返回
57、结构体数组(学号、姓名),把指定范围内的学生数据放在所指数组中
67、结构体数组(学号、成绩)返回指定学号的学生数据(查找)
46、结构体数组(学号、成绩),按分数降序排列(选择法排序)
22、链表结构中,找出数值最大的结点,并由函数值返回
85、链表中,求出平均成绩
10、迭代法求方程的实根
61、统计各年龄段人数(建议采用if else)
69、递归函数
第三篇:MATLAB 编程题总结
MATLAB 编程题总结
LY 1.输出x,y两个中值较大的一个值。
x=input('x=');y=input('y=');if x>y x else y end 2.输入x,计算y的值。计算函数的值yx1,x0
2x1,x0x=input('x=');if x<0 y=x+1 else y=2*x-1 End 3.输入一学生成绩,评定其等级。方法是:90~100分为“优秀”,80~89分为“良好”,70~79分为“中等”,60~69分为“及格”,60分以为“不合格”
x=input('x=');if x>100 | x<0 y='输入错误' elseif x>=90 y='优秀' elseif x>=80 y='良好' elseif x>=70 y='中等'
elseif x>=60 y='及格' else
y='不合格' end
4.某购物超市节日期间举办购物打折扣的促销活动,优惠办法是:每位顾客当天一次性购物在100元以上者,按九五折优惠;在200元以上者,按九折优惠;在300元以上者,按八五折优惠;在500元以上者,按八折优惠。则可以根据顾客购物款数计算出优惠价。
x=input('x=');if x>=500
y=x*0.8 elseif x>=300 y=x*0.85 elseif x>=200 y=x*0.9 else
y=x*0.95 end
5.编程计算:S=1+2+3+„+100
sum=0;
for i=1:100 sum=sum+i;end sum
6.计算1~100的奇数和.sum=0;
for i=1:2:100 sum=sum+i;end Sum 或
sum=0;
for i=1:100
if mod(i,2)==1 sum=sum+i;end
end sum
7.百元买百鸡问题。假定小鸡每只5角,公鸡每只2元,母鸡每只3元。现在有100元钱要求买100只鸡,编程列出所有可能的购鸡方案。
设母鸡、公鸡、小鸡各为x、y、z只,根据题目要求,列出方程为:
x+y+z=100 3x+2y+0.5z=100
三个未知数,两个方程,此题有若干个解。
for x=1:33
for y=1:50
for z=1:200
if x+y+z==100 & 3*x+2*y+0.5*z==100 [x,y,z] end end end end
8.我国有13亿人口,按人口年增长0.8%计算,多少年后我国人口超过26亿。分析:解此问题两种方法,可根据公式:26=13*(1+0.008)n
LiYang
第 1 页 / 共 6 页
MATLAB 编程题总结
LY n=1;m=13;while m<26 m=m*(1+0.008);n=n+1;end n 9.求水仙花数,水仙花数是指一个 n 位数(n≥3),它的每个位上的数字的 n 次幂之和等于它本身。(例如:1^3 + 5^3 + 3^3 = 153)(求出1000以内)
for i=100:999 a(1)=fix(i/100);a(2)=fix((i-a(1)*100)/10);a(3)=i-a(1)*100-a(2)*10;if a(1)^3+a(2)^3+a(3)^3==i i end end 10.鸡兔同笼问题:鸡和兔子关在一个笼子里,已知共有头36个,脚100个,求笼内关了多少只兔子和多少只鸡?
for i=1:50 for j=1:36 if i+j==36&i*2+j*4==100 [i,j] end end end 1.用matlab编程求算式xyz+yzz=532中x,y,z的值(其中xyz和yzz分别表
示一个三位数)。
for x=1:9
for y=1:9 for z=1:9
i=100*x+10*y+z+100*y+10*z+z;
if i==532 [x,y,z] end end end end
2.用matlab编程完成用一元人民币换成一分、两分、五分的所有兑换方案(即输出所有的组合方式)。
for i=0:20
for j=0:50
k=100-i*5-j*2;if(k>=0)[i,j,k] end end end
3.有1020个西瓜,第一天卖一半多两个,以后每天卖剩下的一半多两个,问几天后可以卖完,请用matlab编程计算。
day=0;x1=1020 while(x1)
x2=x1/2-2;x1=x2;
day=day+1;
end day
4.有一堆零件(100到200之间),如果分成4个零件一组的,则多2个零件;若分成7个零件一组的,则多3个零件;若分成9个零件一组的,则多5个零件。用matlab编程求这堆零件总数。
for i=100:200
if(mod(i-2,4)==0)
if(mod(i-3,7)==0)
if(mod(i-5,9)==0)i end end end end
5.编写程序,求1000至9999之间的回文数.回文数是指正读与反读都一样的数,如1221.for i=1000:1000:9999 for j=0:9
n=i+j*100+j*10+i/1000 end 6.作函数
yend sin(x),x[0,2]的图象,用蓝色五角星表示点。
x=0:pi/10:2pi;y=sin(x);
plot(x,y,’b-p’);
LiYang
第 2 页 / 共 6 页
MATLAB 编程题总结
LY 1: 编写M函数 32fx2xx6.3, x20.05x3.14计算f(1)f(2)f2(3)
function y= fun1(x)y=(x^36.3)/(x^2 + 0.05*x-3.14);fun1(1)*fun1(2)+fun1(3)*fun1(3)ans =-12.6023 2:编写M函数x1,x2f(x)3x,2x84x5,8x20,cosxsinx,x20计算f(0.1),f(1),f(9),f(22),f(2)
function y=fff(x)if x<2 y=x+1;elseif x>=2 & x<=8 y=3*x;elseif x>8 & x<=20 y=4*x-5;else y=cos(x)+sin(x);end 3:根据pi*pi/6=1/1^2+1/2^2+1/3^2+„„+1/n^2,求pi的近似值。当n分别取100,1000,10000时,结果是多少?
y=0;n=100;
for i=1:n y=y+1/i/i;end y y =
1.6350 pi=sqrt(6*y)pi =
3.1321 y=0;n=1000;for i=1:n y=y+1/i/i;end y y =
1.6439 pi=sqrt(6*y)pi =
3.1406 y=0;n=10000;for i=1:n y=y+1/i/i;end y y =
1.6448 pi=sqrt(6*y)pi =
3.1415(2)y=0;n=8;
y=1./2*n-1;y y=
4:编程求[100,200]之间第一个能被21整除的整数。
for n=100:200 if rem(n,21)~=0 continue end break end
n
5:编写函数文件求半径为r的圆的面积和周长。
function [s,p]=fcircle(r)s=pi*r*r;p=2*pi*r;
6:根据y=1+11,求: 3152n-1(1)y<3时的最大n值。(2)与(1)的n值对应的y值。
y=1;n=1;while(y<3)n=n+2;y=y+1/n;
end
y=y-1/n n=(n+1)/2 运行结果: y =
2.9944
n =
LiYang
第 3 页 / 共 6 页
MATLAB 编程题总结
LY 57 7: 已知f11,n1f20,n2f31,n3
fnfn12fn2fn3,n3求f中:
1~f100最大值、最小值、各数之和。
f(1)=1;f(2)=0;f(3)=1;for i=4:100
f(i)=f(i-1)-2*f(i-2)+f(i-3);end max(f)min(f)sum(f)
1.编程计算3+33+333+3333+„..前10项之和。
m=3;n=0;s=0;for i=1:10 n=10*n+m;s=s+n;end s
2.编程求
1-1/2+1/3-1/4+.......+1/99-1/100的值。
s=0;
for i=1:100
s=s+(-1)^(i-1)*1/i;end
s3.编写程序,求 1-3+5-7+„-99+101的值。
s=0;j=1;
for i=1:2:101
s=s+(-1)^(j-1)*i;j=j+1;end
s4.编写程序,输出从公元1000年至2000年所有闰年的年号。判断公元年是否为闰年的条件是:
(1)公元年数如能被4整除,而不能被100
整除,则是闰年;
(2)公元年数能被400整除也是闰年。
for year=1000:2000
if(mod(year,4)==0&mod(year,100)~=0)|mod(year,400)==0 year end end
5.将10个整数输入到一个数组中,然后再将
其按输入顺序的逆序进行排列并输出。
for i=1:10
a(i)=input('x=');end
for i=10:-1:a(i)end
6.一球从100米高度自由落下,每次落地后反跳回原高度的一半,再落下。求它在第10次落地时,共经过多少m?第10次反弹多高?
Sn=100;Hn=Sn/2;for n=0:10
Sn=Sn+2*Hn;Hn=Hn/2;end Sn Hn
7.猴子吃桃问题。猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个。第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下的一半零一个。到第10天早上再想吃时,见只剩一个桃子了。求第一天共摘多少桃子。
day=9;x=1;while(day>0)x=(x+1)*2;day=day-1;end x
LiYang
第 4 页 / 共 6 页
MATLAB 编程题总结
LY 附:
matlab期中试卷及答案
一、计算题
1.已知A=[1 2 3;4 5 6;7 8 9],B=[1 5 0;1 0 3;0 3 4],试写出下列指令运行的结果: A<=2=,A*B=,A(1, :)*A(:, 3)=。
2.设a= [1,-2,3;4,5,9;6,3,-8], b= [2,6,1;-3,2,7;4,8,-1]。
(1)求a.*b
(2)求a.^2
(3)求 2-a
(4)求a(1:2,2:3)
(5)求min(a(:))
二、计算下列程序运行的结果
1、mysum=0;i=1;
while(i<100)
mysum=mysum+i;
i=i+1;
end
mysum
2、A=[1,2,3;4,5,6;7,8,9];
C=[A;[10,11,12]];
D=C(1:3,[2 3]);
E=C(1:3,:)
写出C、D、E的结果
3、x=[0,1,0,10,1,0,1];
for i=1:7 if x(i)==0
x(i)=1;
else
500≤price<1000
5%折扣
x(i)=0;
1000≤price<2500
8%折扣
end
2500≤price<5000
10%折扣
end 5000≤price
14%折扣
x
输入所售商品的价格,求其实际销售价格。
4、c=6;d=[4,0,6;0,8,0];(3)fibonccci数组的元素满足fibonacci规则:
x=d & c ak+2=ak+ak+1,(k=1,2,…);且a1=a2=1。现要求求出该数组中
y=d|c 第一个大于10000的元素。
z=~d
(4)计算1!+2!+3!+4!+5!+6!+„+n!值的程
写出x、y、z的结果
序。(n可以自由输入)
三、(1)建立M函数完成下列运算(函数名为
五、分析下面程序运行后s1,n1,s2,n2,m的值.jygxfun)
s1=0;s2=0;n1=0;n2=0
f(x,y,z)ze(xy)xyzsin(xy3z)x=[1,-4,-8,3,10,-9,7,-3,10, 8,-5,-2,2,0 ];
m=length(x);(2)若x=1,y=2,z=3,采取调用jygxfun方式计算
for i=1:m f值, 试编程.if x(i)<0
四、(1)编程计算下面问题, x值由键盘输入
s1=s1+x(i);2n1=n1+1;
yx1,x1else x2,1x
1s2=s2+x(i);
n2=n2+1;
(input语句).x21,x1 end
end
(2)某商场对顾客所购买的商品实行打折销
s1,n1,s2,n2,m 售,标准如下(商品价格用price来表示):
2.(1)
price<200
没有折扣
2-12
200≤price<500
3%折扣
a.*b=-12 10
24
LiYang
第 5 页 / 共 6 页
MATLAB 编程题总结
LY(2)1 a.^2= 16 25 81 36 9
64(3)2-a= 1
4-1-2
–7(4)-4
-1-2 a(1:2,2:3)= 5
(5)min(a(:))=-8 二1、4950
2、C =1 10 D = E = 1
3、x =1
0
0
0
4、x = 1
0
0
0
y = 1 z = 0
0
0
三、解:(1)
function [f]=jygxfun(x,y,z)
f=z*exp(-(x+y))+sqrt(x+y+z)*sin(x+y+3*z);(2)
x=1;y=2;z=3;f= jygxfun(x,y,z)
四、(1)解: x=input('x=?');
if x>=1
y=x^2+1;else if x<-1 y=x^2-1;else y=x^2;end end
y
(2)price=input('请输入商品价格');switch fix(price/100)
0 case {0,1}
%价格小于200 rate=0;
case {2,3,4} %价格大于等于200但小于500
rate=3/100;
case num2cell(5:9)%价格大于等于500但小于1000
rate=5/100;
case num2cell(10:24)%价格大于等于1000但小于2500
rate=8/100;
case num2cell(25:49)%价格大于等于2500但小于5000
rate=10/100;
otherwise %价格大于等于5000 rate=14/100;end
price=price*(1-rate)%输出商品实际销售价格(3)
(4)n=input('n=')
s=0
for i=1:n
m=1
for j=1:i
m=m*j;
end
s=s+m;end s
五、s1=-31;n1=6;s2=41;n2= 8;m= 14
LiYang
第 6 页 / 共 6 页
第四篇:编程题小结
1011 字符逆序
Description:将一个字符串str的内容颠倒过来,并输出。Str的长度不超过100个字符。
Input:输入包括一行。第一行输入的字符串。Output:输出转换好的逆序字符串。Sample input:I am a student Sample output:tneduts a ma I 解答:
#include
int main(){ int i = 0;char str[100];gets(str);int len=strlen(str)-1;for(i=len;i>=0;i--)printf(“%c”,str[i]);return 0;} 1541 课后习题9.1 Description:输入一行电报文字,将字母变成其下一字母(如a变成b,z变成a等)Input:一行字符
Output:加密处理后的字符 Sample Input:a b Sample Output:b c #include
printf(“%sn”,str);return 0;} 1888 #include
Input 输入只有三个正整数a、b、c。
Output 输出一行,包括三个的和、乘积、平均数。数据之间用一个空格隔开,其中平均数保留小数后面两位。
Sample Input 1 2 3 Sample Output 6 6 2.00
#include
第五篇:Java基础编程题
【程序1】
题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?
1.程序分析: 兔子的规律为数列1,1,2,3,5,8,13,21....【程序2】
题目:判断101-200之间有多少个素数,并输出所有素数。
1.程序分析:判断素数的方法:用一个数分别去除2到sqrt(这个数),如果能被整除,则表明此数不是素数,反之是素数。
【程序3】
题目:打印出所有的“水仙花数”,所谓“水仙花数”是指一个三位数,其各位数字立方和等于该数本身。例如:153是一个“水仙花数”,因为153=1的三次方+5的三次方+3的三次方。
1.程序分析:利用for循环控制100-999个数,每个数分解出个位,十位,百位。
【程序4】
题目:将一个正整数分解质因数。例如:输入90,打印出90=2*3*3*5。
程序分析:对n进行分解质因数,应先找到一个最小的质数k,然后按下述步骤完成:
(1)如果这个质数恰等于n,则说明分解质因数的过程已经结束,打印出即可。
(2)如果n<>k,但n能被k整除,则应打印出k的值,并用n除以k的商,作为新的正整数你n,重复执行第一步。
(3)如果n不能被k整除,则用k+1作为k的值,重复执行第一步。
【程序5】
题目:利用条件运算符的嵌套来完成此题:学习成绩>=90分的同学用A表示,60-89分之间的用B表示,60分以下的用C表示。
1.程序分析:(a>b)?a:b这是条件运算符的基本例子。
【程序6】
题目:输入两个正整数m和n,求其最大公约数和最小公倍数。
1.程序分析:利用辗除法。
【程序7】
题目:输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。
1.程序分析:利用while语句,条件为输入的字符不为'n'.【程序8】
题目:求s=a+aa+aaa+aaaa+aa...a的值,其中a是一个数字。例如2+22+222+2222+22222(此时共有5个数相加),几个数相加有键盘控制。
1.程序分析:关键是计算出每一项的值。
【程序9】
题目:一个数如果恰好等于它的因子之和,这个数就称为“完数”。例如6=1+2+3.编程 找出1000以内的所有完数。
【程序10】
题目:一球从100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在 第10次落地时,共经过多少米?第10次反弹多高?
【程序11】
题目:有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?
1.程序分析:可填在百位、十位、个位的数字都是1、2、3、4。组成所有的排列后再去 掉不满足条件的排列。
【程序12】
题目:企业发放的奖金根据利润提成。利润(I)低于或等于10万元时,奖金可提10%;利润高于10万元,低于20万元时,低于10万元的部分按10%提成,高于10万元的部分,可可提成7.5%;20万到40万之间时,高于20万元的部分,可提成5%;40万到60万之间时高于40万元的部分,可提成3%;60万到100万之间时,高于60万元的部分,可提成1.5%,高于100万元时,超过100万元的部分按1%提成,从键盘输入当月利润I,求应发放奖金总数?
1.程序分析:请利用数轴来分界,定位。注意定义时需把奖金定义成长整型。
【程序13】
题目:一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少?
1.程序分析:在10万以内判断,先将该数加上100后再开方,再将该数加上268后再开方,如果开方后的结果满足如下条件,即是结果。请看具体分析:
【程序14】
题目:输入某年某月某日,判断这一天是这一年的第几天?
1.程序分析:以3月5日为例,应该先把前两个月的加起来,然后再加上5天即本年的第几天,特殊情况,闰年且输入月份大于3时需考虑多加一天。
【程序15】
题目:输入三个整数x,y,z,请把这三个数由小到大输出。
1.程序分析:我们想办法把最小的数放到x上,先将x与y进行比较,如果x>y则将x与y的值进行交换,然后再用x与z进行比较,如果x>z则将x与z的值进行交换,这样能使x最小。
【程序16】
题目:输出9*9口诀。
1.程序分析:分行与列考虑,共9行9列,i控制行,j控制列。
【程序17】
题目:猴子吃桃问题:猴子第一天摘下若干个桃子,当即吃了一半,还不瘾,又多吃了一个 第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下 的一半零一个。到第10天早上想再吃时,见只剩下一个桃子了。求第一天共摘了多少。
1.程序分析:采取逆向思维的方法,从后往前推断。
【程序18】
题目:两个乒乓球队进行比赛,各出三人。甲队为a,b,c三人,乙队为x,y,z三人。已抽签决定比赛名单。有人向队员打听比赛的名单。a说他不和x比,c说他不和x,z比,请编程序找出三队赛手的名单。
1.程序分析:判断素数的方法:用一个数分别去除2到sqrt(这个数),如果能被整除,则表明此数不是素数,反之是素数。
【程序19】
题目:打印出如下图案(菱形)
*
***
******
********
******
***
*
1.程序分析:先把图形分成两部分来看待,前四行一个规律,后三行一个规律,利用双重 for循环,第一层控制行,第二层控制列。
【程序20】
题目:有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13...求出这个数列的前20项之和。
1.程序分析:请抓住分子与分母的变化规律。
【程序21】
题目:求1+2!+3!+...+20!的和
1.程序分析:此程序只是把累加变成了累乘。
【程序22】
题目:利用递归方法求5!。
1.程序分析:递归公式:fn=fn_1*4!
【程序23】
题目:有5个人坐在一起,问第五个人多少岁?他说比第4个人大2岁。问第4个人岁数,他说比第3个人大2岁。问第三个人,又说比第2人大两岁。问第2个人,说比第一个人大两岁。最后问第一个人,他说是10岁。请问第五个人多大?
1.程序分析:利用递归的方法,递归分为回推和递推两个阶段。要想知道第五个人岁数,需知道第四人的岁数,依次类推,推到第一人(10岁),再往回推。
【程序24】
题目:给一个不多于5位的正整数,要求:
一、求它是几位数,二、逆序打印出各位数字。
【程序25】
题目:一个5位数,判断它是不是回文数。即12321是回文数,个位与万位相同,十位与千位相同。
【程序26】
题目:请输入星期几的第一个字母来判断一下是星期几,如果第一个字母一样,则继续 判断第二个字母。
1.程序分析:用情况语句比较好,如果第一个字母一样,则判断用情况语句或if语句判断第二个字母。
【程序27】
题目:求100之内的素数
【程序28】
题目:对10个数进行排序
1.程序分析:可以利用选择法,即从后9个比较过程中,选择一个最小的与第一个元素交换,下次类推,即用第二个元素与后8个进行比较,并进行交换。
【程序29】
题目:求一个3*3矩阵对角线元素之和
1.程序分析:利用双重for循环控制输入二维数组,再将a[i][i]累加后输出。
【程序30】
题目:有一个已经排好序的数组。现输入一个数,要求按原来的规律将它插入数组中。
1.程序分析:首先判断此数是否大于最后一个数,然后再考虑插入中间的数的情况,插入后此元素之后的数,依次后移一个位置。
【程序31】
题目:将一个数组逆序输出。
1.程序分析:用第一个与最后一个交换。
【程序32】
题目:取一个整数a从右端开始的4~7位。
程序分析:可以这样考虑:
(1)先使a右移4位。
(2)设置一个低4位全为1,其余全为0的数。可用~(~0<<4)
(3)将上面二者进行&运算。
【程序33】
题目:打印出杨辉三角形(要求打印出10行如下图)
1.程序分析:2 13 3 14 6 4 15 10 10 5 1
【程序34】
题目:输入3个数a,b,c,按大小顺序输出。
1.程序分析:利用指针方法。
【程序35】
题目:输入数组,最大的与第一个元素交换,最小的与最后一个元素交换,输出数组。
【程序36】
题目:有n个整数,使其前面各数顺序向后移m个位置,最后m个数变成最前面的m个数
【程序37】
题目:有n个人围成一圈,顺序排号。从第一个人开始报数(从1到3报数),凡报到3的人退出圈子,问最后留下的是原来第几号的那位。
【程序38】
题目:写一个函数,求一个字符串的长度,在main函数中输入字符串,并输出其长度。
【程序39】
题目:编写一个函数,输入n为偶数时,调用函数求1/2+1/4+...+1/n,当输入n为奇数时,调用函数1/1+1/3+...+1/n(利用指针函数)
【程序40】
题目:字符串排序。
【程序41】
题目:海滩上有一堆桃子,五只猴子来分。第一只猴子把这堆桃子凭据分为五份,多了一个,这只猴子把多的一个扔入海中,拿走了一份。第二只猴子把剩下的桃子又平均分成五份,又多了一个,它同样把多的一个扔入海中,拿走了一份,第三、第四、第五只猴子都是这样做的,问海滩上原来最少有多少个桃子?
【程序42】
题目:809*??=800*??+9*??+1 其中??代表的两位数,8*??的结果为两位数,9*??的结果为3位数。求??代表的两位数,及809*??后的结果。
【程序43】
题目:求0—7所能组成的奇数个数。
【程序44】
题目:一个偶数总能表示为两个素数之和。
【程序45】
题目:判断一个素数能被几个9整除
【程序46】
题目:两个字符串连接程序
【程序47】
题目:读取7个数(1—50)的整数值,每读取一个值,程序打印出该值个数的*。
【程序48】
题目:某个公司采用公用电话传递数据,数据是四位的整数,在传递过程中是加密的,加密规则如下:每位数字都加上5,然后用和除以10的余数代替该数字,再将第一位和第四位交换,第二位和第三位交换。
【程序49】
题目:计算字符串中子串出现的次数
【程序50】
题目:有五个学生,每个学生有3门课的成绩,从键盘输入以上数据(包括学生号,姓名,三门课成绩),计算出平均成绩,况原有的数据和计算出的平均分数存放在磁盘文件“stud”中。