二级C语言教程章节测试8.指针
一、多项选择题
(1)有定义:int n1=0,n2,*p=&n2,* q = & n1,并且在下面的赋值语句中n2 = n1语句的等价形式是
A)* p = * q;b)p = q;c)* p = & n1;d)p = * q;
(2)如果定义:int x=0,* p = & x;,语句printf("%d\n ",* p);的输出结果是
A)随机值的地址B)0 C)x d)p的地址。
(3)下列定义语句正确的是
A)char A = ' A ' B = ' B ';b)浮动a = b = 10.0
C) int a=10,* b = & a;D) float *a,b = & a;
(4)有以下程序
main ()
{int a = 7,b = 8,* p,* q,* r;
p = & a;q = & b;
r = p;p = q;q = r;
printf("%d,%d,%d,%d\n ",*p,*q,a,b);
}
程序运行后的输出结果是
a) 8,7,8,7b) 7,8,7,8c) 8,7,7,8d) 7,8,8,7。
(5)有定义:int a,* pa = & a;
a) scanf ("%d ",pa)可以在下面的scanf语句中正确读取变量A的数据;B) scanf("%d ",A);
C) scanf("%d ",& pA);D) scanf("%d ",* pA);
(6)有定义:int n=0,*p=&n,* * q = & p;那么在下列选项中,正确的赋值语句是
A)p = 1;b)* q = 2;c)q = p;d)* p = 5;
(7)有如下程序
void fun (char * a,char * b)
{ a = b;(* a)++;}
main ()
{ char c1="A ",c2="a ",*p1,* p2
P1 = & C1;p2 = & c2fun(p1,p2);
printf("&c&c\n ",c1,C2);
}
程序运行后的输出结果是
A) Ab B) aa C) Aa D) Bb。
(8)如果程序已经包含了头文件stdio.h,在下列选项中,正确使用指针变量的程序段是
A)t * I = NULL;b)float * f = NULL;
scanf("&d ",f);* f = 10.5
C) char t="m ",* C = & t;d)长* L;
* c = & t;L = ' \ 0
(9)有以下程序
# Inc 1 ude
Main()
{ printf(" % d \ n ",null);}
程序运行后,输出结果为
A) 0 B) 1 C) -1 D) NULL未定义,出现错误。
(10)定义了以下函数
fun(int * p)
{ return * p:}
。这个函数的返回值是
A)一个不确定值b)存储在参数p
中的一个值C)在参数p指向的存储单元中A) max (int x,int y,int * z) b) int max (int x,y)
{* z = x > y?x:y;} int z;
z=x>y?x:y;
return z;
}
C) max (int x,int y) D) int max(int x,int y)
{ int z;{ return(x>y?x:y);}
z=x>y?x:y;返回(z);
}
(12)有以下程序段
main ()
{int a = 5,* b,* * c;
c = & b;b = & a;
......
}
程序是在c = & b:b = & a;中执行的;语句后,表达式:**c的值是
A)变量A的地址;B)变量B的值;c)变量A的值;d)变量b的地址。
(13)有以下程序
main ()
{char a,b,c,* d;
a = ' \ ';b = ' \ xbc
c = ' \ 0xab ';d = " \ 017
print("%c%c%c\n ",a,b,c,* d);
}
编译期间出现错误。下列说法正确的是
A)程序中只有a = ' \不正确的陈述b)b = ' \ xbc ';不正确的陈述
C)d = " \ 0127 ";不正确的陈述d)a = ' \ ';而c = ' \ 0xab所有的陈述都是不正确的。
(14)如果有以下定义和语句
# include
int a = 4,b = 3,* p,* q,* w;
p = & a;q = & b;w = q;q = NULL
那么下列选项中错误的说法是
A)* q = 0;b)w = p;c)* p = a;d)* p = * w;
(15) 有以下程序
int *f(int *x,int *y)
{ if(*x
0条评论