C语言程序设计 试卷1

C语言程序设计  试卷1

 

 


一、单选题

1.       请读程序片段(字符串内没有空格字符):

     printf("%d/n",strlen("ATS/n012/1//") );

上面程序片段的输出结果是______。

    A、11                                                                                                                                                                                                                                                         

    B、10                                                                                                                                                                                                                                                         

    C、9                                                                                                                                                                                                                                                          

    D、8                                                                                                                                                                                                                                                          

2.       执行下面程序片段的结果是______。

    int x=23;

    do

    {

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

    }

    while(!x);                                                                                                                                                                                                                                                                                                                                                                                                                                     

    A、打印出321                                                                                                                                                                                                                                                 

    B、打印出23                                                                                                                                                                                                                                                  

    C、不打印任何内容                                                                                                                                                                                                                                            

    D、陷入死循环                                                                                                                                                                                                                                                 

3.       设有

    static char str[]="Beijing";

则执行

    printf("%d/n",strlen(strcpy(str,"China") ) );

后的输出结果为______。                                                                                                                                                                                                                                                                                                                                                                                                                  

    A、5                                                                                                                                                                                                                                                          

    B、7                                                                                                                                                                                                                                                          

    C、12                                                                                                                                                                                                                                                         

    D、14                                                                                                                                                                                                                                                         

4.       C语言中,下列叙述正确的是______。

    A、不能使用do-while语句构成的循环

    B、do-while语句构成的循环,必须用break语句才能退出

    C、do-while语句构成的循环,当while语句中的表达式值为非零时结束循环

    D、do-while语句构成的循环,当while语句中的表达式值为零时结束循环

5.       请选出可用做C语言用户标识符的一组标识符______。

    void        a3_b3       For       2a

       define         _123           _abc         DO

       WORD           IF             case         sizeof

    A

    B

    C

    D

6.       以下选项中,能定义s为合法的结构体变量的是______。

    Atypedef  struct  abc

   {  double a;

      char b[10];

    } s;

    Bstruct 

   {  double a;

      char  b[10];

   }s;

    Cstruct  ABC

   {  double a;

      char b[10];

   }

   ABC s;

    Dtypedef   ABC

   {   double a;

       char b[10];

   }

   ABC s;

7.       以下程序的输出结果是______。

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

8.       若有以下说明和语句,请选出哪个是对c数组元素的正确引用______。

int c[4][5],(*cp)[5];

cp=c;                                                                                                                                                                                                                                                                                                                                                                                                                                       

    A、cp+1                                                                                                                                                                                                                                                      

    B、*(cp+3)                                                                                                                                                                                                                                                   

    C、*(cp+1)+3                                                                                                                                                                                                                                                 

    D、*(*cp+2)                                                                                                                                                                                                                                                  

9.       以下程序的输出结果是______。

    #include <stdio.h>

    #include <string.h>

    main() {

       char str[12]={'s','t','r','i','n','g'};

       printf("%d/n",strlen(str) );

    }                                                                                                                                                                                                                                                                                                                                                               

    A6                                                                                                                                                                                                                                                         

    B、7                                                                                                                                                                                                                                                         

    C、11                                                                                                                                                                                                                                                        

    D、12                                                                                                                                                                                                                                                        

10.    请读程序:

     #include <stdio.h>

     func(int a, int b){

        int c;

        c=a+b;

        return c;

     }

     main( ) {

        int x=6,y=7,z=8,r;

        r=func((x--,y++,x+y),z--);

        printf("%d/n", r);

     }

上面程序的输出结果是______

    A11

    B20

    C21

    D31

11.    以下程序的输出结果是______。

main(  )

{   int  w=5;  fun(w);  printf("/n"); }

fun(int  k)

{  if(k>0)  fun(k-1);

   printf("%d",k);

}

    A5  4  3  2  1

    B、0  1  2  3  4  5

    C、1  2  3  4  5

    D、5  4  3  2  1  0

12.    设有如下的程序段

  char str[]="Hello";

  char *ptr;

  ptr=str;

执行完上面的程序段后*(ptr+5)的值为______

    A'o'                                                                                                                                                                                                                                                        

    B'/0'                                                                                                                                                                                                                                                       

    C、不确定的值                                                                                                                                                                                                                                                 

    D'o'的地址                                                                                                                                                                                                                                                  

