D,数组名即是数组首元素的地址,因此a+2也是一个合法的地址(虽然A,B,C在特殊情况下也是正确的)
所以“for(i=k;i<10;i++)”在这个循环之前应该让p重新指回数组的第一个元素,故改为for(i=k,p=a;i<10;i++)另外 删除一个元素之后 数组中只有9个元素,所以应当把a[9]赋值为'\0'或者在最后一个循环中控制条件改为p-a<9
1 已有定义:int i,a[10],*p;,则合法的赋值语句是__D__。A) p=100; B) p=a[5]; C) p=a[2]+2; D) p=a+2;2 函数 int fun(int a) { int *t; t=&a; return *t; } 的函数值是 D 。A) 变量t的值 B) 变量t的地址 C)形参a的地址 D)形参a的值 ...
正确答案选择D,“float *p=&x;”,因为x是一个float型的变量,所以说要定义一个float型的指针变量来存储x变量的地址,所以说选项D直接排除。然后C选项也可以排除,因为C选项定义的是变量,不是指针变量。A和D选项都是指针变量,但是A选项不能作为正确的语句,不能把一个常数赋值给指针变量,所以说A...
int i,k,n=10,*p=a; printf("input k="); scanf("%d",&k); for(i=k-1;i<n;i++) *(p+i)=*(p+i+1); n--; printf("After delete:\n"); for(i=0;i<n;i++) printf("%d ",a[i]); printf("\n"); } 已赞过 已踩过< 你对这个回答的评价是? 评论 收起 推荐...
D p是指针,直接赋100肯定不对 a[5],a[2]+2都是取数组元素,和p类型不符
int j,a[10],*p;相当于int j;int a[10];int *p;所以A. p=p+2是合法的,是指针运算;不过p没有初始化,其值不确定B. p=a[5]不合法,a[5]是值不是指针,不能赋值给pC. 同BD. 不合法,(j+2)是表达式 ,不能取其地址 本回答由提问者推荐 举报| 答案纠错 | 评论 20 1 ljf10000 采纳率:50%...
A选项是错的,x是整型,p是指针类型,赋值之后x的值是y的内存地址,不会是10.B选项是错的,同样,执行赋值之后x的值是p的内存地址,不会是10.C选项是错的,因为这个赋值过程和A选项的赋值过程是等价的,所以错误的原因也是一样的.D选项是对的,没有为什么.
double 类型 首先你要知道int float double 三个类型表示的范围为double > float > int 程序在执行算术运算的时候会自动转换为范围大的类型 也就是说 1*10.0结果是10.0(float)而不是10(int)
21.若x和y代表整型数,以下表达式中不能正确表示数学关系|x-y|<10的是 A)abs(x-y)<10 B)x-y>-10&& x-y<10 C)@(x-y)<-10||!(y-x)>10 D)(x-y)*(x-y)<100 22.有以下程序 main() { int a=3,b=4,c=5,d=2; if(a>b) if(b>c) printf("%d",d++ +1); else printf("%d...