设有定义char c1=b,c2=e
来源:学生作业帮助网 编辑:作业帮 时间:2024/08/24 14:18:36
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(因为
按照运算优先级,先计算b%=2,由于是int型变量,则3%2=1,a+=(b%=2)即为a+=1,结果为21
97.0f1/2*a==0.0f因为1/2==0所以实际是b='a';b的值是字符'a'的ASCII码也就是97,然后又由于b是float类型的,作自动类型转换成97.0f
(1)先算a%b=3,再算b/a=1,最后相加得结果4.a、b值不变.规则:先乘除/取模,后加减,和数学习惯一样.(2)先算a/b=0,再加c得结果5,最后c++.a、b值不变,c=5+1=6.规则:
我们来看先是++a;然后b=a+c;再++c;写成一句话就是b = (++a) + c++;即先进行a自增,值加1,在进行c自增,c的自增在语句结束后值才加1.
char类型占8bitsa=300000011b=600000110a^b00000101(a^b)
80,主要是考察优先级,单目运算符比双目运算符优先级高.
都不对,00010100对,chara=3,inta=51,同理intb=54,a^b=00000101,左移后为00010100
(C)选项正确!str1是常量,指向"string"串的首地址,不能改变,所以(A).错;(B)str2="China"只可以定义时赋值,即charstr2[]="China";(B)相当于给常量赋值
使用了逗号操作符,实际上等于:intn=0;int*p=&n;int*q;所以,n是整型,p,q是整型指针.a错了,c也错了,*p是解引用操作,得到的是p所指向的内存区域的值.它不能作为一个“左值”(
t=a++&&++b等价于:t=aa=a+1=1由于a++,a在前,是先用后自增,a=0,并且用是“&&”,而前面的表达式先用a=0,为假.所以不会执行++b,所以b也等于0,t=0所以最后答案应该是
++c1-1=c1再问:表达式c2--+1的值是'C'(可以看成67)?为什么不是66??再答:计算过程是这样的,先做C2+1,然后C2才自减
Aa&&b;//结果为1B:a再问:D、!((a
赋值使b为9的语句是(D)D)b=(a++==6)?8:9;a++本身=5;判别是否=6,条件是否,b选择=9
A)c1^c2//^表示异或运算,c1与c2值相同,异或的结果为0.再问:哦~谢谢~那~和|就没有特殊含义了吧。他们就是错误,无法计算的表达式吧?再答:&表示按位与~表示按位取反|表示按位或再问:遇到
c2-c1理解为:101-97,c2-'a'+'A'理解为:101-97+65所以输出为:4,E好久没用C了,不知道是否正解!
字符的计算是用它对应的ASCII码进行计算.c2='e';ASCII码是101c1='b';ASCII码是98所以c2-c1=3又是%d输出,所以第一个输出的就是3c2-‘a’+A,这里的A没有单引号
%5=2,c2-c1='b'-'a'=1('b'的ASCII码值比'a'大1),所以结果为6+2+1=9