13.    下面各语句行中,能正确进行给字符串赋值操作的语句行是______。                                                                                                                                                                                                                                                                                                                                                                                                                                                                           

    Achar st[4][5]={"ABCDE"};                                                                                                                                                                                                                                  

    Bchar s[5]={'A','B','C','D','E'};                                                                                                                                                                                                                          

    Cchar *s="ABCDE";                                                                                                                                                                                                                                      

    Dchar *s;  scanf("%s",*s);                                                                                                                                                                                                                                  

14.    设有以下语句

    char a=3,b=6,c;

    c=a^b<<2;

c的二进制值是______

    A00011011                                                                                                                                                                                                                                                   

    B00010100                                                                                                                                                                                                                                                   

    C00011100                                                                                                                                                                                                                                                   

    D00011000                                                                                                                                                                                                                                                   

15.    若x是int型变量,且有下面的程序片段

for(x=3;x<6;x++)   printf((x%2)?("**%d"):("##%d/n"),x);

上面程序片段的输出结果是______。

① **3    ② ##3    ③ ##3     ④ **3##4

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

   **5       ##5

    A、①

    B、②

    C、③

    D、④

16.    请读程序:

    #include <stdio.h>

    main()

    {

       int a, b ;

       for(a = 1 , b = 1 ; a <= 100 ; a++) {

          if(b >= 20)  break ;

          if (b%3 == 1) { b += 3 ; continue ; }

          b -= 5 ;

       }

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

    }

上面程序的输出结果是______

    A7

    B8

    C9

    D10

17.    以下程序的输出结果是______。

main() 

{int  k=17;

 printf("%d,%o,%x/n",k,k,k);

}

    A17,021,0x11

    B17,17,17

    C17,0x11,021

    D17,21,11

18.    请选出以下程序段的输出结果______。

    #include <stdio.h>

    #define  MIN(x,y)  (x<y)?x:y

    main()

    {

       int i,j,k;

       i=10;j=15;

       k=10*MIN(i,j);

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

    }

    A、15

    B、100

    C、10

    D、150

19.    已知字符0的ASCII码为十六进制的30,下面程序

      main()

      {

         union{

                unsigned char c;

                unsigned int i[4];

         }z;

         z.i[0]=0x39;

         z.i[1]=0x36;

         printf("%c/n",z.c);

      }

的输出是______                                                                                                                                                                                                                                                                                                                      

    A6                                                                                                                                                                                                                                                          

    B9                                                                                                                                                                                                                                                          

    C0                                                                                                                                                                                                                                                          

    D3                                                                                                                                                                                                                                                          

20.    有以下程序

    main()

    {  int 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; }

       }

    }

从第一列开始输入以下数据,↙代表一个回车符。

2473

程序的输出结果是______

    A、668977                                                                                                                                                                                                                                                     

    B、668966                                                                                                                                                                                                                                                     

    C、66778777                                                                                                                                                                                                                                                   

    D6688766                                                                                                                                                                                                                                                    

21.    以下程序的输出结果是______。

    #include <stdio.h>

    main()

    {  int i;

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

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

          else continue;

          printf("#");

       }

       printf("$/n");

    }                                                                                                                                                                                                                                                                                                                                          

    A、*#*#*#$                                                                                                                                                                                                                                                   

    B、#*#*#*$                                                                                                                                                                                                                                                   

    C、*#*#$                                                                                                                                                                                                                                                     

    D、#*#*$

22.    请读程序:

     #include <stdio.h>

     int a[ ]={2,4,6,8,};

     main( )

     {

        int i;

        int *p=a;

        for( i=0;i<4;i++)  a[i]=*p++;

        printf("%d/n",a[2]);

     }

上面程序的输出结果是______。

    A、6

    B、8

    C、4

    D、2

23.    请读程序:

     #include <stdio.h>

     #include <string.h>

     main()

     {

        char *s1="AbCdEf",  *s2="aB";

        s1++;  s2++;

        printf("%d/n",strcmp(s1,s2) );

     }

上面程序的输出结果是______。

    A、正数

    B、负数

    C、零

    D、不确定的值

