printf("iY=%d\n",iY);
getch();
}
P304
/***************************************************
问题3.4:
数的绝对值
知识点说明:
1)简单if语句:
if(条件表达式)语句
2)条件表达式的构成:
关系表达式、逻辑表达式、复合表达式
3)if语句的作用:
有条件地执行语句,或者有选择地执行语句
****************************************************/
#include"stdio.h"
voidmain()
{intiX,iY;
printf("Pleaseinputaninteger:
");
scanf("%d",&iX);/*输入一个整数*/
iY=iX;
if(iX<0)/*单分支的选择结构,根据条件(iX<0),选择是否执行语句iY=-iX*/
iY=-iX;
printf("\n|%d|=%d",iX,iY);
getch();}
P305
/***************************************************
问题3.5:
电灯开关
知识点说明:
1)if-else语句:
if(条件表达式)
语句1;
else
语句2;
2)if-else语句的含意:
根据条件,选择执行语句1或者语句2
****************************************************/
#include"stdio.h"
voidmain()
{intiOnOff;
printf("Pleaseinput1oraninteger:
");
scanf("%d",&iOnOff);
if(iOnOff!
=0)/*双分支选择结构,根据条件决定跑哪一分支*/
printf("\nThelightison.");/*条件成立时执行的语句*/
else
printf("\nThelightisoff.");/*条件不成立时执行的语句*/
getch();
}
P306
/*****************************/
#include"stdio.h"
voidmain()
{intiX,iY,iMax;
printf("Pleaseinput2integers:
");
scanf("%d%d",&iX,&iY);
iMax=iX>iY?
iX:
iY;/*用条件运算符?
:
来实现双分支选择结构*/
printf("iMax=%d",iMax);
getch();
}
P307
***********************************************************
问题3.7:
分段函数
知识点说明:
1)多分支选择结构的格式
2)多分支选择结构的执行过程:
-遇到第1个条件为真时执行相应的语句,
然后跳到if之后的下一个语句执行
-如果没有一个条件为真,则执行最后一个else之后的语句
***********************************************************/
#include"stdio.h"
voidmain()
{intiX,iY;
printf("Pleaseinputanintegers:
");
scanf("%d",&iX);
if(iX>5)/*多分支选择结构的实现*/
iY=iX+3;
elseif(iX<0)
iY=2*iX+30;
else
iY=0;
printf("f(%d)=%d",iX,iY);
getch();
}
P308
/***************************************************
问题3.8:
成绩等级转换
知识点说明:
1)多分支选择结构的应用
****************************************************/
#include"stdio.h"
voidmain()
{floatfScore;
printf("Pleaseinputyourscore:
");
scanf("%f",&fScore);
if(fScore>=90&&fScore<=100)/*复杂的多分支选择结构*/
printf("YourgradeisA.");
elseif(fScore>=80&&fScore<90)
printf("YourgradeisB.");
elseif(fScore>=70&&fScore<80)
printf("YourgradeisC.");
elseif(fScore>=60&&fScore<70)
printf("YourgradeisD.");
elseif(fScore>0&&fScore<60)
printf("YourgradeisE.");
else
printf("Invalidinput.");
getch();
}
P309
/***************************************************
问题3.9:
驾照判别
知识点说明:
1)switch语句的格式
2)用switch语句实现多分支选择
3)switch语句的执行过程
-当表达式遇到第1个匹配的case时,执行该case之后相应的语句
-一般每个case之后的语句组中,最后一个语句应该是break语句
-break语句用于使程序跳出switch语句体
****************************************************/
#include"stdio.h"
voidmain()
{charchLicence;
printf("Pleaseinputyourdrivinglicence:
");
scanf("%c",&chLicence);
switch(chLicence)/*用switch语句实现多分支选择结构*/
{
case'A':
printf("Youcandrivebus,car,truck.");
break;
case'B':
printf("Youcandrivecar,truck.");
break;
case'C':
printf("Youcandrivecar.");
break;
case'D':
printf("Youcandriveautobikeonly.");
break;
default:
printf("InputError.");
}
getch();
}
P310
/***************************************************
问题3.10:
成绩等级转换
知识点说明:
1)switch语句的应用
2)switch语句
-允许case后为空
****************************************************/
#include"stdio.h"
voidmain()
{floatfScore;
intiTemp=-1;
printf("Pleaseinputascore:
");
scanf("%f",&fScore);
if(fScore>=0&&fScore<=100)
iTemp=fScore/10;
switch(iTemp)
{
case0:
/*0-59分,"E"*/
case1:
case2:
case3:
case4:
case5:
printf("E");break;
case6:
printf("D");break;
case7:
printf("C");break;
case8:
printf("B");break;
case9:
/*90-100分,"A"*/
case10:
printf("A");break;
default:
printf("InvalidInput!
");
}
getch();
}
P311
/***************************************************
问题3.11:
对一个随机数的判断
知识点说明:
1)随机数产生:
涉及的函数
-srand函数为随机函数初始化,头文件为"stdlib.h"
-time函数时间函数,产生系统时间,头文件为"time.h"
-rand函数随机函数,产生随机的正整数,头文件为"stdlib.h"
2)srand((unsigned)time(NULL)):
以系统时钟作为随机数初始化的随机种子;
3)rand():
无需参数,直接产生随机数
****************************************************/
#include"stdio.h"
#include"stdlib.h"
#include"time.h"
voidmain()
{inta;
srand((unsigned)time(NULL));
a=rand();
if(a%2==0)
printf("\n%d:
EVEN",a);
else
printf("\n%d:
ODD",a);
getch();
}
P312
/***************************************************
问题3.12:
产生100个两位随机整数
****************************************************/
#include"stdio.h"
#include"stdlib.h"
#include"time.h"
voidmain()
{inta,i;
srand((unsigned)time(NULL));
for(i=0;i<100;i++){
a=10+rand()%90;
printf("%d\t",a);
if(i%10==9)printf("\n");
}
getch();
}
练习
任务1(P301):
求以下列函数的值。
注:
1)当输入自变量x的值后,求出对应的函数y的值,将x和y的值显示出来;2)输入的x值大于等于0时的y值与x值小于0时的y值,计算方法是不一样的。
任务2(P302):
编一程序,从键盘输入3个整数,显示输出较大的一个。
注:
程序涉及到1)变量的定义;2)数据的输入;3)数据之间的大小关系的判断;4)判断结果的显示。
任务3(P303):
从键盘上输入一整数,判断它的奇偶性。
如果输入的是奇数,则在屏幕上输出“ODD”,如果输入的是偶数,则在屏幕上输出“EVEN”。
任务5(P304):
输入三个实数a,b,c(满足a≠0),解一元二次方程ax2+bx+c=0。
a当b2-4ac>0时,方程有两个不等的实根;
a当b2-4ac=0时,方程有两个相等的实根;
a当b2-4ac<0时,方程有一对共轭复根;
注:
编程时1)要对输入的参数a判断,如果a=0时,显示“Invalida!
”,然后结束程序;2)要对方程的根的判断式进行判断,并进行相应的计算,给出相应的显示结果。
任务6(P305):
判断一个年份是否闰年。
答案
/***************************************************
p301
****************************************************/
#include"stdio.h"
voidmain()
{intX,Y;
printf("Pleaseinputaninteger:
");
scanf("%d",&X);
if(X<0)
Y=2*X-1;
else
Y=3*X-1;
printf("Y\n%d",Y);
getch();
}
/***************************************************
p302
****************************************************/
#include"stdio.h"
voidmain()
{inta,b,c,Max;
printf("Pleaseinputthreeinteger:
");
scanf("%d%d%d",&a,&b,&c);
if(a>b&&b>c)/*a>b>c是错误的表达方式*/
Max=a;
else
{if(b>c&&b>a)
Max=b;
else
Max=c;}
printf("Max\n%d",Max);
getch();
}
/***************************************************
p303
****************************************************/
#include"stdio.h"
voidmain()
{intx;
printf("Pleaseenteranumber:
");
scanf("%d",&x);
if(x%2==0)
printf("\nEVEN");
else
printf("\nODD");
getch();
}
/***************************************************
p304
****************************************************/
#include"stdio.h"
#include"math.h"
voidmain()
{inta,b,c;
floatx1,x2;
printf("pleaseenter3numbers");
scanf("%d%d%d",&a,&b,&c);
if(a==0)
printf("Invalida!
");
else
{if(b*b-4*a*c>0)
{x1=(-b+sqrt(b*b-4*a*c))/(2*a);
x2=(-b-sqrt(b*b-4*a*c))/(2*a);
printf("%f%f",x1,x2);}
elseif(b*b-4*a*c==0)
{x2=x1=(-b+sqrt(b*b-4*a*c))/(2*a);
printf("%f%f",x1,x2);}
else
printf("Norealrootexist");}
getch();
}
/***************************************************
p305
****************************************************/
#include"stdio.h"
#include"conio.h"
voidmain()
{inty;
printf("pleaseenterayear:
");
scanf("%d",&y);
if(y%4==0&&y%100!
=0||400)
printf("\ntheyearisrunnian");
else
printf("\ntheyearisnotpinnian");
getch();
}