编程题总结

时间:2019-05-13 16:14:12下载本文作者:会员上传
简介:写写帮文库小编为你整理了多篇相关的《编程题总结》,但愿对你工作学习有帮助,当然你在写写帮文库还可以找到更多《编程题总结》。

第一篇:编程题总结

大家必须掌握每种类型的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、递归函数

第二篇:编程题总结

C作业汇总

1.short a,b=32767;/*short类型在内存中占2B*/ a=b+1;问:a的值是多少?并分析原因。

2.有一4位数整数,假设用abcd表示,请把这个4位数的每个数位用表达式表示出来。3.从键盘输入圆的半径r,计算并输出圆的面积s(要求:半径r定义为float型;圆周率定义为符号常量;面积s保留2位小数)#define PI 3.14159 #include void main(){ float r,s;printf(“请输入半径r:n”);scanf(“%f”,&r);s=PI*r*r;printf(“面积是:%.2fn”,s);}

4.输入m>=3的正整数,判断m是否素数。画出算法流程图及NS图

5.有一函数:

x1 x y2x1 1x10

3x-11 x10 写一段程序,输入x,输出y值。

要求x,y声明为float类型,y保留2位小数。#include void main(){ float x,y;printf(“请输入x的值:n”);scanf(“%f”,&x);

if(x<1)

y=x;else

if(x<10)

y=2*x-1;

else

y=3*x-11;

}

printf(“y=%.2fn”,y);

x3x5x7x9,6.课后习题4.17(P159)利用泰勒级数sinxx计算sinx的3!5!7!9!值。要求最后一项的绝对值小于10,并统计出此时累加了多少项。#include #include void main(){ float x,sinx=0;float term;

/*记录每个项数*/ int n=1,count=0;/*count记录累加了多少项*/

printf(“请输入x值(弧度):n”);scanf(“%f”,&x);

term=x/n;while(fabs(term)>1e-5)

/* while循环*/ {

sinx+=term;

count++;

n+=2;

term=-term*x*x/((n-1)*n);}

/* do

/*do while循环*/ {

sinx+=term;

count++;

n+=2;

term=-term*x*x/((n-1)*n);}while(fabs(term)>1e-5);

*/

printf(“sin(%.2f)=%.4fn”,x,sinx);printf(“一共累加了:%d项。n”,count);}

7.用牛顿迭代法求下面方程在1.5附近的根:

2x4x3x60 325

牛顿迭代公式:

x1x0f(x0)f(x0)

#include #include void main(){ float x0,x1=1.5;float y1,y2;

/*y1记录f(x0),y2记录f(x0)的导数*/

do {

x0=x1;

y1=2*x0*x0*x0-4*x0*x0+3*x0-6;

y2=6*x0*x0-8*x0+3;

x1=x0-y1/y2;}while(fabs(x1-x0)>1e-5);

printf(“the root is:%.2fn”,x1);}

8.写一函数,输入一个16进制整数,输出相应的10进制数。例:从键盘输入2a,输出结果是42。

要求:若输入数据不合法,则输出提示信息。如输入了35g,输出“您输入的16进制数不合法!”。

#include #include void main(){ char c;int sum=0;

printf(“请输入一个16进制数字:n”);

while((c=getchar())!='n'){

if(c>='0' && c<='9')

sum=sum*16+c-'0';

else

if(c>='a' && c<='f')

sum=sum*16+c-87;

else

if(c>='A' && c<='F')

sum=sum*16+c-55;

else

{

printf(“您输入的16进制不合法.n”);

exit(0);

} }

printf(“相应的10进制数是:%dn”,sum);} 方法2:用字符串处理的方式 #include #include void main(){ char str[20];int i,sum=0;

printf(“请输入一个16进制数字:n”);gets(str);

for(i=0;str[i];i++){

if(str[i]>='0' && str[i]<='9')

sum=sum*16+str[i]-'0';

else

if(str[i]>='a' && str[i]<='f')

sum=sum*16+str[i]-87;

else

if(str[i]>='A' && str[i]<='F')

sum=sum*16+str[i]-55;

else

{

printf(“您输入的16进制不合法.n”);

exit(0);

} }

printf(“相应的10进制数是:%dn”,sum);} 方法3:用字符数组及指针处理的方式 #include #include void main()

{ char str[20],*p=str;int sum=0;

printf(“请输入一个16进制数字:n”);gets(p);

while(*p){

if(*p>='0' && *p<='9')

sum=sum*16+*p-'0';

else

if(*p>='a' && *p<='f')

sum=sum*16+*p-87;

else

if(*p>='A' && *p<='F')

sum=sum*16+*p-55;

else

{

printf(“您输入的16进制不合法.n”);

exit(0);

}

p++;}

printf(“相应的10进制数是:%dn”,sum);} 9.编写一个小函数,其功能是计算两个整数的平均值,该函数要在主函数中调用。

