资源描述:
《c语言程序设计26指针习题课》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、1.假如p是一个指针变量,下列表达式中正确的是_____。A*(p--)-=2B(++p)++C++(p++)D++p++2.假定有数组a[3][7],下列表达式中_____是错误的。A*(*a+2)B*(*(a+1))C*(&a[0][0]+2)D*(a+2)[5]答案:A答案:D练习题3.对表达式double(*f)(int,char*)的正确理解为_____。Af是一个返回双精度指针的函数Bf是一个需要两个参数的函数,该函数为double型C该函数是一个返回double型的需要两个参数的双精度指针Df是一个需要两个参数的返回double型的函数指针答案:D4.设有inta,*p=
2、&a;下列表达式中,不正确表达式是()A&(*p)B&(*a)C*(&p)D*(&a)5.已知inta[5][5],int(*pa)[5];正确赋值语句是()Apa=a[1];Bpa=*(a+1);Cpa=&(a+1);Dpa=a+1;答案:B答案:D6.假定有数组inta[4][4],下列表达式中_____不是a[2][3]的地址。Aa[2]+3B*(a+2)+3C&a[2][3]D*(a[2]+3)答案:D7.已知函数fp原型是:intfp(double*(*)[10]),下列数组_____可作为参数:Adouble*arr[10];Bdouble*arr[5][10];Cdoub
3、learr[5][10];Ddouble**arr[10];8.假定有inta[3][7],*pt,(*pa)[7];下列语句_____是错误的。Apt=&a[0][0];Bpt=a[0];Cpa=a;Dpt=a;答案:B答案:D9.对表达式char*(*pa[3])(char*)的正确理解为_____。Apa是一个返指针的函数数组,需要一个字符指针参数Bpa是一个需要字符指针参数的函数,该函数返回char*型C该函数是一个返回char*型的需要一个char*参数指针数组D由3个指针组成的数组,每个指针指向返回char*型,需要char*型参数的函数答案:D10.假如有语句char*s
4、1=“abc”;chars2[]=“xyz”;下列_____语句是错误的。A*s1++;B*s2++;C*(s1+1);D*(s2+1);11.执行下列语句后,屏幕上输出的是_____。#defineTESTchars[]=“xyz”,*p=s;#ifndefTESTwhile(*p++);while(--p>=s)printf(“%c”,*p);#elsewhile(*p)printf(“%c”,*p++);#endifAxyzBzyxC无输出D乱码答案:B答案:A12.对表达式int*(*fp[5])(char*)的正确理解为_____。Afp是一个返指针的函数,需要一个字符型指针
5、参数Bfp是一个需要字符型指针参数的函数,该函数返回int*型Cfp是一个指向一个返回int*型的需要一个char*参数的函数指针Dfp是一个指针数组、数组的元素是指向返回int*,需要char*做参数的函数的指针答案:D13.已知函数fn原型是:char*fn(char*(*)(char),char*[]),且有char**v1;char*v2[];char*fp(char);正确的函数调用语句是()Afn(fp(3),v2);Bfn(v1,v2);Cfn(fp,&v2);Dfn(fp,v1);答案:D14.设有intarr[3][3],*p,(*pa)[3];表达式()的类型是in
6、t*型:AarrB&arr[0]C&arr[0][0];Dpa答案:C改错1./*strcmp:return<0ifs0ifs>t*/#includeintstrcmp(char*s,char*t){for(;*s==*t;s++,t++)if(*s=‘ ’)return0;return*(s–t);}答案:9./*strcmp:return<0ifs0ifs>t*/#includeintstrcmp(char*s,char*t){for(;*s==*t;s++,t++)if(*s=‘ ’)re
7、turn0;if(*s==0)return*(s–t);}return*s–*t;改错2.下列函数的功能是用冒泡法对6个字符串由小到大排序。voidbubblesort(int*a[6]){inti,j;char*p;for(j=0;j<5;j++){for(i=j+1;i<6;i++)if(strcmp(*(a+j),a+i)>0){{p=*(a+j);*(a+j)=a+i;*(a+I)=p;}}}答案:voidbubblesort(ch