选择结构.docx

上传人:b****5 文档编号:6254650 上传时间:2023-01-04 格式:DOCX 页数:51 大小:26.51KB
下载 相关 举报
选择结构.docx_第1页
第1页 / 共51页
选择结构.docx_第2页
第2页 / 共51页
选择结构.docx_第3页
第3页 / 共51页
选择结构.docx_第4页
第4页 / 共51页
选择结构.docx_第5页
第5页 / 共51页
点击查看更多>>
下载资源
资源描述

选择结构.docx

《选择结构.docx》由会员分享,可在线阅读,更多相关《选择结构.docx(51页珍藏版)》请在冰豆网上搜索。

选择结构.docx

选择结构

第33题(10.0分)题号:

401

功能:

输入某年某月某日,判断这一天是这一年的第几天?

main()

{

intday,month,year,sum,leap;

printf("\npleaseinputyear,month,day\n");

scanf("%d,%d,%d",&year,&month,&day);

switch(month)

{

case1:

sum=0;break;

case2:

sum=31;break;

case3:

sum=59;break;

/***********SPACE***********/

case4:

【?

】;break;

case5:

sum=120;break;

case6:

sum=151;break;

case7:

sum=181;break;

case8:

sum=212;break;

case9:

sum=243;break;

case10:

sum=273;break;

case11:

sum=304;break;

case12:

sum=334;break;

default:

printf("dataerror");break;

}

/***********SPACE***********/

【?

】;

/***********SPACE***********/

if(year%400==0||(【?

】)

leap=1;

else

leap=0;

/***********SPACE***********/

if(【?

】)

sum++;

printf("Itisthe%dthday.",sum);

}

答案:

1).sum=90

2).sum=sum+day或sum=sum+day

3).year%4==0&&year%100!

=0)或year%4==0&&year%100!

=0

4).leap==1&&month>2或leap==1&&month>2或leap==1&&2

 

第66题(10.0分)题号:

456

功能:

利用指向结构的指针编写求某年、某月、某日是第

几天的程序,其中年、月、日和年天数用结构表示。

main()

{

/***********SPACE***********/

【?

】date

{

inty,m,d,n;

/***********SPACE***********/

}【?

】;

intk,f,a[12]={31,28,31,30,31,30,31,31,30,31,30,31};

printf("date:

y,m,d=");

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

f=x.y%4==0&&x.y%100!

=0||x.y%400==0;

/***********SPACE***********/

a[1]+=【?

】;

if(x.m<1||x.m>12||x.d<1||x.d>a[x.m-1])exit(0);

for(x.n=x.d,k=0;k

/***********SPACE***********/

printf("n=%d\n",【?

】);

}

答案:

1).struct

2).x

3).f

4).x.n

 

第68题(10.0分)题号:

457

功能:

功能:

定义一个结构变量(包括年、月、日)计算给定日

期是该年的第几天。

main()

{

/***********SPACE***********/

【?

】date

{

inty,m,d;

}da;

intf,n,p,a[12]={31,28,31,30,31,30,31,31,30,31,30,31};

printf("y,m,d=");

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

/***********SPACE***********/

f=da.y%4==0&&da.y%100【?

】0||da.y%400==0;

/***********SPACE***********/

if(da.m<1【?

】da.d>12)exit(0);

a[11]+=f;

if(da.d<1||da.d>a[da.m-1])exit(0);

/***********SPACE***********/

for(n=【?

】,p=1;p

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

}

答案:

1).struct

2).!

=

3).||

4).da.d

 

第87题(10.0分)题号:

446

功能:

编程求某年第n天的日期。

用数组表示月天数。

main()

{

inty,m,f,n;

inta[12]={31,28,31,30,31,30,31,31,30,31,30,31};

printf("y,n=");

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

/***********SPACE***********/

f=y%4==0&&y%100!

=0【?

】y%400==0;

/***********SPACE***********/

a[1]【?

】f;

if(n<1||n>365+f)

{

printf("error!

\n");exit(0);

}

/***********SPACE***********/

for(m=1;m【?

】a[m-1];n-=a[m-1],m++);

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

}

答案:

1).||

2).+=或=a+

3).>

 

第102题(10.0分)题号:

420

功能:

计算某日是当年的第几天。

#include

struct

{

intyear;

intmonth;

intday;

}data;/*定义一个结构并声明对象为data*/

voidmain()

{

intdays;

printf("请输入日期(年,月,日):

");

scanf("%d,%d,%d",&data.year,&data.month,&data.day);

switch(data.month)

{

case1:

days=data.day;

break;

/***********SPACE***********/

case2:

days=data.day+【?

】;

break;

case3:

days=data.day+59;

break;

case4:

days=data.day+90;

break;

/***********SPACE***********/

case5:

days=data.day+【?

】;

break;

case6:

days=data.day+151;

break;

case7:

days=data.day+181;

break;

case8:

days=data.day+212;

break;

case9:

days=data.day+243;

break;

case10:

days=data.day+273;

break;

case11:

days=data.day+304;

break;

case12:

days=data.day+334;

break;

}

/***********SPACE***********/

if(data.year%4==0&&data.year%100!

=0【?

】data.year%400==0)

if(data.month>=3)

/***********SPACE***********/

days=【?

】;

printf("%d月%d日是%d年的第%d天.\n",data.month,data.day,data.year,days);

}

答案:

1).31

