有以下程序段,则*(p[0] 1)所代表的数组元素是
来源:学生作业帮助网 编辑:作业帮 时间:2024/08/27 02:16:39
计算形如1+1/2+1/6+1/12...的值k
执行下列程序段后,*p的值是char*p="asdf";printf("%c",*(p+strlen(p)));答案是a(p+strlen(p)是什么意思strlen不是测试字符串长度么答案为什么是a
注意while后面的括号中是k=1,这是一个赋值语句,意思是把1赋值给k,所以相当于while(1),而不是平常用的k==1(这是运算语句).
D是正确的A,B中p是n的地址那么如果要输入n应该是scanf("%d",p);C中p还没定义给*p赋值就是给一个没有开辟的地址赋值了D是正确的意思是p为n的地址,将p地址上的数变成m,等价于n=m;
宏定义错误!更正:#defineOUT(x)F(intx){return(P*x*x);}其中,OUT(x)相当于函数F(intx)的别名.所以在语句:printf(\"%d\\n\",OUT(x))
voidfun(int*a,int*b){int*c;c=a;a=b;b=c;}这个函数不能返回实参指针变量的值.而实参指针变量所指的变量的值也没有改变.也就是什么也没变.要想实现转换{intc;c=
c.0每次循环都continue了,a+=i;没有执行
a3=false所以返回k即k=k=2
结果是0,编译器会把结果0.5强制转换为int型,丢失小数部分
if(a>b)if(b>c)k=1;elsek=0;elsek=0;或if(a>b&&b>c)k=1;elsek=0;
因为D的表达本身就是错误滴哈.没这种表示方法呢.特别是在有关二维数组指针时一定要多注意定义滴是行指针还是列指针哟.而你这个题目滴定义是定义为*p是行指针,因此在用行指针表示二维数组元素时的形式有:p[
我感觉:你把K定义为整数(int)等于零,没法循环下去,所以K++,也就是说k+1.所以k原来是零,现在变为·1,循环一次,下来K就会变成2,没法循环下去了,所以循环一次吧.,对了,我感觉你写的问题没
你看t的值就知道了啊t每次循环都减少二也就是从1-1-3-5..这样子变换下去所以你只要输入任意负奇数的时候才能够是t=n跳出while循环再问:那你输入任意负奇数的时候才能够是t=n跳出while循
最后n的值是20i循环4次,j循环5次再问:谢谢!高手我是初学者能不能解释的清楚点foristepnextjnexti我都不知道是什么意思?再答:书上会讲这些的啊fori=1to4就是让i从1循环到4
CA里面b是二维数组首地址B里面*(b+2)已经越界了,他首先要定位到b[2],而下标范围只能是0~1,C里面,p是指向b首地址的指针,p+2是内存首地址开始,第二个整数的位置(从0开始数的),该位置
x>>1是对位来的,对照储存来看r本来是8,二进制下就是0000000000001000(二字节)进行移位操作就是把所有位置的数往右边移动,右边是数字1,所以是移动一位,也就是000000000000
Ap本身就是地址,所以&p错误Bp本身就是地址,输入函数参数是地址,所以*p错误Cp没有指向任何一个变量,所以不能赋值D对
B再问:怎嘛理解能不能讲一下解题思路谢谢再答:p=a;是将a的首地址赋给指针p,所以p就表示数组a的首地址,也就是a[0]的地址,p+4就表示存放a[4]的地址,前面加一个*,就是取值运算,取a[4]