设有说明语句:int x[]={0,1,2,3,4,5,6,7,8,9}, *p=x+5; 则printf("%d",*p--);的输出结果为( )。

设有说明语句:int x[]={0,1,2,3,4,5,6,7,8,9}, *p=x+5; 则printf("%d",*p--);的输出结果为( )。
a、出错
b、x[4]的地址
c、4
d、5

d,5就是对下标进行运算,--运算是在输出结束后进行的,*p=x+5就是给x的第一个下标之后加五,就是五了,比较容易错选c
温馨提示:内容为网友见解,仅供参考
第1个回答  2013-11-19
5啊 自己可以编译的啊
第2个回答  2013-11-19
这种问题有什么好问的,直接编译一下就行了吧...楼主是有多难...
选d,5

...x[]={0,1,2,3,4,5,6,7,8,9}, *p=x+5; 则printf("%d",*p--);的输...
d,5就是对下标进行运算,--运算是在输出结束后进行的,*p=x+5就是给x的第一个下标之后加五,就是五了,比较容易错选c

若有定义语句:int x[5]={0, 1, 2, 3, 4}, *p;,则以下数值不为2的表达式...
p 就等于 x[2], 等于 2.C 的表达式是 (p=x+1, *(p++) ),  按后缀++规定,在表达式内 先用原值,出了表达式再自增1。所以 C 的表达式 可以写成: (p=x+1, *(p) ),p=x+1 就是 p=&x[1],(p) 就等于 x[1], 等于 1. 数值不为2的表达式 选 C ...

若有int a[10]={0,1,2,3,4,5,6,7,8,9},*p=a;则输出结果不为5
题有问题样,如果p为指针变量,应该是p=a;那答案就是D

设有语句:int a[10]={0,1,2,3,4,5,6,7,8,9},i,*p=a;,
答案是D,D的正确形式应该为:*(a+i)前面多了个星号。A:a[0]B: a[i]C: p[i]

(2)有定义int arr[10 ]={0,1,2,3,4,5,6,7,8,9},*p,i=25;若执行语句: p...
答案不是固定值 是随机值 p=arr相当于p=&arr[0]p+i相当于p=&arr[0+i]即&arr[25](p+i)应当是arr[25]的值 实际上这个下标是无效的 所以系统会给出未定义的数值 是否i=2写错了?

若有int a[10]={0,1,2,3,4,5,6,7,8,9},*p=a;则输出结果不为5的语句
答案:D 对于数组a[10],a就是该数组的首地址,定义指针p赋值为a,那么a和p的操作基本相同:a[5]=p[5]=*(a+5)=*(p+5),对于D选项,p[5]是个int值,再取*就不对了。

int i;int x[3] [3]={1,2,3,4,5,6,7,8,9}
二维数组在内存中是如下存储的,按行进行存储的 x[0][0] 9 x[0][1] 8 x[0][2] 7 x[1][0] 6 x[1][1] 5 4 x[2][0] 3 2 1 其实也可以看做一维数组的存储 x[0]---x[8] x[0]=9 x[1]=8 x[8]=1 因为存储的时候都是一样的 p指向...

...{ int a[10]={1,2,3,4,5,6,7,8,9,0},*p; p=a; printf(""%x\\n...
这里是输出地址的16进制值 假如1个整数是2个字节,则p+9 比p多了2*9 =18,为16进制的12H,加上194H,就是1A6H,答案是D 如果1个整数占4个字节,则p+9 比p多了4*9 = 36,为16进制的24H,加上194H,得到1B8,题目中没有答案

...数组:int i; int x[3][3]={1,2,3,4,5,6,7,8,9}; 则语
选C i=0时 输出x[0][2]: 3 i=1时 输出x[1][1]: 5 i=2时 输出x[2][0]: 7 答案就是C 3 5 7

设int x[]={1,2,3,4,5,6},*p=x; 则值为3的表达式是 __.
p++相当于*(p++);相当于 p;p++;而开始时p+=2;所以*p=a[2]=3;再执行p++后 p指向a[3]

相似回答