头歌实践教学平台—C语言程序设计(选择结构程序设计)
2-1-输入一个学生的某门课成绩score,判断学生的这门课成绩是否及格
查看代码
#include <stdio.h>
int main ( )
{
float score;
scanf("%f",& score);
/********** Begin **********/
if (score>=60)
printf("这门课成绩及格!\n");
else
printf("这门课成绩不及格!\n");
/********** End **********/
return 0;
}
2-2-输入一个某年的纪年数,输出该年是否是闰年
查看代码
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 **********/
if((a+b)>c&&(a+c)>b&&(b+c)>a)
{
s=(a+b+c)/2;
area=sqrt(s*(s-a)*(s-b)*(s-c));
printf("area=%f",area);
}else {
printf("is not triangle!");
}
/********** End **********/
return 0;
}
2-4练习-输入一元二次方程的三个系数求方程的根(选择结构)
查看代码
#include<stdio.h>
#include<stdlib.h>
#include<math.h>
int main(void)
{
/**********Bigin**********/
double a,b,c,derta;
scanf("%lf,%lf,%lf",&a,&b,&c);
derta=b*b-4*a*c;
double d=sqrt(derta);
double x1,x2;
double e=sqrt(-derta);
double s=-b/(2*a),x=e/(2*a);
if (derta>0)
{
x1=(-b+d)/(2*a);
x2=(-b-d)/(2*a);
printf("x1=%.5lf\nx2=%.5lf\n",x1,x2);
}
if (derta==0)
{
x1=x2=-b/(2*a);
printf("x1=x2=%.5lf",s);
}
if (derta<0)
{
printf("x1=%.5lf+%.5lfi\nx2=%.5lf-%.5lfi",s,x,s,x);
}
/**********End**********/
return 0;
}
2-5-编写一程序,用嵌套的if-else语句实现求分段函数值
查看代码
#include<stdio.h>
#include<math.h>
int main()
{
float x;
scanf("%f",&x);
/********** Begin **********/
if(x>=-1)
{
if(x>1)
{
printf("y=%.2f",exp(sqrt(x))-1);
}
else printf("y=%.2f",(fabs(x)+2));
}
else printf("y=%.2f",sin(x*x));
/********** End **********/
return 0;
}
2-6-给一个不多于5位的正整数,要求输出它是几位数
查看代码
#include<stdio.h>
int main()
{
int number;
//printf("请输入一个不多于5位的正整教:");
scanf("%d",&number);
//根据取值范围判断一个正整数位数,如3位数取值范围:100-999
/********** Begin **********/
if(number>10000)
printf("%d是五位数\n",number);
else if(number>=1000)
printf("%d是四位数\n",number);
else if(number>=100)
printf("%d是三位数\n",number);
else if(number>=10)
printf("%d是二位数\n",number);
else if(number>=1)
printf("%d是一位数\n",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个小写字母(不可复制)
查看代码
#include<stdio.h>
int main()
{
char ch;
//printf("请输入一个字符:");
scanf("%c",&ch);
/********** Begin **********/
if(ch>='a'&&ch<='z')
{
if(ch<'u')
printf("是小写英文字母,循环加6为%c",ch+6);
else printf("是小写英文字母,循环加6为%c",ch-20);
}else printf("不是小写英文字母");
/********** End **********/
return 0;
}
2-9-输入4个整数,要求输出4个数中的最大值
查看代码
#include<stdio.h>
int main()
{
int a,b,c,d,max;
scanf("%d%d%d%d",&a,&b,&c,&d);
/********** Begin **********/
if(b>a){a=b;}
if(c>a){a=c;}
if(d>a){a=d;}
/********** End **********/
printf("max=%d",a);
return 0;
}
2-10练习-输入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;}
if(b>c){t=b;b=c;c=t;}
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语句实现输入一个百分制的成绩后输出它的等级
查看代码
#include <stdio.h>
int main()
{
int score;
scanf("%d",&score);
/********** Begin **********/
switch(score/5)
{
case 18:printf("A\n");break;
case 17:printf("A\n");break;
case 16:printf("B\n");break;
case 15:printf("C\n");break;
case 13:printf("D\n");break;
case 12:printf("D\n");break;
default:printf("E\n");
}
/********** End **********/
return 0;
}
2-12练习-用switch语句实现对输入的数字1~7转换成文字星期几,对其它数字不转换
查看代码
#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位的正整数,要求①求出它是几位数②分别输出每一位数字③按逆序输出各位数字
查看代码
#include <stdio.h>
#include <math.h>
int main()
{
int num,y,x1,x2,x3,x4,x5,place;
scanf("%d",&num);
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;
if(num>=0&&num<10)
{
printf("%d为1位数\n",num);
printf("顺序输出为:%d\n",x1);
printf("逆序输出为:%d",x1);
}
if(num>=10&&num<100)
{
printf("%d为2位数\n",num);
printf("顺序输出为:%d,%d\n",x2,x1);
printf("逆序输出为:%d,%d",x1,x2);
}
if(num>=100&&num<1000)
{
printf("%d为3位数\n",num);
printf("顺序输出为:%d,%d,%d\n",x3,x2,x1);
printf("逆序输出为:%d,%d,%d",x1,x2,x3);
}
if(num>=1000&&num<10000)
{
printf("%d为4位数\n",num);
printf("顺序输出为:%d,%d,%d,%d\n",x4,x3,x2,x1);
printf("逆序输出为:%d,%d,%d,%d",x1,x2,x3,x4);
}
if(num>=10000&&num<100000)
{
printf("%d为5位数\n",num);
printf("顺序输出为:%d,%d,%d,%d,%d\n",x5,x4,x3,x2,x1);
printf("逆序输出为:%d,%d,%d,%d,%d",x1,x2,x3,x4,x5);
}
/********** 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 **********/
if ((year%4==0&&year%100!=0)||year%400==0)
{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+=29;
case 2:num+=31;
num=num+day;
}printf("这一天是这一年的第%d天",num);}
else // 或者if (year%4!=0)
{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;
num=num+day;
}printf("这一天是这一年的第%d天",num);}
return 0;
}
2-15练习-用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(b==0){printf("error");
}else{printf("%.2lf/%2lf=%.2lf",a,b,a/b);}break;
}
/********** End **********/
return 0;
}

浙公网安备 33010602011771号