指针习题1.docx
- 文档编号:29468373
- 上传时间:2023-07-23
- 格式:DOCX
- 页数:7
- 大小:16KB
指针习题1.docx
《指针习题1.docx》由会员分享,可在线阅读,更多相关《指针习题1.docx(7页珍藏版)》请在冰豆网上搜索。
指针习题1
指针习题1
1.有以下程序
#include
main()
{intn,*p=NULL;
*p=&n;
printf(“Inputn:
”);
scanf(“%d”,&p);
printf(“outputn:
”);
printf(“%d\n”,p);
}
该程序试图通过指针p为变量n读入数据并输出,但程序有多处错误,以下语句正确的是A
A)intn,*p=NULL;B)*p=&n; C)scanf(“%d”,&p) D)printf(“%d\n”,p);
2. 以下程序的功能是:
利用指针指向三个整型变量,并通过指针运算找出三个数中的最大值,输出到屏幕上,请填空:
main()
{intx,y,z,max,*px,*py,*pz,*pmax;
scanf(“%d%d%d”,&x,&y,&z);
px=&x;
py=&y;
pz=&z;
pmax=&max;
*pmax=*px(或*pmax=x);
if(*pmax<*py)*pmax=*py;
if(*pmax<*pz)*pmax=*pz;
printf(“max=%d\n”,max);
}
3.以下程序的输出结果是【11】。
35
#include
voidswap(int*a,int*b)
{int*t;
t=a;a=b;b=t;
}
main()
{inti=3,j=5,*p=&i,*q=&j;
swap(p,q);
printf(“%d%d\n”,*p,*q);
}
4.若在定义语句:
inta,b,c,*p=&c;之后,接着执行以下选项中的语句,则能正确执行的语句是C
A)scanf("%d",a,b,c); B)scanf("%d%d%d",a,b,c);
C)scanf("%d",p); D)scanf("%d",&p);
5.有以下程序
#include
main()
{intm=1,n=2,*p=&m,*q=&n,*r;
r=p;p=q;q=r;
printf(“%d,%d,%d,%d\n”,m,n,*p,*q);
}
程序运行后的输出结果是B
A)1,2,1,2
B)1,2,2,1
C)2,1,2,1
D)2,1,1,2
6.以下程序段完全正确的是C
A)int*p;scanf("%d",&p);
B)int*p;scanf(“%d”,p);
C)intk,*p=&k;scanf("%d",p);
D)intk,*p;*p=&k;scanf(“%d”,p);
7.有以下程序
voidswap(char*x,char*y)
{
chart;
t=*x;*x=*y;*y=t;
}
main()
{
chars1[]=”abc”,s2[]=”123”;
swap(s1,s2);
printf(“%s,%s\n”,s1,s2);
}
程序执行后的输出结果是C
A)123,abc B)abc,123 C)1bc,a23 D)321,cba
8.有以下程序
voidf(intn,int*r)
{intr1=0;
if(n%3==0)r1=n/3;
elseif(n%5==0)r1=n/5;
elsef(--n,&r1);
*r=r1;
}
main()
{intm=7,r;
f(m,&r);printf(“%d\n”,r);
}
程序运行后的输出结果是A
A)2 B)1 C) 3 D)0
9.有以下程序
#include
intb=2;
intfun(int*k)
{b=*k+b;
return(b);
}
main()
{inta[10]={1,2,3,4,5,6,7,8},i;
for(i=2;i<4;i++)
{b=fun(&a[i])+b;
printf("%d ",b);
}
printf("\n");
}
程序运行后的输出结果是C
A)1012
B)810
C)1028
D)1016
10.若有以下函数首部()。
intfun(doublex[10],int*n)
则下面针对此函数的函数声明语句中正确的是()。
D
A)intfun(doublex,int*n);B)intfun(double,int);
C)intfun(double*x,intn);D)intfun(double*,int*);
11.有以下程序
#include
main()
{inta[]={1,2,3,4},y,*p=&a[3];
--p;y=*p;printf(“y=%d\n”,y);
}
程序的运行结果是D
A)y=0B)y=1C)y=2D)y=3
12.设有定义:
doublex[10],*p=x;,以下能给数组x下标为6的元素读入数据的正确语句是C
A)scanf("%f",&x[6]);B)scanf("%lf",*(x+6));
C)scanf("%lf",p+6);D)scanf("%lf",p[6]);
13.若有定义语句:
doublex[5]={1.0,2.0,3.0,4.0,5.0},*p=x;则错误引用x数组元素的是
()。
B
A)*pB)x[5]C)*(p+1)D)*x
14.设有定义doublea[10],*s=a;,以下能够代表数组元素a[3]的是B
A)(*s)[3]B)*(s+3)C)*s[3]D)*s+3
15.若有以下定义
intx[10],*pt=x;
则对数组元素的正确引用是B
A)*&x[10]B)*(x+3)C)*(pt+10)D)pt+3
16.以下程序的功能是:
利用指针指向三个整型变量,并通过指针运算找出三个数中的最大值,输出到屏幕上,请填空:
main()
{intx,y,z,max,*px,*py,*pz,*pmax;
scanf(“%d%d%d”,&x,&y,&z);
px=&x;
py=&y;
pz=&z;
pmax=&max;
*pmax=*px(或*pmax=x);
if(*pmax<*py)*pmax=*py;
if(*pmax<*pz)*pmax=*pz;
printf(“max=%d\n”,max);
}
17.有以下程序
#include
void fun(int *a,int *b)
{ int *c;
c=a;a=b;b=c;
}
main()
{ int x=3,y=5,*p=&x,*q=&y;
fun(p,q); printf("%d,%d,",*p,*q);
fun(&x,&y);printf("%d,%d\n",*p,*q);
}
程序运行后输出的结果是D
A)3,5,5,3
B)3,5,3,5
C)5,3,3,5
D)5,3,5,3
18.有以下程序
#include
int*f(int*p,int*q);
main()
{
intm=1,n=2,*r=&m;
r=f(r,&n);
printf("%d\n",*r);
}
intf(int*p,int*q)
{
return(*p>*q)?
p:
q;
}
程序运行后的输出结果是【11】
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 指针 习题
![提示](https://static.bdocx.com/images/bang_tan.gif)