2).120

3).||

4).days+1或1+days或++days

 

第44题(10.0分)题号:

33

功能:

以下程序的功能如(图1)。

#include

#include

/***********SPACE***********/

doublef(【?

】)

{

/***********SPACE***********/

【?

】;

/***********SPACE***********/

if(【?

】)

y=2.0*x*x+3.0*x+4.0;

else

y=-2.0*x*x+3.0*x-4.0;

/***********SPACE***********/

【?

】;

}

main()

{

clrscr();

printf("%f\n",f(f(-1.0)+f(5.0)));

}

答案:

1).floatx或doublex

2).doubley

3).x<=2或2>=x

4).returny或return(y)

第45题(10.0分)题号:

25

功能:

以下程序的功能如(图1)。

/***********SPACE***********/

【?

main()

{

floatx,f;

scanf("%f",&x);

/***********SPACE***********/

if(x<0)【?

】;

/***********SPACE***********/

elseif(【?

】)

f=2*x+1;

else

f=sin(x)+5;

/***********SPACE***********/

printf("x=%f,y=%f\n",【?

】);

}

答案:

1).#include"math.h"或#include

2).f=fabs(x+1)

3).x<=5或5>=x或x<6或6>x或x>=0&&x<=5或0<=x&&x<=5或x>=0&&5>=x或0<=x&&5>=x或!

(x>5)

4).x,f

 

第53题(10.0分)题号:

430

功能:

计算一元二次方程的根。

#include

/***********SPACE***********/

#include【?

main()

{

floata,b,c,disc,x1,x2,realpart,imagpart;

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

printf("theequation");

/***********SPACE***********/

if(【?

】<=1e-6)

printf("isnotquadratic\n");

else

disc=b*b-4*a*c;

if(fabs(disc)<=1e-6)

printf("hastwoequalroots:

%-8.4f\n",-b/(2*a));

/***********SPACE***********/

elseif(【?

】)

{

x1=(-b+sqrt(disc))/(2*a);

x2=(-b-sqrt(disc))/(2*a);

printf("hasdistinctrealroots:

%8.4fand%.4f\n",x1,x2);

}

else

{

realpart=-b/(2*a);

imagpart=sqrt(-disc)/(2*a);

printf("hascomplexroots:

\n");

printf("%8.4f=%.4fi\n",realpart,imagpart);

printf("%8.4f-%.4fi\n",realpart,imagpart);

}

}

答案:

1).

2).fabs(a)

3).fabs(disc)>1e-6或1e-6

第62题(10.0分)题号:

614

题目:

以下程序的功能是:

输出a、b、c三个变量中的最小值。

#include

main()

{

inta,b,c,t1,t2;

/***********SPACE***********/

scanf("%d%d%d",&a,&b,【?

】);

t1=a

a:

b;

/***********SPACE***********/

t2=c

【?

】;

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

}

答案:

1).&c

2).c:

t1

第83题(10.0分)题号:

454

功能:

三角形的面积为:

area=sqrt(s*(s-a)*(s-b)*(s-c)).其中

,s=(a+b+c)/2,a、b、c为三角形三条边的长。

定义两个带

参数的宏,一个用来求s,另一个用来求area。

编写程序,

在程序中用带参数的宏求面积area。

#include"math.h"

/***********SPACE***********/

#【?

】S(x,y,z)(x+y+z)/2

#defineAREA(s,x,y,z)sqrt(s*(s-x)*(s-y)*(s-z))

main()

{

floata,b,c,s,area;

printf("a,b,c=");

/***********SPACE***********/

scanf("%f,%f,%f",&a,【?

】,&c);

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

{

/***********SPACE***********/

s=【?

】;

/***********SPACE***********/

area=【?

】;

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

}

}

答案:

1).define

2).&b

3).S(a,b,c)

4).AREA(s,a,b,c)

第98题(10.0分)题号:

443

功能:

企业发放的奖金根据利润提成。

利润(I)低于或等于10万元

时,奖金可提10%;利润高于10万元,低于20万元时,低于

10万元的部分按10%提成,高于10万元的部分,可可提成7.5%

;20万到40万之间时,高于20万元的部分,可提成5%;40万

到60万之间时高于40万元的部分,可提成3%;60万到100万

之间时,高于60万元的部分,可提成1.5%,高于100万元时,

超过100万元的部分按1%提成,从键盘输入当月利润I,求

应发放奖金总数?

