资源描述:
《第八章 习题及答案》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、第八章习题一、选择题1、若x为整型变量,p是指向整型数据的指针变量,则正确的赋值表达式是()。A)p=&xB)p=xC)*p=&xD)*p=*x2、已知:inta[10]={1,2,3,4,5,6,7,8,9,10},*p=a;则不能表示数组a中元素的表达式是()。A)*pB)a[10]C)*aD)a[p-a]3、已知:inta[3][4],*p=a;则p表示()。A)数组a的0行0列元素B)数组a的0行0的地址C)数组a的0行首地址D)以上均不对4、设有说明int(*ptr)[M];其中的标识符ptr是()。A)M个指向整型变量的指针B)指向M个整型变量的函数指针C)一个指向M个
2、整型元素的一维数组的指针D)具有M个指针元素的一维指针数组,每个元素都只能指向整型变量5、已知:charstr[]="OK!";对指针变量ps的说明和初始化是()。A)charps=str;B)char*ps=str;C)charps=&str;D)char*ps=&str;6、若有以下调用语句,则不正确的fun函数的首部是()。A)voidfun(intm,intx[])B)voidfun(ints,inth[41])C)voidfun(intp,int*s)D)voidfun(intn,inta)main(){…inta[50],n;…fun(n,&a[9]);…}7、有以下程
3、序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”,c1,c2);}程序运行后的输出结果是()。A)AbB)aaC)AaD)Bb8、下列程序段的输出结果是()。A)2143B)1212C)1234D)2112voidfun(int*x,int*y){printf(“%d,%d”,*x,*y);*x=3;*y=4;}main(){intx=1,y=2;fun(&x,&y);printf(“%d%d”,x,y);}9、有
4、如下说明inta[10]={1,2,3,4,5,6,7,8,9,10},*p=a;则数值为9的表达式是()。A)*P+9B)*(P+8)C)*P+=9D)P+810、有以下程序main(){intx[8]={8,7,6,5,0,0},*s;s=x+3printf("%d",s[2]);}执行后输出结果是()。A)随机值B)0C)5D)611、有如下程序main(){chars[]=”ABCD”,*P;for(p=s+l;p
5、数fun(char*p2,char*p1){while((*p2=*p1)!=‘ ’){p1++;p2++;}}函数的功能是()。A)将p1所指字符串复制到p2所指内存空间B)将p1所指字符串的地址赋给指针p2C)对p1和p2两个指针所指字符串进行比较D)检查p1和p2两个指针所指字符串中是否有‘ ’13、有以下程序main(){char*s[]={"one","two","three"},*p;p=s[1];printf("%c,%s",*(p+1),s[0]);}执行后输出结果是()。A)n,twoB)t,oneC)w,oneD)o,two14、若有以下定义和语句:in
6、ts[4][5],(*ps)[5];ps=s;则对s数组元素的正确引用形式是()。A)ps+1B)*(ps+3)C)ps[0][2]D)*(ps+1)+315、有以下程序段main(){inta=5,*b,**c;c=&b;b=&a;……}程序在执行了c=&b:b=&a;语句后,表达式:**c的值是()。A)变量a的地址B)变量b中的值C)变量a中的值D)变量b的地址二、填空题1、要使指针变量与变量之间建立联系,可以用运算符(1)来定义一个指针变量,用运算符(2)来建立指针变量与变量之间的联系。2、已知:inta[2][3]={1,2,3,4,5,6},*p=&a[0][0];则表
7、示元素a[0][0]的方法有指针法:(1),数组名法:(2)。*(p+1)的值为(3)。3、以下程序的输出结果是。main(){intarr[]={30,25,20,15,10,5},*p=arr;p++;printf(“%d”,*(p+3));}4、以下程序调用findmax函数返回数组中的最大值。findmax(int*a,intn){int*p,*s;for(p=a,s=a;p-a