第3章:课后习题答案


一、单项选择题

1—5 CACBB
6—10 CDBBB
11—15 ADCCB
16—20 DCCBB

二、填空题

  1. (a!=b)||(a<=c)
  2. (x>20)&&(x<30)||(x<-100)
  3. 0
  4. 1
  5. 1
  6. if((x%3==0) && (x%7==0) )

三、编程题

  1. 从键盘输入一个正整数,判断它是否为3和5的倍数,如果是则输入yes,否则输出no
#include<stdio.h>
int main()
{
    
    
	int x;
	printf("请输入一个正整数");
	scanf("%d",&x);
	if((x%3==0)&&(x%5==0))
		printf("yes");
	else
		printf("no");
	return 0;
} 
  1. 编写程序,输入三角形的3边长,求其面积。注意:三角形的任意两边之和必须大于第三边,对于不合理的边长输入,要求给出错误提示。
#include<stdio.h>
#include<math.h> 
int main()
{
    
    
	double a,b,c,p,s;
	printf("输入三角形的3个边长");
	scanf("%lf%lf%lf",&a,&b,&c);
	if((a+b>c)&&(a+c>b)&&(b+c>a)){
    
    
		p=(a+b+c)/2;
		s=sqrt(p*(p-a)*(p-b)*(p-c));
	}
	else{
    
    
		printf("输入边长不合理");
		return 0;
	}
	printf("%0.2lf",s);
	return 0;
} 

  1. 根据以下分段函数编写程序,输入一个x值,输出相应的y值
    在这里插入图片描述
#include<stdio.h>
int main()
{
    
    
	float x,y;
	printf("请输入x值");
	scanf("%f",&x);
	if((x>-5)&&x<0){
    
    
		y=x-1;
	}
	else if(x==0){
    
    
		y=x;
	}
	else if(x>0&&x<8){
    
    
		y=x+1;
	}
	else{
    
    
		y=10;
	}
	printf("%f",y);
	return 0;
} 

  1. 从键盘输入一个字符,如果是小写字母,则转化为大写字母输出,如果是大写字母,则转化为小写字母输出,其他字符原样输出
#include<stdio.h>
int main()
{
    
    
	char a;
	a=getchar();
	if(a>='a'&&a<='z'){
    
    
		a=a-32;
		putchar(a);
	} 
	else if(a>='A'&&a<='Z'){
    
    
		a=a+32;
		putchar(a); 
	}
	else{
    
    
		putchar(a);
	}
	return 0;
} 
  1. 从键盘输入3个整数到变量a,b,c中,将这3个数由小到大排序,a为最小数,c为最大数
#include<stdio.h>
int main()
{
    
    
	int a,b,c,t=0;
	scanf("%d%d%d",&a,&b,&c);
	if(a>b){
    
    
		t=a;
		a=b;
		b=t;
	}
	if(a>c){
    
    
		t=c;
		c=a;
		a=t;
	}
	if(b>c){
    
    
		t=b;
		b=c;
		c=t;
	}
	printf("a=%d,b=%d,c=%d",a,b,c);
	return 0;
} 

  1. 输入一个3位数,判断是否为水仙花数,当输入数据不正确时给出提示。水仙花数是一个3位数,其各位数的立方和等于该数本身。
#include<stdio.h>
int main()
{
    
    
	int x,g,s,b;
	scanf("%d",&x);
	if(x>999||x<0){
    
    
		printf("输入数据不正确");
		return 0; 
	}
	g=x%10;
	s=x/10%10;
	b=x/100;
	if(x==(g*g*g+s*s*s+b*b*b)){
    
    
		printf("%d是水仙花数",x);
	}
	else{
    
    
		printf("%d不是水仙花数",x);
	}
	return 0;
} 
  1. 从键盘输入3个整数a、b、c的值,求一元二次方程ax*x+bx+c=0(a!=0)的根,计算结果保留两位小数
#include<stdio.h>
#include<math.h>
int main()
{
    
    
	int a,b,c,s,x1,x2;
	scanf("%d%d%d",&a,&b,&c);
	if(a==0){
    
    
		printf("输入数据错误"); 
	}
	s=b*b-4*a*c;
	if(s>0){
    
    
		x1=((-b)+sqrt(s))/(2*a);
		x2=((-b)-sqrt(s))/(2*a);
		printf("方程有2个解:x1=%d,x2=%d",x1,x2);
	}
	else if(s==0){
    
    
		printf("方程有1个解:x=%d",(-b)/(2*a));
	}
	else{
    
    
		printf("方程无解");
	}
	return 0;
} 
  1. 在这里插入图片描述
#include<stdio.h>
int main()
{
    
    
	int year;
	double sum;
	printf("输入本金与期限");
	scanf("%lf%d",&sum,&year);
	if(year==8){
    
    
		printf("金额:%0.2lf,期限:%d",sum+sum*0.0032,year);
	}
	else if(year==5){
    
    
		printf("金额:%0.2lf,期限:%d",sum+sum*0.00275,year);
	}
	else if(year==3){
    
    
		printf("金额:%0.2lf,期限:%d",sum+sum*0.00245,year);	
	}
	else if(year==2){
    
    
		printf("金额:%0.2lf,期限:%d",sum+sum*0.00230,year);	
	}	
	else if(year==1){
    
    
		printf("金额:%0.2lf,期限:%d",sum+sum*0.00215,year);	
	}
	else{
    
    
		printf("不是上述年限,请重新输入"); 
	}
	return 0;
} 


#include<stdio.h>
int main()
{
    
    
	int year;
	double sum;
	printf("输入本金与期限");
	scanf("%lf%d",&sum,&year);
	switch(year){
    
    
		case 8: sum=sum+sum*0.0032;break;
		case 5: sum=sum+sum*0.00275;break;
		case 3: sum=sum+sum*0.00245;break;
		case 2: sum=sum+sum*0.00230;break;
		case 1: sum=+sum*0.00215;break;
		default :printf("不是上述年限,请重新输入"); return 0; 
	}
		printf("金额:%0.2lf,期限:%d",sum,year);	
		return 0;
} 



如果有问题,可以在评论区留言

猜你喜欢

转载自blog.csdn.net/buxiangquaa/article/details/114537291
今日推荐