Dotcpp  >  试卷列表  >  C语言选择结构

C语言选择结构


第1题

以下选项中,能表示逻辑值“假”的是( )。 

共 1 分 

第2题

以下表达式的值与x无关、其值恒为真的是( )。

共 1 分 

第3题

当变量c的值不为2、4、6时,值也为“真”的表达式是( )。

共 1 分 

第4题

设有定义:

1
int a=0,b=1;

以下表达式中,会产生“短路”现象,致使变量b的值不变的是 ( )。 

共 1 分 

第5题

若有定义语句

1
int b=2;

则表达式(b<<2)/(3ǁb)的值是( )。 

共 1 分 

第6题

若a是数值类型,则逻辑表达式(a==1)ǁ(a!=1)的值是( )。

共 1 分 

第7题

以下选项中,当x为大于1的奇数时,值为0的表达式是( )。 

共 1 分 

第8题

若有定义语句

1
int k1=10,k2=20;

执行表达式(k1=k1>k2)&&(k2=k2>k1)后,k1和k2的值分别为 ( )。

共 1 分 

第9题

已知a=5,b=6,c=7,d=8,m=2,n=2,执行(m=a>b)&&(n=c<d)后n的值为( )。

共 1 分 

第10题

执行以下程序段后,w的值为( )。

1
2
int w='A',x=14,y=15;
w=((x||y)&&(w<'a'));
共 1 分 

第11题

有以下程序:

1
2
3
4
5
6
7
8
#include <stdio.h>
main()
{
 int a,b,c=241;
 a=c/100%9;
 b=(-1)&&(-1);
 printf("%d,%d\n",a,b);
}

程序运行后的输出结果是( )。

共 1 分 

第12题

有以下程序:

1
2
3
4
5
6
7
#include <stdio.h>
main()
{
 int a=-2,b=0;
 while(a++&&++b);
 printf("%d,%d\n",a,b);
}

程序运行后的输出结果是( )。 

共 1 分 

第13题

有以下程序

1
2
3
4
5
6
:#include <stdio.h>
main(){
 int n=2,k=0;
 while(k++&&n++>2);
 printf("%d %d\n",k,n);
}

程序运行后的输出结果是( )。 

共 1 分 

第14题

以下叙述中正确的是( )。 

共 1 分 

第15题

若变量已正确定义,在if(W)printf("%d\n",k);中,以下不可替代W的是( )。

共 1 分 

第16题

为了避免在嵌套的if-else语句中产生二义性,C语言规定与else子 句配对是( )。

共 1 分 

第17题

下列条件语句中,输出结果与其他语句不同的是( )。

共 1 分 

第18题

设有定义:

1
int a=1,b=2,c=3;

以下语句中执行效果与其他三个不同的是( )。

共 1 分 

第19题

有以下程序段,若变量已正确定义并赋值

1
2
3
4
 if(a>b)printf("x=%d,",x);
 else printf("y=%d,",y);
 if(a<=b)i++;
 else j++;

则与此程序段功能相同的选项是( )。

共 1 分 

第20题

有以下程序:

1
2
3
4
5
6
7
#include <stdio.h>
main()
{
 int x=0x13;
 if(x=0x12)printf("True");
 printf("False\n");
}

程序运行后的输出结果是( )。 

共 1 分 

第21题

有以下程序段:

1
2
3
4
scanf("%d%d%d",&a,&b,&c);
if(a>b)a=b;
if(a>c)a=c;
printf("%d\n",a);

该程序段的功能是( )。

共 1 分 

第22题

有以下程序段:

1
2
scanf("%d%d%d",&a,&b,&c);
if(a<b)a==b; if(a<c)a="=c;" printf("%d\n",a);

该程序段的功能是( )。

共 1 分 

第23题

以下程序的功能是判断输入的一个整数是否能被3或7整除,若能 整除,输出YES,否则输出NO。在下划线处应填入的选项是 ( )。

1
2
3
4
5
6
7
8
9
10
#include <stdio.h>
main()
{
 int k;
 printf("Enter a int number:");
 scanf("%d",&k);
 if _____ printf("YES\n");
 else printf("NO\n");
 printf("%d\n",k%3);
}
共 1 分 

第24题

有以下程序:

1
2
3
4
5
6
7
#include <stdio.h>
main()
{
 if('\0'==0)putchar('1');
 if('0'==0)putchar('2');
 if('a'>'b')putchar('3');
}

程序运行后的输出结果是( )。 

共 1 分 

第25题

有以下程序:

1
2
3
4
5
6
7
#include <stdio.h>
main(){
 int x;
 scanf("%d",&x);
 if(x>10) printf("1");
 else if(x>20) printf("2");
 else if(x>30) printf("3");}

若运行时输入:35<回车>,则输出结果是( )。 

共 1 分 

第26题

有以下程序段:

1
2
3
4
int a,b,c;
a=10;b=50;c=30;
if(a>b)a=b,b=c;c=a;
printf("a=%db=%dc=%d",a,b,c);

程序的输出结果是( )。 

共 1 分 