main()

{

longinti;

intbonus1,bonus2,bonus4,bonus6,bonus10,bonus;

scanf("%ld",&i);

bonus1=100000*0.1;bonus2=bonus1+100000*0.75;

bonus4=bonus2+200000*0.5;

bonus6=bonus4+200000*0.3;

bonus10=bonus6+400000*0.15;

if(i<=100000)

bonus=i*0.1;

/***********SPACE***********/

elseif(【?

】)

bonus=bonus1+(i-100000)*0.075;

/***********SPACE***********/

elseif(【?

】)

bonus=bonus2+(i-200000)*0.05;

/***********SPACE***********/

elseif(【?

】)

bonus=bonus4+(i-400000)*0.03;

elseif(i<=1000000)

bonus=bonus6+(i-600000)*0.015;

else

bonus=bonus10+(i-1000000)*0.01;

/***********SPACE***********/

【?

】("bonus=%d",bonus);

}

答案:

1).i<=200000或200000>=i

2).i<=600000或600000>=i

3).i<=1000000或1000000>=i

4).printf

第100题(10.0分)题号:

451

功能:

编程求任意给两个日期(Y0年M0月DO日和Y1年M1月D1日)

相差的天数。

main()

{

inty1,m1,d1,y2,m2,d2,n,i;

printf("y1,m1,d1=");

scanf("%d,%d,%d",&y1,&m1,&d1);

/***********SPACE***********/

if(m1<1||m1>12||d1<1||d1>【?

】)exit(0);

printf("y2,m2,d2=");scanf("%d,%d,%d",&y2,&m2,&d2);

/***********SPACE***********/

if(m2<1||m2>12||d2<1||d2>【?

】)exit(0);

if(y1>y2||y1==y2&&m1>m2||y1==y2&&m1==m2&&d1>d2)

{

n=y1;

y1=y2;

y2=n;

n=m1;

m1=m2;

m2=n;

n=d1;

d1=d2;

d2=n;

}

else

{

/***********SPACE***********/

n=yend(y1,m1,d1)+【?

】;

/***********SPACE***********/

for(i=【?

】;i

}

printf("%d.%d.%d--->%d.%d.%d:

n=%d\n",y1,m1,d1,y2,m2,d2,n);

}

intf(inty)

{

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

=0||y%400==0);

}

intmday(inty,intm)

{

return(31-((m==4)+(m==6)+(m==9)+(m==11))-(3-f(y))*(m==2));

}

intyday(inty,intm,intd)

{

return(d+31*((m>1)+(m>3)+(m>5)+(m>7)+(m>8)+(m>10))+30*((m>4)+(m>6)+(m>9)+(m>11))+(28+f(y))*(m>2));

}

intyend(inty,intm,intd)

{

return(365+f(y)-yday(y,m,d));

}

答案:

1).mday(y1,m1)

2).mday(y2,m2)

3).yday(y2,m2,d2)

4).y1+1或1+y1

第102题(10.0分)题号:

420

功能:

计算某日是当年的第几天。

#include

struct

{

intyear;

intmonth;

intday;

}data;/*定义一个结构并声明对象为data*/

voidmain()

{

intdays;

printf("请输入日期(年,月,日):

");

scanf("%d,%d,%d",&data.year,&data.month,&data.day);

switch(data.month)

{

case1:

days=data.day;

break;

/***********SPACE***********/

case2:

days=data.day+【?

】;

break;

case3:

days=data.day+59;

break;

case4:

days=data.day+90;

break;

/***********SPACE***********/

case5:

days=data.day+【?

】;

break;

case6:

days=data.day+151;

break;

case7:

days=data.day+181;

break;

case8:

days=data.day+212;

break;

case9:

days=data.day+243;

break;

case10:

days=data.day+273;

break;

case11:

days=data.day+304;

break;

case12:

days=data.day+334;

break;

}

/***********SPACE***********/

if(data.year%4==0&&data.year%100!

=0【?

】data.year%400==0)

if(data.month>=3)

/***********SPACE***********/

days=【?

】;

printf("%d月%d日是%d年的第%d天.\n",data.month,data.day,data.year,days);

}

答案:

1).31

2).120

3).||

4).days+1或1+days或++days

第111题(10.0分)题号:

24

功能:

对任一整数N(N≠0),它都可以分解成1(或-1)和一些质数(素

数)因子的形式。

例如:

当N=150时,可分解成1×2×3×5×5;

当N=-150时,可分解为-1×2×3×5×5。

下边程序能实现这种分解过程。

当N=150,输出以下分解结

果:

N=1*2*3*5*5

main()

{

intn,i,j,r;

scanf("%d",&n);

if(n==0)

{

printf("dataerror\n");

exit(0);

}

/***********SPACE***********/

elseif(【?

】)

printf("n=1");

else

{

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

当前位置:首页 > 党团工作 > 入党转正申请

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

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