谁能解释给我一下这道c语言题目?

设int m=0;执行表达式m || (m=2) || (m=3) || (m=4) 后的输出结果是多少?
我一开始也写的是1 但是答案是2.。。 难道答案印错了?

你好!!!
值为1

逻辑或运算:||是双目运算,是按从左到右的顺序计算:
同时逻辑与和逻辑或都有”短路“现象:(后面解释)

m || (m=2) || (m=3) || (m=4)首先编译器会算m 此时为0,那么就再计算(m=2) 此时为真,那么表达式的值就是1,后面的 (m=3) || (m=4) 就不用算了,因为前面(m=2)已经可以确定表达式的值(为1),这就是短路现象。

同时逻辑与也是满足短路现象的,lz可以看看其他的资料

是的,我运行了,就是1,有些答案是错误的,lz看的时候要注意点!!!
温馨提示:内容为网友见解,仅供参考
无其他回答

哪位大神帮我看一下这道C语言的题
答案为:B 如果语句改成这样:struct S {int g ; char h;} T;,则可以用struct S定义结构体变量,此时的T是声明类型的同时定义了变量,在这种情况下选D 而加上typedef后等于为struct S取了一个新的名字——T,此时T等价于struct S,或者说T是struct S的另一种称呼。所以选B。

谁能帮我解释一下这道c语言题目啊 不懂
1.转换说明符 a(%A) 浮点数、十六进制数字和p-(P-)记数法(C99)c 字符 d 有符号十进制整数 f 浮点数(包括float和doulbe)e(%E) 浮点数指数输出[e-(E-)记数法]g(%G) 浮点数不显无意义的零"0"i 有符号十进制整数(与%d相同)u 无符号十进制整数 o 八进制...

能帮忙解释一下这道c语言题目吗?
题目要求与条件表达式等价,就是把这个选项替换掉条件表达中的(x-y)时,条件表达式的执行结果不变。条件表达式的需要:(x-y)如果等于true,需要x与y不相等,(x-y)如果等于false,需要x等于y 选项D结果如果为true,则x等于y,如果为false,则x不等于y。正好与要求相反。

谁能帮我解决下面的C语言问题啊,最好能说明解析过程。
解析:道理同第1题,执行switch(a),满足条件进入switch(b),接着满足条件执行case 0后语句,break跳出switch(b),由于跳出后没有语句break,因此接着执行switch(a)。记住一点:break语句只能跳出一个switch;3、至于这题,估计是你输错了,如果题目真这样,就是题目错了。编译都不可能通过,在...

C语言,这道题目怎么理解?
答案A,亲自上机验证,保证无错 这里的a<b<c求的是一个逻辑值,正确为1,错误为0,a=1,b=2,c=2,首先a<b成立,逻辑值为1,然后1<c,也成立,所以满足循环条件(逻辑值为0时不满足,为1满足),开始循环,交换a,b位置,再c--,,a=2, b=1, c=1,此时再循环,a<b不成立,逻辑值为...

请高手帮我解决一下这道C语言题目,谢谢!
s=fun(3)=3-fun(3-1)=3-fun(2)=3-2=1 所以选A.

给我解释一下这道c语言题目
b++的意思是先做其他运算,之后b再加1 ++b的意思是先加1,再做其他运算 所以a&&0的结果直接为0了,所以后面的&&运算直接忽略不做了,所以c++也没有被执行

C语言中的一道例题,谁能帮忙详细解释一下每一步的含义?
回答:输出为: bcdefgha 解释: char *ss( char *s) 函数ss 返回一个指向字符串的指针;函数参数 s 是一个指向字符串的指针 这样,在main 中调用 ss(str)后,s指向了str的首元素,也就是“abcdefgh"中的 ‘a' char *p, t \/\/定义一个char 指针 p 和一个char 变量 t p = s+1 p...

这道C语言题怎么说?解释一下吧!
输出5 strcpy原函数:extern char *strcpy(char* dest, const char *src);返回的就是 dest指针 所以 strlen(strcpy(str,"China"));相当于 strcpy(str,"China");strlen(str);所以实际上就是"China"这个字符串的长度 5

求大神解答这道c语言题
这里*p=x,是将p的指针指向了x[0]的地址,此时*p=x[0];当运行for循环时*p+=x[i];因此*P的值会变为*p=*p + x[i];不过在循环中有i++和p++,在执行每次循环之后p++将p指向的值后移了一位,而数组的本质也是指针;一次在执行一次循环之后x[0]的值会变为2,而*p因为后移了一位指向了...

相似回答