第27题

若变量已正确定义,有以下程序段:

1
2
3
4
int a=3,b=5,c=7;
if(a>b) a=b;c=a;
if(c!=a)c=b;
printf("%d,%d,%d\n",a,b,c);

其输出结果是( )。

共 1 分 

第28题

以下函数按每行8个输出数组中的数据:

1
2
3
4
5
void fun(int *w,int n)
{
 int i;
 for(i=0;i<n;i++) {______ printf("%d",w[i]);}
 printf("\n");}

下划线处应填入的语句是( )。

共 1 分 

第29题

有以下程序:

1
2
3
4
5
6
7
8
9
10
#include <stdio.h>
main()
{
 int x=1,y=2,z=3;
 if(x>1)
 if(y>x)putchar('A');
 else putchar('B');
 else
 if(z<x)putchar('C');
 else putchar('D');}

程序的运行结果是( )。

共 1 分 

第30题

有以下程序:

1
2
3
4
5
6
7
8
9
#include <stdio.h>
main()
{
 int x=1,y=2,z=3;
 if(x>y)
 if(y<z) printf("%d",++z);
 else printf("%d",++y);
 printf("%d\n",x++);
}

程序运行的结果是( )。

共 1 分 

第31题

有以下程序:

1
2
3
4
5
6
7
8
#include main()
{
 int x=1,y=0;
 if(!x)y++;
 else if(x==0) if(x)y+=2;
 else y+=3;
 printf("%d\n",y);
}

程序运行后的输出结果是( )。

共 1 分 

第32题

在以下程序:

1
2
3
4
5
6
7
8
9
#include <stdio.h>
main()
{
 int a=1,b=0;
 if(!a) b++;
 else if(a==0)if(a)b+=2;
 else b+=3;
 printf("%d\n",b);
}

程序运行后的输出结果是( )。 

共 1 分 

第33题

有以下程序:

1
2
3
4
5
6
7
8
9
#include <stdio.h>
main()
{
 int x;
 scanf("%d",&x);
 if(x<=3);
 else if(x!=10)
 printf("%d\n",x);
}

程序运行时,输入的值在( )范围才会有输出结果。

共 1 分 

第34题

若有以下程序

1
2
3
4
5
6
7
8
#include <stdio.h>
main()
{
 int a=1,b=2,c=3,d=4;
 if((a==2)||(b==1))c=2;
 if((c==3)&&(d==-1))a=5;
 printf("%d,%d,%d.%d\n",a,b,c,d);
}

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

共 1 分 

第35题

有以下程序

1
2
3
4
5
6
7
8
#include <stdio.h>
main()
{
 int a=0,b=0,c=0,d=0;
 if(a=1)b=1;c=2;
 else d=3;
 printf("%d,%d,%d,%d\n",a,b,c,d);
}

程序输出( )。 

共 1 分 

第36题

有如下程序

1
2
3
4
5
6
7
8
:#include <stdio.h>
main()
{
 int x=0x13;
 if(x=0x18)printf("T");
 printf("F");
 printf("\n");
}

程序运行后的输出结果是( )。 

共 1 分 

第37题

有以下计算公式:

第37题

 若程序前面已在命令行中包含math.h文件,不能够计算上述公式的程 序段是( )。 

共 1 分 

第38题

如有表达式(w)?(-x):(++y),则其中与w等价的表达式是 ( )。

共 1 分 

第39题

若有定义:int x,y;并已正确给变量赋值,则以下选项中与表达式(x-y)?(x++):(y++)中的条件表达式(x-y)等价的是( )。 

共 2 分 

第40题

有如下嵌套的if语句:

1
if(a<b) if(a<c)k="a;" else="" k="c;" if(b<c)k="b;"

以下选项中与上述if语句等价的语句是( )。

共 2 分 

第41题

以下程序段中,与语句:k=a>b?(b>c?1:0):0;功能相同的是( )。

共 2 分 

第42题

有语句:k=x<y?(y<z?1:0):0; 以下选项中,与此语句功能相同的是( )。

共 2 分 

第43题

若有定义:

1
int a=0,b=0,c=0,d=0;

有C语言表达式 (a++ && b++)? c++ : d++,以下关于其执行顺序的叙述 正确是( )。

共 2 分 

第44题

若有定义:

1
int a=0,b=0,c=0,d=0;

以下关于C语言表达式:(++aǁ++b)? ++c:++d执行顺序的叙述正确的是 ( )。

共 2 分 

第45题

有以下程序:

1
2
3
4
5
6
7
#include <stdio.h>
main()
{
 char a='H';
 a=(a>='A'&&a<='z')?(a-'A'+'a'):a;
 printf("%c\n",a);
}

程序运行后的输出结果是( )。

共 2 分 

第46题

有以下程序

1
2
3
4
5
6
7
8
#include <stdio.h>
main()
{
 int x;
 for(x=3;x<6;x++)
 printf((x%2)?("*%d"):("#%d"),x);
 printf("\n");
}

程序的输出结果是( )。 

共 3 分 

第47题

