欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

(C语言)实验3 分支结构程序设计

程序员文章站 2022-05-12 13:39:01
...

【实验目的】

1、熟练掌握C语言的格式输入方式的使用,能正确使用getchar()和putchar()函数输入字符。
2、掌握关系运算符和关系表达式的使用方法,以及逻辑运算符和逻辑表达式的使用方法。
3、理解C语言程序的顺序结构、分支结构、循环结构以及if…else、for语句的使用。

【实验要求】

1、实验共5题每题20分,共100分;
2、实验需在截至日期前提交实验平台,截止日上传答案,同学互改;
3、学生对实验分数有异议,提交申请,带教老师修正得分;
4、原则上学生需独立完成实验题,个别难题可互相讨论或查阅资料;
5、若对试验题有疑问,且仔细阅读测试用例,可咨询带教老师。

【实验内容】

1、输入x,求分段函数的值(569)
2、教材P66-三(5):三角形判断 (559)
3、输入月份1-12,输出其对应的季节. (566)
4、输入一个整数,判断它能否被5,7整除,并输出该数对应的类型 (1168)
5、判断闰年(if-else逐步判断) (1191)

【题目1】

【编程题】输入x,求分段函数的值
【题目ID】569
【问题描述】输入x,求分段函数的值,函数如下:
(C语言)实验3 分支结构程序设计
【输入形式] 输入x的值
【输出形式】输出函数的值(保留2位小数)
【样例说明】
(C语言)实验3 分支结构程序设计
【测试用例】
【用例1】
输入:
-5
输出:
y=-5.00
【用例2】
输入:
4
输出:
y=3.00
【用例3】
输入:
10
输出:
y=19.00

【用例4】
输入:
12.5
输出:
y=26.50

【题目2】

【编程题】教材P66-三(5):三角形判断
【题目ID】559
【问题描述】教材P66-三(5):三角形判断
【输入形式】输入三个点的坐标值
【输出形式】若该三点能构成三角形则输出周长和面积,否则输出Impossible;
【样例说明】
(C语言)实验3 分支结构程序设计
【测试用例】
【用例1】
输入:
1,1
3,0
-1.5,-2.5
输出:
primeter=11.69,area=4.75
【用例2】
输入:
1,0
2,0
3,0
输出:
Impossible

【题目3】

【编程题】输入月份1-12,输出其对应的季节.
【题目ID】566
【问题描述】
输入月份1-12,输出其对应的季节(2-4:Spring,5-7:Summer,8-10:Autumn,11-12、1:Winter)。否则输出Error。
【输入形式】输入月份(整数)
【输出形式】输出季节名称
【样例说明】
(C语言)实验3 分支结构程序设计
【测试用例】
【用例1】
输入:
3
输出:
Spring
【用例2】
输入:
5
输出:
Summer
【用例3】
输入:
10
输出:
Autumn
【用例4】
输入:
1
输出:
Winter
【用例5】
输入:
-10
输出:
Error

【题目4】

【编程题】输入一个整数,判断它能否被5,7整除,并输出该数对应的类型
【题目ID】1168
【问题描述】
输入一个整数,判断它能否被5,7整除,并输出该数所属类型。A:能同时被5,7整除;B:能被5整除;C:能被7整除;D:不能被5,7任一个整除
【输入形式】输入一个整数
【输出形式】输出对应类型的字母分类
【样例说明】
(C语言)实验3 分支结构程序设计
(C语言)实验3 分支结构程序设计
(C语言)实验3 分支结构程序设计
【测试用例】
【用例1】
输入:
35
输出:
A
【用例2】
输入:
15
输出:
B
【用例3】
输入:
12
输出:
D
【用例4】
输入:
14
输出:

【用例5】
输入:
10
输出:
B

【题目5】

【编程题】判断闰年(if-else逐步判断)
【题目ID】1191
【问题描述】
在下列程序的基础上完善程序。本题考察的是嵌套的if-else结构,请仔细分析程序的逻辑结构。

