C语言中,%只能用于整数运算的运算符?
A)在C程序中,语句之间必须要用分号“:”分隔
B)若a是实型变量,C程序中允许以下赋值a=10;因此,实型变量中允许存放整型数
C)在C程序中,无论是整数还是实数,都能准确无误的表示
D)在C程序中,%是只能用于整数运算的运算符
我想问,A为什么错?D为什么对啊?如printf("%%d\n",a);这样子,就用于了%d了?怎么会只能用于整数运算? 展开
C语言中,%只能用于整数运算的运算符,%是求余运算符,只能适用于整数与整数运算,如果用于非整数运算,程序会报错导致无法运行。
A选项错误,是因为在C语言中,语句之间的分割要用英文状态下的分号去分割,即“;”,而不是冒号。
D选项正确,是因为%是除法取余运算,适用于整数与整数运算。否则,不同的编译器会得不同结果。作为双目运算符,左右操作数可以是数值,也可以是表达式,但是左右两边的操作数必须是整数。
扩展资料
求余运算符“%”,二元运算符,具有左结合性。参与运算的量均为整型。求余运算的结果等于两个数相除后的余数。“%”取模运算符还有一些小的应用,例如:
1、当你想要通过rand()获得随机数时,rand()%100;产生0-99的随机数。
假如要产生16-59之间的数,可以这样写:rand()%44+16(这里44由59-16+1得到)。
rand()%44 即可获得0-43的随机数,再加上16即可得到16-59的随机数了;
2、“%”运算还通常用于N进制的转换。
如果是二进制转换,可以通过/与%的结合使用则可以得到转换之后的二进制数了(其实就是短除法),当原数被除至剩余0时,原数的上一次模数就是最高位进制数。
参考资料来源:百度百科——运算符
C语言,%是除法取余运算,只能适用于整数与整数运算。
A选项错误,是因为在C语言中,语句之间的分割要用英文状态下的分号去分割,即“;”,而不是冒号。
D选项正确,%是除法取余运算,适用于整数与整数运算。否则,不同的编译器会得不同结果。作为双目运算符,左右操作数可以是数值,也可以是表达式,但是左右两边的操作数必须是整数。否则编译器会报错“error : invalid operands to binary %”。
在printf函数中的%d是以整型格式输出。
扩展资料:
C语言内置了丰富的运算符,包括:算术运算符、关系运算符、逻辑运算符、位运算符、赋值运算符和杂项运算符。
C语言各运算符之间还存在优先级关系,具体如下:
第一类,数组下标、圆括号、成员选择,结合方向为从左至右。
第二类,负号、强制类型转换、自增自减、取值、取地址、逻辑非、按位取反、长度,结合方向从右至左。
第三类,乘除、取余,结合方向从左至右。
第四类,加减,结合方向从左至右。
第六类,大于、大于等于、小于、小于等于、等于、不等于,结合方向从左至右。
第七类,按位与、按位或、按位异或,结合方向从左至右。
第八类,条件运算符,结合方向从右至左。
第九类,赋值、各种操作后赋值,结合方向从右至左。
第十类,逗号运算符,结合方向从右至左。
参考资料:
D:单独的一个%,是取余运算符,取余要在整数之间进行。%和d,f,c之类的连用,应该看作一个整体!不能单独看成一个运算符!!!
%是只能用于整数运算的运算符
而printf("%%d\n",a);中第一个%为字符,第二与d结合不是运算符,%当运算符时就是取余运算
只能用于整数运算的运算符