C语言程序题.docx
- 文档编号:24674973
- 上传时间:2023-05-31
- 格式:DOCX
- 页数:21
- 大小:18.59KB
C语言程序题.docx
《C语言程序题.docx》由会员分享,可在线阅读,更多相关《C语言程序题.docx(21页珍藏版)》请在冰豆网上搜索。
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;i scanf("%d",&a[i]); for(i=0;i printf("%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;i printf("%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;i scanf("%d",&a[i]); for(i=0;i printf("%d",a[i]); for(i=0;i if(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,c,c1); return0; } 17、输入两个整型变量a、b的值,输出下列算式以及运算结果。 a+b、a-b、a*b、a/b、(float)a/b、a%b 每个算式占一行。 如a=10,b=5则输出: 10+5=15 #include intmain() { inta,b; printf("请输入2个整数: "); scanf("%d%d",&a,&b); printf("%d+%d=%d\n",a,b,a+b); printf("%d-%d=%d\n",a,b,a-b); printf("%d*%d=%d\n",a,b,a*b); printf("%d/%d=%d\n",a,b,a/b); printf("(float)%d/%d=%d\n",a,b,(float)a/b); printf("%d%%%d=%d\n",a,b,a%b); return0; } 18、编写一个邮件计费程序,求出邮件的邮资费并输出。 计费规定: 当邮件重量小于等于200克时,邮资费为每克0.06元;当邮件重量超过200克时,其中200克,按每克0.06元计费,超过200克的重量,按每克0.03元计费。 #include intmain() { floatx,y; printf("请输入x: "); scanf("%f",&x); if(x<=200) y=0.06*x; else if(x>200) y=0.06*200+0.03*(x-200); printf("y=%f\n",y); return0; } 19、编写程序: 输入一个人的年龄,如果年龄大于或等于60岁,则输出“老年”;如果年龄大于或等于30岁且小于60,则输出“中年”;如果年龄小于30岁,则输出“青年”。 #include intmain() { intage; printf("请输入年龄: "); scanf("%d",&age); if("age>=60") printf("老年\n"); else if((age>=30)&&(age<60)); printf("中年\n"); else if((age>0)&&(age<30)) printf("青年\n"); else printf("输入有误! \n"); return0; } 20、输入一个x的值,如果x大于0,则输出y=x2+1的值;如果小于0,则输出y=2x+1的值;如果x=0,则输出y=x的值。 #include #include intmain() { floatx,y; printf("请输入x: "); scanf("%f",&x); if(x>0) y=pow(x,2)+1; else if(x<0) y=2*x+1; else if(x=0) y=x; printf("%f",y); return0; } 21、编程输入n的值,求1~n之间5的倍数的和 #include intmain() { intn,i,sum=0; printf("请输入n的值: "); scanf("%d",&n); for(i=5;i sum=sum+i; printf("1-n之间5的倍数的和为: %d\n",sum); return0; } 22、输入一个正整数n,输出S=1*2*3*……n的值 #include intmain() { inti,n,s; printf("请输入n: "); scanf("%d",&n); for(i=1;i<=n;i++) s=s*i; printf("%d\n",s); return0; } 23、使用数组编写程序: 输入10个学生的成绩保存到数组中,输出最低分的学生的成绩和序号(注意: 学生的成绩不一定是百分制)。 #include #defineN10 intmain() { floatscore[10],min; inti,k; for(i=0;i<10;i++) { printf("请输入10个学生的成绩: ",i+1); scanf("%f",&score[i]); min=score[0]; k=1; for(i=1;i<10;i++) { if(score[i] k=i+1; } } printf("10个学生中最低分的成绩为: %f\n序号为: %d\n",min,k); return0; } 24、编写程序: 输出100~200之间的全部素数。 #include #include intmain() { inti,k,m; for(m=100;m<=200;m++) { k=sqrt(m); for(i=2;i<=k;i++) if(m%i==0) break; if(i>=k+1) printf("%d",m); } printf("\n"); return0; } 25、编写程序: 输入1个三位数的正整数,分别输出这个整数的百位数,十位数和个位数。 #include intmain() { intn,i,j,k; printf("请输入一个三位数的正整数: "); scanf("%d",&n); i=n/100; j=(n-i*100)/10; k=n-i*100-j*10; printf("百位数为%d\n十位数为%d\n个位数为%d\n",i,j,k); return0; } 26、使用数组编写程序: 先输入10个数保存到数组中,然后再随机输入一个数,判断这个数是否是数组中保存的10个数中的一个,如果这个数是数组中的某个数,则输出其在数组中的序号,否则输出: “查无此数! ”。 #include intmain() { floata[10],n; inti,k; for(i=0;i<10;i++) { printf("请输入第%d个数: ",i+1); scanf("%f",&a[i]); } printf("请输入要查找的数: "); scanf("%f",&n); for(i=0;i<10;i++) { if(a[i]==n) { k=i+1; break; } } if(i==10) printf("查无此数! \n"); else printf("你要查找的数已经找到,是第%d个数。 \n",k); return0; } 27、使用数组编写程序,输入3个学生6门课程的成绩,输出6门课程中平均分最低的课程的平均分和该门课程的序号。 #include intmain() { doublescore[4][6],sum,min; inti,j,min_num; for(i=0;i<3;i++) { printf("请输入第%d个学生的6门课程的成绩: ",i+1); for(j=0;j<6;j++) scanf("%lf",&score[i][j]); } for(i=0;i<6;i++) { sum=0; for(j=0;j<3;j++) sum=sum+score[j][i]; score[3][i]=sum/3.0; } min=score[3][0]; for(i=0;i<6;i++) { if(score[3][i]<=min) { min=score[3][i]; min_num=i+1; } } printf("6门课程中平均分最低的课程的平均分为: %f,课程序号为: %d\n",min,min_num); return0; }
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 程序