03单元3 选择结构程序设计Word文件下载.docx
《03单元3 选择结构程序设计Word文件下载.docx》由会员分享,可在线阅读,更多相关《03单元3 选择结构程序设计Word文件下载.docx(20页珍藏版)》请在冰点文库上搜索。
else
leap=0;
if(leap)
printf("
%d年是闰年。
\n"
year);
%d年不是闰年。
\n"
SC01020103003
例3-6
从键盘输入三个整数a、b和c的值,输出其中最大值。
#include<
stdio.h>
intmaxfun(inta,intb,intc);
intmaxfun(inta,intb,intc)
intmax;
max=a;
else
max=b;
if(c>
max)
max=c;
returnmax;
intmain()
inta,b,c;
请输入三个整数a,b,c:
);
scanf("
%d%d%d"
&
a,&
b,&
c);
max=maxfun(a,b,c);
%d,%d,%d这三个数的最大值是%d。
"
a,b,c,max);
return0;
SC01020103004
例3-7
从键盘输入字符判别是数字、字母还是空格。
voidcheck(charx)
\n输入的字符是"
if(x>
='
0'
x<
9'
)//判别数字范围
printf("
数字:
%c\n"
x);
elseif(x>
A'
Z'
||x>
a'
z'
)//判别字母范围
字母:
elseif(x=='
'
)//判别是否空格
空格:
其它符号:
SC01020103005
例3-8
有一函数:
,编一个程序,对输入的x值,输出对应的y值。
方法1:
voidcompu(intx)
inty;
if(x<
0)
y=-1;
if(x==0)
y=0;
y=1;
%d"
y);
方法2:
voidcompu1(intx)
elseif(x==0)
方法3:
=0)
if(x>
y=1;
else
y=0;
}
SC01020103006
例3-9
输入一个百分制成绩,要求输出成绩等级'
'
B'
C'
D'
。
其中90分以上为A,70~89为B,60~69为C,60分以下为D。
voidscoregrade(intscore)
intselect;
chargrade;
if(score==100)
select=9;
select=score/10;
switch(select)
case9:
grade='
;
break;
case8:
case7:
case6:
default:
grade='
printf("
score=%d\tgrade=%c\n"
score,grade);
SC01020103007
引例
从键盘上输入三个整数,要求输出这三个整数的最大值。
//定义,输入,调用,输出
请输入三个整数,用空格进行分割:
这三个数的最大值为:
%d.\n"
max);
//功能函数:
求三个整数的最大值
max=a;
if(b>
SC01020103008
课堂实践3-2
求一元二次方程ax2+bx+c=0的根。
提示:
需要判别b2-4ac大于0,小于0和等于0的情况。
math.h>
voidroot(doublea,doubleb,doublec)
doubledisc,p,q;
disc=b*b-4*a*c;
p=-b/2/a;
if(fabs(disc)<
1e-6)
一元二次方程有两个相等的实根:
x1=x2=%.2lf\n"
p);
elseif(disc>
q=sqrt(disc)/2/a;
一元二次方程有两个不同的实根:
x1=%.2lf,x2=%.2lf\n"
p+q,p-q);
q=sqrt(-disc)/2/a;
一元二次方程有两个不同的虚根:
x1=%.2lf+%.2lfi,x2=%.2lf-%.2lfi\n"
p,q,p,q);
doublea,b,c;
请输入一元二次方程的三个系数:
%lf%lf%lf"
root(a,b,c);
SC01020103009
课堂实践3-3
输入1-7之间的任意数字,程序按照用户的输入输出对应的星期几的英文,比如输入3,程序输出Wednesday。
若输入1-7以外的数字,则提示输入错误!
voidduizhao(inti)
switch(i)
case1:
printf("
Monday!
case2:
Tuesday!
case3:
Wednesday!
case4:
Thursday!
case5:
Friday!
Saturday!
Sunday!
输入错误!
\n"
inti;
请输入1-7数字表示对应的星期几:
i);
duizhao(i);
SC01020103010
同步训练程序设计题1
输入一个字符,如果是大写字母,转换为小写,如果不是不转换。
最后输出。
charzhuanhuan(charc);
charzhuanhuan(charc)
charch;
ch=(c>
c<
)?
(c+32):
c;
returnch;
charc;
c=getchar();
putchar(zhuanhuan(c));
return0;
SC01020103011
同步训练程序设计题2
根据给定的年份计算该年度二月份的天数。
intFebruaryDay(inty);
intFebruaryDay(inty){
intd2;
if(y%4==0&
y%100!
=0||y%400==0)//判断是否闰年
d2=29;
d2=28;
returnd2;
//将求得的天数作为函数值返回
intyear,day;
请输入年份:
year);
//输入年份year的值
day=FebruaryDay(year);
//以year为参数,调用函数FebruaryDay(),求得
//该年二月份的天数,并赋值给天数day。
%d年的二月有%d天!
year,day);
//输出年份及对应的二月份天数
SC01020103012
同步训练程序设计题3
输入圆的的半径r和一个整型数k,当k=1时,计算圆的面积;
但k=2时,计算圆的周长,当k=3时,既要求求圆的周长也要求出圆的面积。
编程实现以上功能。
#definePI3.1415
voidfun(doubler,intk);
voidfun(doubler,intk)
doublec,s;
switch(k)
s=PI*r*r;
圆面积为:
%5.2f\n"
s);
c=2*PI*r;
圆周长为:
c);
%5.2f,圆周长为:
s,c);
doubler;
intk;
请输入圆半径:
%lf"
r);
请输入代号123:
k);
fun(r,k);
SC01020103013
同步训练程序设计题4
输入4个数,按从小到大的顺序输出。
voidfun(inta,intb,intc,intd);
voidfun(inta,intb,intc,intd)
intt;
a=b;
b=t;
c)
a=c;
c=t;
d)
a=d;
d=t;
//a最小
t=b;
b=c;
b=d;
//b次小
t=c;
c=d;
//c第三,从而d最大
四个整数从小到大排列为:
%d,%d,%d,%d\n"
a,b,c,d);
inta,b,c,d;
请输入四个整数"
%d%d%d%d"
c,&
d);
fun(a,b,c,d);
SC01020103014
同步训练程序设计题5
某商场举行购物优惠活动(x代表购物款,y代表折扣):
当x<
1600时,y=0;
1600<
=x<
2400,y=5%;
2400<
3200,y=10%;
3200<
6400.y=15%,
x>
=6400.y=20%。
输入一个顾客的购物款后,显示它应付的款数。
doublefun(doublemoney);
doublefun(doublemoney)
intt=(int)(money/800);
doubleoff;
switch(t)
case0:
off=0;
off=0.05;
off=0.1;
off=0.15;
off=0.2;
returnmoney*(1-off);
doublemoney;
请输入购物金额"
money);
购物金额为%5.2f时,实际付款为%5.2f。
money,fun(money));