编程练习.docx
- 文档编号:23299924
- 上传时间:2023-05-16
- 格式:DOCX
- 页数:38
- 大小:24.74KB
编程练习.docx
《编程练习.docx》由会员分享,可在线阅读,更多相关《编程练习.docx(38页珍藏版)》请在冰豆网上搜索。
编程练习
编程练习1
1.计算圆柱的侧面积及体积
输入圆柱的底面半径r,以及高h,计算圆柱的侧面积s=2πrh和体积v=πr2h。
其中π=3.1415926
输入:
第一行输入圆柱的底面半径r
第二行输入圆柱的高h
输出:
侧面积s,体积v(保留2位小数)
要求:
所有变量都定义为双精度类型。
测试用例:
1.(显示)
输入:
2
8
输出:
s=100.53,v=100.53
2.(不显示)
输入:
5
10
输出:
s=314.16,v=785.40
程序:
main()
{doubler,h,P=3.1415926;
scanf("%lf",&r);
scanf("%lf",&h);
printf("s=%6.2f,v=%6.2f",2*P*r*h,P*r*r*h);
}
2.判断三角形的形状
输入三角型的三条边,判断三角形的形状。
假设输入的三边边长均>0。
输入:
三角型的3条边的长度(int型)。
输出:
三角形形状
等边三角形:
equilateraltriangle
等腰三角形:
isocelestriangle
不构成三角形:
non-triangle
一般三角形:
triangle
测试用例:
1.(显示)
输入:
2 2 2
输出:
equilateral triangle.
2.(显示)
输入:
3 2 2
输出:
isoceles triangle.
3.(不显示)
输入:
1 3 1
输出:
non-triangle.
程序:
main()
{inta,b,c;
scanf("%d%d%d",&a,&b,&c);
if(a+b<=c||b+c<=a||a+c<=b)printf("non-triangle.");
elseif(a==b&&b==c&&c==a)printf("equilateraltriangle.");
elseif(a==b&&b!
=c||a==c&&c!
=b||b==c&&c!
=a)printf("isocelestriangle.");
elseif(a!
=b&&b!
=c&&a!
=c)printf("triangle.");
}
3.打印梯形
输入n值,输出如下例(n=4)所示的高和上底均为n的等腰梯形:
****
******
********
**********
输入:
梯形的高n
输出:
高和上底均为n的等腰梯形
测试用例:
1.(显示)
输入:
3
输出:
***
*****
*******
2.(不显示)
输入:
1
输出:
*
程序:
main()
{inti,j,n,k;
scanf("%d",&n);
for(i=1,k=2*n-1;i<=n;i++,k++)
{for(j=1;j<=k;j++)
{if(j<=n-i)printf("");
elseprintf("*");
}
printf("\n");
}
}
4.打印Z形图形
输入n值,输出如下例(n=4)所示的Z形图形:
****
*
*
****
输入:
图形的高n
输出:
高为n的Z形图形
测试用例:
1.(显示)
输入:
3
输出:
***
*
***
2.(不显示)
输入:
1
输出:
*
程序:
main()
{inti,j,n;
scanf("%d",&n);
for(i=1;i<=n;i++)
{if(i==1||i==n){for(j=1;j elsefor(j=1;j<=n+1-i;j++){if(j==n+1-i)printf("*\n");elseprintf("");} } } 编程练习2 1.打印N形图形 编程,输入n值,输出下例(n=5)所示的图形: ** *** *** *** ** 输入: 图形的高n 输出: 高为n的N形图形 测试用例: 1.(显示) 输入: 4 输出: ** *** *** ** 2.(不显示) 输入: 1 输出: * 程序: main() {inti,j,n; scanf("%d",&n); for(i=1;i<=n;i++) {for(j=1;j<=n;j++) {if(j==1||j==i)printf("*"); elseif(j==n)printf("*\n"); elseprintf(""); } } } 2.打印X形图形 输入n值,输出下例(n=3)所示的图形: ** ** * ** ** 输入: 图形的高n 输出: 高为n的X形图形 测试用例: 1.(显示) 输入: 4 输出: ** ** ** * ** ** ** 2.(不显示) 输入: 1 输出: * 程序: main() {inti,j,n; scanf("%d",&n); for(i=1;i<=2*n-1;i++) {for(j=1;j<=2*n-1;j++) {if(j==2*n-i+1&&i<=n||j==i+1&&i>n)break; if(j==i||j==2*n-i)printf("*"); elseprintf(""); } printf("\n"); } } 3.整数的反序数 输入四位正整数N,若它的K(1 1234的反序数是4321),输出所有满足条件的K和反序数,若不存在,则输出: Nooutput。 输入: 四位正整数N 输出: K和反序数 测试用例: 1.(显示) 输入: 1089 输出: 99801 2.(不显示) 输入: 2008 输出: Nooutput 3.(不显示) 输入: 2178 输出: 48712 程序: main() {inti=0,m,n,k; scanf("%d",&n); for(k=2;k<20;k++) {m=n*k; if(m/1000==n%10&&m/100%10==n%100/10&&m%100/10==n/100%10&&m%10==n/1000){printf("%d%d\n",k,m);i++;} } if(i==0)printf("Nooutput"); } 4.黑色星期五 在西方,星期五和数字13都代表着坏运气,两个不幸的个体最后结合成超级不幸的一天。 所以,不管哪个月的13日又恰逢星期五就叫“黑色星期五”。 输入某年年号和该年的元旦是星期几(1-7),输出该年所有的“黑色星期五”的日期(年/月/日) 输入: 4位年号和该年元旦是星期几 输出: 所有的“黑色星期五”的日期(年/月/日) 测试用例: 1.(显示) 输入: 20067 输出: 2006/1/13 2006/10/13 2.(不显示) 输入: 19375 输出: 1937/8/13 程序: main() {inty,w,m,d; scanf("%d%d",&y,&w); for(m=1;m<=12;m++) {if(m==1)d=12; if(m==2||m==4||m==6||m==8||m==9||m==11)d=31; if(m==5||m==7||m==10||m==12)d=30; if(m==3){if(y%4==0&&y%100! =0||y%400==0)d=29;elsed=28;} w=(w+d)%7; if(w==5)printf("%d/%d/13\n",y,m); } } 编程练习3 1.打印菱形图形 输入n,输出如下例(n=3)所示的边长为n的菱形: * *** ***** *** * 输入: 边长n 输出: 边长为n的菱形 测试用例: 1.(显示) 输入: 4 输出: * *** ***** ******* ***** *** * 2.(不显示) 输入: 1 输出: * 程序: main() {intn,i,j,k; scanf("%d",&n); for(i=1,k=n;i<=2*n-1;i++) {for(j=1;j<=k;j++) {if(j<=n-i&&i<=n||j<=i-n&&i>n)printf(""); elseprintf("*"); } printf("\n"); if(i } } 2.打印平行四边形 输入图形的高n和首字符c,输出如下例(c='A',n=5)所示的图形. ABCDE BCDEF CDEFG DEFGH EFGHI 输入: 高n和首字符c 输出: 高为n和首字符为c的平行四边形 测试用例: 1.(显示) 输入: 3,a 输出: abc bcd cde 2.(不显示) 输入: 1,b 输出: b 程序: main() {intn,i,j,k;charc,x; scanf("%d,%c",&n,&c); for(i=1,k=n;i<=n;i++,k++) {for(j=1,x=c;j<=k;j++,x++) {if(j elseprintf("%c",x); } printf("\n"); } } 3.求亲密数 若正整数A的全部约数(包括1,不包括A本身)之和等于B;且整数B的全部约数(包括1,不包括B本身)之和等于A,则A、B为亲密数。 编程,输入正整数A,输出亲密数A,B(A<=B),若不存在亲密数,则输出Nooutput。 输入: 正整数A 输出: 形如A-B的亲密数对 测试用例: 1.(显示) 输入: 1184 输出: 1184-1210 2.(不显示) 输入: 220 输出: 220-284 程序: main() {inti,n,s1=0,s2=0; scanf("%d",&n); for(i=1;i for(i=1;i if(s2==n)printf("%d-%d",n,s1);elseprintf("Nooutput"); } 4.求和 输入整数m和正整数n,按下列公式计算s: s=m-(m+1)+m+2-(m+3)+……+(-1)n(m+n)。 输入: m和n 输出: s 测试用例: 1.(显示) 输入: 190 输出: s=46 2.(不显示) 输入: (不详) 输出: (不详) 程序: main() {intm,i,k=1;unsignedn;longs=0; scanf("%d%u",&m,&n); for(i=0;i<=n;i++){s+=k*(m+i);k=-k;} printf("s=%ld",s); } 编程练习4 1.打印空心等腰梯形 输入n值,输出如下例(n=4)所示的高和上底均为n的等腰梯形: **** ** ** ********** 输入: 高n 输出: 高和上底均为n的等腰梯形 测试用例: 1.(显示) 输入: 3 输出: *** ** ******* 2.(不显示) 输入: 1 输出: * 程序: main() {intn,i,j,k; scanf("%d",&n); for(i=1,k=2*n-1;i<=n;i++,k++) {for(j=1;j<=k;j++) {if(i==1||i==n)if(j>n-i)printf("*");elseprintf(""); elseif(j==n-i+1||j==k)printf("*");elseprintf(""); } printf("\n"); } } 2.反序输出整数 输入一个整数N,要求以相反的顺序输出该数,例如,N=-1234,输出-4321。 输入: 整数N 输出: N的反序数 测试用例: 1.(显示) 输入: 4567 输出: 7654 2.(不显示) 输入: -6532 输出: -2356 程序: main() {intn,m; scanf("%d",&n); m=n/1000+n/100%10*10+n/10%10*100+n%10*1000; printf("%d",m); } 3.马戏团观众人数 一个马戏团表演,n个座位全满,全部门票收入是120元,现在知道,男人每人5元,女人每人2元,小孩每人1角。 编程,输入总人数n,输出满足要求的男人、女人和小孩人数的全部方案。 若n人无法满足条件,则输出Nooutput。 输入: 人数n 输出: 男人、女人和小孩人数 测试用例: 1.(显示) 输入: 60 输出: 0,60,0 19,11,30 2.(不显示) 输入: 21 输出: Nooutput 程序: main() {intn,b,g,c,k=0; scanf("%d",&n); for(b=0;b<=n;b++) {for(g=0;g<=n;g++) {for(c=0;c<=n;c++) if(50*b+20*g+1*c==1200&&b+g+c==n){printf("%d,%d,%d\n",b,g,c);k++;} } } if(k==0)printf("Nooutput"); } 4.求最大、次大、最小和次小值 输入n和n个整数及其序号(形如: 整数,序号,如: 15,145,2。 。 。 ),依次输出n个整数的最大值、次大值、最小值、次小值及其原始序号。 输入: n和n个整数及其序号 输出: n个整数的最大值、次大值、最小值、次小值及其原始序号 测试用例: 1.(显示) 输入: 5 15,111,20,37,41,5 输出: 15,111,2 0,31,5 2.(不显示) 输入: 5 10,111,220,3-7,491,5 输出: 91,520,3 -7,410,1 程序: main() {intn,a[80],b[80],i,j; scanf("%d",&n); for(i=0;i for(i=1;i for(j=0;j printf("%d,%d%d,%d\n%d,%d%d,%d\n",a[0],b[0],a[1],b[1],a[n-1],b[n-1],a[n-2],b[n-2]); } 5.转换为16位二进制数 将任一正整数转换为16位二进制形式。 输入: 正整数 输出: 正整数的16位二进制数 测试用例: 1.(显示) 输入: 144 输出: 0000000010010000 2.(不显示) 输入: 451 输出: 0000000111000011 程序: main() {intn,i,a[16]; scanf("%d",&n); for(i=15;i>=0;i--){a[i]=n%2;n/=2;} for(i=0;i<=15;i++)printf("%d",a[i]); } 编程练习5 1.打印空心菱形 输入图形的高n和顶行字符c。 输出如下例(c='A',n=5)所示的图形。 A BB CC DD EE DD CC BB A 输入: 高n和顶行字符c 输出: 空心菱形 测试用例: 1.(显示) 输入: 4,b 输出: b cc dd ee dd cc b 2.(不显示) 输入: 1,a 输出: a 程序: main() {intn,c,i,j,k; scanf("%d,%c",&n,&c); for(i=1,k=n;i<=2*n-1;i++) {for(j=1;j<=k;j++) {if(i<=n)if(j==n-i+1||j==k)printf("%c",c);elseprintf(""); if(i>n)if(j==i-n+1||j==k)printf("%c",c);elseprintf(""); } printf("\n"); if(i } } 2.求各位数字之和等于5且能被5整除的整数 输入正整数M和N(M,N均小于10000),输出M和N之间所有满足下列条件的所有整数: 整数的各位数字之和等于5且能被5整除。 若没有满足条件的整数,则输出: Nooutput。 输入: 整数区间m,n 输出: 各位数字之和等于5且能被5整除的所有整数 测试用例: 1.(显示) 输入: 123234 输出: 140 230 2.(不显示) 输入: 567651 输出: Nooutput 程序: main() {intm,n,i,j,t,s,k=0,a[80]; scanf("%d%d",&m,&n); for(i=m;i<=n;i++) {t=i;s=j=0; while(t){a[j++]=t%10;t/=10;} while(j>0)s+=a[--j]; if(s==5&&i%5==0){printf("%d\n",i);k++;} } if(k==0)printf("Nooutput"); } 3.求各位数字组成的最大数 任意输入一个自然数,输出该自然数的各位数字组成的最大数。 例如,输入1593,则输出为9531。 输入: 自然数n 输出: 各位数字组成的最大数 测试用例: 1.(显示) 输入: 40120 输出: 42100 2.(不显示) 输入: 749347 输出: 977443 程序: main() {inti,j,t=0,a[80];longn; scanf("%ld",&n); while(n){a[t++]=n%10;n/=10;}
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 编程 练习