C语言指针习题附答案.docx
- 文档编号:2033377
- 上传时间:2022-10-26
- 格式:DOCX
- 页数:16
- 大小:20.85KB
C语言指针习题附答案.docx
《C语言指针习题附答案.docx》由会员分享,可在线阅读,更多相关《C语言指针习题附答案.docx(16页珍藏版)》请在冰豆网上搜索。
C语言指针习题附答案
一、选择题
1.变量的指针,其含义是指该变量的_________.
a)值b)地址
c)名d)一个标志
2.若有语句int*point,a=4;和point=&a;下面均代表地址的一组选项是_____.
a)a,point,*&ab)&*a,&a,*point
c)*&point,*point,&ad)&a,&*point,point
3.若有说明;int*p,m=5,n;以下正确的程序段的是________.
a)p=&n;b)p=&n;
scanf("%d",&p);scanf("%d",*p);
c)scanf("%d",&n);d)p=&n;
*p=n;*p=m;
4.以下程序中调用scanf函数给变量a输入数值的方法是错误的,其错误原因是________.
main()
{
int*p,*q,a,b;
p=&a;
printf(“inputa:
”);
scanf(“%d”,*p);
……
}
a)*p表示的是指针变量p的地址
b)*p表示的是变量a的值,而不是变量a的地址
c)*p表示的是指针变量p的值
d)*p只能用来说明p是一个指针变量
5.已有变量定义和函数调用语句:
inta=25;print_value(&a);下面函数的正确输出结果是________.
voidprint_value(int*x)
{printf(“%d\n”,++*x);}
a)23b)24c)25d)26
6.若有说明:
long*p,a;则不能通过scanf语句正确给输入项读入数据的程序段是
A)*p=&a;scanf("%ld",p);
B)p=(long*)malloc(8);scanf("%ld",p);
C)scanf("%ld",p=&a);
D)scanf("%ld",&a);
7.有以下程序
#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);
}
程序运行后的输出结果是
A)1,2,1,2B)1,2,2,1
C)2,1,2,1D)2,1,1,2
8.有以下程序
main()
{inta=1,b=3,c=5;
int*p1=&a,*p2=&b,*p=&c;
*p=*p1*(*p2);
printf("%d\n",c);
}
执行后的输出结果是
A)1B)2C)3D)4
9.有以下程序
main()
{inta,k=4,m=4,*p1=&k,*p2=&m;
a=p1==&m;
printf("%d\n",a);
}
程序运行后的输出结果是()
A)4B)1C)0D)运行时出错,无定值
10.在16位编译系统上,若有定义inta[]={10,20,30},*p=&a;,当执行p++;后,下列说法错误的是()
A)p向高地址移了一个字节B)p向高地址移了一个存储单元
C)p向高地址移了两个字节D)p与a+1等价
11.有以下程序段
inta[10]={1,2,3,4,5,6,7,8,9,10},*p=&a[3],b;
b=p[5];
b中的值是()
A)5B)6C)8D)9
12.若有以下定义,则对a数组元素的正确引用是_________.
inta[5],*p=a;
a)*&a[5]b)a+2c)*(p+5)d)*(a+2)
13.若有以下定义,则p+5表示_______.
inta[10],*p=a;
a)元素a[5]的地址b)元素a[5]的值
c)元素a[6]的地址d)元素a[6]的值
14.设已有定义:
inta[10]={15,12,7,31,47,20,16,28,13,19},*p;下列语句中正确的是()
A)for(p=a;a<(p+10);a++);
B)for(p=a;p<(a+10);p++);
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 指针 习题 答案