加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

C语言(分支和循环结构)习题分享

(2013-07-05 16:11:48)
标签:

it

C语言(分支和循环结构)三

若 w = 1, x = 2, y=3, z=4, 则条件表达式 w>x? w : y

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

有如下程序

main()

{ float x=2.0,y;

  if(x<0.0) y=0.0;

  else if(x<5.0) y=1.0/x;

  else y=1.0;

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

}

该程序的输出结果是(  )

A) 0.000000     B) 0.250000     C) 0.500000     D) 1.000000

 

若i为int型,且有程序如下,则输出结果是(  )

i=322;

if(i%2==0) printf("####");

else printf("****");

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

 

有程序如下,若由键盘输入70,则输出结果是(  )

{int  n;

 scanf("%d\n", &n);

 if(n<=90) printf("A\n");

 else if(n<=80)  printf("B\n");

 else if(n>=60)  printf("C\n");

 else printf("D\n");

}

A) A    B) B    C) C    D) D

 

选择运行结果为4的表达式(  )

A) int i=0, j=0;

   (i=3,(j++)+i); 

B) int i=1, j=0;

   j=i=((i=3)*2);

C) int i=0, j=1;

   i=(j==1)?(i=1):(i=3);

D) int  i=1,j=1;

   i+=j=2;

 

以下程序段输出为(  )

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

    if(a>b)a=b,

    b=c;

    c=a;

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

A)a=1 b=2 c=1    B)a=1 b=2 c=3

C)a=1 b=3 c=1    D)a=2 b=3 c=2

 

请问读以下程序:

main()

{int a=5,b=0,c=0;

  if(a=b+c)printf("&&&");

  else    printf("###");

}

以上程序(   )

A)有语法错不能通过编译  B)可以通过编译但不能连接

C)输出&&&               D)###

 

以下程序的输出结果是(  )

main()

{ int x=2,y=-1,z=2;

  if(x

    if(y<0)  z=0;

  else    z+=1;

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

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

 

以下程序的运行结果是(  )

main()

{int  x,y,z;

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

  x=++y<=x||x+y!=z;

  printf("%d,%d",x,y);

}

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

有如下程序

main()

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

  switch(x)

  case 0: b++;

     case 1: a++;

     case 2: a++;b++;

  }

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

}

该程序的输出结果是(  )

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

 

 写出下面c语言特点程序输出结果(  )

 {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    C) a=1, b=0    D) a=2, b=2

 

在下列选项中,没有构成死循环的程序段是(    ).

A. int i=100

  while (1)

  {i=i0+1;

  if(i>100)break;

  }

B. for(;;);

C. int k=1000;

  do{--k} while (k)

D. int s=36

  While(s>=0);++s;

语句while (!e);中的条件!e等价于(  )。

A) e==0;            B) e!=1              C) e!=0              D) ~e

在C语言中(  )。

A) 不能使用do_while语句构成的循环

B) do_while语句构成的循环必须用break语句才能退出

C) do_while语句构成的循环,当while语句中的表达式为非0时结束循环

D) do_while语句构成的循环,当while语句中的表达式为0时结束循环

有如下程序

#include

main()

{

   while(putchar(getchar())!='?');

}

当输入"china?"时,程序的执行结果是(  )。

A) china     B) dijob     C) dijob?      D) china?

定义如下变量:

int n=25;

则下列循环的输出结果是(  )。

While(n>22)

{ n--;

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

}

A) 22                  B) 24                  C) 23                  D) 1

   21              23              22              2

   20              22              21              0

下列程序段的运行结果是(    )

   x=y=0;

   while(x<10)

    x++;y++;

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

  A. 0,0      B. 10,1      C. 10,10       D. 1,10

下面程序段的运行结果是(  )。

int n=0;

while(n++<=2);

printf("%d",n);

A) 2           B) 3           C) 4           D) 有语法错

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

A) 由于do-while循环中循环体语句只能是一条可执行语句,所以循环体内不能使用复合语句。

B) do-while循环由do开始,用while结束,在while(表达式)后面不能写分号

C) 在do-while循环体中,一定要有能使while后面表达式的值变为“假”的操作

D) do-while循环中,根据情况可以省略while

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

  main()

  {

   int x,i;

   for (i=1;i<=100;i++)

    { x=i;

      if (++x%2==0)

        if (++x%3==0)

          if (++x%7=0)

            printf("%d ",x);

    }

   }

   A. 39 81        B. 42 84           C. 26 68       D. 28 70

以下for循环的执行次数是(  )。

for(x=0,y=0;(y=123)&&(x<4);x++);

A) 是无限循环        B) 循环次数不定      C) 执行4次     D) 执行3次

下面程序段的运行结果是(  )。

for(x=3;x<6;x++)

