C语言指针习题及含_第1页
C语言指针习题及含_第2页
C语言指针习题及含_第3页
C语言指针习题及含_第4页
C语言指针习题及含_第5页
免费预览已结束,剩余2页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

C语言指针习题及含C语言指针习题及含C语言指针习题及含指针习题及答案一.选择题1.变量的指针,其含义是指该变量的B。A〕值B〕地点C〕名D〕一个标记2.已有定义intk=2;int*ptr1,*ptr2;且ptr1和ptr2均已指向变量k,下边不可以正确履行的赋值语句是B。A〕k=*ptr1+*ptr2B〕ptr2=kC〕ptr1=ptr2D〕k=*ptr1*(*ptr2)3.假定有说明:int*p,m=5,n;以下程序段正确的选项是D。A〕p=&n;B〕p=&n;scanf(“%d〞,&p);scanf(“%d〞,*p);C〕scanf(“%d〞,&n);D〕p=&n;*p=n;*p=m;4.已有变量定义和函数调用语句:inta=25;print_value(&a);下边函数的输出结果是D。voidprint_value(int*x){printf(“n%〞d,++*x);}A〕23B〕〕25D〕265.假定有说明:int*p1,*p2,m=5,n;以下均是正确赋值语句的选项是C。A〕p1=&m;p2=&p1;B〕p1=&m;p2=&n;*p1=*p2;C〕p1=&m;p2=p1;D〕p1=&m;*p1=*p2;6.假定有语句:int*p,a=4;和p=&a;下边均代表地点的一组选项是D。A〕a,p,*&aB〕&*a,&a,*pC〕*&p,*p,&aD〕&a,&*p,p7.下边判断正确的选项是C。A〕char*a=〞china等〞价;于char*a;*a=〞china〞;B〕charstr[10]={“chin等a价〞于};charstr[10];str[]={“china〞;}C〕char*s=〞china等〞价于;char*s;s=〞china〞;D〕charc[4]=〞abc〞,d[4]=等〞价a于bc〞c;harc[4]=d[4]=〞abc〞;8.下边程序段中,for循环的履行次数是C。char*s=〞018bc〞;for(;*s!=\;’s++)printf(“*〞);A〕9B〕〕6D〕59.下边能正确进行字符串赋值操作的是C。A〕chars[5]={“ABCDE〞};B〕chars[5]={‘A’,’B’,’C’,’D’,’E’};C〕char*s;s=〞ABCDE〞;D〕char*s;scanf(“%s〞,s);10.下边程序段的运转结果是C。char*s=〞abcde〞;s+=2;printf(“%d〞,s);A〕cdeB〕字符’c’C〕字符’c的’地点D〕不确立11.设p1和p2是指向同一个字符串的指针变量,c为字符变量,那么以下不可以正确履行的赋值语句是B。A〕c=*p1+*p2B〕p2=cC〕p1=p2D〕c=*p1*(*p2)12.设有程序段:chars[]=〞china〞;char*那么p;下p=面s叙;述正确的选项是D。A〕s和p圆满同样B〕数组s中的内容和指针变量p中的内容相等C〕s数组长度和p所指向的字符串长度相等D〕*p与s[0]相等13.以下与库函数strcpy(char*p1,char*p2)功能不相等的程序段是D。A〕strcpy1(char*p1,char*p2){while((*p1++=*p2++)!=\);}’B〕strcpy2(char*p1,char*p2){while((*p1=*p2)!=\){p’1++;p2++}}C〕strcpy3(char*p1,char*p2){while(*p1++=*p2++);}D〕strcpy4(char*p1,char*p2){while(*p2)*p1++=*p2++;}14.下边程序段的运转结果是C。chara[]=〞language〞,*p;p=a;while(*p!=’u’){printf(-32)“;p%++c〞;},*pA〕LANGUAGEB〕languageC〕LANGD〕langUAGE16.以下与库函数strcmp(char*s,char*t)功能相等的程序段是C。A〕strcmp1(char*s,char*t){for(;*s++=*t++;)if(*s==\)re’turn0;return(*s-*t);}B〕strcmp2(char*s,char*t){for(;*s++=*t++;)if(!*s)return0;return(*s-*t);}C〕strcmp3(char*s,char*t){for(;*t==*s;){if(!*t)return0;t++;s++;}return(*s-*t);}D〕strcmp4(char*s,char*t){for(;*s==*t;s++,t++)if(!*s)return0;return(*t-*s);}17.以下说明不正确的选项是D。A〕chara[10]=〞china〞;B〕chara[10],*p=a;p=〞china〞;C〕char*a;a=〞china〞;D〕chara[10],*p;p=a=〞china〞;18.设有说明语句:chara[]=〞Itismine〞;char*p=那么〞以It下is不m正ine确的叙〞述;是D。A〕a+1表示的是字符t的地点B〕p指向其他的字符串时,字符串的长度不受限制C〕p变量中寄存的地点值可以改变D〕a中只好寄存10个字符19.假定已定义chars[10];那么在下边表达式中不表示s[1]的地点是B。A〕s+1B〕s++C〕&s[0]+1D〕&s[1]20.假定有定义:inta[5],*p=a;那么对a数组元素的正确引用是D。A〕*&a[5]B〕a+〕*(p+5)D〕*(a+2)21.假定有定义:inta[5],*p=a;那么对a数组元素地点的正确引用是D。A〕p+5B〕*a+〕&a+1D〕&a[0]22.假定有定义:inta[2][3];那么对a数组的第i行第j列元素值的正确引用是A。A〕*(*(a+i)+j)B〕(a+i)[j]C〕*(a+i+j)D〕*(a+i)+j23.假定有定义:inta[2][3];那么对a数组的第i行第j列元素地点的正确引用是D。A〕*(a[i]+j)B〕(a+i)C〕*(a+j)D〕a[i]+j24.假定有程序段:inta[2][3],(*p)[3];p=a;那么对a数组元素地点的正确引用是。A〕*(p+2)B〕p[2]C〕p[1]+1D〕(p+1)+225.假定有程序段:inta[2][3],(*p)[3];p=a;那么对a数组元素的正确引用是C。A〕(p+1)[0]B〕*(*(p+2)+1)C〕*(p[1]+1)D〕p[1]+226.假定有定义:inta[5];那么a数组中首元素的地点可以表示为C。A〕&aB〕a+〕aD〕&a[1]27.假定有定义:int(*p)[4];那么表记符pC。A〕是一个指向整型变量的指针B〕是一个指针数组名C〕是一个指针,它指向一个含有四个整型元素的一维数组D〕定义不合法28.以下与int*q[5];等价的定义语句是C。A〕intq[5]B〕int*qC〕int*(q[5])D〕int(*q)[5]29.以下正确的说明语句是B。A〕int*b[]={1,3,5,7,9};B〕inta[5],*num[5]={&a[0],&a[1],&a[2],&a[3],&a[4]};C〕inta[]={1,3,5,7,9};int*num[5]={a[0],a[1],a[2],a[3],a[4]};D〕inta[3][4],(*num)[4];num[1]=&a[1][3];30.假定有定义:intb[4][6],*p,*q[4];且0≤i<4那么,不正确的赋值语句是D。A〕q[i]=b[i];B〕p=b;C〕p=b[i];D〕q[i]=&b[0][0]32.假定要对a进行自减运算,那么a应有下边说明D。A〕intp[3];B〕intk;C〕char*a[3]D〕intb[10];int*a=p;int*a=&k;int*a=b+1;33.以下选项中,对指针变量p的正确操作是B。A〕inta[3],*p;B〕inta[5],*p;C〕inta[5];D〕inta[5]p=&a;p=a;int*p=a=100;int*p1,*p2=a;*p1=*p2;34.假定有定义:intx[10]={0,1,2,3,4,5,6,7,8,9},*p1;那么数值不为3的表达式是C。A〕x[3]B〕p1=x+3,*p1++C〕p1=x+2,*(p1++)D〕p1=x+2,*++p135.下边程序段的输出是C。inta[]={2,4,6,8,10,12,14,16,18,20,22,24},*q[4],k;for(k=01;k<4;k++)q[k]=&a[k*3];printf(“n%〞d,q[3][0]);A〕8B〕〕20D〕输出不合法36.假定要对a进行自增运算,那么a应拥有下边说明D。A〕inta[3][2];B〕char*a[]={“,〞ab〞};C〕char(*a)[3]D〕intb[10],*a=b;37.假定有定义inta[4][6];那么能正确表示a数组中任一元素a[i][j]〔i,j均在有效范围内〕地点的表达式A。A〕&a[0][0]+6*i+jB〕&a[0][0]+4*j+iC〕&a[0][0]+4*i+jD〕&a[0][0]+6*j+I38.下边程序的运转结果是B。main( ){intx[5]={2,4,6,8,10},*p,pp;p=x,pp=&p;printf(“%d〞,*(p++));printf(“%3d〞,pp);}A〕44B〕2〕22D〕4639.假定有定义intx[4][3]={1,2,3,4,5,6,7,8,9,10,11,12};int(*p)[3]=x;那么可以正确表示数组元素x[1][2]的表达式是D。A〕*((*p+1)[2])B〕(*p+1)+2C〕*(*(p+5))D〕*(*(p+1)+2)40.假定有说明:char*language[]={“FORTRAN〞,〞BASIC〞,〞PASCAA〞L〞,〞,〞C〞那么JA}V;language[2]的值是B。A〕一个字符B〕一个地点C〕一个字符串D〕一个不定值41.设有定义:char*cc[2]={“那么,正〞确};的表达是A。A〕cc数组的两个元素中各自寄存了字符串〞和〞的首地点B〕cc数组的两个元素分别寄存的是含有4个字符的一维字符数组的首地点C〕cc是指针变量,它指向含有两个数组元素的字符型一维数组D〕cc元素的值分别维〞和〞42.已有定义int(*p)( );指针p可以B。A〕代表函数的返回值B〕指向函数的进口地点C〕表示函数的种类D〕表示函数返回值的种类43.已有函数max(a,b),为了让函数指针变量p指向函数max,正确的赋值方法是A。A〕p=max;B〕p=max(a,b);C〕*p=max;D〕*p=max(a,b);44.假定有函数max(a,b),而且已使函数指针变量p指向函数max,当调用该函数时,正确的调用方法是C或p(a,b)。A〕(*p)max(a,b)B〕*pmax(a,b);C〕(*p)(a,b);D)*p(a,b);45.以下正确的表达是C。A〕C语言赞成main函数带形参,且形参个数和形参名均可由用户指定B〕C语言赞成main函数带形参,形参名只好是argc和argvC〕当main函数带有形参时,传给形参的值只好从命令行中获得D〕假定有说明:intmain(intargc,charargv),那么argc的值必然大于1三.程序阅读题1.写出下边程序的运转结果。5func(char*s,chara,intn){intj;*s=a;j=n;while(*s<s[j])j--;returnj;}main( ){charc[6];inti;for(i=1;i<=5;i++)*(c+1)=’A’+i+1;printf(“n%〞d,func(c,’E’,5));}2.写出下边程序的运转结果。6fun(char*s){char*p=s;while(*p)p++;return(p-s);}main( ){char*a=〞abcdef〞;printf(“n%〞d,fun(a));}3.写出下边程序的运转结果。abcdefglkjihsub(char*a,intt1,intt2){charch;while(t1<t2){ch=*(a+t1);*(a+t1)=*(a+t2);*(a+t2)=ch;t1++;t2--;}}main( ){chars[12];inti;for(i=0;i<12;i++)s[i]=’A’+i+32;sub(s,7,11);for(i=0;i<12;i++)printf(“%c〞,s[i]);printf(n“〞);}4.当运转以下程序时,写出输入6↙的程序运转结果。976531sub(char*a,charb){while(*(a++)!=\);’while(*(a-1)<b)*(a--)=*(a-1);*(a--)=b;}main( ){chars[]=〞,c;c=getchar( );sub(s,c);puts(s);}5.写出下边程序的运转结果。JavadBaseCLanguagePascalmain( ){char*a[]={“Pascal〞,〞CLanguage〞,〞dBase〞,〞Java〞};char(p)[];intj;p=a+3;for(j=3;j>=0;j--)printf(“n%〞s,*(p--));}四.程序填空题1.下边函数的功能是从输入的十个字符串中找出最长的那个串,请填(2)空使程序圆满。voidfun(charstr[10][81],charsp){inti;*sp=【1str[0]】;for(i=1;i<10;i++)if(strlen(*sp)<strlen(str[i]))【2*sp=str[i]】;}2.下边函数的功能是将一个整数字符串变换为一个整数,比方:〞变换为1234,请填(3)空使程序圆满。intchnum(char*p){intnum=0,k,len,j;len=strlen(p);for(;【1*p!=’\】;p++){k=【2*p-‘】;j=(--len);while(【

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论