int x=10,y=3,z;printf("%d\n",z=(x%y,x/y))输出结果为什么是3,详细讲一下
表达式1,表达式2,表达式3,...... ,表达式n
逗号表达式的要领:
1.逗号表达式的运算过程为:从左往右逐个计算表达式。
2.逗号表达式作为一个整体,它的值为最后一个表达式(也即表达式n)的值。
3.逗号运算符的优先级别在所有运算符中最低。
在代码中,%d作为格式声明部分已经控制了输出值只能为十进制数,因此其输出值是实际值向下取整的结果。由取值x=10与y=3,z的值应当为10/3,也就是3.33333333······。但由于添加了流控制,输出结果只能为3。
除了整数限制以外,代码中的\n是普通字符中的换行符,表示输出后控制移到下一行的开头。
扩展资料
c语言的优点有以下:
1.简洁紧凑、灵活方便。
C语言一共只有32个关键字,9种控制语句,程序书写形式自由,区分大小写。把高级语言的基本结构和语句与低级语言的实用性结合起来。C 语言可以像汇编语言一样对位、字节和地址进行操作,而这三者是计算机最基本的工作单元。
2.运算符丰富。
C语言的运算符包含的范围很广泛,共有34种运算符。C语言把括号、赋值、强制类型转换等都作为运算符处理。从而使C语言的运算类型极其丰富,表达式类型多样化。灵活使用各种运算符可以实现在其它高级语言中难以实现的运算。
3.数据类型丰富。
C语言的数据类型有:整型、实型、字符型、数组类型、指针类型、结构体类型、共用体类型等。能用来实现各种复杂的数据结构的运算。并引入了指针概念,使程序效率更高。
4.表达方式灵活实用。
C语言提供多种运算符和表达式值的方法,对问题的表达可通过多种途径获得,其程序设计更主动、灵活。它语法限制不太严格,程序设计自由度大,如对整型量与字符型数据及逻辑型数据可以通用等。
5.允许直接访问物理地址,对硬件进行操作。
由于C语言允许直接访问物理地址,可以直接对硬件进行操作,因此它既具有高级语言的功能,又具有低级语言的许多功能,能够像汇编语言一样对位(bit)、字节和地址进行操作,而这三者是计算机最基本的工作单元,可用来写系统软件。
6.生成目标代码质量高,程序执行效率高。
C语言描述问题比汇编语言迅速,工作量小、可读性好,易于调试、修改和移植,而代码质量与汇编语言相当。C语言一般只比汇编程序生成的目标代码效率低10%~20%。
7.可移植性好。
C语言在不同机器上的C编译程序,86%的代码是公共的,所以C语言的编译程序便于移植。在一个环境上用C语言编写的程序,不改动或稍加改动,就可移植到另一个完全不同的环境中运行。
8.表达力强。
C语言有丰富的数据结构和运算符。包含了各种数据结构,如整型、数组类型、指针类型和联合类型等,用来实现各种数据结构的运算。C语言的运算符有34种,范围很宽,灵活使用各种运算符可以实现难度极大的运算。
参考资料来源:百度百科--逗号表达式
参考资料来源:百度百科--c语言
表达式1,表达式2,表达式3,...... ,表达式n
逗号表达式的要领:
(1) 逗号表达式的运算过程为:从左往右逐个计算表达式。
(2) 逗号表达式作为一个整体,它的值为最后一个表达式(也即表达式n)的值。
(3) 逗号运算符的优先级别在所有运算符中最低。
在代码中,%d作为格式声明部分已经控制了输出值只能为十进制数,因此其输出值是实际值向下取整的结果。由取值x=10与y=3,z的值应当为10/3,也就是3.33333333······。但由于添加了流控制,输出结果只能为3。
除了整数限制以外,代码中的\n是普通字符中的换行符,表示输出后控制移到下一行的开头。
扩展资料
关于逗号运算符的详细解答及用法示例:
C语言提供一种特殊的运算符——逗号运算符。用它将两个(或多个)表达式连接起来。
如:3+5,6+8
上式称为逗号表达式。逗号表达式的一般形式为表达式1,表达式2逗号表达式的求解过程是:先求解表达式1,再求解表达式2。整个逗号表达式的值是表达式2的值
例如,上面的逗号表达式“3+5,6+8”的值为14。
又如,逗号表达式a=3*5,a*4,对此表达式的求解,赋值运算符的优先级别高于逗号运算符, 因此应先求解a=3*5,经计算和赋值后得到a的值为15,然后求解a*4,得60,整个逗号表达式的值为60(a仍为15)。
再如,一个逗号表达式又可以与另一个表达式组成一个新的逗号表达式,如(a=3*5,a*4),a+5 先计算出a的值等于15,再进行a*4的运算得60(但a值未变,仍为15),再进行a+5得20,即整个表达式的值为20。
参考资料来源:
本回答被网友采纳逗号表达式将两个及其以上的式子联接起来,从左往右逐个计算表达式,整个表达式的值为最后一个表达式的值。逗号表达式在printf()函数中使用的一般格式为printf("<格式化字符串>", <参量表>)。格式化字符串由格式控制、和输出表列两部分组成,其中格式控制包含格式声明和普通字符。
在代码中,%d作为格式声明部分已经控制了输出值只能为十进制数,因此其输出值是实际值向下取整的结果。由取值x=10与y=3,z的值应当为10/3,也就是3.33333333······。但由于添加了流控制,输出结果只能为3。
除了整数限制以外,代码中的\n是普通字符中的换行符,表示输出后控制移到下一行的开头。
扩展资料:
逗号表达式最重要的特点就是其优先级最低。逗号表达式本身无难度,常常与赋值运算符一起考,考查学生对这两个知识点的理解和考生观察是否细心。如下题:
题目:以下程序的输出结果是:
main()
{
int x,y,z;
x=1;
y=1;
z=x++,y++,++y;
printf("%d,%d,%d\n",x,y,z);
}
[A]2,3,3 [B]2,3,2 [C]2,3,1 [D]1,1,1
解析:
x和y的值经过自增以后分别为2和3,D可以排除。剩下3个选项选择什么呢?
如果是(x++,y++,++y)实际上可以看成(1,1,3)整个逗号表达式的值应该是3,那么选A。
如果是(x++,++y,y++)实际上可以看成(1,2,2)整个逗号表达式的值应该是2,那么选B。
但这是错的,这儿还有赋值运算符。赋值运算符的优先级是14,而逗号表达式的优先级是15,也就是说上面的表达式中应该等价于这样的结合:(z=x++),y++,++y;如果这样写的话,则答案很清晰,为:2,3,1
正确答案选C。
参考资料来源:
参考资料来源:
本回答被网友采纳逗号表达式的使用:一个很多步骤的功能,需要有进度提示,需要分配每个过程的起点和步数,而起点和前面的步数有关系。所以,需要一个变量来累计步数,可以将变量隐藏在宏中,而宏用逗号表达式实现。
表达式1,表达式2,表达式3,...... ,表达式n。例:x=2,y=3,z=4。逗号表达式具有从左至右的结合性,即先求解表达式1,然后依次求解表达式2,直到表达式n的值。表达式n的值就是整个逗号表达式的值。上述的逗号表达式的值就是表达式z=4的值4。
扩展资料
逗号运算符,c语言提供一种特殊的运算符,优先级别最低,它将两个及其以上的式子联接起来,从左往右逐个计算表达式,整个表达式的值为最后一个表达式的值。在c语言中,逗号除了作为分隔符,还可以用作一种运算符--逗号运算符,用逗号运算符将几个表达式连接起来。
逗号表达式的要领:逗号表达式的运算从左往右逐个计算表达式。逗号表达式作为一个整体,它的值为最后一个表达式(也即表达式n)的值。 逗号运算符的优先级别在所有运算符中最低。
如:(3+5,6+8)称为逗号表达式,其求解过程先表达式1,后表达式2,整个表达式值是表达式2的值,如:(3+5,6+8)的值是14,a=(a=3*5,a*4)的值是60,而(a=3*5,a*4)的值是60, a的值在逗号表达式里一直是15,最后被逗号表达式赋值为60,a的值最终为60。
参考资料百度百科--逗号表达式
本回答被网友采纳逗号表达式的求解过程是:先计算表达式1的值,再计算表达式2的值,……一直计算到表达式n的值。最后整个逗号表达式的值是表达式n的值。
z=(x%y,x/y) 先计算x%y =1,再计算x/y=3,然后 z=(1,3)=3本回答被网友采纳