if语句练习题.docx
《if语句练习题.docx》由会员分享,可在线阅读,更多相关《if语句练习题.docx(19页珍藏版)》请在冰豆网上搜索。
if语句练习题
if语句练习题
1。
以下不正确的if语句形式是______
A)if(x>y&&x!
=y);
B)if(x==y)x+=y;
C)if(x!
=y)scanf(“%d",&x),else scanf(“%d,&y);
D)if(x〈y){x++;y++;}
2。
以下运算符中优先级最低的是
(1),优先级最高的是
(2)
A)?
:
B)&& C)+ D)!
=
3.已知intx=10,y=20,z=30;以下语句执行后x,y,z的值是_____
if(x>y)
z=x;x=y;y=z;
A)x=10,y=20,z=30 B)x=20,y=30,z=30
C)x=20,y=30,z=10D)x=20,y=30,z=20
4.以下if语句语法正确的是_____
A)if(x>0)
printf(“%f”,x)
elseprintf(“%f”,—x);
B)if(x>0)
{x=x+y;printf(“%f',x);}
elseprintf(“%f”,-x);
C)if(x>0)
{x=x+y;printf(“%f”,x);}
else printf(“%f",—x);
D)if(x>0)
{x=x+y;printf(“%f,x);}
elseprintf(“%f”,-x);
5.请阅读以下程序:
main()
{inta=5,b=0,c=0;
if(a=b+c)printf(“***\n");
elseprintf(“$$$\n”);}
以上程序______
A)有语法错不能通过编译 B)可以通过编译但不能通过连接
C)输出*** D)输出$ $$
6.以下程序的运行结果是______
main()
{intm=5;
if(m++〉5)printf(“%d\n",m);
else printf(“%d\n",m-—);}
A)4B)5C)6D) 7
7。
当a=1,b=3,c=5,d=4时,执行完下面一段程序后x的值是______
if(a<b)
if(c<d)x=1;
else
if(aif(b〈d)x=2;
elsex=3;
elsex=6;
else x=7;
A) 1 b)2 c)3 d)6
8.有一个函数关系见下表:
x
y=
x<0
x-1
x=0
x
x>0
x+1
下面程序段中能正确表示上面关系的是( )
A)y=x+1;
if(x>=0)
if(x==0)y=x;
elsey=x—1;
b)y=x—1;
if(x!
=0)
if(x>0)y=x+1;
elsey=x;
c) if(x〈=0)
if(x〈0)y=x-1;
else y=x;
else y=x+1;
d)y=x;
if(x〈=0)
if(x<0)y=x-1;
else y=x+1;
9。
以下程序的输出结果是______
main()
{inta=100,x=10,y=20,okl=5,ok2=0;
if(x〈y)
if(!
ok1)
a=1;
else
if(ok2) a=10;
a=-1;
printf(“%d\n”,a);}
A1 B 0 C -1 D 值不确定
10.以下程序输出结果是_______
main( )
{intx=2,y=-1,z=2;
if(x〈y)
if(y<0) z=0;
elsez+=1;
printf(“%d\n”,z);
A.3 B.2 C.1 D。
0
11.为避免在嵌套的条件语句if-else中产生二义性,C语言规定:
else子句总是与___配对.
A.缩排位置相同的ifB。
其之前最近的if
C。
其之后最近的if D.同一行上的if
12。
以下不正确的语句为______
A。
if(x〉y);
B。
if(x=y)&&(x!
=0)x+=y;
C,if(x!
=y)scanf(“%d”,&x);elsescanf(“%d”,&y);
D.if(x12。
阅读以下程序
#includeh>
main( )
{float a,b;
scanf(“%f”,&a);
if(a〈0.0)b=0.0;
elseif((a〈0.5)&&(a!
=2.0))b=1.0/(a+2。
0);
elseif(a<10.0)b=1.0/a;
else b=10。
0;
printf(“%f\n”,b);}
若运行时输入2.0<回车〉,则上面程序的输出结果是_____
A)0.000000B)0。
500000C)1.000000 D)0。
250000
13。
若运行时输入:
16<回车>,则以下程序的运行结果是()
#include<stdio.h>
main( )
{intyear;
printf(“Inputyouyear:
”);
scanf(“%d”,&year);
if(year>=18)
printf(“you$4.5yuan/xiaoshi”);
elseprintf(“your$3。
0yuan/xiaoshi”);}
14.若运行时输入:
2〈回车〉,则以下程序的运行结果是( )
#include<stdio。
h〉
main()
{char class;
printf(“enter1for1stclass postor2 for 2ndpost");
scanf(“%c”,&class);
if(class=='1’)printf(“1st classpostageis19p");
else printf(“2nd class postage is14p");}
15.若运行时输入:
4.4<回车>,则以下程序的运行结果是( )
#include〈stdio。
h>
main()
{floatcostprice,sellingprice;
printf(“entercost price$:
”);
scanf(“%f",&costprice);
if(costprice>=5)
{sellingprice=costprice+costprice*0.25;
printf(“sellingprice(0.25)$%6.2f”,sellingprice);}
else
{sellingprice=costprice+costprice*0.30;
printf(“sellingprice(0.30)$%6.2f”,sellingprice);}}
16。
以下程序的运行结果是( )
main()
{ if(2*2==5〈2*2==4)printf(“T");
elseprintf(“F”);}
17.请阅读以下程序:
main()
{intt,h,m;
scanf(“%d”,&t);
h=(t/100)%12;
if(h==0)h=12;
printf(“%d:
”,h);
m=t%100;
if(m<10)printf(“0”);
printf(“%d",m);
if(t<1200||t==2400)
printf(“AM”);
elseprintf(“PM”);}
若运行时输入:
1605〈回车>时,程序的运行结果是()
18.以下程序实现:
输入圆的半径r和运行标志m,按照运行标志进行指定计算.请在( )内填入正确的内容.
标志 运算
a 面积
c 周长
b 二者均计算
#define pi 3。
14159
main( )
{charm;
floatr,c,a;
printf(“inputmark a c orb&&r\n”);
scanf(“%c%f”,&m,&r);
if( 1 )
{a=pi*r*r;printf(“area is%f",a);}
if(2 )
{c=2*pi*r;printf(“circleis%f”,c);}
if(3 )
{a=pi*r*r;c=2*pi*r;printf(“area&&circleare%f%f”,a,c);}}
19。
若运行时输入:
5999<回车>,则以下程序的运行结果(保留小数后一位)是()
main()
{intx;
float y;
scanf(“%d”,&x);
if(x>=0&&x〈=2999)y=18+0.12*x;
if(x>=3000&&x〈=5999)y=36+0。
6*x;
if(x>=6000&&x〈=10000)y=54+0。
3*x;
printf(“%6.1f”,y);}
20。
以下程序实现输出x,y,z三个数中的最大者。
请在( )添入正确内容.
main( )
{intx=4,y=6,z=7;
int(1 )
if( 2 )u=x;
else u=y;
if(3 )v=u;
else v=z;
printf(“v=%d”,v);}
21.以下程序实现:
输入三个整数,按从大到小的顺序进行输出。
请在()内填入正确内容
main()
{int x,y,z,c;
scanf(“%d%d%d",&x,&y,&z);
if(1 )
{c=y;y=z;z=c;}
if
(2)
{c=x;x=z;z=c;}
if(3 )
{c=x;x=y;y=c;}
printf(“%d,%d,%d”,x,y,z);}
22.以下程序对输入的两个整数,按从大到小顺序输出.请在()内填正确内容.
main( )
{intx,y,z;
scanf(“%d,%d,”,&x,&y);
if( 1 )
{z=x;
(2)}
printf(“%d,%d”,x,y);}
23.以下程序对输入的一个小写字母,将字母循环后移5个位置后输出。
如’a’变成’f’,’w’变成’b’。
请在( )填入正确内容
#include “stdio。
h”
main( )
{charc;
c=getchar();
if(c〉=’a'&&c〈='u’)( 1 )
elseif(c〉=’v’&&c〈=’z')( 2 )
putchar(c);}
24.输入一个字符,如果它是一个大写字母,则把它变成小写,如果是小写,则变成大写,其他字符不变,请在()填正确内容
main( )
{charch;
scanf(“%c”,&ch);
if( 1)ch=ch+32;
elseif(ch>=’a’&&ch〈=’z’)
(2)
printf(“%c",ch);}
25。
以下程序的运行结果是( )
main( )
{inta,b,c;
int s,w,t;
s=w=t=0;
a=—1,b=3,c=3;
if(c〉0)s=a+b;
if(a<=0)
{if(b>0)
if(c<=0)w=a—b;}
else if(c>0)w=a-b;
else t=c;
printf(“%d%d%d”,s,w,t);}
26.以下程序的运行结果是( )
main()
{int a,b,c,d,x;
a=c=0;
b=1;
d=20;
if(a)d=d-10;
elseif(!
b)
if(!
c)x=15;
elsex=25;
printf(“%d\n”,d);}
27.以下程序的运行结果是( )
#includeh>
main( )
{intx,y=1,z;
if(y!
=0)x=5;
printf(“\t%d\n”,x);
if(y==0)x=4;
elsex=5;
printf(“\t%d\n",x);
x=1;
if(y<0)
if(y〉0)x=4;
else x=5;
printf(“\t%d\n",x);}
28.以下程序的运行结果是()
#include〈stdio。
h>
main()
{intx,y=—2,z=0;
if((z=y)<0)x=4;
elseif(y= =0)x=5;
elsex=6;
printf(“\t%d\t%d\n",x,z);
if(z=(y==0))
x=5;
x=4;
printf(“\t%d\t%d\n”,x,z);
if(x=z=y)x=4;
printf(“\t%d\t%d\n”,x,z);}
29.阅读下面程序:
main( )
{ints,t,a,b;
scanf(“%d,%d”,&a,&b);
s=1;
t=1;
if(a>0)s=s+1;
if(a>b)t=s+t;
else if(a= =b)t=5;
else t=2*s;
printf(“s=%d,t=%d”,s,t);}
为使输出结果t=4,输入量a和b应满足的条件是( )
30。
请阅读下面程序:
main()
{int s ,t,a,b;
scanf(“%d,%d”,&a,&b);
s=1;
t=1;
if(a〉0)s=s+1;
if(a>b)t=s+t;
elseif(a==b)t=5;
elset=2*s;
printf(“s=%d,t=%d”,s,t);}
为使输出结果s=1,t=5,输入量a和b应满足条件是()
31。
下面程序根据以下函数关系,对输入的每个x值,计算出y值,在( )填正确内容
x
Y
2〈x<=10
x(x+2)
-12x
x〈=—1
x-1
main( )
{int x,y;
scanf(“%d,&x);
if
(1)y=x*(x+2);
elseif(2)y=2*x;
elseif(x〈=—1)y=x-1;
else(3);
if(y!
=—1)printf(“%d”,y);
elseprintf(“error”);}
32.下面程序根据以下函数关系,对输入的每个x值,计算出相应的y值。
在( )
填正确内容
x
y
x=a或x=-a
0
—a〈xsqrt(a*a—x*x)
x〈-a或x>a
x
#include “math.h”
main()
{intx,a;
floaty;
scanf(“%d%d”,&x,&a);
if( 1 )y=0;
else if( 2 )y=sqrt(a*a—x*x);
elsey=x;
printf(“%f",y);}
33.以下程序的功能是计算一元二次方程ax2+bx+c=0的根,在()填正确内容
#include“math.h"
main( )
{float a,b,c,t,disc,twoa,term1,term2;
printf(“entera,b,c:
”);
scanf(“%f%f%f”,&a,&b,&c);
if( 1)
if( 2 )printf(“noanswerduetoinputerror\n”);
else printf(“thesingle rootis%f\n”,—c/b);
else{disc=b*b—4*a*c;
twoa=2*a;
terml=—b/twoa;
t=abs(disc);
term2=sqrt(t)/twoa;
if(3)
printf(“complex root\n realpart=%fimagpart=%f\n”, terml,term2);
elseprintf(“real roots\n rootl=%froot2=%f\n",terml+term2,term1—term2);}}
34.以下程序根据输入的三角形的三边判断是否能组成三角形,若可以则输出它的面积和三角形的类型。
在()填正确内容。
#include“math。
h”
main()
{float a,b,c;
floats,area;
scanf(“%f%f%f”,&a,&b,&c);
if( [1] )
{s=(a+b+c)/2;
area=sqrt(s*(s—a)*(s—b)*(s—c));
printf(“%f”,area);
if( [2])
printf(“等边三角形”);
elseif([3] )
printf(“等腰三角形”);
elseif((a*a+b*b==c*c)| |(a*a+c*c= =b*b)||(b*b+c*c==a*a))
printf(“直角三角形");
else printf(“一般三角形”);}
elseprintf(“不能组成三角形”);}
35.某邮局对邮寄包裹有如下规定:
若包裹的长宽高任一尺寸超过1米或重量超过30千克,不予邮寄;对可以邮寄的包裹每件收手续费0。
2元,再加上根据下表按重量wei计算的资料:
重量(千克) 收费标准(元/公斤)
wei<=10 0。
80
10〈wei<=20 0.75
20〈wei<=30 0.70
请在程序的[]内填入正确的内容.
main( )
{floatlen,wei,hei,wid,mon,r;
scanf(“%f%f%f %f”,&len,&wid,&hei,&wei);
if(len>1||wid>1| |hei〉1||wei〉30)[ 1 ];
elseif(wei〈10) r=0。
8;
else if(wei<=20) r=0。
75;
else if(wei<=30)[ 2];
if(r= =-1)printf(“error\n”):
else {[3];printf(“%f”,mon);}}
36。
以下程序的功能是判断输入的年份是否是闰年。
请在[]内填入正确的内容。
main( )
{inty,f;
scanf(“%d”,&y);
if(y%400==0)f=1;
else if( [1])f=1;
else [2] ;
if(f)printf(“%dis",y);
elseprintf(“%dis not”,y);
printf(“aleapyear\n”);}
37.有四个数a,b,c,d,要求按从大到小的顺序输出.请在[]内填入正确内容
main( )
{int a,b,c,d,t;
scanf(“%d%d %d%d”,&a,&b,&c,&d);
if(a〈b){t=a;a=b;b=t;}
if ([1]){t=c;c=d;d=t;}
if(a<c){t=a;a=c;c=t;}
if([2]){t=b;b=c;c=t;}
if(b〈d){t=b;b=d;d=t;}
if(cprintf(“%d %d%d %d\n”,a,b,c,d);}
38。
以下程序的运行结果是__
main( )
{int a=2,b=3,c;
c=a;
if(a>b)c=1;
else if(a==b)c=0;
elsec=-1;
printf(“%d\n",c);}
39.编制程序要求输入整数a和b,若a2+b2大于100,则输出a2+b2百位以上数字,否则输出两数之和.
40。
试编程判断输入的正整数是否既是5又是7的整倍数.若是,则输出yes,否则输出no
41.编程序:
根据以下函数关系,对输入的每个x值,计算出相应的y值
x
Y
x〈=0
0
0X
10<x<=20
10
20<x〈40
-0.5x+20
42.编程实现:
输入一个整数,判断它能否被3,5,7整除,并输出以下信息之一
(1)能同时被3,5,7整除
(2)能被其中两个数整除(要指出那两个数)
(3)能被其中一个数整除(指出那一个)
(4)不能被3,5,7任一个整除
1、C 2、
(1)A
(2)C 3、B4、C 5、D
6、C 7、B8、C 9、C10、B 11、A 12、B 12、B
13、your$3.0yuan/xiaoshi
14、2nd class postage is14p
15、selling price(0.30)$5.72(注意:
5。
72前有2个空格)
16、F
17、4:
05PM
18、(1)m=='a'
(2)m==’c' (3)m==’b'
19、3635。
4