专升本历年真题

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

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

1、设a为整型变量,不能正确表达数学关系10<a<15的C语言表达式是____A____.

A) 10<a<15         

B) a==11||a==12||a==13||a==14

C) a>10&&a<15     

D) !(a<=10)&&!(a>=15)


2、下列程序执行后的输出结果是_____C____.

 #include <stdio.h>

  void main( )

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

    if (a<b)

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

    else

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

  }

A) 60/5=12     B) 300      

C) 60*5=300    D) 12


3、如果c为字符型变量,判断c是否为空格不能使用____A____.(假设已知空格ASCII码为32)

A) if(c=='32')         B) if(c==32)

C) if(c=='\40')        D) if(c=='  ')


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

  #include <stdio.h>     

   void main( )

   {

     int x,y;

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

     if (x==y)

         printf("x==y");

     else if (x>y)

         printf("x>y");

           else

               printf("x<y");

   }

A) 3<5       B) 5>3       

C) x>y       D) x<y


5、运行下面程序时,若从键盘输入数据为"6,5,7<CR>",则输出结果是____C___.

  #include <stdio.h>

   void main( )

    { int a,b,c;

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

     if (a>b)

         if (a>c)

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

         else

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

     else

         if (b>c)

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

         else

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

   }

A) 5    B) 6         

C) 7    D) 不定值

 

6、执行下面程序时,若从键盘输入"2<CR>",则程序的运行结果是____A____.

  #include <stdio.h>

   void main( )

   { int k; char cp;

     cp=getchar( );

     if (cp>='0' && cp<='9')

     k=cp-'0';

     else if (cp>='a' && cp<='f')

                k=cp-'a'+10;

           else  k=cp-'A'+10;

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

   }

A) 2         B) 4         

C) 1            D) 10

 

7、运行下面程序时,从键盘输入"2.0<CR>",则输出结果是___B_____.

  #include <stdio.h>

   void main( )

   { float a,b;

     scanf("%f",&a);

     if (a<0.0) b=0.0;

     else if ((a<0.5) && (a!=2.0))  b=1.0/(a+2.0);

           else if (a<10.0) b=1.0/2;

                 else b=10.0;

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

   }

A) 0.000000           

B) 0.500000      

C) 1.000000           

D) 0.250000


8、执行下面程序后,运行结果是____A____.

  #include <stdio.h>

   void main( )

   { int x=41,y=1;

     if (x%3==0 && x%7==0)

       { y+=x;printf("y=%d\n",y);}

     else

        {y=x;printf("y=%d",y);}

    }

A) y=41      B) y=43      

C) y=42      D) y=1

 

9、运行下面程序时,从键盘输入"12,34,9<CR>",则输出结果是___A___.

  #include <stdio.h>

   void main( )

   { int x,y,z;

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

    if (x<y)

        if (y<z)printf("%d\n",z);

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

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

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

   }

A) 34   B) 12     

C) 9    D) 不确定的值

 

10、运行下面程序时,从键盘输入字母H,则输出结果是_____C___.

  #include <stdio.h>

   void main( )

   { char ch;

     ch=getchar( );

     switch(ch)

     { case 'H':printf("Hello!\n");

       case 'G':printf("Good morning!\n");

       default:printf("Bye_Bye!\n");

     }

   }

A) Hello!            B) Hello!

                         Good Morning!

C) Hello!              D) Hello!

Goodmorning!     Bye_Bye! 

Bye_Bye!

 

11、假定w、x、y、z、m均为int型变量,有如下程序段:

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

   m=(w<x)?w:x;  m=(m<y)?m:y;  m=(m<z)?m:z;

则该程序段执行后,m的值是____D_____.

A) 4         B) 3         

C) 2         D) 1

 

12、以下程序的输出结果是___D______.

  main( )

  { int a=100;

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

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

  }

A) a<=100     B) 100      

C) 0        D) 1


13、若执行下面的程序从键盘上输入9,则输出结果是.______B________

 #include <stdio.h>

 void main( )

  {int n;

   scanf("%d",&n);

   if (n++<10) printf("%d\n",n);

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

A) 11       B) 10       

C) 9         D) 8


14、以下程序输出结果是_____D_____.

 #include <stdio.h>

 void main( )

  { int m=4;

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

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

  }

A) 7        B) 6          

