第4章 选择结构程序设计 练习题OK.docx

上传人:b****5 文档编号:6698149 上传时间:2023-01-09 格式:DOCX 页数:19 大小:31.22KB
下载 相关 举报
第4章 选择结构程序设计 练习题OK.docx_第1页
第1页 / 共19页
第4章 选择结构程序设计 练习题OK.docx_第2页
第2页 / 共19页
第4章 选择结构程序设计 练习题OK.docx_第3页
第3页 / 共19页
第4章 选择结构程序设计 练习题OK.docx_第4页
第4页 / 共19页
第4章 选择结构程序设计 练习题OK.docx_第5页
第5页 / 共19页
点击查看更多>>
下载资源
资源描述

第4章 选择结构程序设计 练习题OK.docx

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

第4章 选择结构程序设计 练习题OK.docx

第4章选择结构程序设计练习题OK

第4章选择结构程序设计

一、单项选择题

1.在C语言中,能代表逻辑值"真"的是()。

A)trueB)大于0的数C)小于0的数D)非0的数

2.设a,b,c是整型变量,且a=3,b=4,c=5,则下面表达式中值为0的是()

A)a&&bB)b

((a

c||a)

3.已知a=4,ch=’M’,b=0,则表达式(a>=b&&ch<’N’&&!

b)的值是()。

A)0B)1C)假D)真

4.设有语句“inta=4;b=3,c=-2,d=2;”,则逻辑表达式“a>0&&b&&c<0&&d>0”的值是()。

A)1B)0    C)-1D)出错

5.逻辑运算符的运算对象数据类型()

A)只能是逻辑型B)只能是0和1   C)只能是正整数和0D)可以是任何类型

6.若有定义语句inta=3,b=2,c=1;并有表达式

a%b||1

a>b>c

b&&c+1

c+=1,则表达式值相等的是()

A)

B)

   C)

D)

7.已知inta=4,b=6,c=8;执行语句if(a>b)c=a;a=b;b=c;后,a,b,c的值是()

A)a=4,b=6,c=8B)a=6,b=8,c=8C)a=6,b=4,c=8D)a=6,b=8,c=4

8.执行下面的程序段后,z的值为()

intx=10,y=20,z;charc=’A’;z=(x&&y)&&(c>’B’);

A)0B)1C)假D)真

9.表示关系x<=y<=z的c语言表达式为()。

A)(x<=y)&&(y<=z)B)(x<=y)AND(y<=z)C)(x<=y<=z)D)(x<=y)&(y<=z)

10.能正确表示逻辑关系:

“a≥10或a≤0”的C语言表达式是()。

A)a>=10ora<=0B)a>=0|a<=10C)a>=10&&a<=0D)a>=10‖a<=0

11.判断char型变量c1为小写字母的表达式为()。

A)’a’<=c1<=’z’B)(c1>=’a’)&(c1<=’z’)C)(’a’<=c1)AND(‘z’>=c1)D)(c1>=’a’)&&(c1<=’’z’)

12.有定义charc;c=getchar();判断字符变量c为大写字母的正确表达式为()。

A)‘A’==‘A’&&c<=’ZC)A==A&&c<=Z

13.判断x的值为奇数,以下不能满足要求的表达式是()。

A)x%2==1B)!

(x%2)C)x%2D)!

(x%2==0)

14.设a为整型变量,则不能正确表达数学关系10<a<15的C语言表达式是()。

A)1010&&a<15D)!

(a<=10)&&!

(a>=15)

15.为表示逻辑表达式79

A)(X>79)&&(X<90)B)(X>79)!

=(X<90)C)7979)||(X<90)

16.运算符+、!

=、!

、%中,优先级最高的运算符是()

A)+B)!

=C)!

D)%

17.C语言对嵌套if语句的规定是:

else语句总是与()配对。

A)其之前最近的ifB)第一个if

C)缩进位置相同的ifD)其之前最近的且尚未配对的if

18.在C语言语句中,用来决定分支流程的表达式可以是()。

A)可用任意表达式     B)只能用逻辑表达式或关系表达式

C)只能用逻辑表达式    D)只能用关系表达式

19.C语言中()表示逻辑“真”。

A)trueB)1C)非零的值D)false

20.若k是int型变量,且有下面的程序段,输出结果是()。

intk;k=-3;

if(k<=0)printf(“####”);

elseprintf(“&&&&”);

A)####B)&&&&C)####&&&&D)有语法错误,无输出结果

21.以下程序段的输出结果是()。

inta=10,b=50,c=30;

if(a

a=b;

b=c;

c=a;

printf("a=%2db=%2dc=%2d\n",a,b,c);

A)a=10b=50c=10B)a=10b=30c=10C)a=50b=30c=10D)a=50b=30c=50

22.以下程序段的输出结果是()。

inta=10,b=50,c=30;

if(a>b)

a=b;

b=c;

c=a;

printf("a=%2db=%2dc=%2d\n",a,b,c);

A)a=10b=50c=10B)a=10b=30c=10C)a=50b=30c=10D)a=50b=30c=50

