您好,欢迎访问三七文档
1、假设指针p1已经指向了某个整型变量,要使指针p2也指向同一个变量,则下面各项中正确的是:A.p2=**p1B.p2=*&p1C.p2=*p1D.p2=&*p1确定[D]教师批改:2、若有以下定义和语句:char*s1=12345,*s2=1234;printf(%d\n,strlen(strcpy(s1,s2)));则输出结果是_____。A.4B.5C.9D.10确定[B]教师批改:3、下列程序段的输出结果是_____。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);}A.2143B.1212C.1234D.2112确定[A]教师批改:4、以下程序的输出结果是fut(int**s,intp[2][3]){**s=p[1][1];}main(){inta[2][3]={1,3,5,7,9,11},*P;p=(int*)malloc(sizeof(int));fut(&p,a);print(%,*p);}A.1B.7C.9D.11确定[C]教师批改:5、假设指针p已经指向某个整型变量x,则*p相当于:A.&xB.&pC.xD.*x确定[C]教师批改:6、若有定义:inta[3][4];不能表示数组元素a[1][1]的是_____。A.*(a[1]+1)B.*(&a[1][1])C.(*(a+1))[1]D.*(a+5)确定[A]教师批改:7、若有定义和语句:int**pp,*p,a=10,b=20;pp=&p;p=&a;p=&b;printf(%d,%d\n,*p,**pp);则输出结果是()A.10,10B.10,20C.20,10D.20,20确定[D]教师批改:8、若有以下的定义:inta[]={1,2,3,D,5,6,7,8,9,10},*p=a则值为3的表达式是A.p+=2,*(p++)B.p+=2,*++pC.p+=3,*p++D.p+=2,++*p确定[B]教师批改:9、若有以下定义和语句:inta[10]={1,2,3,D,5,6,7,8,9,10},*p=a;则不能表示a数组元素的表达式是A.*pB.a[10]C.*aD.a[p-a]确定[B]教师批改:10、若有以下定义和语句:intw[2][3],(*pw)[3];pw=w;则对w数组元素的非法引用是_____。A.*(w[0]+2)B.*(pw+1)[2]C.pw[0][0]D.*(pw[1]+2)确定[D]教师批改:11、设有定义:structsk{inta;floatb;}data,*p;若有p=&data;,则对data中的a域的正确引用是____。A.(*p).data.aB.(*p).aC.p-data.aD.p.data.a确定[D]教师批改:12、设有如下定义:char*aa[2]={abcd,ABCD};则以下说法中正确的是A.aa数组元素的值分别是abcd和ABCDB.aa是指针变量,它指向含有两个数组元素的字符型一维数组C.aa数组的两个元素分别存放的是含有D个字符的一维字符数组的首地址D.aa数组的两个元素中各自存放了字符'a'和'A'的地址确定[B]教师批改:13、以下c语言函数声明中,不正确的是:A.voidfun(intx,inty);B.fun(intx,inty);C.intfun(intx,y);D.char*fun(char*s);确定[C]教师批改:14、以下程序输出的值为?main(){inta[]={1,2,3,4,5,6,7,8,9,0},*p;p=a;printf(%d\n,*p+9);}A.1B.9C.10D.0确定[C]教师批改:15、有以下程序main(){inta[10]={1,2,3,4,5,6,7,8,9,10},*p=&a[3],*q=p+2;printf(%d\n,*p+*q);}程序运行后的输出结果是_____。A)16B)10C)8D)6确定[B]教师批改:16、若有语句:char*line[5];,以下叙述中正确的是()A)定义line是一个数组,每个数组元素是一个基类型为char的指针变量B)定义line是一个指针变量,该变量可以指向一个长度为5的字符型数组C)定义line是一个指针数组,语句中的*号称为间址运算符D)定义line是一个指向字符型函数的指针确定[D]教师批改:17、有以下程序main(){inta[]={2,4,6,8,10},y=0,x,*p;p=&a[1];for(x=1;x3;x++)y+=p[x];printf(%d\n,y);}程序运行后的输出结果是_____。A)10B)11C)14D)15确定[C]教师批改:18、有以下程序prt(int*m,intn){inti;for(i=0;in;i++)m[i]++;}main(){inta[]={1,2,3,4,5},i;prt(a,5);for(i=0;i5;i++)printf(%d,,a[i]);}程序运行后的输出结果是_____。A)1,2,3,4,5,B)2,3,4,5,6,C)3,4,5,6,7,D)2,3,4,5,1,确定[B]教师批改:19、有以下程序#includestdio.hmain(){inta[]={1,2,3,4,5,6,7,8,9,10,11,12,},*p=a+5,*q=NULL;*q=*(p+5);printf(%d%d\n,*p,*q);}程序运行后的输出结果是_____。A)运行后报错B)66C)611D)510确定[C]教师批改:20、已有定义:inti,a[10],*p;,则合法的赋值语句是_____。A)p=100;B)p=a[5];C)p=a[2]+2;D)p=a+2;确定[D]教师批改:21、有以下程序段inta[10]={1,2,3,4,5,6,7,8,9,10},*p=&a[3],b;b=p[5];b中的值是_____。A)5B)6C)8D)9确定[D]教师批改:22、有以下程序voidsum(int*a){a[0]=a[1];}main(){intaa[10]={1,2,3,4,5,6,7,8,9,10},i;for(i=2;i=0;i--) sum(&aa[i]);printf(“%d\n”,aa[0]);}执行后的输出结果是_____。A)4B)3C)2D)1确定[A]教师批改:23、有以下程序main(){intx[8]={8,7,6,5,0,0},*s;s=x+3printf(%d\n,s[2]);}执行后输出结果是_____。A)随机值B)0C)5D)6确定[B]教师批改:24、以下函数的功能是:通过键盘输入数据,为数组中的所有元素赋值。#defineN10voidarrin(intx[N]){inti=0;while(iN)scanf(%d,);}在下划线处应填入的是_____。A)x+iB)&x[i+1]C)x+(i++)D)&x[++i]确定[D]教师批改:25、以下程序调用findmax函数返回数组中的最大值findmax(int*a,intn){int*p,*s;for(p=a,s=a;p-an;p++)if()s=p;return(*s);}main(){intx[5]={12,21,13,6,18};printf(%d\n,findmax(x,5));}在下划线处应填入的是_____。A)psB)*p*sC)a[p]a[s]D)p-ap-s确定[B]教师批改:26、若有定义:intaa[8];。则以下表达式中不能代表数组元aa[1]的地址的是_____。A)&aa[0]+1B)&aa[1]C)&aa[0]++D)aa+1确定[A]教师批改:27、下列程序的输出结果是_____。main(){chara[10]={9,8,7,6,5,4,3,2,1,0},*p=a+5;printf(“%d”,*--p);}A)非法B)a[4]的地址C)5D)3确定[C]教师批改:28、下面程序的输出结果是_____。main(){inta[]={1,2,3,4,5,6,7,8,9,0,},*p;p=a;printf(“%d\n”,*p+9);}A)0B)1C)10D)9确定[C]教师批改:29、以下程序的输出结果是_____。main(){inti,k,a[10],p[3];k=5;for(i=0;i10;i++)a[i]=i;for(i=0;i3;i++)p[i]=a[i*(i+1)];for(i=0;i3;i++)k+=p[i]*2;printf(“%d\n”,k);}A)20B)21C)22D)23确定[B]教师批改:30、以下函数返回a所指数组中最小的值所在的下标值fun(int*a,intn){inti,j=0,p;p=j;for(i=j;in;i++)if(a[i]a[p])__________;return(p);}在下划线处应填入的是_____。A)i=pB)a[p]=a[i]C)p=jD)p=i确定[B]教师批改:31、若已定义:inta[]={0,1,2,3,4,5,6,7,8,9],*p=a,i;其中0≤i≤9,则对a数组元素不正确的引用上_____。A)a[p-a]B)*(&a[i])C)p[i]D)a[10]确定[D]教师批改:32、下列程序执行后的输出结果是_____。voidfunc(int*a,intb[]){b[0]=*a+6;}main(){inta,b[5];a=0;b[0]=3;func(&a,b);printf(%d\n,b[0]);}A)6B)7C)8D)9确定[D]教师批改:33、若有以下调用语句,则不正确的fun函数的首部是_____。main(){…inta[50],n;…fun(n,&a[9]);…}A)voidfun(intm,intx[])B)voidfun(ints,inth[41])C)voidfun(intp,int*s)D)voidfun(intn,inta)确定[D]教师批改:34、以下程序的输出结果是_____。main(){chara[10]={‘1‘,‘2‘,‘3‘,‘4‘,‘5‘,‘6‘,‘7‘,‘8‘,‘9‘,0},*p;inti;i=8;p=a+i;printf(%s\n,p-3);}A)6B)6789C)‘6‘D)789确定[A]教师批改:35、下面程序把数组元素中的最大值放入a[0]中。则在if语句中的条件表达式应该是_____。main(){inta[10]={6,7,2,9,1,10,5,8,4,3},*p=a,I;for(i=o;i10;i++,p++)if(________)*a=*p;printf(%d,*a);}A)paB)*pa[0]C)*p*a[0]D)*p[0]*a[0]确定[B]教师批改:36、设有如下定义:intarr[]={6,7,8,9,10};int*ptr;则下列程序段的输出结果为_____。ptr=arr;*(ptr+2)+=2;printf(%d,%d\n,*ptr,*(ptr+2));A)8,10B)6,8C)7,9D)6,10确定[D]教师批改:37、若有以下定义和语句:inta[10]={1,2,3,4,5,6,7,8,9,10},*p=a;则不能表示a数组元素的表达式是_____。A)*pB)a[10]C)*aD)a[p-a]确定[B]教师批改:38、若有以下的定义:inta[]={1,2,3,4,5,6,7,88,9,10},*p=a;则值为3的表式是_____。A)p+=2,*(p++)B)p+=2,*++pC)p+=3,*kp++D)p+=2,++*p确定[A]教师批改:39、若有以下说明:inta[10]={1,2,3,4,5,6,7,8,9,10},*p=a;则数值为6的表达式是_____。A)*p+6B
本文标题:C语言6指针
链接地址:https://www.777doc.com/doc-5184121 .html