资源描述:
《二级C语言复习资料指针.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、1.设有定义:
intx=0,*p;
紧接着的赋值语句正确的是()。答案:AA)p=NULL;B)*p=NULL;C)p=x;D)*p=x;2.设已有定义:
floatx;
则以下对指针变量p进行定义且赋初值的语句中正确的是()。A)float*p=&x;B)int*p=(float)x;C)floatp=&x;D)float*p=1024;3.有以下程序
#include
main()
{intn,*p=NULL;
*p=&n;
printf("Inputn:");
scanf("%d",&p);
pr
2、intf("outputn:");
printf("%d",p);
}
该程序试图通过指针p为变量n读入数据并输出,但程序有多处错误,以下语句正确的是()。答案:AA)intn,*p=NULL;B)*p=&n;C)scanf("%d",&p)D)printf("%d",p);4.若有定义语句:
doublea,*p=&a;
以下叙述中错误的是()。答案:AA)定义语句中的*号是一个间址运算符B)定义语句中的*号是一个说明符C)定义语句中的p只能存放double类型变量的地址D)定义语句中*p=&a把变量a的地址作为
3、初值赋给指针变量p5.若有定义语句:
doublex,y,*px,*py;
执行
px=&x;py=&y;
正确的输入语句是()。答案:AA)scanf("%lf%le",px,py);B)scanf("%f%f"&x,&y);C)scanf("%f%f",x,y);D)scanf("%lf%lf",x,y);6.有以下程序
#include
main()
{intm=1,n=2,*p=&m,*q=&n,*r;
r=p;p=q;q=r;
printf("%d,%d,%d,%d",m,n,*p,*q);
4、
}
程序运行后的输出结果是()。答案:AA)1,2,2,1B)1,2,1,2C)2,1,2,1D)2,1,1,27.若有以下定义
intx[10],*pt=x;
则对x数组元素的正确引用是()。答案:AA)*(x+3)B)*&x[10]C)*(pt+10)D)pt+38.有以下程序
#include
main()
{inti,s=0,t[]={1,2,3,4,5,6,7,8,9};
for(i=0;i<9;i+=2)s+=*(t+i);
printf("%d",s);
}
程序执行后的输出结果是()
5、。答案:AA)25B)20C)45D)369.以下程序段完全正确的是()。答案:AA)intk,*p=&k;scanf("%d",p);B)int*p;scanf("%d",p);C)int*p;scanf("%d",&p);D)intk,*p;*p=&k;scanf("%d",p);10.设有定义
doublea[10],*s=a;
以下能够代表数组元素a[3]的是()。答案:AA)*(s+3)B)(*s)[3]C)*s[3]D)*s+311.有以下程序
#include
voidfun(char*c,
6、intd)
{*c=*c+1;
d=d+1;
printf("%c,%c,",*c,d);
}
main()
{charb=’a’,a=’A’
fun(&b,a);
printf("%c,%c",b,a);
}
程序运行后的输出结果是()。答案:AA)b,B,b,AB)b,B,B,AC)a,B,B,aD)a,B,a,B12.有以下程序
#include
voidfun(char*c)
{
while(*c)
{
if(*c>=’a’&&*c<=’z’)
*c=*c-(’a’-’A’);
c++;
}
7、}
main()
{
chars[81];
gets(s);
fun(s);
puts(s);
}
当执行程序时从键盘上输入HelloBeijing<回车>,则程序的输出结果是()。答案:AA)HELLOBEIJINGB)HelloBeijingC)hellobeijingD)hELLOBeijing13.设有以下函数:
voidfun(intn,char*s)
{……}
则下面对函数指针的定义和赋值均正确的是()。答案:AA)void(*pf)(int,char*);pf=fun;B)void*pf();pf=fun;C
8、)void*pf();*pf=fun;D)void(*pf)(int,char);pf=&fun;14.有以下程序
#include
main()
{
inta=1,b=3,c=5;
int*p1=&a,*p2=&b,*p=&c;
*p=*p1*(*p2);
printf("%d"