假定变量a和b为float型,则表达式a=1,b=a 7 2的值是
来源:学生作业帮助网 编辑:作业帮 时间:2024/05/15 04:13:59
B自增自减运算符是对变量的值加一或是减一,很明显,B不满足.
这个一般编译器会给你警告,但还是会实现强制转换,也就是b的值是8935,
‘1’的ascii码值为49,故a+‘1’==51,因a,b都为整型,故b/a为整型==2,又float优先级高,所以最终结果为:53.000
(a*100+0.5)=468.35/100.0=4.6835,再让它变为整型的数去掉后面的小数点.等于4.
虽然在很多方面数组和指针都能处理同样的问题,但他们之间有个本质的不同.数组b是指针常量,不是变量.所以想a=p、a++和a+=2这样的表达式都是非法的,不能改变指针常量b的值指针运算是c与语言的重要特
B.%f%f%f中间没逗号,所以输入不能有逗号
C:scanf("%f%3o",&a,&b);——%f对应&a,没啥疑问,关键是%3o.%3o是接受3位八进制整数的意思,与&b匹配,所以正确.A错在scanf()不允许指定精度,而控制符%6.2f违
floatx=3.2;printf("%f,%f",x,++x);
1,可能b再问:intAmn(intm,intn){\x09inti;\x09floatsum=1;\x09for(i=0;i
你把赋值和定义搞混掉了.floatf,*pf=f;的含义同赋值语句*pf=f不同,;而是相当于floatf,*pf;pf=f;pf被初始化指向地址值为f的指针,而地址值不可能是float的,这不合语法
unsignedchara=2;unsignedcharb=155;inti=0;floattemp=b;for(;(temp=temp/10)>1;);floatc=a+temp;
是数组指针,它实际上是指针常量,可以理解为constint*b.所以它的指向是不允许被修改的,++b操作违反了这个规定,运行后会修改b的指向,是不被允许的.所以C不正确.
额一开始我被糊弄到了后来用printf一输出才发现原来错得糊弄离谱啊b=10a=1b-=a等价于b=b-a所以b=9a++所以a=2重头戏来啦while(b--
1/a过后(1/a)就是0了所以你b=0.0
Bx+2运算后是一个具体数值而不是变量,++符需要它的左值或右值是一个变量,因此必然产生编译错误
B取余运算只能是2个整数来运算
2.0a=1,a+1,a+=a--逗号表达式的值等于最右一个表达式的值.a=1所以a一开始等于1,最右一个表达式a+=a就是a=a+a;a=1+1;得2float型
运行了,说float可能损失精度,运行有错误.然后我换成double,都是4.2,4.2