指针大礼包1

一、单选   共20题 (共计20分)

第1题 (1.0分)        题号:7144        难度:中        第8章

若有以下程序

     #include

     void  sp(int  *a)

     {  int  b=2;

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

        a=&b;    *a = *a * 2;   printf("%d,", *a);

     }

     main()

     {  int  k=3;

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

     }

则程序的输出结果是

A:6,12,12

B:6,4,3

C:6,4,6

D:9,4,9

第2题 (1.0分)        题号:7213        难度:中        第8章

有以下程序

#include

main()

{  

    char  c[2][5]={"6938","8254" }, *p[2];

    int  i, j, s=0;

    for( i=0; i<2; i++ )  p[i]=c[i];     

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

        for( j=0; p[i][j]>0 ; j+=2 )  s=10*s+p[i][j]-'0';

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

}

程序运行后的输出结果是

A:6938

B:9824

C:4528

D:6385

第3题 (1.0分)        题号:7112        难度:中        第8章

若有以下程序

     #include

     void  sp(int  *a)

     {  int  b=2;

        a=&b;    *a = *a * 2;   printf("%d,", *a);

     }

     main()

     {  int  k=3, *p=&k;

        sp(p);   printf("%d,%d\n", k, *p);

     }

则程序的输出结果是

A:4,3,3

B:4,3,4

C:6,3,6

D:6,6,6

第4题 (1.0分)        题号:7058        难度:中        第8章

有以下程序

     #include

     #include

     void  fun(char   *s[], int   n)

     {  char   *t;        int   i, j;

        for (i=0; i

          for (j=i+1; j

            if (strlen(s[i]) > strlen(s[j]))  

            { t = s[i]; s[i] = s[j]; s[j] = t; }

     }

     main()

     {  char   *ss[]={"bcc","bbcc","xy", "aaaacc", "aabcc"};

        fun(ss, 5);      printf("%s,%s\n", ss[0],ss[4]);

     }

程序的运行结果是

A:aaaacc,xy

B:xy,aaaacc

C:bcc,aabcc

D:aabcc,bcc

第5题 (1.0分)        题号:7003        难度:中        第8章

有以下程序

    #include

    struct S{  int  n;  int  a[20];  };

    void f(int  *a, int  n)

    {

        int  i;

        for (i=0; i

            a[i]+=i;

    }

    main()

    {

        int  i;    

        struct S  s={10, {2,3,1,6,8,7,5,4,10,9}};

        f(s.a, s.n);

        for (i=0; i

            printf("%d,", s.a[i]);

    }

程序运行后的输出结果是

A:2,3,1,6,8,7,5,4,10,9,

B:3,4,2,7,9,8,6,5,11,10,

C:2,4,3,9,12,12,11,11,18,9,

D:1,2,3,6,8,7,5,4,10,9,

第6题 (1.0分)        题号:7229        难度:中        第8章

以下叙述中正确的是

A:int* p1; int ** p2; int *p3;都是合法的定义指针变量的语句

B:指针变量只能通过求地址运算符(&) 来获得地址值

C:语句p=NULL;与p=\0;是等价的语句

D:语句p=NULL;执行后,指针p指向地址为0的存储单元

第7题 (1.0分)        题号:7182        难度:中        第8章

以下fun函数的功能是将形参s所指字符串内容颠倒过来

     void  fun(  char *s  )

     {  int  i, j, k;

        for(  i=0, j=strlen(s) __________ ;  i

        {  k=s[i];  s[i]=s[j];  s[j]=k;  }

     }

在横线处应填入的内容是

A:1

B:-1

C:0

D:,k=0

第8题 (1.0分)        题号:6863        难度:中        第8章

有以下程序:

#include  

#include  

main()

{ int *a,*b,*c;

a=b=c=(int *)malloc(sizeof(int));

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

a=b;

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

}

程序运行后的输出结果是().

A:1,1,3

B:2,2,3

C:1,2,3

D:3,3,3

第9题 (1.0分)        题号:7268        难度:中        第8章

在32位编译器上,设有定义

    char *str1 = "Hello", str2[] = "Hello"; ,

则以下语句

    printf("%d %d", sizeof(str1), sizeof(str2));

的输出结果是

A:5 6

B:5 5

C:6 6

D:4 6

第10题 (1.0分)        题号:7332        难度:中        第8章

有以下程序

     #include

     #include

     void  fun( int *p1, int *p2, int *s)

     {  s=( int*)calloc(1,sizeof(int));

        *s=*p1+*p2;

        free(s);

     }

     main()

     {  int  a[2]={1,2}, b[2]={40,50},*q=a;

        fun(a,b,q);

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

     }

程序运行后的输出结果是

A:42

B:41

C:1

D:0

你可能感兴趣的:(c语言)