第4章 选择结构程序习题解答.docx

上传人:b****6 文档编号:4685281 上传时间:2022-12-07 格式:DOCX 页数:20 大小:35.81KB
下载 相关 举报
第4章 选择结构程序习题解答.docx_第1页
第1页 / 共20页
第4章 选择结构程序习题解答.docx_第2页
第2页 / 共20页
第4章 选择结构程序习题解答.docx_第3页
第3页 / 共20页
第4章 选择结构程序习题解答.docx_第4页
第4页 / 共20页
第4章 选择结构程序习题解答.docx_第5页
第5页 / 共20页
点击查看更多>>
下载资源
资源描述

第4章 选择结构程序习题解答.docx

《第4章 选择结构程序习题解答.docx》由会员分享,可在线阅读,更多相关《第4章 选择结构程序习题解答.docx(20页珍藏版)》请在冰豆网上搜索。

第4章 选择结构程序习题解答.docx

第4章选择结构程序习题解答

第4章选择结构程序设计习题解答

1.设x、t均为int型变量,则执行语句“x=10;t=x&&x>10;”后,t的值为0。

2.假定所有变量均已正确定义,则程序段:

inta=0,y=10;

if(a=0)//条件式为0

y--;

elseif(a>0)

y++;

else

y+=y;

运行后y的值是20。

3.能表述2020&&x<30||x<-100。

4.若有定义语句“inta=25,b=14,c=19;”,则以下语句执行结果是***a=25,b=14,c=19***。

if(a<=25&&b<=2&&c)

printf("***a+b=%d,a-b=%d***\n",a+b,a-b);

else

printf("***a=%d,b=%d,c=%d***\n",a,b,c);

5.假定i和j为int型变量,则执行以下语句后i的值是37。

#include

voidmain()

{

inti=1,j;

switch(i)

{

case1:

for(j=0;j<9;j++)

i+=j;

break;

case2:

for(j=1;j<10;j++)

i+=j;

break;

case3:

i++;

}

}

6.以下两条if语句:

可合并成一条if语句,即。

if(a<=b)

x=1;

else

y=2;

if(a>b)

printf("***y=%d\n",y);

else

printf("***x=%d\n",x);

可合并成一条if语句,即:

if(a<=b)

{

x=1;

printf("***x=%d\n",x);

}

else

{

y=2;

printf("***y=%d\n",y);

}

7.输入两个字符,若这两个字符的序号(ASCII码)之差为偶数,则输出它们的后继字符,否则输出它们的前驱字符。

#include

voidmain()

