文章目录
- 2-1 学习-输入一个学生的某门课成绩score,判断学生的这门课成绩是否及格
- 2-2 练习-输入一个某年的纪年数,输出该年是否是闰年
- 2-3 练习-输入三个正实数,如果能构成三角形,编程求三角形的面积(选择结构)
- 2-4 练习-输入一元二次方程的三个系数求方程的根(选择结构)
- 2-5 练习-编写一程序,用嵌套的if-else语句实现求分段函数值
- 2-6 练习-给一个不多于5位的正整教,要求输出它是几位数
- 2-7 练习-输入一个字符,判断该字符是大写英文字母,小写英文字母,空格,还是其它字符
- 2-8 练习-输入一个字符,判断该字符是否为小写英文字母,如果是输出其小写英文字母循环排序后的第6个小写字母
- 2-9 学习-输入4个整数,要求输出4个数中的最大值
- 2-10 练习-输入4个整数,要求按由小到大顺序输出这4个数
- 2-11 学习-用switch语句实现输入一个百分制的成绩后输出它的等级
- 2-12练习-用switch语句实现对输入的数字1~7转换成文字星期几,对其它数字不转换
- 2-13 练习-用switch语句实现输入一个不多余5位的正整数,要求①求出它是几位数②分别输出每一位数字③按逆序输出各位数字
- 2-14 练习-用switch语句实现输入某年某月某日,判断这一天是这一年的第几天
- 2-15 练习-用switch语句编写一个简单的实数四则运算程序
2-1 学习-输入一个学生的某门课成绩score,判断学生的这门课成绩是否及格
任务描述
本关任务:输入一个学生的某门课成绩score,判断学生的这门课成绩是否及格。如果大于等于60分,则结果为“及格”;否则结果为“不及格”
#include <stdio.h>
int main ( )
{
float score;
scanf("%f",& score);
/********** Begin **********/
if (score>=60){
printf("这门课成绩及格!");
}else{
printf("这门课成绩不及格!");
}
/********** End **********/
return 0;
}
2-2 练习-输入一个某年的纪年数,输出该年是否是闰年
任务描述
本关任务:编写程序,输入一个某年的纪年数(如:2020),判断该年是否是闰年
int main()
{
int year;
//printf("请输入年份:");
scanf("%d",&year);
//闰年的判定标准:能被4整除但不能被100整除,或者能被400整除
/********** Begin **********/
if((year%4==0 && year %100!=0) || year % 400 == 0){
printf("%d年是闰年。",year);
}else{
printf("%d年不是闰年!",year);
}
/********** End **********/
return 0;
}
2-3 练习-输入三个正实数,如果能构成三角形,编程求三角形的面积(选择结构)
任务描述
本关任务:输入三个正实数,如果能构成三角形,编程求三角形的面积。
#include <stdio.h>
#include <math.h>
int main ( )
{
double a,b,c,s,area; // 定义各变量,均为double型
//printf("please input a,b,c:\n"); //提示用户输入
scanf("%lf %lf %lf",&a,&b,&c); //从键盘输入三角形的三边
/********** Begin **********/
s = (a+b+c) / 2;
area = sqrt(s*(s-a)*(s-b)*(s-c));
if (a+b>c && a+c>b && b+c>a){
printf("area=%lf",area);
}else{
printf("is not triangle!");
}
/********** End **********/
return 0;
}
2-4 练习-输入一元二次方程的三个系数求方程的根(选择结构)
任务描述
本关任务:已知一元二次方程的三个系数,编程求(ax*ax)+bx+c=0方程的根,系数a,b,c的值由键盘输入,构建一个一元二次方程的实例,其中a不等于0。
#include <stdio.h>
#include<math.h>
int main()
{
/**********Bigin**********/
double a,b,c,d,e,f,x1,x2;
scanf("%lf,%lf,%lf",&a,&b,&c);
d = b*b-4*a*c;
f = -b / (2*a);
if(d>0){
x1 = (-b+sqrt(d)) / (2*a);
x2 = (-b-sqrt(d)) / (2*a);
printf("x1=%.5lf\n",x1);
printf("x2=%.5lf\n",x2);
}else if(d==0){
printf("x1=x2=%.5lf\n",f);
}else if(d<0){
x1 = sqrt(-d) / (2*a);
x2 = sqrt(-d) / (2*a);
printf("x1=%.5lf+%.5lfi\n",f,x1);
printf("x2=%.5lf-%.5lfi\n",f,x2);
}
/**********End**********/
return 0;
}
2-5 练习-编写一程序,用嵌套的if-else语句实现求分段函数值
#include<stdio.h>
#include<math.h>
int main()
{
float x;
scanf("%f",&x);
/********** Begin **********/
if(x>1){
printf("y=%.2f",exp(sqrt(x))- 1) ;
}else if(x < -1){
printf("y=%.2f",sin(x*x));
}else{
printf("y=%.2f",fabs(x)+2);
}
/********** End **********/
return 0;
}
2-6 练习-给一个不多于5位的正整教,要求输出它是几位数
任务描述
本关任务:编写程序给一个不多于5位的正整教number,要求输出number是几位数。
#include<stdio.h>
int main()
{
int number;
//printf("请输入一个不多于5位的正整教:");
scanf("%d",&number);
//根据取值范围判断一个正整数位数,如3位数取值范围:100-999
/********** Begin **********/
if(number>=1 && number <=9){
printf("%d是一位数",number);
}else if(number>=10 && number <=99){
printf("%d是二位数",number);
}else if(number>=100 && number <=999){
printf("%d是三位数",number);
}else if(number>=1000 && number <=9999){
printf("%d是四位数",number);
}else{
printf("%d是五位数",number);
}
/********** End **********/
return 0;
}
2-7 练习-输入一个字符,判断该字符是大写英文字母,小写英文字母,空格,还是其它字符
任务描述
本关任务:输入一个字符,编程判断该字符是英文字母,数字字符,空格,还是其它字符。
#include <stdio.h>
int main()
{
char ch;
scanf("%c",&ch); //或者ch=getchar();
/********** Begin **********/
if((ch>='A' && ch<='Z') ||(ch>='a' && ch<='z')){
printf("%c是英文字母",ch);
}else if(ch>='0' && ch<='9'){
printf("%c是数字字符",ch);
}else{
printf("%c是其它字符",ch);
}
/********** End **********/
return 0;
}
2-8 练习-输入一个字符,判断该字符是否为小写英文字母,如果是输出其小写英文字母循环排序后的第6个小写字母
任务描述
本关任务:输入一个字符,判断该字符是否为小写英文字母,如果是输出其小写英文字母循环排序后的第6个小写字母。
#include<stdio.h>
int main()
{
char ch;
//printf("请输入一个字符:");
scanf("%c",&ch);
/********** Begin **********/
if(ch>='a' && ch<='z'){
printf("是小写英文字母,循环加6为%c",(ch-'a'+6)%26+'a');
}else{
printf("不是小写英文字母");
}
/********** End **********/
return 0;
}
2-9 学习-输入4个整数,要求输出4个数中的最大值
- 2-9-1 输入4个整数,要求输出4个数中的最大值
任务描述
本关任务:输入4个整数,要求用交换法输出4个数中的最大值。
#include<stdio.h>
int main()
{
int a,b,c,d,t;
scanf("%d %d %d %d",&a,&b,&c,&d);
/********** Begin **********/
if(a>b){ t = a; a = b; b = t;}
if(b>c){ t = b; b = c; c = t;}
if(c>d){ t = c; c = d; d = t;}
printf("max=%d",d);
/********** End **********/
return 0;
}
- 2-9-2 输入4个整数,要求输出4个数中的最大值
任务描述
本关任务:输入 4 个整数,编程用比较法输出 4 个数中的最大值。
#include<stdio.h>
int main()
{
int a,b,c,d,t;
scanf("%d %d %d %d",&a,&b,&c,&d);
/********** Begin **********/
if(a<b){ t = a; a = b; b = t; }
if(a<c){ t = a; a = c; c = t; }
if(a<d){ t = a; a = d; d = t; }
printf("max=%d",a);
/********** End **********/
return 0;
}
- 2-9-3 输入4个整数,要求输出4个数中的最大值
任务描述
输入4个整数,编程用擂台赛法输出4个数中的最大值。
#include<stdio.h>
int main()
{
int a,b,c,d,max;
scanf("%d %d %d %d",&a,&b,&c,&d);
/********** Begin **********/
max = a;
if(b > max){ max = b;}
if(c > max){ max = c;}
if(d > max){ max = d;}
/********** End **********/
printf("max=%d",max);
return 0;
}
2-10 练习-输入4个整数,要求按由小到大顺序输出这4个数
- 2-10-1 输入4个整数,要求按由小到大顺序输出这4个数
任务描述
本关任务:输入4个整数,编程用交换法由小到大顺序输出这4个数。
#include<stdio.h>
int main()
{
int a,b,c,d,t;
scanf("%d %d %d %d",&a,&b,&c,&d);
/********** Begin **********/
if(a>b){t = a; a = b; b = t;}
if(b>c){t = b; b = c; c = t;}
if(c>d){t = c; c = d; d = t;}
if(a>b){t = a; a = b; b = t;}
if(b>c){t = b; b = c; c = t;}
if(a>b){t = a; a = b; b = t;}
printf("%d %d %d %d",a,b,c,d);
/********** End **********/
return 0;
}
- 2-10-2 输入4个整数,要求按由小到大顺序输出这4个数
任务描述
本关任务::输入4个整数,编程用比较法由小到大顺序输出这4个数。
#include<stdio.h>
int main()
{
int a,b,c,d,t;
scanf("%d %d %d %d",&a,&b,&c,&d);
/********** Begin **********/
// 45 34 23 12
if(a>b){t = a;a = b;b = t;} // 34 45 34 45
if(a>c){t = a;a = c;c = t;} // 34 45 34 45
if(a>d){t = a;a = d;d = t;} // 34 45 34 45
if(b>c){t = b;b = c;c = t;} // 34 34 45 45
if(b>d){t = b;b = d;d = t;}
if(c>d){t = c;c = d;d = t;}
printf("%d %d %d %d",a,b,c,d);
/********** End **********/
return 0;
}
2-11 学习-用switch语句实现输入一个百分制的成绩后输出它的等级
任务描述
本关任务:编程序,输入一个百分制的成绩后,
判断该成绩为A、B、C、D、E哪一个等级,A等为85~100,B等为80~84,C等为70~79,D等为60~69,E等为0~59,用switch语句来实现。
#include <stdio.h>
int main()
{
int score;
scanf("%d",&score);
/********** Begin **********/
switch(score/10){
case 10:case 9:case 8:
if(score<85){
printf("B\n");
break;
}else{
printf("A\n");
break;
}
case 7:printf("C\n");break;
case 6:printf("D\n");break;
default:printf("E\n");
}
/********** End **********/
return 0;
}
2-12练习-用switch语句实现对输入的数字1~7转换成文字星期几,对其它数字不转换
任务描述
本关任务:要求对输入的数字1~7转换成文字星期几,对其它数字不转换,提示“error”。
#include <stdio.h>
int main()
{
/********** Begin **********/
int day;
scanf("%d",&day);
switch(day){
case 1:printf("Monday");break;
case 2:printf("Tuesday");break;
case 3:printf("Wednesday");break;
case 4:printf("Thursday");break;
case 5:printf("Friday");break;
case 6:printf("Saturday");break;
case 7:printf("Sunday");break;
default:printf("error");
}
/********** End **********/
return 0;
}
2-13 练习-用switch语句实现输入一个不多余5位的正整数,要求①求出它是几位数②分别输出每一位数字③按逆序输出各位数字
任务描述
本关任务:给一个不多余5位的正整数,要求如下:①求出它是几位数②分别输出每一位数字③按逆序输出各位数字。
#include <stdio.h>
#include <math.h>
int main()
{
int num,y,x1,x2,x3,x4,x5,place;
scanf("%d",&num);
/* 如何理解log10?
place = log10(1000);
place的值此时为:3
log10(1000) = 3;
10的三次方,这样去理解
*/
place=log10((double)num)+1;
/********** Begin **********/
x1 = num % 10;
x2 = num / 10 % 10;
x3 = num / 100 % 10;
x4 = num / 1000 % 10;
x5 = num / 10000 % 10;
switch(place){
case 1:printf("%d为1位数\n",num);printf("顺序输出为:%d\n",num);printf("逆序输出为:%d\n",num);break;
case 2:printf("%d为2位数\n",num);printf("顺序输出为:%d,%d\n",x2,x1);printf("逆序输出为:%d,%d\n",x1,x2);break;
case 3:printf("%d为3位数\n",num);printf("顺序输出为:%d,%d,%d\n",x3,x2,x1);printf("逆序输出为:%d,%d,%d\n",x1,x2,x3);break;
case 4:printf("%d为4位数\n",num);printf("顺序输出为:%d,%d,%d,%d\n",x4,x3,x2,x1);printf("逆序输出为:%d,%d,%d,%d\n",x1,x2,x3,x4);break;
case 5:printf("%d为5位数\n",num);printf("顺序输出为:%d,%d,%d,%d,%d\n",x5,x4,x3,x2,x1);printf("逆序输出为:%d,%d,%d,%d,%d\n",x1,x2,x3,x4,x5);break;
}
/********** End **********/
return 0;
}
2-14 练习-用switch语句实现输入某年某月某日,判断这一天是这一年的第几天
任务描述
本关任务:输入某年某月某日,判断这一天是这一年的第几天,要考虑这一年是否是闰年。
#include<stdio.h>
int main()
{
int day,month,year,num=0,leap;
scanf("%d%d%d",&year,&month,&day);
/*****先计算某月以前月份的总天数*****/
/********** Begin **********/
switch(month){
case 12:num+=30; case 11:num+=31; case 10:num+=30; case 9: num+=31;
case 8: num+=31; case 7: num+=30; case 6: num+=31; case 5: num+=30;
case 4: num+=31; case 3: num+=28; case 2: num+=31;
}
/********** End **********/
/*****再加上当月的天数*****/
num += day;
/*****判断是不是闰年*****/
/********** Begin **********/
if((year%4==0 && year%100!=0) || year % 400 == 0){
if(month>2){
num+=1;
}
}
printf("这一天是这一年的第%d天",num);
return 0;
}
2-15 练习-用switch语句编写一个简单的实数四则运算程序
任务描述
本关任务:用switch语句编写一个简单的实数四则运算程序
#include<stdio.h>
#include<math.h>
int main()
{
double a,b;
char c;
scanf("%lf%c%lf",&a,&c,&b);
/********** Begin **********/
switch(c){
case '+':printf("%.2lf+%.2lf=%.2lf",a,b,a+b);break;
case '-':printf("%.2lf-%.2lf=%.2lf",a,b,a-b);break;
case '*':printf("%.2lf*%.2lf=%.2lf",a,b,a*b);break;
case '/':
if(a == 0 || b == 0){
printf("error");
break;
}else{
printf("%.2lf/%.2lf=%.2lf",a,b,a/b);
break;
}
}
/********** End **********/
return 0;
}