C语言习题集合(指针)
Array_add(inta[],intn){
intm,sum=0;
for(m=0;m<n;m++)sum+=a[m];return(sum);}
main(){
intArray_add(inta[],intn);
staticinta[3][4]={2,4,6,8,10,12,14,16,18,20,22,24};int*p,total1,total2;【1】;
pt=Array_add;p=a[0];
total1=Array_add(p,12);total2=(*pt)(【2】);
printf("total1=%d\ntotal2=%d\n",total1,total2);}
运行结果:total1=156
total2=156
7.3答案及部分解析
一.选择题答案
1.D2.D3.B4.B5.A6.D7.D8.B9.D10.C11.B12.A13.C14.C15.C16.A17.A18.C19.D20.C21.C22.D23.C24.C25.C26.C27.B28.D29.B30.D31.【1】C32.【1】C33.【1】C34.【1】A35.【1】A36.【1】B【2】C【2】A【2】C【2】C【2】C【2】C37.C38.C39.D40.D41.B42.B43.A44.D45.A46.C47.D48.B49.B50.B
1.解析:所谓指针是一种特殊的变量,它存放的是另一个简单变量、数组等的地址。由计
算机组成原理可知,内存的每一个存储单元都对应一个地址,CPU正是通过这个地址来访问每个存储单元的。而变量名最终仍要翻译成地址,才能找到所对应的真正的存储单元,进行读/写操作。当定义了一个指针后,对这个指针变量进行使用时,可以简单的理解为:加*后,对应一个数(变量值),不加*,对应一个地址。所以:当由如下定义:inta,*p,*q,b;
可以进行如下的赋值操作,类型才能兼容。如:p=&a;q=p;*q=5;q=&b;a=b;b=*p;
本题中,x为简单变量,p为指向一个变量的指针,类型不兼容。应为:q=&x;