一、选择题(1)设有定义:intn1=0,n2,*p=&n2,*q=&n1;,以下赋值语句中与n2=n1;语句等价的是AA)*p=*q;B)p=q;C)*p=&n1;D)p=*q;(2)若有定义:intx=0,*p=&x;,则语句printf("%d\n",*p);的输出结果是BA)随机值B)0C)x的地址D)p的地址(3)以下定义语句中正确的是CA)chara='A'b='B';B)floata=b=10.0;C)inta=10,*b=&a;D)float*a,b=&a;(4)有以下程序Cmain(){inta=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)设有定义:inta,*pA=&a;以下scanf语句中能正确为变量a读入数据的是AA)scanf(“%d”,pA);B)scanf(“%d”,a);C)scanf(“%d”,&pA);D)scanf(“%d”,*pA);(6)设有定义:intn=0,*p=&n,**q=&p;则以下选项中,正确的赋值语句是DA)p=1;B)*q=2;C)q=p;D)*p=5;(7)有以下程序A以下是引用片段:voidfun(char*a,char*b){a=b;(*a)++;}main(){charc1="A",c2="a",*p1,*p2;p1=&c1;p2=&c2;fun(p1,p2);printf(“%c%c\n”,c1,c2);}程序运行后的输出结果是A)AbB)aaC)AaD)Bb(8)若程序中已包含头文件stdio.h,以下选项中,正确运用指针变量的程序段是DA)int*i=NULL;B)float*f=NULL;scanf("%d",i);*f=10.5;C)chart="m",*c=&t;D)long*L;*c=&t;L=‘\0’;(9)有以下程序A以下是引用片段:#inc1udemain(){printf("%d\n",NULL);}程序运行后的输出结果是A)0B)1C)-1D)NULL没定义,出错(10)已定义以下函数Cfun(int*p){return*p;}该函数的返回值是A)不确定的值B)形参p中存放的值C)形参p所指存储单元中的值D)形参p的地址值(11)下列函数定义中,会出现编译错误的是BA)max(intx,inty,int*z)B)intmax(intx,y){*z=x>y?x:y;}{intz;z=x>y?x:y;returnz;}C)max(intx,inty)D)intmax(intx,inty){intz;{return(x>y?x:y);}z=x>y?x:y;return(z);}(12)有以下程序段C以下是引用片段:main(){inta=5,*b,**c;c=&b;b=&a;……}程序在执行了c=&b;b=&a;语句后,表达式:**c的值是A)变量a的地址B)变量b中的值C)变量a中的值D)变量b的地址(13)有以下程序D以下是引用片段:main(){chara,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)若有以下定义和语句以下是引用片段:#includeinta=4,b=3,*p,*q,*w;p=&a;q=&b;w=q;q=NULL;则以下选项中错误的语句是AA)*q=0;B)w=p;C)*p=a;D)*p=*w;(15)有以下程序以下是引用片段:int*f(int*x,int*y){if(*x<*y)returnx;elsereturny;}main(){inta=7,b=8,*p=&a,*q=&b,*r};r=f(p,q);printf(“%d,%d,%d”,*p,*q,*r);}执行后输出结果是BA)7,8,8B)7,8,7C)8,7,7D)8,7,8(16)若有说明:intn=2,*p=&n,*q=p;,则以下非法的赋值语句是DA)p=q;B)*p=*q;C)n=*q;D)p=n;(17)有以下程序D以下是引用片段:voidfun(char*c,intd){*c=*c+1;d=d+1;printf(“%c,%c,”,*c,d);}main(){chara=’A’,b=’a’;fun(&b,a);printf(“%c,%c\n”,a,b);}程序运行后的输出结果是A)B,a,B,aB)a,B,a,BC)A,b,A,bD)b,B,A,b(18)若有说明语句:inta,b,c,*d=&c;,则能正确从键盘读入三个整数分别赋给变量a、b、c的语句是AA)scanf("%d%d%d",&a,&b,d);B)scanf("%d%d%d",&a,&b,&d);C)scanf("%d%d%d",a,b,d);D)scanf("%d%d%d",a,b,*d);(19)若定义:inta=511,*b=&a;,则printf("%d\n",*b);的输出结果为DA)无确定值B)a的地址C)512D)511(20)若有说明:inti,j=2,*p=&i;,则能完成i=j赋值功能的语句是BA)i=*p;B)p*=*&j;C)i=&j;D)i=**p;(21)下列程序段的输出结果是AA)2143B)1212C)1234D)2112以下是引用片段:voidfun(int*x,int*y){printf(“%d%d”,*x,*y);*x=3;*y=4;}main(){intx=1,y=2;fun(&y,&x);printf(“%d%d”,x,y);}(22)下列程序的运行结果是BA)63B)36C)编译出错D)00以下是引用片段:voidfun(int*a,int*b){int*k;k=a;a=b;b=k;}main(){inta=3,b=6,*x=&a,*y=&b;fun(x,y);printf(“%d%d”,a,b);}(23)有如下程序段Bint*p,a=10,b=1p=&a;a=*p+b;执行该程序段后,a的值为A)12B)11C)10D)编...