您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 广告经营 > C语言编辑作业二(1)
一1.求出10至1000之内能同时被2、3、7整除的数,并输出。#includestdio.hintmain(){intn;for(n=10;n=1000;n++){if(n%42==0)printf(%d,n);}printf(\n);return0;}2.用switch语句编一程序,对于给定的一个百分制成绩,输出相应的五分制成绩,设:90分以上为‘A’,80~89分为‘B’,70~79分为‘C’,60~69分为‘D’,60分以下为‘E’。#includestdio.hintmain(){floatscore;chargrade;scanf(%f,&score);switch((int)(score/10)){case10:case9:grade='A';break;case8:grade='B';break;case7:grade='C';break;case6:grade='D';break;case5:case4:case3:case2:case1:case0:grade='E';break;default:printf(error\n);}printf(%c\n,grade);return0;}3、有10个数围成一圈,求相邻三个数之和的最小值。#includestdio.hintmain(){floata[10];floatt,b;inti;printf(qingshuru10geshu:\n);for(i=0;i=9;i++)scanf(%f,&a[i]);printf(\n);t=a[0]+a[1]+a[9];for(i=1;i9;i++){b=a[i-1]+a[i]+a[i+1];if(tb)t=b;}printf(Thesmallestnumberis:%6.2f\n,t);return0;}4.编程判断输入的正整数是否既是5又是7的整倍数。若是,则输出yes;否则输出no。#includestdio.hintmain(){intn;scanf(%d,&n);if(n%5==0&&n%7==0)printf(yes\n);elseprintf(no\n);return0;}5.一个数如果恰好等于它的因子之和,这个数就称为“完数”。例如6=1+2+3.编程找出1000以内的所有完数。#includestdio.hintmain(){intm,s,i;for(m=2;m1000;m++){s=0;for(i=1;im;i++)if(m%i==0)s=s+i;if(s==m){printf(%d,itsfactorsare,m);for(i=1;im;i++)if(m%i==0)printf(%d,i);printf(\n);}}return0;}法二#includestdio.hintmain(){intm,i,s;for(m=2;m1000;m++){s=1;for(i=2;i=m/2;i++){if(m%i==0)s=s+i;}if(s==m){printf(%dis完数itsfactorsare,m);for(i=1;i=m;i++)if(m%i==0)printf(%d,i);printf(\n);}}return0;}二1.把100---200间的不能被3整除的数输出。#includestdio.hintmain(){intn;for(n=100;n=200;n++)if(n%3!=0)printf(%3d\n,n);return0;}2.编写一函数fun,实现矩阵(3行3列)的转置(即行列互换)。#includestdio.h#defineN3floatb[3][3];floata[3][3];intmain(){voidfun(floata[][3]);inti,j;printf(qingshurushuzu:\n);for(i=0;iN;i++)for(j=0;jN;j++)scanf(%f,&a[i][j]);printf(\nyuanshuzua:\n);for(i=0;iN;i++){for(j=0;jN;j++){printf(%8.2f,a[i][j]);}printf(\n);}fun(a);printf(zhuanzhihoushuzua:\n);for(i=0;iN;i++){for(j=0;jN;j++)printf(%8.2f,b[i][j]);printf(\n);}return0;}voidfun(floata[][3]){inti,j,t;for(i=0;iN;i++)for(j=0;jN;j++)b[j][i]=a[i][j];}3.从键盘输入100个整数,统计其中正数、负数及零的个数。#includestdio.hintmain(){inti,n,s1,s2,s3;for(i=1,s1=0,s2=0,s3=0;i=100;i++){scanf(%d,&n);if(n0)s1=s1+1;if(n0)s2=s2+1;if(n==0)s3=s3+1;}printf(s1=%ds2=%ds3=%d\n,s1,s2,s3);return0;}4.求1到100之间的奇数之和及偶数之和,并将二者输出。#includestdio.hintmain(){inti,s1=0,s2=0;for(i=1;i=100;i++){if(i%2==0)s1=s1+1;elses2=s2+1;}printf(s1=%d\ns2=%d\n,s1,s2);return0;}5.编写一个函数,求6行、6列的二维数组全体元素中负数的个数。#includestdio.hintmain(){inti,j,a[6][6],n=0;printf(输入6*6数组:\n);for(i=0;i6;i++)for(j=0;j6;j++)scanf(%d,&a[i][j]);for(i=0;i6;i++){for(j=0;j6;j++)if(a[i][j]0)n=n+1;}printf(n=%d\n,n);return0;}三1.编程:输出100~300中的素数及素数的个数#includestdio.h#includemath.hintmain(){intn,k,i,m=0;for(n=101;n=300;n=n+2){k=sqrt(n);for(i=2;i=k;i++)if(n%i==0)break;if(i=k+1){printf(%4d,n);m=m+1;if(m%10==0)printf(\n);}}printf(\n);printf(m=%3d\n,m);return0;}2.有一数列,包含10个数,已按升序排好。现要求编一程序,从指定位置开始的n个数按逆序重新排列并输出新的完整数列(例:原数列:2,4,6,8,10,12,14,16,18,20,若要求把从第4个数开始的5个数按逆序重新排列,则得到新数列为2,4,6,16,14,12,10,8,18,20)要求在主函数中输入10个数及指定位置m的值,并输出新的数列,在被调函数中从指定位置开始的n个数按逆序重新排列。#includestdio.hintmain(){intaa[10]={2,4,6,8,10,12,14,16,18,20},i;voidsort(inta[],intn);sort(aa,5);for(i=0;i10;i++)printf(%d,aa[i]);printf(\n);return0;}voidsort(inta[],intn){inti,j,t;for(i=3;in+3-1;i++)for(j=i;jn+3;j++)if(a[i]a[j]){t=a[i];a[i]=a[j];a[j]=t;}}3.编程:将一个数组中的数值按逆序重新存放。例如,原来顺序为8,6,5,4,1。要求改为1,4,5,6,8。#includestdio.hintmain(){inti,a[5];for(i=0;i5;i++)scanf(%d,&a[i]);for(i=4;i=0;i--)printf(%2d,a[i]);printf(\n);return0;}4、编程:将字符串中的第m个字符开始的全部字符复制到另一个字符串。要求在主函数中输入字符串及m的值并输出复制结果,在被调函数中完成复制。#includestdio.h#includestring.hchard[80]=0;intmain(){intcpy(chars[],intm);chara[80];intm;gets(a);scanf(%d,&m);cpy(a,m);puts(d);return0;}intcpy(chars[],intm){inti,j=0,t;t=strlen(s);for(i=m-1;it;i++,j++)d[j]=s[i];}5.编程:求1到100之间的奇数之和及偶数之和,并将二者输出#includestdio.hintmain(){inti,s1=0,s2=0;for(i=1;i=100;i++){if(i%2==0)s1=s1+1;elses2=s2+1;}printf(s1=%d\ns2=%d\n,s1,s2);return0;}6.求6行、6列的二维数组全体元素中负数的个数。#includestdio.hintmain(){inti,j,a[6][6],n=0;printf(输入6*6数组:\n);for(i=0;i6;i++)for(j=0;j6;j++)scanf(%d,&a[i][j]);for(i=0;i6;i++){for(j=0;j6;j++)if(a[i][j]0)n=n+1;}printf(n=%d\n,n);return0;}四1.有4名学生,每个学生考4门课,要求:写2个函数:(1)返回值为总平均分的函数(2)返回值为最低分的函数。在main()函数中输入每个学生4门课的成绩,调用以上2个函数,输出总平均分和最低分#includestdio.h#defineN4intmain(){floataver(floatm[4][4]);floatlow(floatn[4][4]);floata[4][4],t,s,k;inti,j;printf(shuchushuzua:\n);for(i=0;i4;i++)for(j=0;j4;j++)scanf(%f,&a[i][j]);a[i][j]=k;t=aver(a);s=low(a);printf(aver=%4f,t);printf(main=%4f,s);printf(\n);return0;}floataver(floatm[4][4]){inti,j;floatsum=0,aver;for(i=0;i4;i++)for(j=0;j4;j++)sum=sum+m[i][j];aver=sum/4;return(aver);}floatlow(floatn[4][4]){inti,j;floatmin=n[0][0];for(i=0;i4;i++)for(j=0;j4;j++){if(minn[i][j])min=n[i][j];}return(min);}2.编程:把100---200间的不能被3整除的数输出。#includestdio.hintmain(){intm;for(m=100;m=200;m++){if(m%3!=0)printf(%4d,m);}printf(\n);return0;}3.输入10个整数,将其中最小的数与第一个数对换,把最大的数与最后一个数对换。要求:写3个函数:(1)输入10个数的函数,(2)交换处理的函数,(3)输出10个数的函数。在main()函数中调用以上3个函数。#includestdio.hintmain(){intinput(inta[]);intf(inta
本文标题:C语言编辑作业二(1)
链接地址:https://www.777doc.com/doc-4645434 .html