#include void main(){ int x,y;float avg;float average(int,int);printf(“输入x,y的值,用空格分隔两个数:n”);scanf(“%d%d”,&x,&y);

avg=average(x,y);

printf(“%d,%d的平均值是:%.2fn”,x,y,avg);}

float average(int x,int y)

{ return(x+y)/2.0;}

10.有N(N用宏定义为符号常量)个元素的一维整型数组,该数组中各元素值从键盘随机输入。然后,将这个整型数组中的值逆序存放。例如,原来5个元素的顺序为8、1、4、6、5,逆序之后各元素的值是5、6、4、1、8 #define N 5 #include void main(){ int a[N];int i,t;

printf(“输入%d个整数,用空格或回车分隔:n”,N);for(i=0;i

scanf(“%d”,&a[i]);

printf(“数组原来的值是:n”);for(i=0;i

printf(“%dt”,a[i]);

for(i=0;i

t=a[i];

a[i]=a[N-1-i];

a[N-1-i]=t;}

printf(“n逆序之后数组的值是:n”);for(i=0;i

printf(“%dt”,a[i]);

printf(“n”);} 11.有N(N用宏定义为符号常量)个元素的一维整型数组,该数组中各元素值从键盘随机输入。然后,对该数组元素进行由小到大排序(要求,该功能用函数实现),输出数组中各元素值。最后,从键盘随机输入一个整数,并把该整数插入上述数组中(该功能用函数实现),使得插入该整数后的数组仍然有序,输出数组中各元素的值。#define N 5 #include void main(){ int a[N+1];

int i,x;void sort(int array[],int n);void insert(int array[],int n,int x);

printf(“输入%d个整数,用空格或回车分隔:n”,N);for(i=0;i

scanf(“%d”,&a[i]);

sort(a,N);

/*调用sort对数组进行排序*/

printf(“n升序排序之后数组的值是:n”);for(i=0;i

printf(“%d

”,a[i]);

printf(“n输入一个x值插入到数组中:n”);scanf(“%d”,&x);

insert(a,N,x);

printf(“n插入%d之后数组的值是:n”,x);for(i=0;i

printf(“%d

”,a[i]);

printf(“n”);}

void sort(int array[],int n)/*用选择法对数组array升序排序*/ { int i,j,t,min;

for(i=0;i

min=i;

for(j=i+1;j

if(array[j]

min=j;

if(min!=i)

{

t=array[i];

array[i]=array[min];

array[min]=t;

} } }

void insert(int array[],int n,int x){ int i,pos;

for(i=0;i

pos=i;

for(i=n-1;i>=pos;i--)

array[i+1]=array[i];

array[pos]=x;}

12.有一整型数组,N(N用宏定义为符号常量)个元素,该数组中各元素值从键盘随机输入。从键盘随机输入一个整数x,删除该数组中值与x相同的所有元素(该功能用函数实现),输出数组中各元素的值。#define N 5 #include void main(){ int a[N];int i,x,n;int delet(int a[],int n,int x);

printf(“输入%d个整数,用空格或回车分隔:n”,N);for(i=0;i

scanf(“%d”,&a[i]);

printf(“数组原来的值是:n”);for(i=0;i

printf(“%dt”,a[i]);

printf(“n请输入要删除的值x:n”);scanf(“%d”,&x);

n=delet(a,N,x);

/*n值是删除与x相同的元素后,数组剩余元素的个数。*/

printf(“删除%d之后数组的值是:n”,x);for(i=0;i

printf(“%d

”,a[i]);

printf(“n”);

}

int delet(int a[],int n,int x){ int i,j;

for(i=0,j=0;i

if(a[i]!=x)

a[j++]=a[i];

return j;}

13.从键盘随机输入一字符串,将所有ASCII值为偶数的字符输出。例如:输入abc123,输出结果是b2(因为b的ASCII值是98,2的ASCII值是50,其他字符的ASCII值都是奇数)

#include #define N 40 void main(){ char str[N];int i;

printf(“输入字符串:n”);gets(str);

printf(“ASCII码是偶数的字符有:”);for(i=0;str[i];i++)

if(str[i]%2==0)putchar(str[i]);

printf(“n”);}

14.从键盘输入两个字符串s1,s2,把s2连接到s1的末尾。不能用strcat函数 #include #define N 40 void main(){ char str1[N],str2[N];void mystrcat(char *p1,char *p2);

printf(“输入两个字符串,输入回车键结束:n”);gets(str1);gets(str2);

mystrcat(str1,str2);

printf(“连接在一起的字符串是:n”);puts(str1);

}

void mystrcat(char *p1,char *p2){ while(*p1)p1++;while(*p2)

*p1++=*p2++;*p1='';} 15.从键盘输入一个字符串,把其中最长的单词输出。单词定义为连续的一串英文字母。如输入I am a student.输出结果为student #include void main()

{

char str[80];int i,start,len=0,lenthest=0,lenstart=0;int word=0;

printf(“input a string:n”);gets(str);

for(i=0;str[i];i++){

if(str[i]>='a' && str[i]<='z' || str[i]>='A'&&str[i]<='Z')

if(!word)

{

word=1;

start=i;

}

else

{

len++;

}

else

if(word)

{

word=0;

}

} if(len>lenthest){ lenthest=len;lenstart=start;} len=0;

printf(“the lenthest word is:n”);for(i=lenstart;i<=lenstart+lenthest;i++)

putchar(str[i]);

printf(“n”);}

16.有一整型数组,N(N用宏定义为符号常量)个元素,该数组中各元素值从键盘随机输入。编写函数calculate,计算出所有元素的最大值、最小值、平均值,结果在主函数中输出。#define N 5 #include void main(){ int a[N];int i,max,min;float avg;void calculate(int a[],int *pmax,int *pmin,float *pavg);

printf(“输入%d个整数,用空格或回车分隔:n”,N);for(i=0;i

scanf(“%d”,&a[i]);

calculate(a,&max,&min,&avg);

printf(“数组中所有元素的最大值、最小值、平均值分别是:n”);printf(“最大值max=%d,n”,max);if(word)if(len>lenthest){

lenthest=len;

lenstart=start;}

printf(“最小值min=%d,n”,min);printf(“平均值avg=%.2f,n”,avg);

}

void calculate(int a[],int *pmax,int *pmin,float *pavg){ int i;int sum;

*pmax=*pmin=sum=a[0];

for(i=1;i

if(a[i]>*pmax)

*pmax=a[i];

if(a[i]<*pmin)

*pmin=a[i];

sum=sum+a[i];}

*pavg=(float)sum/N;}

第三篇:MATLAB 编程题总结

MATLAB 编程题总结

LY 1.输出x,y两个中值较大的一个值。

x=input('x=');y=input('y=');if x>y x else y end 2.输入x,计算y的值。计算函数的值yx1,x0

2x1,x0x=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函数 32fx2xx6.3, x20.05x3.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函数x1,x2f(x)3x,2x84x5,8x20,cosxsinx,x20计算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,求: 3152n-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: 已知f11,n1f20,n2f31,n3

fnfn12fn2fn3,n3求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(xy)xyzsin(xy3z)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;

yx1,x1else x2,1x

1s2=s2+x(i);

n2=n2+1;

(input语句).x21,x1 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 #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 int main(){ int i;char str[100];gets(str);for(i=0;i<100;i++){ if((65<=str[i]&&str[i]<90)||(97<=str[i]&&str[i]<122)){ str[i]+=1;或(str[i]++)} else if(str[i]==122)str[i]=97;else if(str[i]==90)str[i]=65;}

printf(“%sn”,str);return 0;} 1888 #include int main(){ int num;scanf(“%d”,&num);int n,i,j;while(num){ scanf(“%d”,&n);for(i=0;i

Input 输入只有三个正整数a、b、c。

Output 输出一行,包括三个的和、乘积、平均数。数据之间用一个空格隔开,其中平均数保留小数后面两位。

Sample Input 1 2 3 Sample Output 6 6 2.00

#include int main(){ int a,b,c,sum,cheng;float ave;scanf(“%d%d%d”,&a,&b,&c);sum=a+b+c;cheng=a*b*c;ave=sum/3;printf(“%d %d %.2f”,sum,cheng,ave);return 0;}

第五篇:改错编程题

实验二 VC++流程控制语句

(一)二 程序设计题

1、编写程序,输入一个不多于5位的整数,求出它是几位数,并分别打印出每一位数字,再按逆序打印出各位数字。

2、编写程序,输入三角形三边a、b、c,判断a、b、c能否构成三角形。若能,则判断组成的是等腰、等边、直角还是一般三角形;若不能,则输出相应的信息。

1、参考程序 方法一:

#include void main(){

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 void main(){

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 void main(){

} 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 void main(void){

}

2、#include void main(void){ float a,s1=0,s2=0;int m=0,n=0;

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 void main(){ int n=0,s=0;while(s<600){

++n;} s+=n;cout<<“n=”<

4、#include #include void main(){

} 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 void main(){

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 void main(){

} 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 int isprime(n)修改为:int isprime(int n)if(n%i==0)break;修改为:if(n%i==0)return 0;if(!isprime(k))修改为:if(isprime(k))

四、编程设计题

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)的值。

m0n1Acm(m,n)Acm(m1,1)n0

Acm(m1,Acm(m,n1))n0,m0参考程序:

1、#include long int jc(int n){ if(n==1)return 1;return n*jc(n-1);} long int zh(int m,int r){ int c;

} if(m<=r){ cout<<“m必须大于r!”<<'n';exit(1);} c=jc(m)/(jc(r)*jc(m-r));return c;

void main(void){

}

2、#include long int Acm(int m,int n){ int c;if(m==0)return n+1;cout<<“C(4,2)=”<

} 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)=”<>m>>n;cout<<“Acm(”<

实验三 函数与编译预处理(二)

三、改错题 答案:

在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 #include“myfun.h” void main(){ float a,b,c;cin>>a>>b>>c;

cout<<“最大值为:”<< max(max(a,b),c)<<'n';}

2、#include #define PI 3.14 double area(float r){ return PI*r*r;} double area(float a,float b){ return a*b;void main(){ } float r=2.5, a=2,b=1.2;cout<<“圆的面积为:”<

3、#include void fun(int n){

} 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 void main(){ int a[10],b[10],c[10];

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;imax1)max1=b[i];} cout<<”其中最大的奇数为:“<

for(i=0;imax2)max2=c[i];} cout<<”其中最大的偶数为:“<

2、#include void main(){ int a[100;

} 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<<”共输入“<0)j++;else if(a[i]<0)k++;avg=s/t;cout<<”这组数的平均值为“<

