C语言程序题.docx
《C语言程序题.docx》由会员分享,可在线阅读,更多相关《C语言程序题.docx(18页珍藏版)》请在冰豆网上搜索。
![C语言程序题.docx](https://file1.bdocx.com/fileroot1/2022-11/16/60ee8ed7-04ea-4f00-ade4-6dfbade9bec1/60ee8ed7-04ea-4f00-ade4-6dfbade9bec11.gif)
C语言程序题
三、程序题
1、编程序解百鸡问题:
100元钱买100只鸡,公鸡每只3元,母鸡每只5元,小鸡3只1元,问公鸡、母鸡、小鸡各多少只?
#include
intmain()
{
intx,y;
printf("百鸡问题解:
\n");
for(x=1;x<=100;x++)
for(y=1;y<=100;y++)
if(15*x+9*y+(100-x-y)==300)
printf("%d%d%d\n",x,y,100-x-y);
return0;
}
2、求出100-999的所有的水仙花数(水仙花数既xyz=x*x*x+y*y*y+z*z*z)
#include
#include
intmain()
{
inti,j,k,n;
for(n=101;n<1000;n++)
{
k=n%10;
j=n%100/10;
i=n/100;
if(n==pow(i,3)+pow(j,3)+pow(k,3))
printf("%d",n);
}
return0;
}
3、已知三角形的面积为area=sqrt(s*(s-a)*(s-b)*(s-c)),其中s=(a+b+c)/2,a,b,c为三角形的三边,由键盘输入三个数,请编程计算以这三个数为边长的三角形的面积(先判断能否成为三角形,再计算面积)
#include
#include
intmain()
{
floata,b,c,s,area;
scanf("%f%f%f",&a,&b,&c);
if(a>0&&b>0&&c>0&&a+b>c&&a+c>b&&b+c>a)
{
s=(a+b+c)/2;
area=(s*(s-a)*(s-b)*(s-c));
printf("三角形的面积为:
%f\n",area);
}
elseprintf("不能构成三角形");
return0;
}
4、编程序求解以下问题:
输入长方体的长、宽、高,求长方体的体积并输出。
#include
#include
intmain()
{
doublea,b,h,v;
printf("输入长方体的长、宽、高:
");
scanf("%lf%lf%lf",&a,&b,&h);
v=a*b*h;
printf("长方体的体积为:
%f\n",v);
return0;
}
5、先从键盘上输入一个3行3列矩阵的各个元素的值,然后输出主对角线元素之和。
例如,输入下面的矩阵:
100200300
400500600
700800900
程序输出:
主对角线元素之和为:
100+500+900=1500
#include
intmain()
{
inta[3][3],i,j,s=0;
printf("请输入矩阵:
\n");
for(i=0;i<3;i++)
for(j=0;j<3;j++)
scanf("%d",&a[i][j]);
for(i=0;i<3;i++)
s=s+a[i][i];
printf("主对角线的和为:
%d+%d+%d=%d\n",a[0][0],a[1][1],a[2][2],s);
return0;
}
6、输入正整数n,输出n行n列的空心四边形图案。
以下是n等于4的图案。
****
**
**
****
#include
intmain()
{
inti,j,n;
printf("请输入n:
");
scanf("%d",&n);
for(i=1;i<=n;i++)
{
for(j=1;j<=n;j++)
if(i==1||j==1||i==n||j==n)
printf("*");
else
printf("");
printf("\n");
}
return0;
}
7、编程序解问题:
输入n,求1+2+3+…+n的和。
方法一:
#include
intmain()
{
intn,s=0,i;
printf("请输入n:
");
scanf("%d",&n);
for(i=1;i<=n;i++)
s=s+i;
printf("1+2+3+...+%d=%d\n",n,s);
return0;
}
方法二:
#include
#defineN3
intmain()
{
ints=0,i=1;
while(i<=N)
{
s=s+i;
i=i+1;
}
printf("%d\n",s);
return0;
}
方法三:
#include
#definen3
intmain()
{
ints=0,i=1;
do
{
s=s+i;
i=i+1;
}
while(i<=n);
printf("%d\n",s);
return0;
}
方法四:
#include
#definen3
intmain()
{
ints=0,i;
for(i=1;i<=n;i=i+1)
s=s+i;
printf("%d\n",s);
return0;
}
8、将一个数组中的值按逆序重新存放,例如原来数组a[]={8,6,5,7,4},要求改为{4,7,5,6,8}
#include
#defineN5
intmain()
{
inta[N],i,t;
printf("请输入矩阵:
\n");
for(i=0;iscanf("%d",&a[i]);
for(i=0;iprintf("%d",a[i]);
printf("\n");
i=0;
while(i{
t=a[i];
a[i]=a[N-1-i];
a[N-1-i]=t;
i++;
}
for(i=0;iprintf("%d",a[i]);
return0;
}
9、统计一维数组中大于0、等于0和小于0的个数,并输出。
#include
#defineN10
intmain()
{
inti,less=0,great=0,equal=0,a[N];
printf("请输入矩阵:
\n");
for(i=0;iscanf("%d",&a[i]);
for(i=0;iprintf("%d",a[i]);
for(i=0;iif(a[i]>0)
great++;
else
if(a[i]>0)
equal++;
else
less++;
printf("\n数组中大于0的个数为:
%d",great);
printf("\n数组中等于0的个数为:
%d",equal);
printf("\n数组中小于0的个数为:
%d",less);
return0;
}
10、编程输入x的值,求y=x20-2*x10+5的值。
#include
#include
intmain()
{
floatx,y;
printf("请输入x的值:
");
scanf("%f",&x);
y=pow(x,20)-2*pow(x,10)+5;
printf("y=%f\n",y);
return0;
}
11、输入一个3位的正整数,要求以相反的顺序输出该数。
例如输入一个数123,输出另一个数321。
#include
intmain()
{
intn,i,j,k;
printf("请输入一个3位的整数:
");
scanf("%d",&n);
i=n/100;
j=(n-i*100)/10;
k=n-i*100-j*10;
printf("%d\n",k*100+j*10+i);
return0;
}
12、编写程序:
输入3个0~9的正整数,输出由这3个数组成的一个3位数的正整数(例如输入3个数:
9,1,8,输出一个数:
918)。
#include
intmain()
{
inti,j,k,n;
printf("请输入3个0-9的正整数:
");
scanf("%d%d%d",&i,&j,&k);
n=i*100+j*10+k;
printf("%d\n",n);
return0;
}
13、输入三个整数,求出这三个数的和以及平均值,并在屏幕上输出
#include
intmain()
{
inta,b,c;
intsum;
doubleaverage;
printf("请输入3个整数:
");
scanf("%d%d%d",&a,&b,&c);
sum=a+b+c;
average=(a+b+c)/3;
printf("sum=%d,average=%f\n",sum,average);
return0;
}
14、输入一个三位整数x(999=>x>=100),将其分解出百位、十位、个位,并求出各位之和以及各位之积。
#include
intmain()
{
intx;
inta,b,c;
intsum,product;
printf("请输入3个整数:
");
scanf("%d",&x);
a=x/100;
b=x%100/10;
c=x%10;
sum=a+b+c;
product=a*b*c;
printf("sum=%d,product=%d\n",sum,product);
return0;
}
15、请编写一个程序,能显示出以下两行文字。
Iamastudent.
IloveChina.
方法一:
#include
intmain()
{
printf("Iamastudent.\nIloveChina.");
return0;
}
方法二:
#include
intmain()
{
printf("Iamastudent.\n");
printf("IloveChina.\n");
return0;
}
16、输入一个字符,求其前驱字符和后继字符,并按其ASCII码值的降序输出此3个字符及其对应的ASCII码值。
#include
intmain()
{
charc,c1,c2;
printf("请输入字符:
");
scanf("%c",&c);
c1=c-1;
c2=c+1;
printf("%c%c%c\n",c2,c,c1);
printf("%d%d%d\n",c2