资源描述:
《c语言指针习题.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、习题1、若x为整型变量,pb是基类型为整型的指针变量,则正确的赋值表达式是A)pb=&a;B)pb=x;C)*b=&x;D)*pb=*x;A2、下面程序的输出结果是chars[]=“ABCD”;main(){char*p;for(p=s;p
2、串的长度D)将字符串x连接到字符串y后面C4、下面程序的输出结果是#include”stdio.h”#include”string.h”main(){char*p1=“abc”,*p2=“ABC”,str[50]=“xyz”;strcpy(str+2,strcat(p1,p2);printf(“%s”,str);}A)xyzabcABCB)zabcABCC)xyabcABCD)yzabcABCC5、设有如下函数定义intf(char*s){char*p=s;while(*p!=‘ ’)p++;return(p-s);}如果在主程序中用下面的
3、语句调用上述函数,则输出结果是printf(“%d”,f(“goodbye!”);A)8B)6C)3D)3A6、要求函数的功能是交换x和y的值,且通过正确的调用返回交换结果。能正确执行此功能的是A)funa(int*x,int*y){int*p,*p=*x;*x=*y;*y=*p);}B)funb(intx,inty){intt;t=x;x=y;y=t;}C)func(int*x,int*y){*x=*y;*y=*z);}D)fund(int*x,int*y){*x=*x+*y;*y=*x-*y;*x=*x-*y;}D7、阅读下面程序viod
4、fun(int*s){staticintj=0;do{s[j]+=s[j+1];}while(++j<2);}main(){intk,a[10]={1,2,3,4,5};for(k=1;k<3;k++)fun(a);for(k=0;k<5;k++)printf(“%d”,a[k]);}A)34756B)23445C)35745D)12345C8、下面程序的输出结果是voidprtv(int*x){printf(“%d”,++*x);}main(){inta=25;prtv(&a);}A)23B)24C)25D)26D9、阅读下面的程序#inc
5、lude”stdio.h”#include”string.h”voidfun(char*w,intm){chars,*p1,*p2;p1=w;p2=w+m-1;while(p16、=&a[1];for(x=0;x<3;x++)y+=*(p+x);printf(“%d”,y);}A)17B)18C)19D)20C二、填空题1、下面程序的输出结果是main(){inta[10]={1,2,3,4,5,6,7,8,9,10},*p=a;printf(“%d”,*(p+2));}32、#include”stdio.h”f(char*s){char*p=s;while(*p!=‘ ’)p++;return(p-s);}main(){printf(“%d”,f(“ABCDEF”));}本程序的允许结果是63、下面语句中的
7、指针S所指字符串的长度是:char*s=“t”Name\Addres”;144、设有如下程序段:int*var,ab;ab=100;var=&ab;ab=*var+10;执行完上面的程序后,ab的值为:1105、设有如下的程序段:charstr[]=“hello”;char*ptr;ptr=str;执行完上面的程序段后,*(ptr+5)的值:‘ ’6、请阅读以下程序,写出其运行结果#include”stdio.h”sub(x,y,z)intx,y,*z;{*z=y-x;}main(){inta,b,c;sub(10,5,&a);sub
8、(7,a,&b);sub(a,b,&c);printf(“%d,%d,%d”,a,b,c);}运行结果是:-5,-12,-7