有以下程序段int a[10]={0,1,2,3,4,5,6,7,8,9},*p=&a[3],b;

b=p[2];
b中的值是
A) 5 B) 6 C) 8 D) 9

你写的语句有点问题,我整理一下应该如下:
int
a[10]={0,1,2,3,4,5,6,7,8,9};
int
*p=&a[3]; 【下标从0开始,因此这句话的意思是定义一个int类型的指针P,指向数组a的第4个元素,即*p=3】
b;
这一行不清楚是什么意思
温馨提示:内容为网友见解,仅供参考
第1个回答  2009-04-18
刚学C吧,这题选b=5的,帮你分析下吧,*p=&a[3]这条语句相当把p指向了数组a中的第三个元素的内存上即*p=2,b=p[2]相当于p+=3;b=*p所以b=a[6]本回答被提问者采纳
第2个回答  2019-11-09
这样的,p是个指针,p=&a[3],就是说p指向了数组第四个元素的地址(3的地址)。这时把p看做数组首地址来取元素的时候,比如p[2],那么就是以p为首地址的第三个元素,即(5)。而5呢,在原数组中是第6个元素。所以你在看解释就懂了。

有以下程序段 int a[10]={1,2,3,4,5,6,7,8,9,10},*p=&a[3],b; b=p...
选D p=&a[3],使得p指向4,b=p[5]; 使得b指向9

...int a[10]={1,2,3,4,5,6,7,8,9,10},*p=&a[2];p+5;则*p为()_百度知 ...
int a[10]={1,2,3,4,5,6,7,8,9,10},*p=&a[2];p+=5;这里应该是p+=5,否则没有正确答案。p初始指向a[2]自加5之后 指向a[2+5]=a[7]=8 所以*p值为8.

全国计算机等级考试三级笔试试题及答案?
(21) 已有定义:int x=3,y=4,z=5;,则表达式!(x+y)+z-1 && y+z\/2的值是( )。A) 6 B) 0 C) 2 D) 1(22) 有一函数, ,以下程序段中不能根据x值正确计算出y值的是( )。A) if(x>0) y=1; B) y=0; else if(x==0) y=0; if(x>0) y=1; else y=-1; else if(x<0) y...

c语言学生成绩管理系统?
student stu[STU_NUM]; \/*创建结构体数组中有10个元素,分别用来保存这10个人的相关信息。*\/ \/*输入这十个学生的相关信息*\/ for(int i = 0; i<STU_NUM; i++) { printf("请输入第%d个学生的学号:",i+1); scanf("%s",&stu[i].stu_id); printf("输入第%d个学生的数学成绩:",i+1); scanf(...

我这有C语言的题,哪位大侠能解决一下,必有重谢!
void sort(int a[ ],int n){ int i,j,t; for(i=0;i<n-1;i++) for(j=i+1;j<n;j++) if(a[i]<a[j]){t=a[i];a[i]=a[j];a[j]=t;}}main(){ int aa[10]={1,2,3,4,5,6,7,8,9,10 },i; sort(&aa[2],5); for(i=0;i<10;i++)printf(“%d,”,aa[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写错了?

谁有四川省计算机C语言二级考试的真题或者模拟题?多给我几套最好了...
{int a[10]={5,4,3,2,1,6,7,8,9,10},i; f(&a[2],5,0); f(a,5,1); for(i=0;i<10;i++) printf(“%d,”a[i]);}程序运行后的输出结果是(B) A)1,2,3,4,5,6,7,8,9,10, B)3,4,5,6,7,2,1,8,9,10, C)5,4,3,2,1,6,7,8,9,10, D)10,9,8,7,6,5...

c语言课程设计(学生成绩管理系统) 急求参考 (不要网上那些下的,别人...
{static int a[10]={1,2,3,4,5,6,7,8,9,10}; printf("%d",a[10]); } C语言规定:定义时用a[10],表示a数组有10个元素。其下标值由0开始,所以数组元素a[10]是不存在的。 16.初始化数组时,未使用静态存储。 int a[3]={0,1,2}; 这样初始化数组是不对的。C语言规定只有静态存储(static)...

若有定义:int a[]={1,2,3,4,5,6,7,8,9,10,11,12},*p[3],m;
结果为11。int *p[3]表示数组p是一个指针数组,每个元素是一个指向整型数据的一个指针。for(m=0;m<3;m++)表示有三次循环,m分别是0,1,2。p[m]=&a[m*4]执行后,将a[0]、a[4]、a[8]的地址分别赋予给p[0]、p1[1]、p[2], 即指针p[0]、p1[1]、p[2]指向a[0]、a[4]...

求:C语言程序设计试卷及答案一份
int a[10]={1,2,3,4,5,6,7,8,9,10},*p=a; 则不能表示a数组元素的表达式是()(本题分值:1分) 【正确答案】B A.*p B.a[10] C.*a D.a[p-a] 35.下面程序的输出结果是()(本题分值:2分) 【正确答案】C A.k=3 a=2 b=3 B.k=3 a=3 b=2 C.k=2 a=3 b=2 D...

相似回答
大家正在搜