第八章 指针
一、选择题
8.1 若有定义:int x,*pb; 则以下正确的赋值表达式是
A) pb=&x
B) pb=x
C) *pb=&x
D) *pb=*x
答案: A
8.2 以下程序的输出结果是
A) 因变量无定义输出不定值
B) 0
C) -1
D) 1
#include <stdio.h>
main()
{ printf("%d\\n",NULL); }
答案: B
8.3 以下程序的输出结果是
A) 5,2,3
B) -5,-12,-7
C) -5,-12,-17
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);
}
答案: B
8.4 以下程序的输出结果是
A) 4
B) 6
C) 8
D) 10
main()
{ int k=2,m=4,n=6;
int *pb=&k,*pm=&m,*p;
*(p=&n)=*pk*(*pm);
printf("%d\\n",n);
}
答案: C
8.5 已知指针p的指向如图8.5所示,则执行语句*p++; 后,*p的值是
A) 20
B) 30
C) 21
D) 31
答案: B
8.6 已知指针p的指向如图8.5所示,则表达式*++p的值是
A) 20
B) 30
C) 21
D) 31
答案: B
8.7 已知指针p的指向如图8.5所示,则表达式++*p的值是
A) 20
B) 30
C) 21
D) 31
答案: C