C语言分支结构练习题(华师版)

第1题 单选题

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

A. a <> 0

B. !a

C. a=0

D. a!=0

第2题 单选题 D

基础题

以下程序输出结果是

c

#include< stdio.h >

void main()

{

int m=5;

if (m++ > 5)

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

else

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

}

A. 7

B. 6

C. 5

D. 4

B

中等题:卡点在于后置++,第一个if不满足,但是后置++后第二个满足,很多人就直接踩坑进去了。后置--是先运算再--,所以它是先打印的,打印也是一种运算。m最后会变成5,但是打印出来不会是5.

第3题 单选题

请读程序:

c

#include < stdio.h>

void main()

{

float x,y;

scanf("%f",&x);

if(x < 0.0)

y=0.0;

else if((x < 5.0)&&(x!=2.0))

y=1.0/(x+2.0);

else if( x < 10.0 )

y=1.0/x;

else

y=10.0;

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

}

若运行时从键盘上输入2.0(表示回车),则上面程序的输出结果是

A. 0.000000

B.0.500000

B这里考的就是短路

第4题 单选题

执行下面语句后的输出为( )

c

int i= -1;

if (i <=0)

printf("****\n");

else

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

A. ****

B. %%%%

C. %%%%C

D. 有语法错,不能执行

基础题,直接循环判断

第5题 单选题

为避免嵌套的条件分支语句if...else的二义性,C语言规定,C程序中的 else总是与 () 组成配对关系。

A. 其上面距它最近的,并且没有其他else与其配对的if相配对

B. 在同一行上的if

C. 缩排位置相同的if

D. 在其之前未配对的if

基础题:纯概念背诵

但是如果它写成代码的话就要注意了

第6题 单选题

以下程序的输出结果是

c

#include<stdio.h>

void main()

{

int a= -1,b=1;

if( (++a <0) && !(b-- <=0) )

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

else

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

}

A. -1 1

B. 0 1

C. 1 0

D. 0 0

中等题:实际上就一个短路,前置++也不影响它

第7题 单选题

若变量都已经说明,则以下程序段输出为( )

c

a=10;b=50;c=30;

if (a > b)

a=b; b=c; c=a;

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

A. a=10 b=50 c=10

B. a=10 b=30 c=10

C. a=50 b=30 c=10

D. a=50 b=30 c=50

中等题:但是它的坑点在于if后面如果不用大括号,就只能接一个语句。

一行可以接多个语句,但是跟if的只有第一个。这个坑点和上一题有点像

第8题 单选题

若执行下面的程序从键盘输入3和4,则输出是______

c

#include<stdio.h>

void main()

{

int a,b,s;

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

s=a;

if(a < b)

s=b;

s=s*s;

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

}

A. 14

B. 16

C. 18

D. 20

基础题

第9题 单选题

请读程序:

c

#include<stdio.h>

void 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. a=2,b=1

B. a=1,b=1

A它考的是break和穿透,break只是停掉当前的循环,但是外面的那个不会出去。

它还是会穿透到case2

第10题 单选题

若有定义: float w; int a, b; 则合法的switch语句是( )

A.

switch(w)

{ case 1.0: printf("*\n");

case2.0: printf("**\n");

}

B.

switch(a);

{ case 1 printf("\n");
case 2 printf("
\n");

}

C.

switch(b)

{

case 1: printf("\n");
case 2: printf("
\n");

}

D.

switch(a+b);

{

case 1: printf("*\n");

default: printf("\n");

case 2 }

中等题:考语法规则:switch只可以接整数,case后面要有:switch后面没有;

第11题 填空题

c

#include < stdio.h >

void main( )

{

int i=0,j=0,a=6;

if( ((++i > 0) || (j++ > 0)) )

a++;

printf("i=%d,j=%d,a=%d",i,j,a);

}

结果:________

第12题 填空题

请写出以下程序的输出结果------。

c

#include<stdio.h>

void main()

{

int a=100;

if(a>100)

printf("%d\n",a>100);

else

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

}

中等题:看你有没有反映过来,真为1,假为0

第13题 填空题

若 int i=10; ,则执行下列程序后,变量i的正确结果是------。

c

switch(i)

{

case 9: i+=1;

case 10: i+=1;

case 11: i+=1;

default: i+=1;

}

中等:default也会被穿透

第14题 填空题

下列程序段的输出结果是 ____________ 。

c

int n='c';

switch(n++)

{

default: printf("error");break;

case 'a':case 'A':case 'b':case 'B':printf("good");break;

case 'c':case 'C':printf("pass");

case 'd':case 'D':printf("warm");

}

中等:还是从c开始穿透

相关推荐
H.莓飛1 小时前
【Linux】进程的创建与终止
linux·运维·服务器·c语言·visual studio
从小白到软工2 小时前
4-1 指针
c语言·开发语言·数据结构·经验分享·ai编程
Pniubi2 小时前
agent处理封号怎么解决误封问题
开发语言·python
.Hypocritical.2 小时前
【Java 进阶】泛型深度解析|泛型类、泛型方法、通配符、类型擦除、PECS 原则
java·开发语言·泛型
VX_bysjlw9852 小时前
基于PHP的论坛系统设计与实现 35136-计算机毕设原创(免费领源码+带部署教程)
开发语言·php·apache·laravel·thinkphp·phpstudy·wampserver
忆~遂愿2 小时前
电影照片散在硬盘里不好找?我用群晖+Plex整理成可远程访问的家庭媒体库
开发语言·php
卢锡荣3 小时前
乐得瑞Type-c接口产品描述
c语言·开发语言
晴天的雨.9923 小时前
【C++】模板进阶
开发语言·c++·算法
Shadow(⊙o⊙)3 小时前
仿muduo实现高并发服务器——时间轮timewheel.cpp
c语言·c++