printf((x%2)?("**%d"):("##%d\n"),x);

A) **3                B) ##3                C) ##3                D)  **3##4

   ##4         **4         **4##5       **5

   **5         ##5

下面有关for循环的正确描述是(    )

  A. for循环只能用于循环次数已经确定的情况。

  B. for循环是先执行循环体语句,后判断表达式。

  C. 在for循环中,不能用break语句跳出循环体。

  D. for循环的循环体语句中,可以包含多条语句。

执行语句for(i=1;i++<4; );后变量i的值是(  )。

A) 3  B) 4      C) 5     D) 不定

下面程序段(  )。

x=3;

do { y=x--;

if (!y)  {printf("*"); continue;}

printf("#");

} while (1<=x<=2);

A) 将输出##     B) 将输出##*     C) 是死循环 D) 含有不合法的控制表达式

以下描述正确的是(  )。

A) goto语句只能用于退出多层循环

B) switch语句中不能出现continue语句

C) 只能用continue语句来终止本次循环

D) 在循环中break语句不能独立出现

与下面呈现等价的是(  )。

for(n=100;n<=200;n++)

{ if (n%3==0) continue;

printf("M",n);

A) for(n=100;(n%3)&&n<200;n++)   printf("M",n);

B) for(n=100;(n%3)||n<200;n++)   printf("M",n);

C) for(n=100;n<=200;n++)   if (n%3!=0) printf("M",n);

D) for(n=100;(n%3)&&n<200;n++) 

{if (n%3) printf("M",n);

       else continue;

       break;

}

下列程序段的运行结果是(   )

    a=2;b=1;c=1;

    while (a>b>c)

    { t=a;a=b;b=t;c--}

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

   A)1,2,0     B)2,1,0     C)1,2,1    D. 2,1,1

case后如果有多语句不需要用花括号括住。

case语句后一定要加break语句

continue语句的功能就是结束本层循环。

C语言的while、do-while和for几个循环语句中,for循环语句最灵活、功能最强。

用do-while语句构成循环时,只有在while后的表达式为非0时结束循环。

for(表达式1;表达式2;表达式3)中,表达式1和表达式3可以同时都为逗号表达式。

for后的一对圆括号中,可以出现各种形式的与循环控制无关的表达式。

while循环和do-while循环的while()后一定不能加上一个分号。

若i为整型变量,则以下循环 i=0; while(i=0)i++;一次也不执行。

执行语句 for(i=1;++i<10; )后,i的值是10.

执行语句:for(i=1;i++<4;++i);后;变量i的值是3.

以下程序段的输出结果是987。

  int n=10;  while (n>7)  { n--;printf("%d ",n);}

以下程序的运行结果是【 

main()

{int a,b;

int i=5,j=7,k=0;

a=k&&j;

b=k||j;

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

}

阅读下列程序

main()

{int t,h,m;

scanf("%d",&t);

h=(t/100);

if(h==0)h=12;

printf("%d:",h);

m=t0;

if(m<10)printf("0");

printf("%d",m);

if(t<1200  ||t==2400)

    printf("AM");

  else printf("PM");

}

若运行时输入:1605<回车>时,程序的运行结果是【 

以下程序的运行结果是【 

main()

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

    c=a;

    if(a>b)c=1;

    else if(a==b)c=0;

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

}

以下程序段的运行结果是【 

int x=1,y=0;

 switch(x)

 {case 1:

   switch (y)

  { case 0:printf("*1*");break;

    case 1:printf("*2*");break;}

    case 2:printf("*3*");break;

 }

下面程序是很多c语言学习网站都会出的题目,它的运行结果是【 】。

#include

main()

{ int a,s,n,count;

  a=2;s=0;n=1;count=1;

  while(count<=7) { n=n*a; s=s+n; ++count; }

  printf("%d",s);

}

下面程序段的运行结果是【 】。

i=1; a=0; s=1;

do { a=a+s*i; s=-s; i++; } while(i<=10);

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

下面程序段是找出整数的所有因子,请填空。

scanf("%d",&x);

i=1;

for( ; 【 】; )

   { if (x%i==0) printf("=",i);}

i++;

   }

以下程序输出结果为【 】。

  #include"stdio.h"

  main()

  {

   int i;

   for(i=0;i<10;i++);

   printf("%d",i);

  }

以下程序段中,不是无限循环的是【 】。

    A. i=100                      B. for(;;)        

       while (1)    

    { i=i0; i++;     

      if (i>100) break; 

    }

    C. k=10;                    D.  s=100     

       do                            while (s) s-=3;   

       { k++; k++;}        

       while (k>0);

有以下程序

  main()

  { int i, j;

  for(j=10;j<11;j++)

  { for(i=9;i==j-1;i++)printf("%d",j);

  }

  }

输出结果是【 】。

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有