C) 5        D) 4

 

15、在C语言中,全局变量的存储类别是____A_____.

A) static    B) extern      

C) void      D) registe

 

16、以下程序段运行结果是____A____.

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

   x+=y+=z;

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

A) 1    B) 2       

C) 4    D) 不确定的值


17、有以下程序

  #include <stdio.h>

   void main( )

   { int a,b,c=246;

     a=c/100%9;

     b=(-1)&&(-1);

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

   }

输出结果是____A____.

A) 2,1         B) 3,2         

C) 4,3      D) 2,-1

 

18、运行下面程序时,若从键盘输入数据为"123",

则输出结果是___C____.

  #include "stdio.h"

   void main()

   { int num,i,j,k,place;

     scanf("%d",&num);

     if (num>99)

         place=3;

     else if(num>9)

               place=2;

           else

               place=1;

     i=num/100;

     j=(num-i*100)/10;

     k=(num-i*100-j*10);

     switch (place)

     { case 3: printf("%d%d%d\n",k,j,i);

                break;

       case 2: printf("%d%d\n",k,j);

                break;

       case 1: printf("%d\n",k);

     }

   }

A) 123         B) 1,2,3     

C) 321        D) 3,2,1

 

19、执行下列程序后的输出结果是___D____.

 #include <stdio.h>

  void main( )

  { int k=4,a=3,b=2,c=1;

    printf("%d\n",k<a?k:c<b?c:a);

  }

A) 4         B) 3         

C) 2         D) 1

 

20、以下条件表达式中能完全等价于条件表达式x的是____B___.

A) (x==0)    B) (x!=0)     

C) (x==1)     D) (x!=1)

 

21、若运行下面程序时,给变量a输入15,则输出结果是___A___.

 #include <stdio.h>

  void main( )

  { int a,b;

    scanf("%d",&a);

    b=a>15?a+10:a-10;

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

  }

A) 5         B) 25         

C) 15     D) 10

 

22、运行下面程序后,输出是___D___.

#include <stdio.h>

void main( )

  { int k=-3;

    if (k<=0) printf("****\n");

    else printf("####\n")

  }

A) ####            

B) ****

C) ####****       

D) 有语法错误不能通过编译

 

23、执行下面程序的输出结果是____C____.

#include <stdio.h>

void main( )

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

    if (a=a+b) printf("****\n");

    else  printf("####\n");

  }

A) 有语法错误不能编译    

B) 能通过编译,但不能通过连接

C) 输出 ****

D) 输出 ####

 

24、为了避免嵌套的if-else语句的二义性,C语言规定else总是与___C___组成配对关系.

A) 缩排位置相同的if      

B) 在其之前未配对的if

C) 在其之前尚未配对的最近的if  

D) 同一行上的if

 

25、设x 、y 、z 、t均为int型变量,则执行以下语句后,t的值为____C_____.

  x=y=z=1;

  t=++x || ++y && ++z;

A) 不定值      B) 4        

C) 1              D) 0


26、以下程序段____C______.

 x=-1;

  do

  {

    x=x*x;

}  while (!x);

A)是死循环         

B)循环执行两次  

C)循环执行一次     

D)有语法错误

 

27、对下面程序段描述正确的是___B____.

  int x=0,s=0;

   while (!x!=0) s+=++x;

   printf("%d",s);

A) 运行程序段后输出0

B) 运行程序段后输出1

C) 程序段中的控制表达式是非法的

D) 程序段循环无数次

 

28、下面程序段的输出结果是____C____.

  x=3;

   do { y=x--;

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

        printf("#");

      } while(x=2);

A) ##        B) ##*    

C) 死循环  D)输出错误信息

 

29、下面程序的运行结果是____B____.

 #include<stdio.h>

 void main( )

   { int a=1,b=10;

     do

      { b-=a;a++;

      } while(b--<0);

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

   }

A) 3,11        B) 2,8      

C) 1,-1         D) 4,9

 

30、下面程序段的运行结果是____B______.

  int n=0;

   while (n++<=2)

       printf("%d",n);

A) 012       B) 123      

C) 234     D) 错误信息



参考答案 

1 ~ 5   ACADC

6~10   ABAAC

11~15  DDBDA

16~20  AACDB

21~25  ADCCC

26~30  CBCBB



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