专升本历年真题

专升本C语言|选择题训练(二)

浏览次数: 发布时间:2022-07-06

选择题


1、执行下列程序段后的输出结果是________.

    int x=1,y=1,z=1;

      x+=y+=z;

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

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


2、设ch是char型变量,值为'A',则表达式ch=(ch>='A' && ch<='Z')?ch+32:ch的值是_____.

A) Z        B) a           C) z          D) A


3、下面程序的输出结果是________.

  #include <stdio.h>

   void main( )

   { int x=8,y=-7,z=9;

     if (x<y)

        if (y<0) z=0;

        else z-=1;

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

   }

A) 8          B) 1           C) 9          D) 0


4、运行下面程序时,若从键盘输入"5 <CR>",则程序的输出结果是_______.

#include <stdio.h>

  void main( )

  { int a ;

    scanf("%d",&a);

    if (a++>5)printf("%d\n",a);

    else printf("%d\n",a--) ;

  }

A) 7         B) 6          C) 5         D) 4


5、运行下面程序时,若从键盘输入"3,4 <CR>",则程序的输出结果是_______.

 #include <stdio.h>

 void main( )

  { int a,b,s;

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

    s=a;

    if (s<b) s=b;

    s=s*s;

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


  }

A) 14       B) 16        C) 18        D) 20


6、下列程序的执行结果是_________.

 #include <stdio.h>

 void main( )

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

    if (x=z=y)

        x=3;

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

  }

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


7、假定等级和分数有以下对应关系:

  等级:A    分数:85~100

  等级:B    分数:60~84

  等级:C    分数:60 以下

对于等级grade输出相应的分数区间,能够完成该功能的程序段是________.

A) switch (grade)

   {

    case 'A':printf("85--100\n");

    case 'B':printf("60--84\n");

    case 'C':printf("60以下\n");

    default:printf("等级错误!\n");

   }


B)  switch (grade)

   {

    case 'A':printf("85--100\n");break;

    case 'B':printf("60--84\n");

    case 'C':printf("60以下\n");

    default:printf(" 等级错误!\n");

   }


C)  switch (grade)

   {

    case 'A':printf("85--100\n");break;

    case 'B':printf("60--84\n");break;

    case 'C':printf("60以下\n");

    default:printf("等级错误!\n");

   }


D) switch (grade)

   {

    case 'A':printf("85--100\n");break;

    case 'B':printf("60--84\n");break;

    case 'C':printf("60以下 \n");break;

    default:printf("等级错误!\n");

   }


8、能够完成如下函数计算的程序段是______.

      ┌ -1      x<0

   y= ┤  0      x=0

      └  1      x>0

A) y=1;       B) if (x>=0)

   if(x!=0)      if(x>0) y=1;

    if(x>0) y=1;     else y=0;

     else y=0;      else y=-1;

C) y=0;      D) y=-1;

   if (x>=0)      if (x>0) y=1;

    if (x>0) y=1;   else y=0;

     else y=-1;


9、有如下程序

 #include <stdio.h>

 void main( )

   { float x=5.0,y;

     if(x<0.0) y=0.0;

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

     else y=1.0;

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

   }

该程序的输出结果是_________.

A) 0.000000     B) 0.50000

C) 0.200000     D) 1.000000


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

 #include <stdio.h>

  void main( )

  { int x=1,y=0;

    switch (x)

    {

      case 1:

           switch (y)

           {

            case 0:printf("first\n");break;

            case 1:printf("second\n");break;

           }

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

    }

   }

A) first              

   second

B) first

    third

C) first               

D) second

     third

 

11、以下程序的执行结果是________.

 #include <stdio.h>

 void  main( )

  { int a,b,c,d,x;

    a=c=0;

    b=1;

    d=20;

    if (a) d=d-10;

    else if(!b)

             if (!c) x=15;

             else x=25;

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

  }

A) d=20      B) d=10     

C) d=15      D) 25


12、有如下程序:

#include <stdio.h>

 void main( )

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

     if (a<b)

       if (b<0) c=0;

       else c++;

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

   }

该程序的输出结果是________.

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


13、下列程序执行后的输出结果是________.

 #include <stdio.h>

 void main( )

  { int x,y=1,z;

    if ((z=y)<0)  x=4;

    else if (y==0) x=5;

          else x=6;

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

  }

