当前位置:
文档之家› C语言程序设计课后各章节习题答案
C语言程序设计课后各章节习题答案
答main()
{
int x,y;
printf("Input number:");
scanf("%d",&x);
y=100*(x%10)+10*(x/10%10)+x/;
printf("%d--->%d\n",x,y);
}
10输入任意大小的3个整数,判断其中是否有两个奇数一个偶数。若是则输出YES,不是则输出NOT(要求用条件表达式进行判断,不使用if语句)。
}
12有一函数
x-1 -5<x<0
y= x x=0
x+1 0<x<8
编写一程序,要求输入x的值,输出y的值。分别用不嵌套的if语句,嵌套的if语句,switch语句编写。
答使用不嵌套的if语句程序如下:
main()
{
int x,y;
printf("Input x:");
scanf("%d",&x);
}
11求前驱字符和后继字符。输入一个字符,找出它的前驱字符和后继字符,并按ASCII码值,按从大到小的顺序输出这3个字符及其对应的ASCII码值。
答
main()
{
char c;
printf("Input character:");
scanf("%c",&c);
printf("%c----->%d\n",c-1,c-1);
if(x>-5&&x<0)y=x-1;
if(x==0)y=0;
if(x>0&&x<8)y=x+1;
printf("y=%d\n",y);
getch();
}
使用嵌套的if语句程序如下:
main()
{
int x,y;
printf("Input x:");
scanf("%d",&x);
if(x>-5&&x<0)y=x-1;
第三章
8输入一个非负数,计算以这个数为半径的圆周长和面积。
答#define PI 3.1415926
main()
{
float r,l,area;
scanf("%f",&r);
l=2*PI*r;
area=PI*r*r;
printf("l=%f\tarea=%f\n",l,area);
}
9输入任意一个3位数,将其各位数字反序输出(例如输入123,输出321)。
scanf("%d,%d",&a,&b);
if(a>b&&a/b==0)
printf("%d/%d=%d",a,b,a/b);
else
printf("%d/%d=%d......%d",a,b,a/b,a%b);
getch();
}
9输入某个点A的平面坐标(x,y),判断(输出)A点是在圆内、圆外还是在圆周上,其中圆心坐标为(2,2),半径为1。
int ok=0;
printf("Input a,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=(a+b+c)/2,area=sqrt(s*(s-a)*(s-b)*(s-c)),printf("area=%f",area)):printf("error");
答include"math.h"
main()
{
float x,y,d;
printf("Input x,y:");
scanf("%f,%f",&x,&y);
d=sqrt((x-2)*(x-2)+(y-2)*(y-2));
if(d>1)printf("outside");
else if(d<1)printf("inside");
printf("%c----->%d\n",c,c);
printf("%c----->%d\n",c+1,c+1);
getch();
12输入三角形的边长,求三角形面积(面积=sqrt(s(s-a)(s-b)(s-c)),s=(a+b+c)/2)。
答#include"math.h"
main()
{
float a,b,c,s,area;
getch();
}
第四章
7。输入两个字符,若这两个字符的序号(ASCII码)之差为偶数,则输出它们的后继字符,否则输出它们的前驱字符。
答main()
{
char a,b;
printf("Input two chatacter a,b:");
scanf("%c,%c",&a,&b);
if((a-b)/2==0)
答main()
{
int x,y,z,oddcount=0;
printf("Input x,y,z:");
scanf("%d,%d,%d",&x,&y,&z);
x%2==1?oddcount++:0;
y%2==1?oddcount++:0;
z%2==1?oddcount++:0;
oddcount==2?printf("YES"):printf("NOT");
printf("%c,%c",a+1,b+1);
else printf("%c,%c",a-1,b-1);
getch();
}
8.输入整数a和b,如果a能被b整除,就输出算式和商,否则输出算式、整数商和余数。
答main()
{
int a,b;
printf("Input two integer numbers a,b:");
if(m==2)
d=28+f;
else
d=31-(m==4)+(m==6)+(m==9)+(m==11);
printf("%d-%d is %d days.\n",y,m,d);
getch();
}
11请将以下语句改写成switch语句(a>0)。
if(a<30) m=1;
else if(a<40) m=2;
else printf("inside");
getch();
}
10输入年号和月份,输出这一年该月的天数(一个年份,先判断是否闰年)。
答main()
{
int y,m,d,f;
printf("Input year and month y-m:");
scanf("%d-%d",&y,&m);
f=(y%4==0&&y/100!=0||y/400==0);
else if(a<50) m=3;
else if(a<60) m=4;
else m=5
答switch(a/10)
{
case 0:
case 1:
case 2:
case 3:m=1;break;
case 4:m=2;break;
case 5:m=3;break;
case 6:m=4;break;
default:m=5;