第八章 指 针

一、 选择题

1、 若有定义:int x,*pb;则在以下正确的赋值表达式是

    A  pb=&x   B  pb=x  C  *pb=&x  D  *pb=*x

2、 以下程序的输出结果是

    A)因变量无定义输出不定值   B  0    C -1    D  1

    #include  "stdio.h"

    main()

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

3、 以下程序的输出结果是

    A 5,2,3    B  -5,-12,-7   C  -5,-12,-7   D  5,-2,-7

    void sub(int x,int y,int *z)

    {  *z=y-x;  }

    main()

    {int  a,b,c;

          sub(10,5,&a); sub(7,a,&b); sub(a,b,&c);

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

    }

4、以下程序的输出结果是

    A  4     B  6       C   8   D  10

    main()

    {     int k=2,m=4,n=6;

          int *pk=&k,*pm=&m,*p;

          *(p=&n)=*pk*(*pm);

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

    }

5、 已知指针P的指向如图8.5所示,则表达式*P++的值是

    A  20     B  30     C  21      D   31

 

         a[0]   a[1]    a[2]   a[3]  a[4]

 10   

  20

  30

  40 

 50

 

                 P

               8.5

6、已知指针P的指向如图8.5所示,则表达式*++P的值是

    A  20     B  30     C  21    D  31

7、 已知指针P的指向如图8.5所示,则表达式++*P的值

    A  20     B  30     C  21    D  31

8、 以下程序的输出结果是

    A  23     B 24     C  25    D  26

    void prtv(int *x)

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

    main()

    {    int a=25;

         prtv(&a);

    }

9、 以下程序的输出结果是

    A) 运行出错   B100    Ca的地址  Db的地址

    main ()

    {int **k, *a, b=100;

     j=&b;k=&a;

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

     }

10、 以下程序的输出结果是

    A 4,3    B2,3     C 3,4    D 3,2

    void fun(float *a,float *b)

    {float w;

      *a=*a+*a;

      w=*a;

    *a=*b;

    *b=w;

    }

    main()

    {float x=2.0, 7=3.0;

     foaat *px=&x,*p7=&y;

     fun(px,py);

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

     }

11、 以下程序的输出结果是

A)  9.000000  B 1.500000

C 8.000000  D 10.500000

     void sub(float x,float *y,float *z)

     {*y=*y-1.0;

     *z=*z+x;

     }

     main()

     { float a=2.5,b=9.0,*pa,*pb;

      pa=&a;  pb=&b;

      sub(b-a,pa,pa);

      printf(:%f\n",a);

     }

12、 以下四个程序中不能对两个整型值进行交换的是

     A  main()

         {int a=10,b=20;

         swap(&a,&b);

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

         }

          swap(int *p,int*q);

         {int *t,a;

         t=&a;

         *t=*p; *p=*q; *q=*t;

         }

    

B  main()

         {int a=10,b=20;

         swap(&a,&b);

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

         }

          swap(int *p,int*q);

         {int t;

         t=*p; *p=*q; *q=t;

         }

     C  main()

         {int *a,*b;

         *a=20,*b=20;

         swap(a,b);

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

          }

         swap(int *p,int*q)

         {int *t;

         t=p; p=q; q=t;

         }

      D main()

         {int a=10,b=20;

         int *x=&a,*y=&b;

         swap(x,y);

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

         }

         swap(int *p,int*q)

         {int t;

         t=*p;*p=*q; *q=t;

         }

公告通知
教学日历
疑难留言
同学你好!对本课程有哪些建议?