第一篇:编程题总结
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
4.输入m>=3的正整数,判断m是否素数。画出算法流程图及NS图
5.有一函数:
x1 x y2x1 1x10
3x-11 x10 写一段程序,输入x,输出y值。
要求x,y声明为float类型,y保留2位小数。#include
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)利用泰勒级数sinxx计算sinx的3!5!7!9!值。要求最后一项的绝对值小于10,并统计出此时累加了多少项。#include
/*记录每个项数*/ 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附近的根:
2x4x3x60 325
牛顿迭代公式:
x1x0f(x0)f(x0)
#include
/*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
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
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
{ 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
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
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 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 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 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 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 { 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 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;} 大家必须掌握每种类型的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 编程题总结 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 实验二 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位数,”<<“逆序各位数字是”<第二篇:编程题总结
第三篇:MATLAB 编程题总结
第四篇:编程题小结
第五篇:改错编程题