23.输入1,-1,以下程序的输出结果是(B);如果输入-1,1,则以下程序的输出结果是(C)。

main(){

intx,y,z=1;

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

if(x

if(y<0)z=0;

elsez=z+1;

printf(“%d\n”,z);

}

A)0B)1C)2D)3

24.以下程序段的输出结果是()。

#include

main(){

inta=4,b=5,t=0;

if(a

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

}

A)a=5,b=4B)a=4,b=5C)a=5,b=0D)语法错误

25.若有定义:

floatx;inta,b;则以下正确的switch语句是()

A)switch(x)

{case1.0:

printf(“*\n”);

case2.0:

printf(“$\n”);

}

B)switch(x)

{case1:

printf(“*\n”);

case2:

printf(“$\n”);

}

C)switch(a+b)

{case1:

printf(“*\n”);

case2:

printf(“$\n”);

}

D)switch(a+b)

{case1.0:

printf(“*\n”);

case2.0:

printf(“$\n”);

}

26.若inti=10;执行下列程序后,变量i的正确结果是()。

switch(i){case9:

i+=1;break;

case10:

i+=1;break;

case11:

i+=1;break;

default:

i+=1;

}

A)13B)12C)11D)10

27.若inti=10;执行下列程序后,变量i的正确结果是()。

switch(i){case9:

i+=1;

case10:

i+=1;

case11:

i+=1;break;

default:

i+=1;

}

A)13B)12C)11D)10

28.若inti=10;执行下列程序后,变量i的正确结果是()。

switch(i){case9:

i+=1;

case10:

i+=1;

case11:

i+=1;

default:

i+=1;

}

A)13B)12C)11D)10

29.main()

{intx=0,a=0,b=0;

switch(x){

case0:

b++;

case1:

a++;

case2:

a++;b++;}

printf(“a=%d,b=%d\n”,a,b);}

该程序的输出结果是()。

A)a=2,b=1B)a=1,b=1C)a=1,b=0D)a=2,b=2

二、阅读程序,写出运行结果

1.

#include

main(){

intr;

scanf(“%d”,&r);

floatnum=3.14,a=0;

if(r>0)a=2*num*r;

printf("resultis%f\n",a);

}

输入2,运行结果为:

resultis12.560000

输入-2,运行结果为:

resultis0.000000

2.

#include

main(){

inta=12,b=-34,c=56,min;

min=a;

if(min>b)min=b;

if(min>c)min=c;

printf("min=%d",min);

}

运行结果为:

min=-34

3.

#include

main(){

inta=1,b=3,c=5;

if(c==a+b)

printf("yes\n");

else

printf("no\n");

}

运行结果为:

no

4.

#include

main(){

intx=5,a=1,b=1;

if(x!

=a+b)

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

else

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

}

运行结果为:

x=4

5.

#include

main(){

charc=getchar();

if((‘0’<=c)&&(c<=’9’))

printf(“YES”);

else

printf(“NO”);

}

若输入5,运行结果为:

YES

若输入c,运行结果为:

NO

6.

#include

main(){

inta=10,b=50,c=30;

if(a>b)

a=b;

b=c;

c=a;

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

}

运行结果为:

a=10b=30c=10

7.

#include

main(){

intx=10,y=10;

if(x<9)

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

x--;

if(x>=9)

printf("%d\n",y+1);

else

printf("%d\n",y+2);

}

运行结果为:

11

8.

#include

main(){

inta=6,b=6;

if(a>5)

{a*=2;

b/=2;}

else

a/=2;

b*=2;

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

}

运行结果为:

a=12b=6

9.

#include

main(){

floatc=3.0,d=4.0;

if(c>d)

c=5.0;

else

if(c==d)

c=6.0;

else

c=7.0;

printf(“%.1f\n”,c);

}

运行结果为:

7.0

10.

#include

main()

{intm;

scanf("%d",&m);

if(m>=0)

{if(m%2==0)

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

else

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

}

else

{if(m%2==0)

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

else

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

}

}

若键入-9,则运行结果为:

-9isanegativeodd

11.

#include

