全国计算机等级测验二级C语言指针测试题
———————————————————————————————— 作者:
———————————————————————————————— 日期:
一、选择题
(1)设有定义:int n1=0,n2,*p=&n2,*q=&n1;,以下赋值语句中与n2=n1;语句等价的是A
A)*p=*q; B)p=q; C)*p=&n1; D)p=*q;
(2)若有定义:int x=0, *p=&x;,则语句printf("%d\n",*p);的输出结果是B
A)随机值 B)0 C)x的地址 D)p的地址
(3) 以下定义语句中正确的是C
A) char a='A'b='B'; B) float a=b=10.0; C) int a=10,*b=&a; D) float *a,b=&a;
(4) 有以下程序C
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,7 B) 7,8,7,8 C) 8,7,7,8 D) 7,8,8,7
(5) 设有定义:int a,*pA=&a;以下scanf语句中能正确为变量a读入数据的是A
A) scanf(“%d”,pA) ; B) scanf(“%d”,a) ; C) scanf(“%d”,&pA) ; D) scanf(“%d”,*pA) ;
(6) 设有定义:int n=0,*p=&n,**q=&p;则以下选项中,正确的赋值语句是D
A) p=1; B) *q=2; C) q=p; D) *p=5;
(7) 有以下程序A
以下是引用片段:
void fun(char *a, char *b)
{ a=b; (*a)++; }
main ()
{ char c1="A", c2="a", *p1, *p2;
p1=&c1; p2=&c2; fun(p1,p2);
printf(“%c%c\n”,c1,c2);
}
程序运行后的输出结果是
A) Ab B) aa C) Aa D) Bb
(8) 若程序中已包含头文件stdio.h, 以下选项中,正确运用指针变量的程序段是D
A) int *i=NULL; B) float *f=NULL;
scanf("%d",i); *f=10.5;
C) char t="m", *c=&t; D) long *L;
*c=&t; L=‘\0’;
(9) 有以下程序A
以下是引用片段:
#inc1ude
main()
{ printf("%d\n", NULL); }
程序运行后的输出结果是
A) 0 B) 1 C) -1 D) NULL没定义,出错
(10) 已定义以下函数C
fun (int *p)
{ return *p;}
该函数的返回值是
A) 不确定的值 B) 形参p中存放的值
C) 形参p所指存储单元中的值 D) 形参p的地址值
(11) 下列函数定义中,会出现编译错误的是B
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