设有三个int类型变量a=2 b=4 c=5
来源:学生作业帮助网 编辑:作业帮 时间:2024/08/07 10:43:37
(*p)[2]=a表示将p定义为一个指向含2个元素的一维数组的指针变量,那么二维数组就可以看作是一维数组a[3],其中每一个元素都是一个一维数组,a[1]={1,2},a[2]={3,4},a[3]=
**(p+2),*p[2]这两个表达式是等价的,当然,**(p+2)=*p[2]是一个赋值表达式,最终的值还是a[2][0],即5
(D)y=float(i)这句的本意是想把i强制转换成浮点型,然后赋值给y,可是强制转换应该是这样写的:y=(float)i,括号括的应该是数据类型,而不是变量;
8再问:为什么呢,怎样算得再答:可以自己在程序上运行一下,我说的未必对,实验是最有力的说明
a+=b等同与a=a+b,这样a=30,b=20a-=b等同与a=a-b,这样a=-10,b=20a*=b等同与a=a*b,这样a=200,b=20a/=b等同与a=a/b,这样a=0,b=20(因为
C/C++语法分析a>b?a:c>d?b:da>ba:(c>db:d)因为没有d的值,所以无法知道结果,猜想d=8那么就是8了
选B因为&a是一个指向数组的指针,而p是一个指向整型的指针,二者不是同一个概念.
D)-12--------等价a+=(a-=(a*a))自右向左算a*a=9,a=3不变a-=9,a=a-9,a=-6a+=-6,a=a+(-6),a=-12
C.if(a>b)c=a;if语句已经结束了a=b;b=c;是俩个单独的表达式c:a=2b=3c=3其他的都没变
从右往左左运算,a*a=36,执行语句a=a-36,得到值-30,然后执行语句a=a-30,得到值-60,有问题的话可以在Hi我!
(27)若有定义int(*Pt)[3];这种声明可以先把变量名字去掉,也就是int(*)[3],对于*可以这样理解,char*s等同于chars[],所以可以理解为intpt[][3],也就是D中的解
B(a<<=2/a)>>1(a=a<<2/a)>>1(a=a<<1)>>1(a=4)>>14>>12按运
首先a+=a相当于a=a+a,a-=a相当于a=a-a,a*=a相当于a=a*a,又因为表达式是从右向左进行的,所以先是a*a=9,这时候a=9,然后是a-a=0,这时a=0最后就是a+a,当然就是0
*的优先级最高,然后-=和+=从右往左.首先a*a=9,此时a=3;然后a+=a*a,即a=a+a*a;a=12;接着是-=,即a-=12;结果是0
结果是a=2;b=2;k=1;因为a++后,a=2;返回a的初值1跟3/2比较,3/2是int相除结果是int(1);比较结果是1==1;所以||后面的不再执行,k的结果是true即是1;再问:为什么
-12.首先等号的运算顺序是从右至左.1.计算表达式a*a=9;2.计算a-=9也是一个表达式,其类似于===》a=a-9=3-9=-6;3.计算a+=-6;a=a+-6.在第2步时,a已经被重赋值-
1先算a-=a*a相当于a=a-a*a=5-5*5=-202再算a+=-20相当于a=a+(-20)=(-20)+(-20)=-40
=a&&(-1)//&&表示逻辑与,非零值表示真,因此第一个操作数a与第二个操作数-1都当成真.=true&&true=true//true隐式转换为1.=1
a=1b=3c=3