B)若a是实型变量,C程序中允许以下赋值a=10;因此,实型变量中允许存放整型数
我想问,A为什么错?D为什么对啊?如printf(%%dn,a);这样子,就用于了%d了?怎么会只能用于整数运算?展开我来答
可选中1个或多个下面的关键词,搜索相关资料。也可直接点“搜索资料”搜索整个问题。
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的随机数了;
如果是二进制转换,可以通过/与%的结合使用则可以得到转换之后的二进制数了(其实就是短除法),当原数被除至剩余0时,原数的上一次模数就是最高位进制数。
A选项错误,是因为在C语言中,语句之间的分割要用英文状态下的分号去分割,即“;”,而不是冒号。
D选项正确,%是除法取余运算,适用于整数与整数运算。否则,不同的编译器会得不同结果。作为双目运算符,左右操作数可以是数值,也可以是表达式,但是左右两边的操作数必须是整数。否则编译器会报错“error : invalid operands to binary %”。
C语言内置了丰富的运算符,包括:算术运算符、关系运算符、逻辑运算符、位运算符、赋值运算符和杂项运算符。
第二类,负号、强制类型转换、自增自减、取值、取地址、逻辑非、按位取反、长度,结合方向从右至左。
第六类,大于、大于等于、小于、小于等于、等于、不等于,结合方向从左至右。
D:单独的一个%,是取余运算符,取余要在整数之间进行。%和d,f,c之类的连用,应该看作一个整体!不能单独看成一个运算符!!!
编辑:admin 作者:admin