C语言例题3.docx
《C语言例题3.docx》由会员分享,可在线阅读,更多相关《C语言例题3.docx(32页珍藏版)》请在冰豆网上搜索。
C语言例题3
1.输入两个实数,按从小到大的顺序。
#include
voidmain()
{floata,b,t;
scanf("%f,%f",&a,&b);
if(a>b)
{t=a;
a=b;
b=t;}
printf("%5.2f,%5.2f\n",a,b);}
2.输入三角行的三边长,求三角形面积.
#include
#include
voidmain()
{floata,b,c,s,area;
scanf("%f,%f,%f",&a,&b,&c);
s=1.0/2*(a+b+c);
area=sqrt(s*(s-a)*(s-b)*(s-c));
printf("a=%7.2f,b=%7.2f,c=%7.2f,s=%7.2f\n",a,b,c,s);
printf("area=%7.2f\n",area);}
3.从键盘输入一个大写字母,要求改用小写字母输出。
#include
voidmain()
{charc1,c2;
c1=getchar();
printf("%c,%d\n",c1,c1);
c2=c1+32;
printf("%c,%d",c2,c2);}
4.编一程序,输入一个x的值,输出y值
#include
voidmain()
{intx,y;
scanf("%d",&x);
if(x<0)
y=-1;
else
if(x==0)y=0;
elsey=1;
printf("x=%d,y=%d\n",x,y);}
5.输入一个字符,判断他是否大写字母;如果是,把他转换成小写字母;如果不是,不转换。
然后输出最后得到的字符。
#include
voidmain()
{charch;
scanf("%c",&h);
ch=(ch>='A'&&ch<='Z')?
(ch+32):
ch;
printf("%c\n",ch);}
6.判断某一年是否闰年。
#include
voidmain()
{intyear,leap;
scanf("%d",&year);
if(year%4==0)
{if(year%100==0)
{if(year%400==0)
leap=1;
elseleap=0;}
elseleap=1;}
elseleap=0;
if(leap)
printf("%dis",year);
elseprintf("%disnot",year);
printf("aleapyear.\n”);}
7.求从一加到一百的和。
#include
voidmain()
{inti,sum=0;
i=1;
while(i<=100)
{sum=sum+i;
i++;}
printf("%d\n",sum);}
8.判断m是否素数。
#include
#include
voidmain()
{intm,i,k;
scanf("%d",&m);
k=sqrt(m);
for(i=2;i<=k;i++)
if(m%i==0)break;
if(i>k)printf("%disaprimenumber\n",m);
elseprintf("%disnotaprimenumber\n",m);}
9.将一个二维数组行和列的元素互换,存到另一个数组中。
#include
voidmain()
{inta[2][3]={{1,2,3},{4,5,6}};
intb[3][2],i,j;
printf("arraya:
\n");
for(i=0;i<=1;i++)
{for(j=0;j<=2;j++)
{printf("%5d",a[i][j]);
b[j][i]=a[i][j];}
printf("\n");}
printf("arrayb:
\n");
for(i=0;i<=2;i++)
{for(j=0;j<=1;j++)
printf("%5d",b[i][j]);
printf("\n")}}
10.有一个3*4的矩阵,要求编程序求出其中值最大的哪个元素的值,以及求其所在的行号和列号。
#include
voidmain()
{inti,j,row=0,colum=0,max;
inta[3][4]={{1,2,3,4},{9,8,7,6},{-10,10,-5,2}};
max=a[0][0];
for(i=0;i<=2;i++)
for(j=0;j<=3;j++)
if(a[i][j]>max)
{max=a[i][j];
row=i;
colum=j;}
printf("max=%d,row=%d,colum=%d\n",max,row,colum);}
11.输出一个菱形图。
#include
voidmain()
{chardiamond=[][5]={{'','','*'},{'','*','','*'},{'*''','','*'},{'','*','','*'},{'','','*'}}
inti,j;
for(i=0;i<5;i++)
for(j=0;j<=5;j++)
printf("%c",diamond[i][j]);
printf("\n")}
12.调用函数时的数据传递。
#include
voidmain()
{intmax(intx,inty);
inta,b,c;
scanf("%d,%d",&a,&b);
c=max(a,b);
printf("Maxis%d",c);}
intmax(intx,inty)
{intz;
z=x>y?
x:
y;
return(z);}
13.返回值类型与函数类型不同。
#include
voidmain()
{intmax(floatx,floaty);
floata,b;
intc;
scanf("%f,%f,",&a,&b);
c=max(a,b);
printf("Maxis%d\n",c);}
intmax(floatx,floaty)
{floatz;
z=x>y?
x:
y;
return(z);}
14.用递归方法求n!
#include
voidmain()
{floatfac(intn);
intn;
floaty;
printf("inputanintegernumber:
");
scanf("%d",&n);
y=fac(n);
printf("%d!
=%10.0f\n",n,y);}
floatfac(intn)
{floatf;
if(n<0)
{printf("n<0,dataerror!
");}
else
if(n==0//n==1)
f=1;
elsef=fac(n-1)*n;
return(f);}
1.圆半径R=1.5,圆柱高H=3,求圆周长,圆面积,圆球表面积,圆球体积,圆柱体积。
#include
voidmain()
{floath,r,l,s,sq,vq,vz;
floatpi=3.1415926;
scanf("%f,%f",&r,&h);
l=2*pi*r;
s=r*r*pi;
sq=4*pi*r*r;
vq=4.0/3.0*pi*r*r*r;
vz=pi*r*r*h;
printf("l=%6.2f\n",l);
printf("s=%6.2f\n",s);
printf("sq=%6.2f\n",sq);
printf("vq=%6.2f\n",vq);
printf("vz=%6.2f\n",vz);}
2.输入一个华氏温度,要求输出摄氏温度。
公式C=5/9(F-32)
#include
voidmain()
{floatc,f;
scanf("%f",&f);
c=(5.0/9.0)*(f-32);
printf("%5.2f\n",c);}
3.有三个整数a.b.c,有键盘输入,输出其中最大者。
#include
voidmain()
{inta,b,c;
scanf("%d,%d,%d",&a,&b,&c);
if(a
if(bprintf("max=%d\n",c);
else
printf("max=%d\n",b);
elseif(aprintf("max=%d\n",c);
else
printf("max=%d\n",a);}
4.有一函数X(X<1)
Y={2X-1(1=3X-11(X>=10)
#include
voidmain()
{intx,y;
scanf("%d",&x);
if(x<1)
{y=x;
printf("x=%3d,y=x=%d\n",x,y);}
elseif(x<10)
{y=2*x-1;
printf("x=%3d,y=2*x-1=%d\n",x,y);}
else
{y=3*x-11;
printf("x=%3d,y=3*x-11=%d\n",x,y);}}
5.输入两个正整数M和N,求其最大公约数和最小公倍数。
#include
voidmain()
{intp,r,n,m,temp;
scanf("%d,%d",&n,&m);
if(n{temp=n;n=m;m=temp;}
p=n*m;
while(m!
=0)
{r=n%m;n=m;m=r;}
printf("%d\n",n);
printf("%d\n",p/n);}
6.输入一行字符,分别统计其中的字母。
空格。
数字和其他字符的个数。
#include
voidmain()
{charc;
intletters=0,space=0,digit=0,other=o;
while((c=getchar())!
='\n')
{if(c>='a'&&c<='z'||c>='A'&&c<='Z')
letters++;
elseif(c=='')
space++;
elseif(c>='0'&&c<='9')
digit++;
else
other++;}
printf("%d\n%d\n%d\n%d\n",letters,space,digit,other);
}
7.输出所有的“水仙花数”,所谓“水仙花数”是指一个三位数,其各位数字立方和等于该数本身。
#include
voidmain()
{inti,j,k,n;
printf("narcissusnumbersare");
for(n=100;n<1000;n++)
{i=n/100;
j=n/10-i*10;
k=n%10;
if(n==i*i*i+j*j*j+k*k*k)
printf("%d",n);
}}
8.将一个数组中的值按逆序重新存放。
#include
#defineN5
voidmain()
{inta[N],i,temp;
printf("enterarraya:
\n");
for(i=0;iscanf("%d",&a[i]);
printf("arraya:
\n");
for(i=0;iprintf("%4d",a[i]);
for(i=0;i{temp=a[i];
a[i]=a[n-i-1];
a[n-i-1]=temp;}
printf("\nNow,arraya:
\n");
for(i=0;iprintf("%4d",a[i]);}
(一)·输入三角形的三边长,求三角形的面积。
#include
#include
voidmain()
{floata,b,c,s,area;
scanf("%f,%f,%f",&a,&b,&c);
s=1.0/2*(a+b+c);
area=sqrt(s*(s-a)*(s-b)*(s-c));
printf("a=%7.2f,b=%7.2f,c=%7.2f,s=%7.2f\n",a,b,c,s);
printf("area=%7.2f\n",area);
}
(二)从键盘输入一个大写字母,要求改用小写字母输出
#include
voidmain()
{charc1,c2;
c1=getchar();
printf("%c,%d\n",c1,c2);
c2=c1+32;
printf("%c,%d\n",c2,c2);
}
(三)设圆半径为1.5,圆柱高为3,求圆周长,圆面积,圆球表面,圆球体积,圆柱体积。
#include
voidmain()
{floath,r,l,s,sq,vq,vz;
floatpi=3.1415926;
scanf("%f,%f",&r,&h);
l=2*pi*r;
s=r*r*pi;
sq=4*pi*r*r;
vq=4.0/3.0*pi*r*r*r;
vz=pi*r*r*h;
printf("l=%6.2f\n",l);
printf("s=%6.2f\n",s);
printf("sq=%6.2\n",sq);
printf("vq=%6.2f\n",vq);
printf("vz=%6.2f\n',vz);
}
(四)输入一个华氏温度,要求输出摄氏温度。
公式为c=5/9(F-32)输出要有文字说明,取2位小数。
#include
voidmain()
{floatc,f;
scanf("%f",&f);
c=(5.0/9.0)*(f-32);
printf("%5.2f\n",c);
}
(五)输入两个实数,按代数值由小到大的顺序输出这两个数。
{#include
voidmain()
{floata,b,t;
scanf("%f,%f",&a,&b);
if(a>b)
{t=a;
a=b;b=t;
}
printf("%5.2f,%5.2f\n",a,b);
}
(六)有一函数:
y={-1(x<0)0(x=0)1(x>0)编一个程序,输入一个X值,输出Y值。
#include
voidmain()
{intx,y;
scanf("%d",&x);
if(x<0)
y=-1;
else
if(x==0)
y=0;
else
y=1;
printf("x=%d,y=%d\n",x,y);
}
(7)输入一个字符,判别他是否大写字母,如果时,将它转换成小写字母,如果不是,不转换。
然后输出最后得到的字符。
#include
voidmain()
{charch;
scanf("%c",&ch);
ch=(ch>='A'&&ch<='Z')?
(ch+32):
ch;
printf("%c\n",ch);
}
(8)写程序,判断某一年是否闰年。
#include
voidmain()
{intyear,leap;
scanf("%d",&year);
if(year%4==0)
{if(year%100==0)
{if(year%400==0)
leap=1;
else
leap=0;}
else
leap=1;}
else
leap=0;
if(leap)
printf("%dis",year);
else
printf("%disnot",year);
printf("aleapyear.\n");
}
(9)有三个整数a,b,c,有键盘输入,输出其中最大的数。
#include
voidmain()
{inta,b,c;
scanf("%d,%d,%d",&a,&b,&c);
if(a
if(bprintf("max=%d\n",c);
else
printf("max=%d\n",b);
else
if(aprintf("max=%d\n",c);
else
printf("max=%d\n",a);
}
(10)求前N项和,从1到100。
#include
voidmain()
{inti,sum=0;
i=1;
while(i<=100)
{sum=sum+i;
i++;
}
printf("%d\n",sum);
}
(11)有一个函数:
y={xx<1;2x-11<=x<10;3x-11x>=10,写一段程序,输入X,输出Y
#include
voidmain()
{intx,y;
scanf("%d",&x);
if(x<1)
{y=x;
printf("x=%3d,y=x=%d\n",x,y);
}
elseif(x<10)
{y=2*x-1;
printf("x=%3d,y=2*x-1=%d\n",x,y);
}
else
{y=3*x-11;
printf("x=%3d,y=3*x-11=%d\n",x,y);
}
}
(12)判断M是否素数
#include
#include
voidmain()
{intm,i,k;
scanf("%d",&m);
k=sqrt(m);
for(i=2;i<=k;i++)
if(m%i==0)break;
if(i>k)printf("%disaprimenumber\n",m);
elseprintf("%disnotaprimenumber\n",m);
}
(13)输入两个正整数M和N,求其最大公约数和最小公倍数。
#include
voidmain()
{intp,r,n,m,temp;
scanf("%d,%d",&n,&m);
if(n{temp=n;n=m;m=temp;
}
p=n*m;
while(m!
=0)
{r=n%m;n=m;m=r;}
printf("%d\n",n);
printf("%d\n",p/n);
}
(14)输入一行字符,分别统计出其中英文字母,空格,数字和其他字符的个数。
#include
voidmain()
{charc;
intletters=0,space=0,digit=0,other=0;
printf("qingshuruyihangzifu:
\n");
while((c=getchar())!
='\n')
{if(c>='a'&&c<='z'||c>='A'&&c<='z')
letters++;
elseif(c=='')
space++;
elseif(c>='0'&&c<='9')
digit++;
else
other++;
}
printf("%d,%d,%d,%d\n",letters,space,digit,other);
}
(15)写一个函数,求两个整数中的较大者,用主函数调用这个函数,并输出结果,两个整数由键盘输入。
#include
voidmain()
{intmax(intx,inty);
inta,b,c;
scanf("%d,%d",&a,&b);
c=max(a,b);
printf("max=%d\n",c);
}
intmax(intx,inty)
{intz;
if(x>y)z=x;
elsez=y;
return(z)
}
(16)输出所有的水仙花数,是指一个3位数,其各位数字立方和等于概数本身
#include
voidmain()
{inti,j,k,n;
printf("narcissusnumbersare");
for(n=100;n<1000;n++)
{i=n/100;
j=n/10-i*10;
k=n%10;
if(n==i*i*i+j*j*j+k*k*k)
printf("%d",n);
}
printf("\n");
}
(17)将一个二维数组行和列的元素互换,存到另一个二维数组中。
#include
voidmain()
{inta[2][3]={{1,2,3},{4,5,6}};
intb[3][2],i,j;
printf("arraya:
\n");
for(i=0;i<=1;i++)
{for(j=0;j<=2;j++)
{printf("%5d",a[i][j]);
b[j][i]=a[i][j];
}
printf("\n");
}
printf("arrayb:
\n");
for(i=0;i<=2;i++)
{for(j=0;j<=1;j++)
printf("%5d",b[i][j])
printf("\n");
}
}
(18)有一个3*4的矩阵,要求编程序求出其中值最大的那个元素的值,以及其所在的行号和列号。
#include
voidmain()
{inti,j,row=0,colum=0,max;
inta[3][4]={{1,2,3,4},{9,8,7,6},{-10,10,-5,2}};
max=a[0][0];
for(i=0;i<=2;i++)
for(j=0;j<=3;j++)
if(a[i][j]>max)
{max=a[i][j];
row=i;
colum=j;
}
printf("max=%d,row=%d,colum=%d\n",max,row,colum);
}
(19)将一个数组中的值按逆序重新存放。
例如顺序为86541.要求改为14568
#include
#defineN5
voidmain()
{inta[N],i,temp;
printf("enterarraya:
\n");
for(i=0;iscanf("%d",%a[i]);
printf("arraya