24.    若已定义:int a[9],*p=a;并在以后的语句中未改变p的值,不能表示a[1]地址的表达式是______。

    A、p+1

    B、a+1

    C、a++

    D、++p

25.    以下程序的输出结果是______。

  main()

  {  int  n=4;

      while(n--)printf("%d   ",--n);

  }

    A、2  0

    B、3  1

    C、3  2  1

    D、2  1  0

26.    执行下面程序中的输出语句后,

      main()

      {

         int a;

         printf("%d/n",(a=3*5,a*4),a+5);

      }

a的值是______

    A15                                                                                                                                                                                                                                                

    B20                                                                                                                                                                                                                                                         

    C10                                                                                                                                                                                                                                                         

    D、60

27.    请选出以下程序的输出结果______。

    #include <stdio.h>

    sub(int *s,int y)

    {  static  int  t=3;

       y=s[t];t--;

    }                                                                                                                                                                                                                                                                                          

    main()

    {  int a[]={1,2,3,4},i, x=0;

       for(i=0;i<4;i++) {

         sub(a,x);printf("%d",x); }

       printf("/n");

    }

    A1234

    B4321

    C0000

    D4444

28.    以下程序的输出结果是______。

main()

{  int  i,x[3][3]={9,8,7,6,5,4,3,2,1},*p=&x[1][1];

   for(i=0;i<4;i+=2) printf("%d",p[i]);

}

    A52

    B51

    C53

    D97

29.    有以下程序:

    #include <stdio.h>

    union pw

    {  int i; char ch[2];

    }a;

    main()

    {  a.ch[0]=13;

       a.ch[1]=0;

       printf("%d/n",a.i);

    }

程序的输出结果是注意ch[0]在低字节ch[1]在高字节______                                                                                                                                                                                                                                                                                                                     

    A13                                                                                                                                                                                                                                                         

    B14                                                                                                                                                                                                                                                         

    C208                                                                                                                                                                                                                                                        

    D209                                                                                                                                                                                                                                                        

30.    下面程序的输出是______。

int  m=13;

int fun2(int x,int y)

{  int m=3;

    return(x*y-m);

 }

 main( )

 { int a=7,b=5;

    printf("%d/n",fun2(a,b)/m);}

    A1

    B2

    C、7

    D、10

 

 

二、填空题

1、以下程序的输出结果是______。

void fun()

{

    static int a=0;

    a+=2;

    printf("%d",a);

}

 

main()

{

    int  cc;

    for(cc=1;cc<4;cc++)  fun();

    printf("/n");

}

2、在对文件进行操作的过程中,若要求文件的位置回到文件的开头,应当调用的函数是______函数。

3、若有以下定义和语句,则使指针p指向值为36的数组元素的表达式是______。

int a[10]={19,23,44,17,37,28,49,36},*p;

p=a;

4、函数mycmp(char *s,char *t)的功能是比较字符串s和t的大小,当s等于t时返回0,当s>t返回正值,当s<t时返回负值。请填空。

mycmp( char *s,char *t)

{   while (*s==*t)

    {   if (*s=='/0')return 0;

         ++s;++t;

     }

     return(______);

}        

5、下列程序中字符串中各单词之间有一个空格,则程序的输出结果是______。

    # include<string.h>

    main(  )

    {   char  str1[ ]="How do you do",  *p1=str1;

        strcpy(str1+strlen(str1)/2,"es she");

        printf("%s/n",p1);

    }

6、以下函数inverse的功能是使一个字符串按逆序存放。

inverse(str)

char str[];

  {

    char m;

    int i,j;

    for(i=0,j=strlen(str);i<strlen(str)/2;______,j--)

     {

        m=str[i];

        str[i]=______;

        ______;

      }

   }

7、若要使指针p指向一个double类型的动态存储单元请填空。

    p = ______malloc(sizeof(double));

8、下列程序的运行结果是______

main()

{    union EXAMPLE

     { struct

          { int x; int y; } in;

            int a;

            int b;

     }e;

     e.a=1;e.b=2;

     e.in.x=e.a*e.b;

     e.in.y=e.a+e.b;

     printf("%d,%d/n",e.in.x,e.in.y);

 }

posted @ 2010-03-13 10:37  涛涌四海  阅读(956)  评论(0编辑  收藏  举报