c语言课后题答案.docx
《c语言课后题答案.docx》由会员分享,可在线阅读,更多相关《c语言课后题答案.docx(58页珍藏版)》请在冰点文库上搜索。
c语言课后题答案
1.编写程序,实现从键盘输入学生的3门课成绩,计算并输出其总成绩sum,平均成绩ave和总成绩除3的余数rem。
程序如下:
#include"stdio.h"
main()
{
intscore1,score2,score3,sum,ave,rem;
printf("Pleaseinput3scores:
");
scanf("%d%d%d",&score1,&score2,&score3);
sum=score1+score2+score3;
ave=sum/3;
rem=sum%3;
printf("sum=%d,ave=%d,rem=%d",sum,ave,rem);
}
2.输入三角形的三边长,求三角形的面积。
已知三角形的三边长求三角形的面识公式为:
area=
,其中a、b、c为三角形三边,s=(a+b+c)/2。
程序如下:
#include"stdio.h"
#include"math.h"
main()
{
floats,a,b,c,area;
printf("Pleaseinputa,b,c:
");
scanf("%f%f%f",&a,&b,&c);
s=(a+b+c)/2;
area=sqrt(s*(s-a)*(s-b)*(s-c));
printf("area=%f",area);
}
3.用格式控制符打印以下图形。
*
***
*****
*******
程序如下:
#include"stdio.h"
main()
{
printf("*\n");
printf("***\n");
printf("*****\n");
printf("*******");
}
4.编程从键盘上输入一行字符,依次读入字符并同时显示在屏幕上。
#include"stdio.h"
main()
{
charch;
printf("pleaseinputstring:
");
do
{
scanf("%c",&ch);
printf("%c",ch);
}while(ch!
=10);
}
5.打印出如下图案:
*
***
******
********
******
***
*
程序如下:
#include"stdio.h"
main()
{
inti,j;
for(i=1;i<5;i++)
{
for(j=1;j<=2*i-1;j++)
printf("*");
printf("\n");
}
for(i=3;i>=1;i--)
{
for(j=2*i-1;j>=1;j--)
printf("*");
printf("\n");
}
}
6.一个数如果恰好等于它的因子之和,这个数就称为“完数”。
例如6=1+2+3。
编程找出1000以内的所有完数。
程序如下:
#include"stdio.h"
main()
{
inti,j,sum;
for(i=1;i<=1000;i++)
{
for(j=1,sum=0;j<=i/2;j++)
if(i%j==0)
sum+=j;
if(sum==i)
printf("%-6d",i);
}
}
7.古典问题:
有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?
程序如下:
#include
voidmain()
{
longf1,f2;
inti,n,m;
f1=f2=1;
printf("输入月数:
\n");
scanf("%d",&n);
for(i=3;i<=n;i++)
{
m=f2;
f2+=f1;
f1=m;
}
printf("%d\n",f2);
}
8.打印楼梯,同时在楼梯上方打印两个笑脸
程序如下:
#include"stdio.h"
main()
{
inti,j;
printf("\1\1\n");
for(i=1;i<11;i++)
{
for(j=1;j<=i;j++)
printf("%c%c",219,219);
printf("\n");
}
}
9.编程输出国际象棋棋盘。
程序如下:
#include"stdio.h"
main()
{
inti,j;
for(i=1;i<8;i++)
{
for(j=1;j<8;j++)
if((i+j)%2==0)
printf("%c%c",219,219);
else
printf("");
printf("\n");
}
}
10.一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少?
(如果一个数的平方根的平方等于该数,这说明此数是完全平方数)
程序如下:
#include"math.h"
main()
{
longinti,x,y;
x=sqrt(i+100); /*x为加上100后开方后的结果*/
y=sqrt(i+268); /*y为再加上168后开方后的结果*/
if(x*x==i+100&&y*y==i+268)/*如果一个数的平方根的平方等于该数,这说明此数是完全平方数*/
printf("\n%ld\n",i);
}
11.打印出杨辉三角形(要求打印出10行图如下)
1
11
121
1331
14641
15101051
程序如下:
main()
{
intl,r,c;
longintv;
printf("Inputtherankofthetriangle:
\n");/*输入行数*/
scanf("%d",&r);
while(r<1||r>15)/*范围1~15,自己用可以省去*/
{printf("\nError!
Inputagain:
\n");
scanf("%d",&r);
}
for(l=1;l<=r;l++)
{for(v=0;v<17-l;v++)
printf("");
v=1;
printf("1");
for(c=2;c<=l;c++)
{v=v*((l-1)-(c-1)+1)/(c-1);/*!
核心公式!
*/
if(v<100)/*底下是控制打印后留的空格,
让整个三角形更美观*/
if(v<10)
printf("%ld",v);
else
printf("%ld",v);
elseprintf("%ld",v);
}
printf("\n");
}
}
12.百元买百鸡问题。
假定小鸡每只5角,公鸡每只2元,母鸡每只3元。
现在有100元钱要求买100只鸡,编程列出所有可能的购鸡方案。
程序如下:
main()
{
inti,j,k;
intm=100/5,n=100/3;
for(i=1;i{
for(j=1;j{
k=100-i-j;
if(i*5+j*3+k/3==100&&i+j+k==100&&k%3==0)
printf("i=%d,j=%d,k=%d\n",i,j,k);
}
}
}
13.输入两个自然数,求解最大公约数。
程序如下:
#include
intmain()
{
inta,b,num1,num2,temp;
printf("Inputa&b:
");
scanf("%d%d",&num1,&num2);
if(num1>num2)/*找出两个数中的较大值*/
{
temp=num1;num1=num2;num2=temp;/*交换两个整数*/
}
a=num1;b=num2;
while(b!
=0)/*采用辗转相除法求最大公约数*/
{
temp=a%b;
a=b;
b=temp;
}
printf("TheGCDof%dand%dis:
%d\n",num1,num2,a);/*输出最大公约数*/
}
14.将可打印的ASCII码制成表格输出,使每个字符与它的编码值对应起来,每行打印7个字符。
程序如下:
#include"stdio.h"
main()
{
inti,j=0;
for(i=0;i<128;i++)
{
printf("%c%d",i,i);
j++;
if(j%7==0)
printf("\n");
}
}
1.编写程序,实现从键盘输入学生的3门课成绩,计算并输出其总成绩sum,平均成绩ave和总成绩除3的余数rem。
程序如下:
#include"stdio.h"
main()
{
intscore1,score2,score3,sum,ave,rem;
printf("Pleaseinput3scores:
");
scanf("%d%d%d",&score1,&score2,&score3);
sum=score1+score2+score3;
ave=sum/3;
rem=sum%3;
printf("sum=%d,ave=%d,rem=%d",sum,ave,rem);
}
2.输入三角形的三边长,求三角形的面积。
已知三角形的三边长求三角形的面识公式为:
area=
,其中a、b、c为三角形三边,s=(a+b+c)/2。
程序如下:
#include"stdio.h"
#include"math.h"
main()
{
floats,a,b,c,area;
printf("Pleaseinputa,b,c:
");
scanf("%f%f%f",&a,&b,&c);
s=(a+b+c)/2;
area=sqrt(s*(s-a)*(s-b)*(s-c));
printf("area=%f",area);
}
3.用格式控制符打印以下图形。
*
***
*****
*******
程序如下:
#include"stdio.h"
main()
{
printf("*\n");
printf("***\n");
printf("*****\n");
printf("*******");
}
4.编程从键盘上输入一行字符,依次读入字符并同时显示在屏幕上。
#include"stdio.h"
main()
{
charch;
printf("pleaseinputstring:
");
do
{
scanf("%c",&ch);
printf("%c",ch);
}while(ch!
=10);
}
7.打印出如下图案:
*
***
******
********
******
***
*
程序如下:
#include"stdio.h"
main()
{
inti,j;
for(i=1;i<5;i++)
{
for(j=1;j<=2*i-1;j++)
printf("*");
printf("\n");
}
for(i=3;i>=1;i--)
{
for(j=2*i-1;j>=1;j--)
printf("*");
printf("\n");
}
}
8.一个数如果恰好等于它的因子之和,这个数就称为“完数”。
例如6=1+2+3。
编程找出1000以内的所有完数。
程序如下:
#include"stdio.h"
main()
{
inti,j,sum;
for(i=1;i<=1000;i++)
{
for(j=1,sum=0;j<=i/2;j++)
if(i%j==0)
sum+=j;
if(sum==i)
printf("%-6d",i);
}
}
7.古典问题:
有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?
程序如下:
#include
voidmain()
{
longf1,f2;
inti,n,m;
f1=f2=1;
printf("输入月数:
\n");
scanf("%d",&n);
for(i=3;i<=n;i++)
{
m=f2;
f2+=f1;
f1=m;
}
printf("%d\n",f2);
}
8.打印楼梯,同时在楼梯上方打印两个笑脸
程序如下:
#include"stdio.h"
main()
{
inti,j;
printf("\1\1\n");
for(i=1;i<11;i++)
{
for(j=1;j<=i;j++)
printf("%c%c",219,219);
printf("\n");
}
}
9.编程输出国际象棋棋盘。
程序如下:
#include"stdio.h"
main()
{
inti,j;
for(i=1;i<8;i++)
{
for(j=1;j<8;j++)
if((i+j)%2==0)
printf("%c%c",219,219);
else
printf("");
printf("\n");
}
}
10.一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少?
(如果一个数的平方根的平方等于该数,这说明此数是完全平方数)
程序如下:
#include"math.h"
main()
{
longinti,x,y;
x=sqrt(i+100); /*x为加上100后开方后的结果*/
y=sqrt(i+268); /*y为再加上168后开方后的结果*/
if(x*x==i+100&&y*y==i+268)/*如果一个数的平方根的平方等于该数,这说明此数是完全平方数*/
printf("\n%ld\n",i);
}
11.打印出杨辉三角形(要求打印出10行图如下)
1
11
121
1331
14641
15101051
程序如下:
main()
{
intl,r,c;
longintv;
printf("Inputtherankofthetriangle:
\n");/*输入行数*/
scanf("%d",&r);
while(r<1||r>15)/*范围1~15,自己用可以省去*/
{printf("\nError!
Inputagain:
\n");
scanf("%d",&r);
}
for(l=1;l<=r;l++)
{for(v=0;v<17-l;v++)
printf("");
v=1;
printf("1");
for(c=2;c<=l;c++)
{v=v*((l-1)-(c-1)+1)/(c-1);/*!
核心公式!
*/
if(v<100)/*底下是控制打印后留的空格,
让整个三角形更美观*/
if(v<10)
printf("%ld",v);
else
printf("%ld",v);
elseprintf("%ld",v);
}
printf("\n");
}
}
12.百元买百鸡问题。
假定小鸡每只5角,公鸡每只2元,母鸡每只3元。
现在有100元钱要求买100只鸡,编程列出所有可能的购鸡方案。
程序如下:
main()
{
inti,j,k;
intm=100/5,n=100/3;
for(i=1;i{
for(j=1;j{
k=100-i-j;
if(i*5+j*3+k/3==100&&i+j+k==100&&k%3==0)
printf("i=%d,j=%d,k=%d\n",i,j,k);
}
}
}
13.输入两个自然数,求解最大公约数。
程序如下:
#include
intmain()
{
inta,b,num1,num2,temp;
printf("Inputa&b:
");
scanf("%d%d",&num1,&num2);
if(num1>num2)/*找出两个数中的较大值*/
{
temp=num1;num1=num2;num2=temp;/*交换两个整数*/
}
a=num1;b=num2;
while(b!
=0)/*采用辗转相除法求最大公约数*/
{
temp=a%b;
a=b;
b=temp;
}
printf("TheGCDof%dand%dis:
%d\n",num1,num2,a);/*输出最大公约数*/
}
14.将可打印的ASCII码制成表格输出,使每个字符与它的编码值对应起来,每行打印7个字符。
程序如下:
#include"stdio.h"
main()
{
inti,j=0;
for(i=0;i<128;i++)
{
printf("%c%d",i,i);
j++;
if(j%7==0)
printf("\n");
}
}
1.编写程序,实现从键盘输入学生的3门课成绩,计算并输出其总成绩sum,平均成绩ave和总成绩除3的余数rem。
程序如下:
#include"stdio.h"
main()
{
intscore1,score2,score3,sum,ave,rem;
printf("Pleaseinput3scores:
");
scanf("%d%d%d",&score1,&score2,&score3);
sum=score1+score2+score3;
ave=sum/3;
rem=sum%3;
printf("sum=%d,ave=%d,rem=%d",sum,ave,rem);
}
2.输入三角形的三边长,求三角形的面积。
已知三角形的三边长求三角形的面识公式为:
area=
,其中a、b、c为三角形三边,s=(a+b+c)/2。
程序如下:
#include"stdio.h"
#include"math.h"
main()
{
floats,a,b,c,area;
printf("Pleaseinputa,b,c:
");
scanf("%f%f%f",&a,&b,&c);
s=(a+b+c)/2;
area=sqrt(s*(s-a)*(s-b)*(s-c));
printf("area=%f",area);
}
3.用格式控制符打印以下图形。
*
***
*****
*******
程序如下:
#include"stdio.h"
main()
{
printf("*\n");
printf("***\n");
printf("*****\n");
printf("*******");
}
4.编程从键盘上输入一行字符,依次读入字符并同时显示在屏幕上。
#include"stdio.h"
main()
{
charch;
printf("pleaseinputstring:
");
do
{
scanf("%c",&ch);
printf("%c",ch);
}while(ch!
=10);
}
9.打印出如下图案:
*
***
******
********
******
***
*
程序如下:
#include"stdio.h"
main()
{
inti,j;
for(i=1;i<5;i++)
{
for(j=1;j<=2*i-1;j++)
printf("*");
printf("\n");
}
for(i=3;i>=1;i--)
{
for(j=2*i-1;j>=1;j--)
printf("*");
printf("\n");
}
}
10.一个数如果恰好等于它的因子之和,这个数就称为“完数”。
例如6=1+2+3。
编程找出1000以内的所有完数。
程序如下:
#include"stdio.h"
main()
{
inti,j,sum;
for(i=1;i<=1000;i++)
{
for(j=1,sum=0;j<=i/2;j++)
if(i%j==0)
sum+=j;
if(sum==i)
printf("%-6d",i);
}
}
7.古典问题:
有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?
程序如下:
#include
voidmain()
{
longf1,f2;
inti,n,m;
f1=f2=1;
printf("输入月数:
\n");
scanf("%d",&n);
for(i=3;i<=n;i++)
{
m=f2;
f2+=f1;
f1=m;
}
printf("%d\n",f2);
}
8.打印楼梯,同时在楼梯上方打印两个笑脸
程序如下:
#include"stdio.h"
main()
{
inti,j;
printf("\1\1\n");
for(i=1;i<11;i++)
{
for(j=1;j<=i;j++)
printf("%c%c",219,219);
printf("\n");
}
}
9.编程输出国际象棋棋盘。
程序如下:
#include"stdio.h"
main()
{
inti,j;
for(i=1;i<8;i++)
{
for(j=1;j<8;j++)
if((i+j)%2==0)
printf("%c%c",219,219);
else
printf("");
printf("\n");
}
}
10.一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少?
(如果一个数的平方根的平方等于该数,这说明此数是完全平方数)
程序如下:
#include"math.h"
main()
{
longinti,x,y;
x=sqrt(i+100); /*x为加上100后开方后的结果