2选择(答案)

本章要求(选择)

1. 掌握if 、switch 语句的使用方法;

2. 掌握if 、switch 语句嵌套的用法;

3. 正确编写选择结构的C 语言程序,解决实际问题。

一、选择题

1.以下错误的if 语句是( C )

A. if(x>y);

B. if(x==y) x+=y;

C. if(x!=y) scanf(“%d”,&x) else scanf(“%d”,&y);

D. if(x

答:C ,else 之前要有分号“;”

2.C 语言对嵌套if 语句的规定是:else 总是与( D )配对。

A. 其之前最近的if

B. 第一个

C. 缩进位置相同的if

D. 其之前最近的且尚未配对的if

3.下列关于switch 语句和break 语句的结论中,正确的是( B )

A. break语句是switch 语句中的一部分

B. 在switch 语句中可以根据需要使用或不使用break 语句

C. 在switch 语句中必须使用break 语句

4.在下面的条件语句中,只有一个在功能上与其它三个语句不等价,它是( D )

A. if(a) s1; else s2;

B. if(a==0) s2; else s1;

C. if(a!=0) s1; else s2;

D. if(a==0) s1; else s2;

答:a 非零时执行s1,a 为零时执行s2。

5.若要求在 if 后一对圆括号中表示 a 不等于 0 的关系,则能正确表示这一关系的表达式为( D ) 。( 1997 年 4 月)

A .a0 B .!a C .a=0 D .a

6. 下列叙述中正确的是( D )

A .break 语句只能用于switch 语句;

B .在switch 语句中必须使用default ;

C .break 语句必须和switch 语句中的case 配对使用;

D .在switch 语句中,不一定使用break 语句。

答:break 可以用在循环语句中。

7.以下程序的输出为( A )。

main( )

{ int a=20,b=30,c=40;

if(a>b) a=b,

b=c;c=a;

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

}

A . a=20,b=30,c=20

B . a=20,b=40,c=20

C . a=30,b=40,c=20

D . a=30,b=40,c=30

8.对于条件表达式(k)?(i++):(i--)来说,其中的表达式k 等价于( C )。

A . k==0

B . k==1

C . k!=0

D . k!=1

分析:因为条件表达式e1?e2:e3的含义是e1为真时,取表达式e2的值,否则取表达式e3的值," 为真" 的意思就是不等于0。

本题正确答案为C 。

9.对下述程序,正确的判断是( A )。

main( )

{ int a,b;

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

if(a>b)a=b; b=a;

else a++; b++;

printf("%d,%d",a,b);

}

A . 有语法错误不能通过编译

B . 若输入4,5则输出5,6

C . 若输入5,4则输出4,5

D . 若输入5,4则输出5,5

分析:不管if 语句中的条件真假,它只能执行一个语句,要想根据条件执行多个语句,应写成复合语句,程序中if 和else 的后面都有两个语句,违反了这一点。

本题正确答案为A 。

二、读程序题,写出下列程序的运行结果

1. main( )

{ int i=10;

switch(i)

{ case 9: i+=1;

case 10: i+=1;

case 11: i+=1;

default: i+=1;

}

printf(“%d”,i); //13

}

答:i=13

2. #include

main( )

{ int x=1, y=0, a=0, b=0;

switch(x)

{ case 1: switch(y)

{ case 0: a++; break;

case 1: b++;break;

}

case 2: a++; b++; break;

}

printf(“a=%d,b=%d\n”,a, b);//a=2,b=1

}

3. #include

main( )

{ int a=2, b=-1, c=2;

if(a

if(b

else c+=1;

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

}

答:c=2

4. #include

main( )

{ int a=1, b=3, c=5, d=4;

if(a

if(c

else

if(a

if(b

else x=3;

else x=6;

else x=7;

printf(“x=%d”,x);//x=2

}

5. #include

main( )

{ int x=0, y=1, z=2, w;

if(x++) w=x;

else if(x++&&y>=1) w=y;

else if(x++&&z>1) w=z;

printf(“x=%d, w=%d\n”,x, w);//x=2,w=1

}

6. main( )

{ int x=0, y=3, z=2;

if(x++&&y++) z--;

else if(x+1==6||y--) z++;

printf(“x=%d, y=%d,z=%d\n”,x, y, z);//x=1,y=2,z=3

}

7.main()

{ int x=100, a=10, b=20, ok1=5, ok2=0;

if(a

if(b!=15)

if(! ok1) x=1;

else if(ok2) x=10;

x=-1;

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

}

8. void main( )

{ int a;

scanf(“%d”,&a); //输入58

if(a>50) printf(“%d”,a);//58

if(a>40) printf(“%d”,a); //58

if(a>30) printf(“%d”,a); //58

}

运行结果:585858

9. void main()

{

int a,b,c,x;

a=b=c=0; x=35;

if(!a) x--;

else if(b);

if(c) x=3;

else x=4;

printf(“x=%d\n”,x); //x=4

}

10. void main( )

{

int a=15, b=21, m=0;

switch(a%3)

{

case 0: m++; break;

case 1: m++;

switch(b%2)

{

default: m++;

case 0: m++; break;

}

}

printf(“%d\n”,m); //1

}

三、简答题

1. 设x, y, z 均为int 型变量,请写出描述 “x 或y 中至少有一个小于z 的表达式”。 答案:x

2. 写出与表达式!(x>0)等价的表达式。

答案:x

3. 写出与表达式!0等价的表达式。

答案:1

4. 写出char 型变量ch 是小写字母的表达式。

答案:ch>=’a ’&&ch

5. 写出满足下列条件的C 语言表达式:int 型数x 取值为0或1,且float 型数y 的取

值在1.0-6.0之间的C 语言表达式。

答案:(x==0||x==1)&&(y>=1.0&&y

本章要求(选择)

1. 掌握if 、switch 语句的使用方法;

2. 掌握if 、switch 语句嵌套的用法;

3. 正确编写选择结构的C 语言程序,解决实际问题。

一、选择题

1.以下错误的if 语句是( C )

A. if(x>y);

B. if(x==y) x+=y;

C. if(x!=y) scanf(“%d”,&x) else scanf(“%d”,&y);

D. if(x

答:C ,else 之前要有分号“;”

2.C 语言对嵌套if 语句的规定是:else 总是与( D )配对。

A. 其之前最近的if

B. 第一个

C. 缩进位置相同的if

D. 其之前最近的且尚未配对的if

3.下列关于switch 语句和break 语句的结论中,正确的是( B )

A. break语句是switch 语句中的一部分

B. 在switch 语句中可以根据需要使用或不使用break 语句

C. 在switch 语句中必须使用break 语句

4.在下面的条件语句中,只有一个在功能上与其它三个语句不等价,它是( D )

A. if(a) s1; else s2;

B. if(a==0) s2; else s1;

C. if(a!=0) s1; else s2;

D. if(a==0) s1; else s2;

答:a 非零时执行s1,a 为零时执行s2。

5.若要求在 if 后一对圆括号中表示 a 不等于 0 的关系,则能正确表示这一关系的表达式为( D ) 。( 1997 年 4 月)

A .a0 B .!a C .a=0 D .a

6. 下列叙述中正确的是( D )

A .break 语句只能用于switch 语句;

B .在switch 语句中必须使用default ;

C .break 语句必须和switch 语句中的case 配对使用;

D .在switch 语句中,不一定使用break 语句。

答:break 可以用在循环语句中。

7.以下程序的输出为( A )。

main( )

{ int a=20,b=30,c=40;

if(a>b) a=b,

b=c;c=a;

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

}

A . a=20,b=30,c=20

B . a=20,b=40,c=20

C . a=30,b=40,c=20

D . a=30,b=40,c=30

8.对于条件表达式(k)?(i++):(i--)来说,其中的表达式k 等价于( C )。

A . k==0

B . k==1

C . k!=0

D . k!=1

分析:因为条件表达式e1?e2:e3的含义是e1为真时,取表达式e2的值,否则取表达式e3的值," 为真" 的意思就是不等于0。

本题正确答案为C 。

9.对下述程序,正确的判断是( A )。

main( )

{ int a,b;

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

if(a>b)a=b; b=a;

else a++; b++;

printf("%d,%d",a,b);

}

A . 有语法错误不能通过编译

B . 若输入4,5则输出5,6

C . 若输入5,4则输出4,5

D . 若输入5,4则输出5,5

分析:不管if 语句中的条件真假,它只能执行一个语句,要想根据条件执行多个语句,应写成复合语句,程序中if 和else 的后面都有两个语句,违反了这一点。

本题正确答案为A 。

二、读程序题,写出下列程序的运行结果

1. main( )

{ int i=10;

switch(i)

{ case 9: i+=1;

case 10: i+=1;

case 11: i+=1;

default: i+=1;

}

printf(“%d”,i); //13

}

答:i=13

2. #include

main( )

{ int x=1, y=0, a=0, b=0;

switch(x)

{ case 1: switch(y)

{ case 0: a++; break;

case 1: b++;break;

}

case 2: a++; b++; break;

}

printf(“a=%d,b=%d\n”,a, b);//a=2,b=1

}

3. #include

main( )

{ int a=2, b=-1, c=2;

if(a

if(b

else c+=1;

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

}

答:c=2

4. #include

main( )

{ int a=1, b=3, c=5, d=4;

if(a

if(c

else

if(a

if(b

else x=3;

else x=6;

else x=7;

printf(“x=%d”,x);//x=2

}

5. #include

main( )

{ int x=0, y=1, z=2, w;

if(x++) w=x;

else if(x++&&y>=1) w=y;

else if(x++&&z>1) w=z;

printf(“x=%d, w=%d\n”,x, w);//x=2,w=1

}

6. main( )

{ int x=0, y=3, z=2;

if(x++&&y++) z--;

else if(x+1==6||y--) z++;

printf(“x=%d, y=%d,z=%d\n”,x, y, z);//x=1,y=2,z=3

}

7.main()

{ int x=100, a=10, b=20, ok1=5, ok2=0;

if(a

if(b!=15)

if(! ok1) x=1;

else if(ok2) x=10;

x=-1;

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

}

8. void main( )

{ int a;

scanf(“%d”,&a); //输入58

if(a>50) printf(“%d”,a);//58

if(a>40) printf(“%d”,a); //58

if(a>30) printf(“%d”,a); //58

}

运行结果:585858

9. void main()

{

int a,b,c,x;

a=b=c=0; x=35;

if(!a) x--;

else if(b);

if(c) x=3;

else x=4;

printf(“x=%d\n”,x); //x=4

}

10. void main( )

{

int a=15, b=21, m=0;

switch(a%3)

{

case 0: m++; break;

case 1: m++;

switch(b%2)

{

default: m++;

case 0: m++; break;

}

}

printf(“%d\n”,m); //1

}

三、简答题

1. 设x, y, z 均为int 型变量,请写出描述 “x 或y 中至少有一个小于z 的表达式”。 答案:x

2. 写出与表达式!(x>0)等价的表达式。

答案:x

3. 写出与表达式!0等价的表达式。

答案:1

4. 写出char 型变量ch 是小写字母的表达式。

答案:ch>=’a ’&&ch

5. 写出满足下列条件的C 语言表达式:int 型数x 取值为0或1,且float 型数y 的取

值在1.0-6.0之间的C 语言表达式。

答案:(x==0||x==1)&&(y>=1.0&&y


相关文章

  • 低压电工作业5
  • 低压电工作业5 单选题 第1题:带电体的工作电压越高,要求其间的空气距离(). A.一样 B.越大 C.越小    您选择的答案:正确答案:B 第2题:人的室颤电流约为()mA. A.16 B.30 C.50    您选择的答案 ...查看


  • 安全生产技术试题1
  • 1. 考试注意事项: 一.本考试由两部分组成:第一部分为必答题,单项选择题,共70题(每道题1分),多项选择题,共10题(每道题2分),满分90分:第二部分为选答题,分四个专业,每个专业10道单项选择题(每道题1分),满分10分.考生可根据 ...查看


  • [市场营销学]试卷和答案
  • 2015市场营销学试卷试题和答案(一) 一.以下为单选题部分: (1) Intel公司是美国占支配地位的计算机芯片制造商,当他们推出一种新产品时,定价总是比同类产品的定价低,在销售的第一年他们可能获利很小,但他们很快就把产品打入了市场,第二 ...查看


  • 端午中秋传统文化知识竞赛104题
  • ★传统文化知识竞赛★ ★传统文化知识竞赛★ ★传统文化知识竞赛★ 注: 该试题特别适合在传统节日期间,在学校或社区进行传统文化教育或课外知识竞赛,鼓励孩子们多读课外书,学习优秀传统文化知识,适合小学生.可以打印,然后裁剪成三条,评奖级别可以 ...查看


  • 西南交大2014第二学期选择判断题答案
  • 本次作业是本门课程本学期的第1次作业,注释如下: 一.单项选择题(只有一个选项正确,共6道小题) 1. 构件的强度是指( C ) (A) 在外力作用下构件抵抗变形的能力 (B) 在外力作用下构件保持其原有的平衡状态的能力 (C) 在外力作用 ...查看


  • 0716[政府公共关系]网上作业答案
  • 第一次 简述政府公共关系的涵义. 答:政府公共关系的主要涵义包括: (1)政府的公众信息管理,即政府组织与公众之间信息流通的管理. (2)政府的公众舆论管理,为政府组织营造一个适宜和良好的公众舆论环境,是政府公众关系管理的重要职责. (3) ...查看


  • 中医-2014医师定期考核题库28
  • 1.引起发颐的主要原因是 ∙ ∙ ∙ ∙ ∙ A.外感风温 B.热病余毒 C.口腔慢性溃疡 D.少阳郁滞 E.胃热 您的答案是: 未选择 正确答案:B 2.阳明经证与腑证的鉴别要点是 ∙ ∙ ∙ ∙ ∙ A.有无发热 B.有无汗出 C.有无 ...查看


  • 课题_西南交大计算机应用基础1-5作业答案
  • 计算机应用基础 第1次作业 本次作业是本门课程本学期的第1次作业,注释如下: 一.单项选择题(只有一个选项正确,共27道小题) 1. 计算机具有逻辑判断能力,主要取决于 ___. (A) 硬件 (B) 体积 (C) 编制的软件 (D) 基本 ...查看


  • 吉林省二级建造师继续教育市政答案
  • 满分100分,得分为: 0 分 第 1.题 建设工程发生质量.安全.环境事故时,担任 该施工项目负责人的注册建造师应当()-----正确答案:(D ). 您选择了:() A. 信息因素和环境因素 B. 自然因素和社<关于切实做好全国中 ...查看


  • 公共经济学第二次作业
  • 作业名称:公共经济学第二次作业 作业总分:100 通过分数:60 起止时间: 2016-5-10 至 2016-6-8 23:59:00 标准题总分:100 详细信息: 题号:1 题型:单选题(请在以下几个选项中选择唯一正确答案) 本题分数 ...查看


热门内容