main(){

intx=2,y=-1,z=5;

if(x

if(y<0)

z=0;

else

z=z+1;

printf(“%d\n”,z);

}

运行结果为:

5

12.

#include

main(){

inta=5,b=6,c=7,z=10;

if(a>b)

if(b>c)

printf(“%d\n”,z+10);

else

printf(“%d\n”,z+20);

printf(“%d\n”,z);

}

运行结果为:

10

13.

#include

main(){

inta=2,b=3,c=1;

if(a>b)

if(a>c)

printf(“%d\n”,a);

else

printf(“%d\n”,c);

printf(“over!

\n”);

}

运行结果为:

over!

14.

#include

main(){

inta=0,b=1,d=20;

if(a)

d=d-10;

else

if(!

b)

d=15;

elsed=25;

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

}

运行结果为:

d=25

15.

#include

main(){

inta,b,c,x,y;

a=b=c=0;

x=10;

if(a)x-=5;

elseif(b)

y=20;

elseif(!

c)

y=45;

else

x+=5;

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

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

}

运行结果为:

x=10

y=45

16.

#include

main(){

floata,b,c,t;

a=3;b=7;c=1;

if(a>b)

{t=a;a=b;b=t;}

if(a>c)

{t=a;a=c;c=t;}

if(b>c)

{t=b;b=c;c=t;}

printf("%5.2f,%5.2f,%5.2f",a,b,c);

}

运行结果为:

1.00,3.00,7.00

17.

#include

main(){

inta=0,b=0,c=0;

switch(c)

{case0:

b++;

case1:

a++;

case2:

a++;b++;

}

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

}

运行结果为:

a=2,b=2

18.

#include

main(){

charch;

ch=getchar();

switch(ch)

{case‘A’:

printf(“%c”,’A’);

case‘B’:

printf(“%c”,’B’);break;

default:

printf(“%s\n”,”other”);

}

}

当从键盘输入字母A时,运行结果为:

AB

当从键盘输入字母a时,运行结果为:

other

19.

#include

main(){

inta=1,b=0;

scanf(“%d”,&a);

switch(a)

{case1:

case2:

b=2;break;

default:

b=10;

}

printf("%d",b);

}

若键盘输入1,运行结果为:

2

若键盘输入5,运行结果为:

10

20.

#include

main(){

inta=10,b=11,c=0;

switch(a%3)

{case0:

c++;break;

case1:

c++;

case2:

switch(b%2)

{case0:

c++;;

default:

c++;

}

}

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

}

运行结果为:

2

三、编程题

1、输入两个数,输出较大的数。

#include

intmain(){

inta,b,max;

printf(“Pleaseinputtwonumbers :

”) ;

scanf(“%d%d”,&a,&b);

if(a>b)

max=a;

else

max=b;

printf(“max=%d\n”,max);

return0 ;

}

2、输入一个整数,判断其奇偶性。

#include

voidmain(){

intm;

scanf("%d",&m);

if(m%2==0)

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

else

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

}

3、输入一个正整数,判断其是否为3和7的公倍数,若是输出“Yes”,否则输出“No”。

#include

voidmain(){

intm;

scanf("%d",&m);

if(m%3==0&&m%7==0)

printf("Yes\n");

else

printf("No\n");

}

4、输入一个字符,如果是大写英文字母,将其转换为小写字母并输出,如果不是,则原样输出。

#include

intmain(){

charc1;

c1=getchar();

if(c1>=’A’&&c1<=’Z’)

c1=c1+32;

putchar(c1);

return0;

}

5、输入一个字符,如果是英文字母,输出“abcd”,如果是数字字符,输出“####”,如果都不是,输出“other”。

#include

intmain(){

charc;

c=getchar();

if(c>=’A’&&c<=’Z’||c>=’a’&&c<=’z’)

printf(“abcd”);

elseif(c>=’0’&&c<=’9’)

printf(“####”);

else

printf(“other”);

return0;

}

6、输入三个数,按照从小到大的顺序输出。

#include

intmain(){

floata,b,c,t;

scanf(“%f%f%f”,&a,&b,&c);

if(a>b)

{t=a;a=b;b=t;}

if(a>c)

{t=a;a=c;c=t;}

if(b>c)

{t=b;b=c;c=t;}

printf("%f,%f,%f",a,b,c);

}

7、函数y=f(x)表示如下,编程实现输入一个x值,输出y值。

2x+1(x<0)

y=0(x=0)

2x-1(x>0)

#include

voidmain(){

intx,y;

scanf(“%d”,&x);

if(x<0)

y=2*x+1;

elseif(x>0)

y=2*x-1;

else

y=0;

printf(“%d”,y);

}

8、编程,输入每个月的上网时间,计算上网费用,资费标准如下:

#include

voidmain(){

inthour;

floatfee;

printf(“pleaseinputhour:

\n”);

scanf(“%d”,&hour);

if(hour<=10)

fee=30;

elseif(hour<=50)

fee=3*hour;

else

fee=hour*2.5;

printf(“Thetotalfeeis%f”,fee);

}

9、神州行用户无月租费,话费每分钟0.6元,全球通用户月租费50元,话费每分钟0.4元。

输入一个月的通话时间,分别计算出两种方式的费用,判断哪一种合适。

#include

voidmain(){

floatt,szx,qqt;

printf(“请输入您的通话时间:

”);

scanf(“%f,”,&t);

szx=0.6*t;

qqt=50+0.4*t;

if(szx>qqt)

printf(“建议使用全球通”);

else

printf(“建议使用神州行);

}

10、要求按照考试成绩的等级输出百分制分数段,A等为85分以上,B等为70~84分,C等为60~69分,D等为60分以下。

成绩的等级由键盘输入。

#include

intmain(){

chargrade;

scanf("%c",&grade);

printf("Yourscore:

");

switch(grade)

{case'A':

printf("85~100\n");break;

case'B':

printf("70~84\n");break;

case'C':

printf("60~69\n");break;

case'D':

printf("<60\n");break;

default:

printf("enterdataerror!

\n");

}

return0;

}

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

当前位置:首页 > 总结汇报 > 其它

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

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