C语言指针练习题 下载本文

内容发布更新时间 : 2024/5/7 21:13:28星期一 下面是文章的全部内容请认真阅读。

w=*a; *a=*b; *b=w; }

main() {

int x=9,y=5,*px=&x,*py=&y; fun(px,py);

printf(\}

【23】sub(float x,float *y,float *z) {

*y=*y-1.0; *z=*z+x; }

main() {

float a=2.5,b=0,*pa,*pb; pa=&a;pb=&b; sub(b-a,pa,pb); printf(\}

【24】main() {

static char a[]=\ char *p1,*p2; int k; p1=a; p2=b;

for(k=0;k<=7;k++)

if(*(p1+k)==*(p2+k)) printf(\}

【25】main() {

int i,k;

for(i=0;i<4;i++) {

k=sub(&i);

printf(\ }

printf(\}

sub(int *s)

{

static int t=0; t=*s+t; }

【26】#include \main() {

char a[]=\ int i=0; p=a;

while(*p) {

if(i%2==0) *p='*'; p++;i++; }

puts(a); }

【27】main() {

int x[]={0,1,2,3,4,5,6,7,8,9}; int s,i,*p; s=0; p=&x[0];

for(i=1;i<10;i+=2) s+=*(p+i);

printf(\ }

5 编程题

【28】编写一个使用指针的C函数,交换数组a和数组b中对应元素。 【29】编写函数,通过指针连接两个字符串。

【30】产生动态数组。编写程序,输入数组大小后,通过动态分配内存函数malloc产生数组。

指针练习题答案

1 填空题

【1】 int *z *z

【2】 (1)char *p; (2)p=&ch ; (3)scanf(”%c”,p);

(4)*p=’A’; (5)printf(“%c”,*p); (6)2 1 2 选择题

【3】B 【4】A 【5】C 【6】D 【7】C 【8】D 【9】B 【10】C 3 改错题

【11】 main( )

{ int a=1,b=2;

printf(“a=%d b=%d\\n”,a,b); swap(&a,&b); printf(“a=%d b=%d\\n”,a,b); }

swap ( int *p1, int *p2) { int p; p=*p1; *p1=*p2;*p2=p; }

【12】void add (int a,int b,int *c) { *c=a+b; /*return c;删除*/ }

main( )

{ int *ap,*bp,a,b,c; ap=&a,bp=&b;

scanf(“%d %d”,ap,bp); add(a,b,&c); printf(“%d\\n”,c); }

4 读程序写结果

【13】︼2︼3︼4<换行>︼2︼5︼0 【14】a=10,b=20<换行>a=10,b=10

【15】1,2<换行>1,2<换行>2,1<换行>2,1 【16】9,8,7,6,5,40,30,20,10, 【17】BAABBB 【18】10,10,10 【19】100 【20】-20,-20 【21】-5,14,19 【22】5,18 【23】1.500000 【24】gae

【25】︼︼0︼︼1︼︼3︼︼6 【26】*2*4*6*8* 【27】sum=25 5 编程题

【28】 #include

swap(int *pa,int *pb) { int temp;

temp=*pa;*pa=*pb;*pb=temp; }

main()

{ int a[5]={1,2,3,4,5};

int b[5]={10,20,30,40,50}; int i;

for(i=0;i<5;i++)

swap(&a[i],&b[i]); for(i=0;i<5;i++)

printf(\ printf(\ for(i=0;i<5;i++)

printf(\ printf(\}

【29】 #include

char *strcat(char *str1,char *str2) { char *p=str1;

while(*p!='\\0') p++; while(*p++=*str2++); return(str1); }

main()

{ char a[50],b[30];

printf(\ printf(\ printf(\}

【30】 #include

#include main()

{ int *p,n,i;

printf(\

scanf(\

p=(int *)malloc(n*sizeof(int)); for(i=0;i

printf(\}