资源描述:
《练习2指针练习3.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、指针练习31.变量的指针,其含义是指该变量的______B___.a)值b)地址c)名d)一个标志2. 若有语句int*point=NULL,a=4;和point=&a;下面均代表地址的一组选项是___D_.a)a,point,*&ab)&*a,&a,*pointc)*&point,*point,&ad)&a,&*point,point3.以下程序的功能是:通过指针操作,找出三个整数中的最小值并输出#include"stdlib.h"main(){int*a,*b,*c,num,x,y,z;a=&x;b=&y;c=&z;printf(
2、"输入3个整数:");scanf("%d%d%d",a,b,c);printf("%d,%d,%d",*a,*b,*c);num=*a;if(*a>*b)_num=*b____;if(num>*c)__num=*c__;printf("输出最小整数:%d",num);}4.下面程序段的运行结果是___e__f__.charstr[]="abc def ghi",*p=str;printf("%s",p+5);5.下面程序的功能是将两个字符串s1和s2连接起来。请填空。#includemain(){char
3、s1[80],s2[80];gets(s1);gets(s2);conj(s1,s2);puts(s1);}char*conj(char*p1,char*p2){char*p=p1;while(*p1)__p++___;while(*p2){*p1=__*p2___;p1++;p2++;}_*p1='';_____returnp;}1.若有定义:inta[]={2,4,6,8,10,12},*p=a;则*(p+1)的值是4_____.*(a+5)的值是_12_______.2.若有以下定义:inta[2][3]={2,4,6,8,
4、10,12};则a[1][0]的值是___8___.*(*(a+1)+0))的值是___8_____.3.以下程序的输出结果是a=36,b=16,c=19#includeintfunc(inta,int*p);120voidmain()146{inta=1,b=2,c=0;9166c=func(a,&b); 361619b=func(c,&a);a=func(b,&c);printf("a=%d,b=%d,c=%d",a,b,c);}intfunc(inta,int*p){a++;*p=a+2;return(*p+a
5、);}4.有以下程序voidfun(char*c,intd){*c=*c+1;d=d+1;printf("%c,%c,",*c,d);}main(){chara='A',b='a';fun(&b,a);printf("%c,%c",a,b);}程序运行后的输出结果是(D)A)B,a,B,aB)a,B,a,BC)A,b,A,bD)b,B,A,b1.在说明语句:int*f();中,标识符f代表的是(D)A)一个用于指向整型数据的指针变量B)一个用于指向一维数组的行指针C)一个用于指向函数的指针变量D)一个返回值为指针型的函数名2.有以
6、下程序int a=2;int f(int *a){return (*a)++;}main( ){ int s=0;int a=5; s+=f(&a);s+=f(&a);printf("%d",s);} 执行后输出结果是(B)A)10 B)11 C)13 D)93.若有定义int(*p)[3];和int(*f)();则p与f分别是__C______。A) 指针数组名、函数指针名B) 数组指针名、指针函数名C) 数组指针名、函数指针名D) 指针数组名、指针函数名 4.若有函数max(a,b
7、),为了让函数指针变量p指向max,正确的赋值语句是____D___。A)p=max;B)*p=max;C)p=max(a,b);D)*p=max(a,b); 5.下面程序的运行结果是____D___。#includevoidsub(int*x,inty,intz){*x=y-z;}main(){inta,b,c;sub(&a,10,5);sub(&b,a,7);sub(&c,a,b);printf(“%d,%d,%d”,a,b,c);}A)10,-2,5B)10,5,7C)10,-2,7D)5,-2,71.下面
8、程序的运行结果是_____A__.#include#includefun(char*w,intn){chart,*s1,*s2;s1=w;s2=w+n-1;while(s1