A) 4,1        B) 6,1       

C) 5,0    D) 出错信息


14、有如下程序

 #include <stdio.h>

  void 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


15、下面程序的输出结果是_________.

 #include <stdio.h>

 void main( )

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

    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


16、下面程序段的运行结果是_______.

  int x=0,y=0;

   while (x<15) y++,x+=++y;

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

A) 20,7       B) 6,12       C) 20,8        D)8,20


17、下面程序的运行结果是________.

 #include<stdio.h>

 void main()

   { int s=0,i=1;

     while (s<=10)

      { s=s+i*i;

        i++;

      }

     printf("%d",--i);

   }

A) 4          B) 3          

C) 5        D) 6

 

18、函数pi的功能是根据以下近似公式求π值:_________

  (π*π)/6=1+1/(2*2)+1/(3*3)+..+1/(n*n)

请填空,完成求π的功能。

  #include <math.h>

   void main( )

   { double s=0.0; int i,n;

     scanf("%ld",&n);

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

     s=s+_______ ;

     s=(sqrt(6*s));

     printf("s=%e",s);

   }

A) 1/i*i         B) 1.0/i*i     

C) 1.0/(i*i)    D) 1.0/(n*n)


19、下面程序段的运行结果是________.

   for(x=10;x>3;x--)

    { if(x%3) x--;

      --x; --x;

      printf("%d ",x);

    }

A) 6 3       B) 7 4        C) 6 2        D) 7 3


20、下面程序的运行结果是_________.

 #include<stdio.h>  

 void main( )

    { int a,b;

      a=-1;

      b=0;

      do {

           ++a;

           ++a;

           b+=a;

         } while(a<9);

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

    }

A) 34        B) 24          C) 26       D) 25


21、下面程序的输出结果是________.

 #include<stdio.h>

 void  main( )

  {int x=3;

   do {

     printf("%d ",x-=2);

    }while(!(--x));

  }

A) 1        B) 1 -2        

C) 3 0     D)是死循环


22、定义如下变量:

  int n=10;

则下列循环的输出结果是_______.

 while(n>7)

  { n--; printf("%d\n",n);}


A) 10       B) 9       C) 10       D) 9

     9             8             9            8

     8             7             8            7

                    7             6


23、语句while(!e);中的条件 !e 等价于________.

A) e==0       B) e!=1      

C) e!=0       D) ~e


24、以下叙述正确的是_________.

A) continue语句的作用是结束整个循环的执行

B) 只能在循环体内和switch语句体内使用break语句

C) 在循环体内使用break语句或continue语句的作用相同

D) 从多层循环嵌套中退出时,只能使用goto语句


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

A) int i=100;                    

   while (1)

   { i=i%100+1;

     if (i>100) break;

   }

B) for( ; ; );

C) int k=1000;         

    do {++k;} while (k>=1000);   

D) int s=36;

    while (s) --s;


26、下面程序的输出结果是_________.

 #include<stdio.h>

 void  main( )

  { int i;

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

     { if (i%2) printf("*");

       else continue;

       printf("#");

     }

    printf("$\n");

  }

A) *#*#*#$    B) #*#*#*$   

C) #*#*$   D) *#*#$


27、下面程序段中,循环体的执行次数是_________.

  int a=10,b=0;

   do {b+=2;a-=2+b;} while(a>=0);

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


28、若i为整型变量,则以下循环语句的循环次数是__.

  for(i=2;i==0;)

   printf("%d",i--);

A) 无限次    B) 0次       

C) 1次       D) 2次

 

29、C语言中while 和do-while 循环的主要区别是.____

A) do-while的循环体至少无条件执行一次

B) while 的循环控制条件比do-while 的循环控制条件严格

C) do-while 允许从外部转到循环体内

D) do-while 的循环体不能是复合语句


30、对于for(表达式1;;表达式3)可理解为_________.

A) for(表达式1;0;表达式3)

B) for(表达式1;1;表达式3)

C) for(表达式1;表达式1;表达式3)

D) for(表达式1;表达式3;表达式3)



参考答案

1~5  ABCBB

6~10  DDDCB

11~15  ACBAC

16~20  DBCBD

21~25  BBABD

26~30  ACBAB



上一篇:专升本C语言|选择题训练(一)                  专升本C语言|选择题训练(三)