第8章 指针习题

*
您的姓名:
1、选择题
*
若有定义: int x,*pb;则以下正确的表达式是()
A、 pb=&x
B、 pb=x
C、 *pb=&x
D、 *pb=*x
*
以下程序的输出结果是()
#include<stdio.h>
void main()
{printf(“%d\n”,NULL);}
A、因变量无定义输出不定值
B、 0
C、 -1
D、 1
*
3、以下程序的输出结果是()
#include<stdio.h>
void sub(int x,int y,int *z)
{   
    *z=y-x;
}
void 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);
}
A、 5, 2, 3
B、 -5, -12, -7
C、 -5, -12, -17
D、 5, -2, -7
*
4、以下程序的输出结果是()
#include<stdio.h>
void main()
{
    int k=2,m=4,n=6;
    int *pk=&k,*pm=&m,*p;
    *(p=&n)=*pk*(*pm);
    printf(“%d\n”,n);
}
A、 4
B、 6
C、 8
D、 10
*
5、已知指针 p 的指向(图一)的 a[1],则执行语句*p++;后, *p 的值是()。
A、 20
B、 30
C、 21
D、 31
*
6、已知指针 p 的指向(图一)的 a[1],则表达式*++p 的值是()。
A、 20
B、 30
C、 21
D、 31
*
7、已知指针 p 的指向(图一)的 a[1],则表达式++*p 的值是()。
A、 20
B、 30
C、 21
D、 31
*
8、以下程序的输出结果是()。 
#include<stdio.h>
void prtv(int *x)
{
    printf(“%d\n”,++*x);
}
void main()
{
    int a=25;prtv(&a);
}
A、 23
B、 24
C、 25
D、 26
*
9、以下程序的输出结果是()。
#include<stdio.h>
void main()
{
    int **k,*a,b=100;
    a=&b;k=&a;
    printf(“%d\n”,**k);
}
A、运行出错
B、 100
C、 a 的地址
D、 b 的地址
*
10、以下程序运行后,输出结果是()。
#include<stdio,h>
ss(char *s)
{
    char *p=s;
    while(*p) p++;
    return(p-s);
}
main()
{
    char *a="abded";
    int i;
    i=ss(a);
    printf("%d\n",i);
}
A) 8
B) 7
C) 6
D) 5
问卷星提供技术支持
举报