#include<stdio.h>
int main(){
    int year,leap;//leap为0,不是闰年;leap为1,是闰年
    scanf("%d",&year);
    if(year%4==0){              /*能被4整除的情况*/1}
  else 
       leap=0;//不能被4整除,不是闰年 如:1973
  if(leap)printf("yes");
  else printf("no");
}

思路:1)能被4整除
1.1) 能被100整除
1.1.1) 能被400整除//闰年,如2000
1.1.2) 不能被400整除//平年,如1900
1.2) 不能被100整除//闰年,如1996
2)不能被4整除//平年,如1999
输入:一行,一个整整数,代表年份
输出:一行,yes 或者 no,yes表示闰年,no表示平年
【输入输出】
(C语言)实验3 分支结构程序设计
(C语言)实验3 分支结构程序设计
【测试用例】
【用例1】
输入:
1900
输出:
no
【用例2】
输入:
2000
输出:
yes
【用例3】
输入:
1999
输出:
no
【用例4】
输入:
1996
输出:
yes
【用例5】
输入:
800
输出:
yes

我的答案(100分)

(C语言)实验3 分支结构程序设计
(C语言)实验3 分支结构程序设计
(C语言)实验3 分支结构程序设计
(C语言)实验3 分支结构程序设计
(C语言)实验3 分支结构程序设计

标准答案

1.输入x,求分段函数的值

#include<stdio.h>
#include<math.h>
int main(){
	float x,y;
	scanf("%f",&x);
	if(x<1)
		y=x;
	else if(x<10)
		y=x-1;
	else 
		y=3*x-11;
	printf("y=%.2f",y);
	return 0;
} 

2.教材P66-三(5):三角形判断

#include<stdio.h>
#include<math.h>
int main(){
	float x1,y1,x2,y2,x3,y3;
	float z12,z23,z13,p,s;
	/*scanf("%f,%f",&x1,&y1);
	scanf("%f,%f",&x2,&y2);
	scanf("%f,%f",&x3,&y3);*/ 
	scanf("%f,%f%f,%f%f,%f",&x1,&y1,&x2,&y2,&x3,&y3);
	z12=sqrt((x1-x2)*(x1-x2)+(y1-y2)*(y1-y2));
	z23=sqrt((x2-x3)*(x2-x3)+(y2-y3)*(y2-y3));
	z13=sqrt((x1-x3)*(x1-x3)+(y1-y3)*(y1-y3));
	if(z12+z23>z13 && z13+z23>z12 && z13+z12>z23){
		p=(z12+z23+z13)/2;
		s=sqrt(p*(p-z12)*(p-z13)*(p-z23));
		printf("primeter=%.2f,area=%.2f",p*2,s);
	}	
	else
		printf("Impossible");
	return 0;
}

3.输入月份1-12,输出其对应的季节.

#include<stdio.h>
int main(){
	int season;
	scanf("%d",&season); 
	switch(season){
		case 2:
		case 3:
		case 4:
			printf("Spring");break;
		case 5:
		case 6:
		case 7:
			printf("Summer");break;
		case 8:
		case 9:
		case 10:
			printf("Autumn");break;
		case 11:
		case 12:
		case 1:
			printf("Winter");break;
		default:
			printf("Error");break;
	}
	return 0;
}

4.输入一个整数,判断它能否被5,7整除,并输出该数对应的类型

 #include<stdio.h>
 int main(){
 	int x;
 	scanf("%d",&x); 
 	if(x%5==0&&x%7==0)
 		printf("A");
 	else if(x%5==0&&x%7!=0)
 		printf("B");
 	else if(x%5!=0&&x%7==0)
 		printf("C");
 	else
 		printf("D");
	return 0;
 }

5.判断闰年(if-else逐步判断)

#include<stdio.h>
int main(){
	int year,leap;//leap为0,不是闰年;leap为1,是闰年 
	scanf("%d",&year);
	if(year%4==0){              /*用if函数逐步判断是否满足成为闰年的条件*/
       if(year%100==0){
           	if(year%400==0)
             leap=1;  //是闰年       
           	else
             leap=0; //不是闰年        
       }
       else
        	leap=1;//是闰年 
   }
   	else	
      	leap=0;//不是闰年 
    if(leap)printf("yes");
    else printf("no");
}