{

chara,b;

intc;

printf("Inputtwochar:

");

scanf("%c%c",&a,&b);

c=a-b;

if(c%2==0||(-c)%2==0)

printf("%c%c\n",a+1,b+1);

else

printf("%c%c\n",a-1,b-1);

}

8.输入整数a和b,如果a能被b整除,就输出版式和和商,否则输出算式、整数商和余数。

#include

voidmain()

{

inta,b;

printf("Inputtwoint_numbers:

");

scanf("%d%d",&a,&b);

if(a%b==0)

printf("%d/%d=%d\n",a,b,a/b);

else

printf("%d/%d=%d****%d\n",a,b,a/b,a%b);

}

9.输入某个点A的平面坐标(x,y),判断(输出)A点是在圆内,圆外还是在圆周上,其中圆心坐标为(2,2),半径为1。

#include

#include

voidmain()

{

floatx,y;

doublez;

printf("Inputtwoint_numbers(pointA):

");

scanf("%f,%f",&x,&y);

z=sqrt((x-2)*(x-2)+(y-2)*(y-2));

if(z<1)

printf("PointAinthecircular.\n");

elseif(z==1)

printf("PointAatthecircular.\n");

else

printf("PointAwithoutthecircular.\n");

}

10.输入年号和月份,输出这一年该月的天数(一个年份,先判断是否闰年)。

#include

voidmain()

{

inty,m;

intleap_year;

printf("Inputyearandmonth");

scanf("%d%d",&y,&m);

if(y%4==0&&y%100!

=0||y%400==0)

leap_year=1;

else

leap_year=0;

switch(m)

{

case1:

printf("Year%dMonth%dDay:

%d\n",y,m,31);

break;

case2:

if(leap_year)

printf("Year%dMonth%dDay:

%d\n",y,m,29);

else

printf("Year%dMonth%dDay:

%d\n",y,m,28);

break;

case3:

printf("Year%dMonth%dDay:

%d\n",y,m,31);

break;

case4:

printf("Year%dMonth%dDay:

%d\n",y,m,30);

break;

case5:

printf("Year%dMonth%dDay:

%d\n",y,m,31);

break;

case6:

printf("Year%dMonth%dDay:

%d\n",y,m,30);

break;

case7:

printf("Year%dMonth%dDay:

%d\n",y,m,31);

break;

case8:

printf("Year%dMonth%dDay:

%d\n",y,m,31);

break;

case9:

printf("Year%dMonth%dDay:

%d\n",y,m,30);

break;

case10:

printf("Year%dMonth%dDay:

%d\n",y,m,31);

break;

case11:

printf("Year%dMonth%dDay:

%d\n",y,m,30);

break;

case12:

printf("Year%dMonth%dDay:

%d\n",y,m,31);

}

}

11.请将以下语句改写成switch语句(a>0)。

if(a<30)m=1;

elseif(a<40)m=2;

elseif(a<50)m=3;

elseif(a<60)m=4;

elsem=5;

#include

voidmain()

{

inta,m;

scanf("%d",&a);

switch(a/10)

{

case5:

m=4;break;//a<60

case4:

m=3;break;//a<50

case3:

m=2;break;//a<40

case2:

case1:

case0:

m=1;break;//a<30

default:

m=5;//a>=60

}

printf("%d\n",m);

}

12.有一函数:

编写一程序,要求输入x的值,输出y的值。

分别用不嵌套的if语句,嵌套的if语句,switch语句编写。

注:

为了方便用switch语句的编写,假设x,y均为整型变量。

#include

intf1(intx)

{

inty;

if(x>-5&&x<0)

y=x-1;

else

{

if(x==0)

y=0;

if(x>0&&x<8)

y=x+1;

}

returny;

}

intf2(intx)

{

inty;

if(x>-5&&x<0)

y=x-1;

elseif(x==0)

y=0;

elseif(x>0&&x<8)

y=x+1;

returny;

}

intf3(intx)

{

inty;

switch(x%13)

{

case7:

case6:

case5:

case4:

case3:

case2:

case1:

y=x+1;

break;

case0:

y=0;

break;

case-1:

case-2:

case-3:

case-4:

y=x-1;

}

returny;

}

voidmain()

{

intx;

printf("Inputanumberin(-5,8):

");

scanf("%d",&x);

printf("%d\n",f1(x));

printf("%d\n",f2(x));

printf("%d\n",f3(x));

}

实验4选择结构程序设计

6.程序填空。

⑴本程序用来输入4个整数,按大小顺序输出。

#include

intmain()

{

inta,b,c,d,t;

scanf("%d%d%d%d",&a,&b,&c,&d);

if(a

if(a

if(a

if(b

if(b

if(c

printf("%d%d%d%d\n",a,b,c,d);

return0;

}

⑵将字母换成小写。

#include

intmain()

{

charc;

scanf("%c",&c);

if(c>='A'&&c<='Z')

c=c+32;

printf("%c\n",c);

return0;

}

7.编程。

编程求x=0.5、5、50时的y的值。

#include

intmain()

{

doublex,y;

printf("Inputx:

");

scanf("%lf",&x);

if(x<1)

y=x;

elseif(x<10)

y=3-x/5.0;

elseif(x>10)

y=3*x-11;

printf("y=%f\n",y);

return0;

}

Inputx:

0.5

y=0.500000

Inputx:

5

y=2.000000

Inputx:

50

y=139.000000

⑵给一个不多于3位的正整数。

①求出它是几位。

②分别打印出每一位数字。

③按反序打印出每位数字。

#include

intmain()

{

intn,i=0;

printf("Inputaintegern:

");

scanf("%d",&n);

do

{

printf("%d",n%10);

n/=10;

i++;

}while(n);

putchar('\n');

printf("nis%ddigits\n",i);

return0;

}

⑶与日历有关的的问题。

①输入年、月,求该月的天数。

注:

本章习题10。

#include

voidmain()

{

inty,m;

intleap_year;

printf("Inputyearandmonth");

scanf("%d%d",&y,&m);

if(y%4==0&&y%100!

=0||y%400==0)

leap_year=1;

else

leap_year=0;

switch(m)

{

case1:

printf("Year%dMonth%dDay:

%d\n",y,m,31);

break;

case2:

if(leap_year)

printf("Year%dMonth%dDay:

%d\n",y,m,29);

else

printf("Year%dMonth%dDay:

%d\n",y,m,28);

break;

case3:

printf("Year%dMonth%dDay:

%d\n",y,m,31);

break;

case4:

printf("Year%dMonth%dDay:

%d\n",y,m,30);

break;

case5:

printf("Year%dMonth%dDay:

%d\n",y,m,31);

break;

case6:

printf("Year%dMonth%dDay:

%d\n",y,m,30);

break;

case7:

printf("Year%dMonth%dDay:

%d\n",y,m,31);

break;

case8:

printf("Year%dMonth%dDay:

%d\n",y,m,31);

break;

case9:

printf("Year%dMonth%dDay:

%d\n",y,m,30);

break;

case10:

printf("Year%dMonth%dDay:

%d\n",y,m,31);

break;

case11:

printf("Year%dMonth%dDay:

%d\n",y,m,30);

break;

case12:

printf("Year%dMonth%dDay:

%d\n",y,m,31);

}

}

②给出年、月、日,计算出该日是该年的第几天。

#include

voidmain()

{

inty,m,d;

intleap_year;

printf("Inputyear、monthandday");

scanf("%d%d%d",&y,&m,&d);

if(y%4==0&&y%100!

=0||y%400==0)

leap_year=1;

else

leap_year=0;

switch(m)

{

case1:

printf("Year%dMonth%dDay%d:

is%d\n",y,m,d,d);

break;

case2:

printf("Year%dMonth%dDay%d:

is%d\n",y,m,31+d);

break;

case3:

if(leap_year)

{

d=31+29+d;

printf("Year%dMonth%dDay%d:

is%d\n",y,m,d,d);

}

else

{

d=31+28+d;

printf("Year%dMonth%dDay%d:

is%d\n",y,m,d,d);

}

break;

case4:

if(leap_year)

{

d=31+29+31+d;

printf("Year%dMonth%dDay%d:

is%d\n",y,m,d,d);

}

else

{

d=31+28+31+d;

printf("Year%dMonth%dDay%d:

is%d\n",y,m,d,d);

}

break;

case5:

if(leap_year)

{

d=31+29+31+30+d;

printf("Year%dMonth%dDay%d:

is%d\n",y,m,d,d);

}

else

{

d=31+28+31+30+d;

printf("Year%dMonth%dDay%d:

is%d\n",y,m,d,d);

}

break;

case6:

if(leap_year)

{

d=31+29+31+30+31+d;

printf("Year%dMonth%dDay%d:

is%d\n",y,m,d,d);

}

else

{

d=31+28+31+30+31+d;

printf("Year%dMonth%dDay%d:

is%d\n",y,m,d,d);

}

break;

case7:

if(leap_year)

{

d=31+29+31+30+31+30+d;

printf("Year%dMonth%dDay%d:

is%d\n",y,m,d,d);

}

else

{

d=31+28+31+30+31+30+d;

printf("Year%dMonth%dDay%d:

is%d\n",y,m,d,d);

}

break;

case8:

if(leap_year)

{

d=31+29+31+30+31+30+31+d;

printf("Year%dMonth%dDay%d:

is%d\n",y,m,d,d);

}

else

{

d=31+28+31+30+31+30+31+d;

printf("Year%dMonth%dDay%d:

is%d\n",y,m,d,d);

}

break;

case9:

if(leap_year)

{

d=31+29+31+30+31+30+31+31+d;

printf("Year%dMonth%dDay%d:

is%d\n",y,m,d,d);

}

else

{

d=31+28+31+30+31+30+31+31+d;

printf("Year%dMonth%dDay%d:

is%d\n",y,m,d,d);

}

break;

case10:

if(leap_year)

{

d=31+29+31+30+31+30+31+31+30+d;

printf("Year%dMonth%dDay%d:

is%d\n",y,m,d,d);

}

else

{

d=31+28+31+30+31+30+31+31+30+d;

printf("Year%dMonth%dDay%d:

is%d\n",y,m,d,d);

}

break;

case11:

if(leap_year)

{

d=31+29+31+30+31+30+31+31+30+31+d;

printf("Year%dMonth%dDay%d:

is%d\n",y,m,d,d);

}

else

{

d=31+28+31+30+31+30+31+31+30+31+d;

printf("Year%dMonth%dDay%d:

is%d\n",y,m,d,d);

}

break;

case12:

if(leap_year)

{

d=31+29+31+30+31+30+31+31+30+31+30+d;

printf("Year%dMonth%dDay%d:

is%d\n",y,m,d,d);

}

else

{

d=31+28+31+30+31+30+31+31+30+31+30+d;

printf("Year%dMonth%dDay%d:

is%d\n",y,m,d,d);

}

break;

}

}

③1900年元旦是星期一,问1900年7月1日是星期几。

#include

voidmain()

{

inty,m,d;

intleap_year;

y=1900;m=7;d=1;

if(y%4==0&&y%100!

=0||y%400==0)

leap_year=1;

else

leap_year=0;

if(leap_year)

d=31+29+31+30+31+30+d;

else

d=31+28+31+30+31+30+d;

d%=7;

if(d==0)

printf("1900-7-1:

Sunday\n");

else

printf("1900-7-1:

week%d\n",d);

}

⑷输入3个实数,编程判断能否以它们为边长构成三角形,若能再说明是何种三角形(等边三角形、等腰三角形、直角三角形或一般三角形)。

#include

#include//为了引用函数要sqrt()

main()

{

floata,b,c;

printf("pleaseentera,b,c:

");

scanf("%f%f%f",&a,&b,&c);

if(a+b>c&&b+c>a&&c+a>b)

{

if(a==b&&a==c&&b==c)

printf("Thetriangleisaequilateraltriangle.\n");

elseif(a==b||a==c||b==c)

printf("Thetriangleisaisocelestriangle.\n");

elseif(a*a+b*b==c*c||a*a+c*c==b*b||b*b+c*c==a*a)

printf("Thetriangleisaright-angledtriangle.\n");

else

printf("Thetriangleisacommontriangle

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高中教育 > 理化生

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1