switch函数和if语句的相关练习题及答案

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

switch函数和if语句的相关练习题

1. 以下程序的执行结果是 (-1)

main()

{ int x=100,a=10,b=20,v1=5,v2=0;

if(a

if(b!=15)

if(!v1)/*得0所以x=1不执行*/

x=1;

else

if(v2)/* 得0所以x=10不执行,所以x在if语句中没有赋值*/

x=10;

x=-1;

printf(“%d”,x); }

2. 以下程序的输出结果是 8,8,10

main()

{ int x=10,y=9;

int a,b,c;

a=(--x==y++)?--x:++y;/*a=x=8,y=10*/

b=x++;/*b=x=8,x=9*/

c=y;/*b=8,c=10*/

printf(“%d,%d,%d”,a,b,c); }

3. 以下程序输入3时,输出结果是 34

main()

{ int k;scanf(“%d”,&k);

switch(k)

{ case 1:printf(“%d”,k++);

case 2:printf(“%d”,k++);

case 3:printf(“%d”,k++);/*输出本身的值3,但是k已经变成4*/

case 4:printf(“%d”,k++); break; /*输出本身的值4,但是k已经变成5*/ default :printf(“FULL!”); }

printf(“\n”); }

4. 以下程序的执行结果是 10

main( )

{ int a=-1,b=1,k;

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

/*if(++a<0)为假, 后面短路,与运算前面为假,则这个表达式就为假,且a=0,b因为短路了没有赋值,所以b还是它本身的值*/

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

else

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

5. 以下程序的运行结果是__1,1______。

main()

{int x,y,z;

x=1;y=2;z=3;

(x=y--<=x)||(x=y!=z);

/* (x=y--<=x): 2

printf(“%d,%d”,x,y);

}

6. 以下程序的运行结果是__1,0________。

main()

{ int x,y,z;

x=1;y=1;z=0;

x=x||y&&z;

/*x为1,后面短路,x=1*/

printf(“%d,%d”,x,x&&!y||z);

/* !y 为0, x为1, 所以x&&!y 为0,00为0*/

}

7. 以下程序的运行结果是_F___。

main()

{if(2*2==5<2*2==4)/*4==5<4==4*/

printf(“T”);

else

printf(“F”);}

8,输入一个整数,判别它是否能被3整除,若能整除,打印YES;不能打印NO。找出程序中的错误。

main

{ flaot n;

printf(“please input n: ”);

s canf(“%d”, n);

if(n%3!=0)

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

else ;

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

}

正确的程序如下:

#include<>

main()

{ int n;

printf("please input n: ");

scanf("%d", &n);

if(n%3==0)

printf ("YES\n") ;

else printf ("NO\n");

}

9,以下程序是求3个数中的最大值,改正错误。 int main

{ int x,y,z,max

scanf(“%d,%d”,&x,&y,&z);

max=x;

if(max>y)max=y;

if(max

#include<>

main()

{ int x,y,z,max;

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

max=x;

if(max

if(max

printf("最大值是:%d",max);

}

10,找出以下程序中的错误

int main

{ int g;

printf(“Enter a mark: ”,g);

scanf(“%d”,g);

switch( g/10);

case 10:

case 9:printf(“A\n”);break;

case 8:printf(“B\n”);break;

case 7:printf(“C\n”);break;

case 6:printf(“D\n”);break;

default :printf(“E\n”); }

}

正确的程序如下:

#include<>

main()

{ int g;

printf("Enter a mark: ");

scanf("%d",&g);

switch( g/10)

{case 10:

case 9:printf("A\n");break;

case 8:printf("B\n");break;

case 7:printf("C\n");break;

case 6:printf("D\n");break;

相关文档
最新文档