实验四 数组的应用

(二)四、编程题

1、设计一程序,用cin.getline()将一个字符串输入到字符数组s(char s[200])中,删除字符串的所有空格后输出。参考程序 //方法一:

#include #include void main(){

}

//法二: #include #include char s[200],t[200];int i=0,j=0;cout<<”请输入字符串(回车结束):“;cin.getline(s,200);cout<<”s=“<

void main(){ char s[200];int i=0;cout<<”请输入字符串(回车结束):“;

cin.getline(s,200);cout<<”s=“<

下载编程题总结word格式文档
下载编程题总结.doc
将本文档下载到自己电脑,方便修改和收藏,请勿使用迅雷等下载。
点此处下载文档

文档为doc格式


声明:本文内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:645879355@qq.com 进行举报,并提供相关证据,工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。

相关范文推荐

    Java基础编程题

    【程序1】题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?1.程序分析: 兔子的......

    VB编程题及答案

    1定义一个下标上界为10整型数组,并用随机函数为其赋值(值处于[0,100]之间),计算数组中所有偶数的和。 Private Sub Command1_Click() Randomize Dim a%(10) Dim i%, s% For i =......

    趣味编程题整理及答案范文合集

    1.抓交通肇事犯 一辆卡车违反交通规则,撞人后逃跑。现场有三人目击事件,但都没有记住车号,只记下车号的一些特征 。甲说:牌照的前两位数字是相同的;乙说:牌照的后两位数字是相同的......

    C语言经典编程题(推荐)

    C语言经典编程题 题目01:在一个已知的字符串中查找最长单词,假定字符串中只含字母和空格,空格用来分隔不同的单词。 [cpp] view plain copy print? 1. 2. 3. 4. 5. 6. 7. 8. 9.......

    C语言编程100题

    经典C语言程序设计100例 【程序1】 题目:有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少? 1.程序分析:可填在百位、十位、个位的数字都是1、2、3、4。组......

    2013年普通专升本考试编程题总结

    2013年普通专升本考试编程题总结 一、数学表达式 1、编写程序,其功能是:计算并输出下列多项式的值: , 将结果存到外存root.txt中。 2、编写程序,其功能是:计算并输出下列多项式的......

    VB编程题(循环部分总结题目

    循环部分 1. 求自然数1~100之间奇数之和。 2. 求自然数1~100之间偶数之和。 3. 编程计算从200到1000之间的所有4的倍数之和。 4. 编程计算从300到1000之间的所有7的倍数之和。......

    2010年秋季Java考试编程题总结

    1.编写一个程序,程序能在命令行中输出“早上好,good Morning”。 public class Hello{ public static void main (String args){ System.out.println("早上好,goodMoeing");......