有以下程序:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <stdio.h>
int m1(int x,int y)
{
 return x<=y?x:y;
}
int m2(int x,int y)
{
 return x<=y?y:x;
}
int fun(int a,int b){
 return a+b;
}
main()
{
 int x=2,y=3,z=1;
 printf("%d\n",fun(m1(x,y),m2(y,z)));
}

程序的运行结果是( )。 

共 3 分 

第48题

有以下程序:

1
2
3
4
5
6
#include <stdio.h>
main()
{
 int a=0,b=0,c=0,d=0;
 (++a||++b)?++c:++d;
 printf("%d,%d,%d,%d\n",a,b,c,d);}

程序的运行结果是( )。 

共 3 分 

第49题

下列叙述中正确的是( )。

共 3 分 

第50题

若有定义:

1
2
float x=1.5;
int a=1,b=3,c=2;

则正确的switch语句是( )。

共 3 分 

第51题

若有定义语句int a,b;double x;则下列选项中没有错误的是( )。

共 3 分 

第52题

有以下程序:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <stdio.h>
main()
{
 int k,n=0;char c,str[]="teach";
 for(k=0;str[k];k++)
 {
 c=str[k];
 switch(k)
 {
 casel: case3: case5: putchar(C); printf("%d",++n); break;
 default:putchar('N');
 }
 }
}

程序的运行结果是( )。

共 3 分 

第53题

有以下程序:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <stdio.h>
main()
{
 char c; while((c=getchar())!='\n')
 {
 switch(c-'2')
 {
 case 0:
 case 1:putchar(c+4);
 case 2:putchar(c+4);break;
 case 3:putchar(c+3);
 default:putchar(c+2);break;
 }
 }
 printf("\n");
 }

程序运行后从第一列开始输入以下数据:2473<回车>程序的输出结果是( )。

共 3 分 

第54题

有以下程序

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <stdio.h>
main()
{
 int a,b;
 for(a=0; a<3; a++) 
 {
 scanf("%d", &b);
 switch(b)
 {
 defaultprintf("%d,", ++b);
 case 1: printf("%d,", ++b);
 case 2: printf("%d,", ++b);
 }
 }
}

执行时输入:1 2 3 <回车>,则输出结果是( )。 

共 3 分 

第55题

有以下程序:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <stdio.h>
main()
{
 int i=1,k=0;
 for(;i<6;)
 {
 switch(i%3)
 {
 case 0:k++;
 case 1:k++;break;
 case 2:k++;continue;
 }
 i+=1;
 }
 printf("%d\n",k);
}

程序的运行情况是( )。

共 3 分 

第56题

有以下程序:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <stdio.h>
main()
{
 int s;
 scanf("%d",&s);
 while(s>0)
 {
 switch(s)
 {
 case 1:printf("%d",s+5);
 case 2:printf("%d",s+4);break;
 case 3:printf("%d",s+3);
 default:printf("%d",s+1);break;
 }
 scanf("%d",&s);
 }
}

运行时,若输入1 2 3 4 5 0<回车>,则输出结果是( )。 

共 3 分 

第57题

有以下程序:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
int i,n;
for(i=0; i<8; i++)
{
 n=rand()%5; 
 switch(n)
 {
 case 1:
 case 3:printf("%d\n",n);break;
 case 2:
 case 4:printf("%d\n",n);continue;
 case 0:exit(0);
 }
 printf("%d\n",n);
}

以下关于程序执行情况的叙述中,正确的是( )。

共 3 分 

第58题

有以下程序:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <stdio.h>
main()
{
 int a[]={2,3,5,4},i;
 for(i=0;i<4;i++)
 switch(i%2)
 {
 case 0:
 switch(a[i]%2)
 {
 case 0:a[i]++;break;
 case 1:a[i]--;
 }break;
 case 1:a[i]=0;
 }
 for(i=0;i<4;i++)printf("%d",a[i]);
 printf("\n");
}

程序运行后的输出结果是( )。

共 3 分 

第59题

有以下程序

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <stdio.h>
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;
 case 3:a++;b++;break;
 }
 printf("a=%d,b=%d\n",a,b);
}

程序的运行结果是( )。 

共 3 分 

第60题

有以下程序

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <stdio.h>
main()
{
 int k=5,n=0;
 do
 {
 switch(k)
 {
 case 1:case 3:n+=1;k--;break;
 default:n=0;k--;
 case 2:case 4:n+=2;k--;break;
 }
 printf("%d",n);
 }while(k>0&&n<5);
}

程序运行后的输出结果是( )。 

共 3 分 

第61题

有以下程序:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <stdio.h>
main()
{
 char *s="120119110";
 int n0,n1,n2,nn,i;
 n0=n1=n2=nn=i=0;
 do
 {
 switch(s[i++])
 {
 default:nn++;
 case '0':n0++;
 case '1':n1++;
 case '2':n2++;
 }
 }while(s[i]);
 printf("n0=%d,n1=%d,n2=%d,nn=%d\n",n0,n1,n2,nn);
}

程序的运行结果是( )。 

共 3 分