几道C语言问题求教 望高手解答

作者&投稿:泣和 (若有异议请与网页底部的电邮联系)
1、#include”stdio.h”
main()
{
int x=-10,y=5,z=0;
if(x=y+z)printf(“***\n”);//此处应为x==y+z;混淆了“=”和“==”,“=”是赋值运算符,“==”是等于号,
else printf(“$$$”\n);
}
2、(x+y)+z-1&&y+z/2是逻辑运算,不为0,就为1,
3、由于“==”的优先级高于“=”,x=y==z相当于x=(y==z),而“y==z”为1,所以x=1;

1、if(x=y+z)永远是真,因为他只是个赋值语句,不是判断。
2、因为两个表达式都不为0,所以..
3、y=z=x;之后y=z成立,所以y==z是真,再赋值给x,所以x=1

1. 意思是如果X=Y+Z 则输出*** 否则输出$$$

你把程序全删了 重新输入一遍试试 我也懵了

2.意思是 与逻辑 这里牵扯到一个优先级的问题 算术优先符是优先于逻辑运算符的。
所以这个题应该先计算 (X+Y)+Z-1 = ...........

.................同学注意一下 你的题是不是写错了 我怎么看来看去你这三个题应该都是题错了 麻烦你把题再重新上传一下我看看

1, 语句 x=y+z 执行后 x 值就是 y+z ,也即 5 , 那么条件就为真,你是不是要写为 x == y+z ?
2, 算术运算的优先级高于逻辑运算 , 故先计算出 && 两边 表达式的结果在进行 与运算 , 故为 1
3, 执行 y=z=x; 后 y=z , 故 y==z 为真 , 故 x=1

x=y+z里面的“=”是赋值符号,要写两个“==”号才是等于

小弟有几道简单的C语言问题求教 望高手解答~

1、printf中%%用来输入百分号%,也就是说%%被解析为%然后输出,不会和后面的d构成%d的

2、这个scanf,碰到25时会给x赋值为25,然后碰到逗号,异常,结束输入,y和z的值没有被输入,因为y和z没有被初始化,它们的值是不确定的,所以最后的结果也不确定

3、这个就是简单的数学问题了,
x+=y,现在x就是x和y的和
y=x-y ,这不就是x了吗
x-=y,这不就是y了吗

第一道题:输出的是:0 1 3 4 //因为for循环 i从0到4 但是当i等于2的时候执行了continue,也就是直接跳转到下一次循环,所以2没有输出
第二题:t为2 因为 if-else 结构中的else是和最近一个if相匹配的,又因为if(x<y)不成立,所以直接执行输出语句,即输出2
第三题:3 6 9 因为x被声明为静态变量 静态变量只执行一次初始化
第四题:答案为20,for(i=0;i<5;i++)
A[i]=i*2
这一步对数组A进行了初始化 即每个元素都被初始化其下标的2倍,所以分别为0 2 4 6 8
最开始p指向A[0],随着for(i=0;i<5;i++)
{
sum+=*p;
p++
}
p遍历数组A中的各个元素 并采用sum进行加和,所以结果为20
好运!!!