急,急,c语言的几个题。麻烦高手看下

要考试来了,还有几个题没懂,望高手详细指点!!1:执行printf("%u\n",-0x2a)后;值为多少?2:已知:intx=10;执行语句"x-=x*=x;"后,x的... 要考试来了,还有几个题没懂,望高手详细指点!!
1:执行printf("%u\n",-0x2a)后;值为多少?
2:已知:int x=10;执行语句"x-=x*=x;"后,x的值为多少?
3:若有说明int x=10,y=20;,写出下pritnf的输出结果
printf("%30\n",x%y,x,y);
4:若w,x,y,z均为int型变量,则为了使以下语句的输出为:1234+123+12+1,正确的输入应当是:
scanf("%4d+%3d+%2d+%1d",&x,&y,&z,&w);
pritnf("%4d+%3d+%2d+%1d",x,y,z,w);
这个题用下两种的哪种:
1234+1234+1234+1234或1234+123+12+1

高手,牛人来指导下子。说明详细!!
展开
 我来答
藏丽双u
2008-06-24 · TA获得超过160个赞
知道小有建树答主
回答量:295
采纳率:0%
帮助的人:231万
展开全部
1
#include<stdio.h>
void main()
{printf("%u\n",-0x2a);}

运行结果:
4294967254
Press any key to continue

2
x-=x*=x相当于x=x*x;x=x-x;也就是x为10*10等于100,再x为100-100等于0了,说明的是复合运算符是从右往左运算的,就像例题一样,同时有两个同级复合运算符先算右边的

3
这题你要问什么,没有这种写法,是错误的,在这种方面下功夫我个人觉得没什么意义的,虽然编译上没有问题,但还是在%后加上个d或f类的字母好

4
要输出1234+123+12+1就应该用1234+123+12+1
试了一下才发现,scanf()里面有+,所以输入数字之间用+分隔,这个我不太用,我一般用空格,不过一目了然也是好事
如果选了输入1234+1234+1234+1234就不对了,因为你用了格式控制,计算机会按你定的格式读字符,虽然你用了+,但是计算机会认为是非法字符而出错,最好去掉scanf()内的+,输入1234123121就行了,程序如下
#include<stdio.h>
void main()
{int x,y,z,w,t;
scanf("%4d%3d%2d%1d",&x,&y,&z,&w);
printf("%4d+%3d+%2d+%1d",x,y,z,w);
}
运行结果:

1234123412341234
1234+123+41+2Press any key to continue
注意:你如果加上scanf("%d",&t);printf("%d",t);
它还会输出后面的数(t为int型,可能有数字溢出)
如果下面还有程序的话就不好了,可以在之前加上
fflush(stdin);清除缓冲区中的内容
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式