C++指针一章作业

来源:百度知道 编辑:UC知道 时间:2024/05/18 06:43:12
1.若有以下定义,则说法错误的是( )。
int a=100,*p=&a ;
A.声明变量p,其中*表示p是一个指针变量
B.变量p经初始化,获得变量a的地址
C.变量p只可以指向一个整形变量
D.变量p的值为100
2. 若有以下定义,则赋值正确的是( )。
int a ,b , *p;
float c, *q;
A.p=&c B.q=p C.p=NULL D.q=new int
3. 如果x是整型变量,则合法的形式是( )。
A.&(x+5) B.*x C.&*x D.*&x
4. 若有语句int a[10]={0,1,2,3,4,5,6,7,8,9},*p=a;则( )不是对a数组元素的正确引用(其中0≤i<10)。
A.p[i] B.*(*(a+i)) C.a[p-a] D.*(&a[i])
5. 以下程序的输出结果是( )。
#include <iostream>
int main()
{ int a[3]={10,15,20};
int *p1=a,*p2=&a[1];
*p1=*(p2-1)+5;
*(p1+1)=*p1-5;
cout<<a[1]<<endl;
}
A.5 B.10 C.15 D.20
6. 执行以下程序段后,m的值为 ( )。
int a[2][3]={{1,2,3},{4,5,6}};
int m,*p=&a[0][0];
m=(*p)*(*(p+2))*(*(p+4));
A.15 B.14 C.13 D.12
7. 以下程序的输出结果是( )。
#include <iostream>
void fun(int x,int y,int *cp,int *dp)
{ *cp=x+y;
*dp=x-y;
}
int main()
{ int a,b,c,d;
a=30,b=50;<

1.D P是指针变量,它的值是一个地址
2.C NULL在很多种语言中定义为0, 当一个指针为NULL时,或者我们给一个指针赋 值为NULL时, 它就指向了第0个编号的内存地址
3.D &x是x的地址,*&x=*(&x)=x
4.B 正确为引用为:*(a+i)
5.B
6.A
7.C