C语言上机练习题及答案.docx
《C语言上机练习题及答案.docx》由会员分享,可在线阅读,更多相关《C语言上机练习题及答案.docx(15页珍藏版)》请在冰点文库上搜索。
C语言上机练习题及答案
1输入三个整数x,y,z,把这三个数由小到大输出。
#include
voidmain()
{
intx,y,z,a;
scanf("%d,%d,%d",&x,&y,&z);
if(x>y){a=x;x=y;y=a;
}
if(x>z){a=x;x=z;z=a;
}
if(y>z){a=y;y=z;z=a;
}
printf("%d,%d,%d\n",x,y,z);
}
2输入圆得半径,输出圆得周长与面积。
#include
#definePI3、1415926
#defineS==PI*r*r
#defineV(4、0/3)*PI*r*r*r
voidmain()
{
doubler;
printf("pleaseinputr:
");
scanf("%lf",&r);
printf("areais%、4lf\n",S);
printf("volumeis%、4lf\n",V);
}
输入正方形得边长,输出正方形得周长与面积。
#include
voidmain()
{
floatc,zc,mj;
printf("输入您得正方形");
scanf("%f\n",&c);
zc=4*c;
mj=c*c;
printf("周长%f,面积%f,边长%f",zc,mj,c);
}
3用格式输入函数输入3个字符,并用输出函数反向输出3个字符与她们得ASCII码。
#include
intmain()
{char-ch1,ch2,ch3;
printf("pleaseinputthreecharacters:
\n");
scanf("%C%C%c",&ch1,&ch2,&ch3);
printf("%c\n%d\n",ch3,ch3);
printf("%c\n%d\n",ch2,ch2);
printf("%c\n%d\n",ch1,ch1);
}
输入一个摄氏温度,要求输出华氏温度。
公式为f=9/5*c+32。
#include
voidmain()
{
floatC,F;
scanf("%f",&F);
C=5、0/9*(F-32);
printf("%8、2f",C);
}
4。
比较两个数大小得题
#include
voidmain()
{inta,b;
scanf("%d,%d",&a,&b);
if(a>b)printf("%d\n",a);
elseprintf("%d\n",b);
}
第二题:
此题作废(千万不要用)
#include
voidmain()
{chara,b,c;
scanf("%c,%c,%c",&a,&b,&c);
while((a<97||a>122)||(b<97||b>122)||(c<97||c>122));
{
printf("您输入非三个小写字母,请重新输入:
\n");
scanf("%c,%c,%c",&a,&b,&c);
}
printf("%c,%c,%c\n",a-32,b-32,c-32);
}
5输入任意10个数,求她们得平均值。
#include
voidmain()
{
Printf("请输入10个整数:
");
inta[10],k=0,sum=0;
for(inti=0;i<10;++i);
{
i>a[i];
if10>=a[i]>0++k;
sum=sum+a[i];
}
floatave=sum/10、0
printf("平均值为:
%f\n",ave);
}
6实现从键盘输入两个整数,按从小到大次序输出这两个数。
#include
voidmain()
{
inta,b,tem;
printf("inputtwonumbers:
\n");
scanf("%d,%d",&a,&b);
if(a>b)
{
tem=a;a=b;b=tem;
}
printf("%d,%d",a,b);
7从键盘输入三个整数,输出最大得那个数。
#include
voidmain()
{
inta,b,c,max;
printf("请输入三个整数:
\n");
scanf("%d%d%d",&a,&b,&c);
max=a>b?
a:
b;
max=max>c?
max:
c;
printf(“max=%d\n”,max);
}
}
8输入任意一个三位数,将其各位数字反序输出(例如输入123,输出321)。
#include
voidmain()
{
intx,y,z,n;
printf("pleaseinputanintegerlessthan1000\n");
scanf("%d",&n);
x=n/100;n=n-100*x;y=n/10;z=n-10*y;
if(x>0)printf("%d%d%d\n",z,y,x);
elseif(y>0)printf("%d%d\n",z,y);
elseprintf("%d\n",z);
}
9输入三角形得边长,求三角形面积。
(面积=sqrt(s(s-a)(s-b)(s-c)),s=(a+b+c)/2)。
#include
voidmain()
{
floata,b,c,s,area;
intok=0;
printf("inputa,b,c:
");
scanf("%f,%f,%f",&a,&b,&c);
{
a+b>c?
ok++:
0;
a+c>b?
ok++:
0;
b+c>a?
ok++:
0;
ok==3
(s=1/2*(a+c+b);
area=sqrt(s*(s-a)*(s-b)*(s-c));
printf("s=%f\n,area=%f\n",s,area);
}
10输入2个数,比较其大小,将较大得数输出。
#include
voidmain()
{
inta,b,c,max,min;
printf(“Inputa=”);
scanf(“%d”,&a);
printf(“Inputb=”);
scanf(“%d”,&b);
If(a>b)
printf(“较大得数就是%d\n”,a);
else
printf(“较大得数就是%d\n”,b);
}
11输入任意三个整数,求它们得与及平均值。
#include“stdio、h"
voidmain()
{inta,b,c,sum;floatave;
scanf("%d%d%d",&a,&b,&c);
sum=a+b+c;ave=(a+b+c)/3、0;
printf("三个数得与为:
%d\n",sum);
printf("三个数得平均值为:
%f\n",ave);
}
12求解方程ax2+bx+c=0得实数根。
a,b,c由键盘输入,a≠0且b2-4ac>0。
#include
#include
voidmain(){
floata,b,c,x1,x2;
printf("请输入a,b,c得值:
");
scanf("%f%f%f",&a,&b,&c);
if(b*b-4*a*c<=0)
printf("输入得系数不对,b2-4ac不大于0!
程序退出!
\n");
else{x1=(-b+sqrt(b*b-4*a*c))/2*a;
x2=(-b-sqrt(b*b-4*a*c))/2*a;
printf("x1=%、2f\n",x1);
printf("x2=%、2f\n",x2);}
}
13写一个程序,输入一个班学生得成绩,求全班得平均成绩。
#includeusingnamespacestd;voidfailnum(intscore[],intnum){intn=0;for(inti=0;i"<=n)number++;}cout<<"平均分为:
"<"<=90)n5++;}cout<<"分数在60以下占:
"<<((n1*1、0)/num)*100<<"%"<"<<((n2*1、0)/num)*100<<"%"<"<<((n3*1、0)/num)*100<<"%"<"<<((n4*1、0)/num)*100<<"%"<"<<((n5*1、0)/num)*100<<"%"<";cin>>num;cout<<"输入内容(每个数不超出0-100),用空格分开:
"<>score[i];failnum(score,num);average_num(score,num);stastics(score,num);return0;}
14编写程序输出如下图形:
(没有得!
!
!
!
)
*
**
***
****
从键盘输入一个整数判断就是否为素数。
#include"stdio、h"
voidmain()
inti,n;
printf("pleaseinputapositivenumber:
");
scanf("%d",&n);
for(i=2;i<=n-1;i++)
{
if(n%i==0)break;
}
if(i<=n-1)printf("%d不就是素数\n",n);
elseprintf("%d不就是素数\n",n);
}
15输入一个三位数,判断就是否就是一个“水仙花数”,水仙花数就是指3位数得各位数字得立方与等于这个三位数本身。
例如153=1*1*1+5*5*5+3*3*3。
#include
voidmain()
{intx,a,b,c;
scanf("%d",x);
a=x/100;b=(x/10)%10;c=x%10;
if(x==a*a*a+b*b*b+c*c*c)
printf("YES");elseprintf("NOT");
}
16输入年号,判断它就是否为闰年。
#include
voidmain()
{
inty;
scanf("%d",&y);
if(y%400==0||y%4==0&&y%100!
=0)
printf("Yes、\n");
else
printf("No、\n");
}
17用for循环语句求n!
用递归法求n!
#include
intfac(intn);
voidmain()
{
intn;
printf("pleaseinputn(n>=0):
");
scanf("%d",&n);
printf("%d!
=%d\n",n,fac(n));
}
intfac(intn)
{
intt;
if(n==0||n==1)
t=1;
else
t=n*fac(n-1);
else
return(t);
}
18用函数实现求最大公约数得程序。
#include
intgcd(inta,intb);
voidmain()
{inta,b,m;
printf("pleaseinputa,b:
");
scanf("%d,%d",&a,&b);
m=gcd(a,b);
printf("gcd(%d,%d)=%d\n",a,b,m);}
intgcd(inta,intb)
{
intt
do{t=a%d;
a=b;b=t;}
while(b!
=0);
return(a);
}
19用函数实现求最小公倍数得程序。
#include
intgcd(inta,intb);
intlcm(inta,intb);
voidmain()
{inta,b,m,n;
printf("pleaseinputa,b:
");
scanf("%d,%d",&a,&b);
m=gcd(a,b);
n=lcm(a,b);
printf("gcd(%d,%d)=%d\n",a,b,m);
printf("lcm(%d,%d)=%d\n",a,b,n);
}
intgcd(inta,intb)
{intt
do
{
t=a%d;
a=b;b=t;}
while(b!
=0);
return(a);}
intlcm(inta,intb)
{
intt;
t=a*b/gcd(a,b);
return(t);
}
20编写判断水仙花得函数,从主函数输入一个三位正整数N,在主函数中调用判断水仙花数得函数,求出三位数中所有得水仙花数。
水仙花数就是指3位数得各位数字得立方与等于这个三位数本身。
例如153=1*1*1+5*5*5+3*3*3。
#include
voidf(m)
{intx,y,z;
x=m/100;
y=m/10%10;
z=m%10;
if(m==x*x*x+y*y*y+z*z*z)
printf("%d就是水仙花数\n",m);
elseprintf("%d不就是水仙花数\n",m);}
voidmain()
{intn;
scanf("%d",&n);
f(n);
}
21将一个正整数逆续输出。
#include
voidmain()
{
intn,digit;
scanf("%d",&n);
while(n!
=0)
{digit=n%10;
printf("%d\n:
digit);
n=n/10;}
}
22从键盘输入一个正整数n,计算该数得各位数字之与并输出。
例如,输入数就是5246,则计算5+2+4+6=17并输出。
#include
voidmain()
{
intx,s=0,digit;
scanf("%d",&x);
while(x!
=0)
{digit=x%10;循环
x=x/10;
s=s+digit;}
printf("%d\n",s);
}
23输出九九乘法表。
#include
voidmain()
{
inta,b;for(a=1;a<=9;a++);
{
for(b=1;b<=a;b++);
{
printf("%d*%d=%-2d",a,b,a*b);
}
printf("\n");
}
23用数组实现从键盘输入10个数,并且输出这10个数。
#include
voidmain()
{
inta[10],*p=a,i;
printf("Iput10numbers:
\n");
for(i=0;i<10;i++)
scanf("%d",p+i);
printf("a[10]:
");
for(i=0;i<10;i++)
printf("%3d",*(p+i));
printf("\n");
}