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