编程.docx
《编程.docx》由会员分享,可在线阅读,更多相关《编程.docx(106页珍藏版)》请在冰豆网上搜索。
![编程.docx](https://file1.bdocx.com/fileroot1/2023-5/20/1e12ac92-7fa3-47b1-bd55-f5ee74ce8015/1e12ac92-7fa3-47b1-bd55-f5ee74ce80151.gif)
编程
编写一个程序,输入a、b、c三个值,输出其中最大值。
Input
一行三个数据,分别为abc
Output
abc其中最大的数
SampleInput
102030
SampleOutput
30
#include
#include
intmain()
{
inta,b,c,max;
scanf("%d%d%d",&a,&b,&c);
if(a>b)
max=a;
else
max=b;
if(c>max)
max=c;
else
max=max;
printf("%d",max);
return0;
}
要将"China"译成密码,译码规律是:
用原来字母后面的第4个字母代替原来的字母.例如,字母"A"后面第4个字母是"E"."E"代替"A"。
因此,"China"应译为"Glmre"。
请编一程序,用赋初值的方法使cl、c2、c3、c4、c5五个变量的值分别为,’C’、’h’、’i’、’n’、’a’,经过运算,使c1、c2、c3、c4、c5分别变为’G’、’l’、’m’、’r’、’e’,并输出。
Input
无
Output
加密后的China
SampleInput
SampleOutput
Glmre
#include
#include
intmain()
{
charc1='C',c2='h',c3='i',c4='n',c5='a';
c1=c1+4;
c2=c2+4;
c3=c3+4;
c4=c4+4;
c5=c5+4;
printf("%c%c%c%c%c",c1,c2,c3,c4,c5);
return0;
}
请参照本章例题,编写一个C程序,输出以下信息:
**************************
Very Good!
**************************
提示:
(1)数*号可看出,Very前面9空格,Good前面……
(2)*也是输出的一部分,别光打印VeryGood!
(3)Good!
后面有空格或没有空格,字面上是看不出来的
#include
#include
intmain()
{
printf("**************************\n");
printf("VeryGood!
\n");
printf("**************************\n");
return0;
}
设圆半径、圆柱半径、圆球半径都是r,圆柱高h。
求圆周长C1、圆面积Sa、圆球表面积Sb、圆球体积Va、圆柱体积Vb。
用scanf输入数据,输出计算结果,输出时要求有文字说明(见样例输出),计算结果取小数点后两位数字。
请编程序。
程序中圆周率取3.14
Input
两个浮点数,r和h
Output
圆周长C1、圆面积Sa
圆球表面积Sb、圆球体积Va
圆柱体积Vb。
所有结果均保留两位小数,每个结果后都换行。
SampleInput
1.53
SampleOutput
C1=9.42
Sa=7.07
Sb=28.26
Va=14.13
Vb=21.19
#include
#include
intmain()
{
floatr,h,C1,Sa,Sb,Va,Vb;
scanf("%f%f",&r,&h);
C1=2*3.14*r;
Sa=3.14*r*r;
Sb=4*3.14*r*r;
Va=(4.0/3.0)*3.14*r*r*r;
Vb=3.14*r*r*h;
printf("C1=%.2f\nSa=%.2f\nSb=%.2f\nVa=%.2f\nVb=%.2f\n",C1,Sa,Sb,Va,Vb);
return0;
}
1505有三个整数abc,由键盘输入,输出其中的最大的数。
Input
一行数组,分别为abc
Output
abc其中最大的数
SampleInput
102030
SampleOutput
30
#include
intmain()
{
inta,b,c;
scanf("%d%d%d",&a,&b,&c);
if(a
if(belseprintf("%d\n",b);
elseif(aelseprintf("%d\n",a);
return0;
}
1506有一个函数
y={x x<1
|2x-1 1<=x<10
3x-11 x>=10
写一段程序,输入整数x,输出y
Input
一个整数x
Output
一个数y
SampleInput
14
SampleOutput
31
#include
#include
intmain()
{
intx,y;
scanf("%d",&x);
if(x<1)
y=x;
if(x>=1&&x<10)
y=2*x-1;
if(x>=10)
y=3*x-11;
printf("%d",y);
return0;
}
1507给出一百分制成绩,要求输出成绩等级‘A’、‘B’、‘C’、‘D’、‘E’。
90分以上为A80-89分为B70-79分为C60-69分为D60分以下为E
Input
一个整数0-100以内
Output
一个字符,表示成绩等级
SampleInput
90
SampleOutput
A
#include
intmain(){
intn,r;
while(scanf("%d",&n)==1){
switch(n/10){
case10:
case9:
r='A';
break;
case8:
r='B';
break;
case7:
r='C';
break;
case6:
r='D';
break;
default:
r='E';
break;
}
printf("%c\n",r);
}
return0;
}
1508给出一个不多于5位的整数,要求1、求出它是几位数2、分别输出每一位数字3、按逆序输出各位数字,例如原数为321,应输出123
Input
一个不多于5位的整数
Output
共三行:
第一行:
位数
第二行:
用空格分开的每个数字,注意最后一个数字后没有空格
第三行:
按逆序输出这个数
SampleInput
12345
SampleOutput
5
12345
54321
#include
#include
intmain(){
chars[6],c;
intlen,i;
while(scanf("%s",s)==1){
len=strlen(s);
printf("%d\n",len);
printf("%c",s[0]);
for(i=1;iprintf("%c",s[i]);
}
printf("\n");
for(i=len-1;i>=0;--i){
printf("%c",s[i]);
}
printf("\n");
}
return0;
}
1509企业发放的奖金根据利润提成。
1、利润低于或等于100000元的,奖金可提10%;
2、利润高于100000元,低于200000元(100000
3、200000
4、400000
5、600000
6、I>1000000时,超过1000000元的部分按1%提成。
从键盘输入当月利润I,求应发奖金总数。
提醒:
计算机对于实数的计算是不精确的,比如:
当利润是150000时,计算出的奖金=100000*0.1+50000*0.075=13749,而不是13750,标准答案应该是后者。
再比如:
当利润是100012时,标准答案应该是10001。
Input
一个整数,当月利润。
Output
一个整数,奖金。
SampleInput
900
SampleOutput
90
#include
intmain()
{
inti;
floaty,y1,y2,y3,y4,y5;
y1=100000*0.1;
y2=y1+100000*0.075;
y3=y2+200000*0.05;
y4=y3+200000*0.03;
y5=y4+400000*0.015;
scanf("%d",&i);
if(i<=100000)
y=i*0.1;
elseif(i<=200000)
y=y1+(i-100000)*0.075;
elseif(i<=400000)
y=y2+(i-200000)*0.05;
elseif(i<=600000)
y=y3+(i-400000)*0.03;
elseif(i<=1000000)
y=y4+(i-600000)*0.015;
else
y=y5+(i-1000000)*0.01;
printf("%.0f",y);
return0;
}
#include
#include
#definePI3.1415927
intmain()
{
doublen;
while(scanf("%lf",&n)!
=-1)
{
{
if(n>=0)
printf("%.2lf\n",n);
else
printf("%.2lf\n",-n);
}
}
return0;
}1528
#include
#include
intprime(intx)
{
inttemp,i,k;
temp=(int)(sqrt(x));
for(i=2;i<=temp;++i)
if(x%i==0)
{
k=0;break;
}
if(i>temp)
k=1;returnk;
}
intmain()
{
intx;
intk;
scanf("%d",&x);
k=prime(x);
if(k)
printf("prime\n");
else
printf("notprime\n");
return0;
}
1529写一个函数,使给定的一个二维数组(3×3)转置,即行列互换。
Input
一个3x3的矩阵
Output
转置后的矩阵
SampleInput
123
456
789
SampleOutput
147
258
369
#include
intd(inta[3][3])
{
inti,j;
for(i=0;i<3;i++)
{
for(j=0;j<3;j++)
{
printf("%d",a[j][i]);
}
printf("\n");
}
return0;
}
intmain()
{
intsum[3][3],b,j;
for(b=0;b<3;b++)
{
for(j=0;j<3;j++)
{
scanf("%d",&sum[b][j]);
}
}
d(sum);
return0;
}
2556
#include
intmain()
{
inta[10]={3,-2,6,9,0,4,1,8,7,5};
inti;
for(i=0;i<10;i++)
for(i=0;i<10;i++)
printf("%d\n",a[i]);
printf("\n");
return0;
}
2558
#include
intmain()
{
inta[3][4]={2,5,8,1,9,0,3,4,7,11,6,10};
int*p,i;
p=a;
for(i=0;i<12;i++)
p=a;
for(i=0;i<12;i++,p++)
printf("%d",*p);
return0;
}
2582
#include
intmain()
{
intadd(inta,intb);
inta;
intb;
floatc;
scanf("%d%d",&a,&b);
c=sqrt(a*a+b*b);
printf("%.2f",c);
return0;
}
intadd(inta,intb)
{
floatz;
z=sqrt(a*a+b*b);
returnz;
}
2584
#include
intmain()
{
intprint_message();
print_message();
return0;
}
intprint_message()
{
printf("ABCDEFGHIJKLMNOPQRSTUVWXYZ\n");
return0;
}
1522
#include
#include
intmain()
{
inta[10];
inti,j,t;
for(i=0;i<10;i++)
scanf("%d",&a[i]);
for(j=0;j<9;j++)
for(i=0;i<9-j;i++)
if(a[i]>a[i+1])
{
t=a[i];
a[i]=a[i+1];
a[i+1]=t;
}
for(i=0;i<10;i++)
printf("%d\n",a[i]);
return0;
}
1523
求一个3×3矩阵对角线元素之和。
Input
矩阵
Output
主对角线副对角线元素和
SampleInput
123
111
321
SampleOutput
37
#include
intmain()
{
inti=0,j=0,a[3][3],s1,s2;
for(i=0;i<3;i++)
for(j=0;j<3;j++)
scanf("%d",&a[i][j]);
s1=a[0][0]+a[1][1]+a[2][2];
s2=a[0][2]+a[1][1]+a[2][0];
printf("%d%d\n",s1,s2);
return0;
}
1524
有一个含10个元素的数组,已有9个按从小到大顺序排好的数据,今输入一个数要求按原来排序的规律将它插入数组中。
Input
第一行,原始数列。
第二行,需要插入的数字。
Output
排序后的数列
SampleInput
1781723245962101
50
SampleOutput
1
7
8
17
23
24
50
59
62
101
#include
#include
intmain()
{
inti,a[10],n,j;
for(i=0;i<9;i++)
scanf("%d",&a[i]);
scanf("%d",&n);
if(n>a[8])
a[9]=n;
else
for(i=0;i<9;i++)
if(a[i]>n)
{
for(j=8;j>=i;j--)
a[j+1]=a[j];
a[i]=n;
break;}
for(i=0;i<=9;i++)
printf("%d\n",a[i]);
return0;
}
1852
从键盘上输入任意一个整数n,计算1到n的和:
Input
从键盘输入任意整数n
Output
输出1到n的和
SampleInput
3
SampleOutput
6
#include
intmain()
{
inti,n,sum=0;
i=1;
scanf("%d",&n);
while(i<=n)
{
sum=sum+i;
i++;
}
printf("%d\n",sum);
return0;
}
1854
从键盘上输入任意一个整数,然后判断该数是否为素数;如果是素数则输出"Thisisaprime."否则输出“Thisisnotaprime.”
Input
输入任意一个整数n。
Output
判断n是否为素数,并输出判断结果:
如果n是素数则输出"Thisisaprime."否则输出“Thisisnotaprime.”
SampleInput
3
SampleOutput
Thisisaprime.
#include
#include
intmain()
{
intn,i,k;
scanf("%d",&n);
if(n==1||n==0)
printf("Thisisnotaprime\n");
if(n>=2)
{
k=sqrt(n);
for(i=2;i<=k;i++)
if(n%i==0)break;
if(i>k)printf("Thisisaprime.");
elseprintf("Thisisnotaprime.");
}
return0;
}
#include
#include
intmain()
{
intn,i,k;
scanf("%d",&n);
if(n==1||n==0)
printf("Thisisnotaprime\n");
if(n>=2)
{
k=sqrt(n);
for(i=2;i<=k;i++)
if(n%i==0)break;
if(i>k)printf("Thisisaprime.");
elseprintf("Thisisnotaprime.");
}
return0;
}
1855
从键盘输入任意一个大于等于0的整数n,然后计算n的阶乘,并把它输出。
Input
输入任意一个大于等于0的整数n。
Output
输出n!
SampleInput
3
SampleOutput
6
#include
#include
intmain()
{
inti,n,s=1;
scanf("%d",&n);
for(i=1;i<=n;i++)
s*=i;
printf("%d",s);
return0;
}
2544
#include
intmain()
{
inta;
longt;
scanf("%d",&a);
if(a>=500)
t=a*8*80;
elseif(a>=300)
t=a*8*82;
elseif(a>=200)
t=a*8*85;
elseif(a>=100)
t=a*8*90;
elseif(a<100)
t=a*800;
printf("%ld",t);
return0;
}
2551
#include
intmain()
{
inta,b,c;
for(a=1;a<=98;a++)
for(b=1;b<=8;b++)
for(c=1;c<=98;c++)
if(a+b+c==100&&4*a+40*b+2*c==400)
printf("%d,%d,%d\n",a,c,b);
return0;
}
2560
#include
#include
intmain()
{
inta,b,c,i,j,k,t=0;
scanf("%d%d%d",&a,&b,&c);
intm[a][b],n[b][c],p[a][c];
if(a>0&&a<=10&&b>0&&b<=10&&c>0&&c<=10)
{
for(i=0;ifor(j=0;j
scanf("%d",&m[i][j]);
for(i=0;i
for(j=0;jscanf("%d",&n[i][j]);
for(i=0;i{
for(j=0;j{
for(k=0;k
{
t=t+m[i][k]*n[k][j];
}
p[i][j]=t;
t=0;
}
}
}
for(i=0;i{
for(j=0;j{
if(jprintf("%d",p[i][j]);
else
printf("%d",p[i][j]);
}
if(iprintf("\n");
}
return0;
}
2577
#include
intmain()
{
inta,b,c,d,e,f,g,t;
scanf("%d,%d,%d,%d,%d,%d,%d",&a,&b,&c,&d,&e,&f,&g);
if(a>b)
t=a;
else