在C程序中,若表达式中的算术运算对象的类型不同,则需要先统一为相同类型后再进行计算,例如,表达式“a-b”中,若a是双精度浮点型变量,b是整型变量,为了尽可能保证运算精度,通常进行的处理是( )。A.读取b的值并转换为双精度浮点型数据,然后进行两个浮点数的相减运算,变量b的值不变B.读取a的值并转换为整型数据,然后进行两个整数的相减运算,变量a的值不变C.将b重新定义为双精度浮点型娈量(其值自动转换为双精度型数据),再进行两个浮点数的相减运算D.将a重新定义为整型变量(其值自动转换为整型数据),再进行两个整数的相减运算C/C++语言编译系统提供的内部数据类型的自动隐式转换规则如下:①程序在执行算术运算时,低类型可以转换为高类型。②在赋值表达式中,右边表达式的值自动隐式转换为左边变量的类型,并赋值给它。⑨当在函数调用时,将实参值赋给形参,系统隐式地将实参转换为形参的类型后,赋给形参。④函数有返回值时,系统将自动地将返回表达式类型转换为函数类型后,赋值给调用函数。
在C程序中,若表达式中的算术运算对象的类型不同,则需要先统一为相同类型后再进行计算,例如,表达式“a-b”中,若a是双精度浮点型变量,b是整型变量,为了尽可能保证运算精度,通常进行的处理是( )。
A.读取b的值并转换为双精度浮点型数据,然后进行两个浮点数的相减运算,变量b的值不变
B.读取a的值并转换为整型数据,然后进行两个整数的相减运算,变量a的值不变
C.将b重新定义为双精度浮点型娈量(其值自动转换为双精度型数据),再进行两个浮点数的相减运算
D.将a重新定义为整型变量(其值自动转换为整型数据),再进行两个整数的相减运算
C/C++语言编译系统提供的内部数据类型的自动隐式转换规则如下:
①程序在执行算术运算时,低类型可以转换为高类型。
②在赋值表达式中,右边表达式的值自动隐式转换为左边变量的类型,并赋值给它。
⑨当在函数调用时,将实参值赋给形参,系统隐式地将实参转换为形参的类型后,赋给形参。
④函数有返回值时,系统将自动地将返回表达式类型转换为函数类型后,赋值给调用函数。
B.读取a的值并转换为整型数据,然后进行两个整数的相减运算,变量a的值不变
C.将b重新定义为双精度浮点型娈量(其值自动转换为双精度型数据),再进行两个浮点数的相减运算
D.将a重新定义为整型变量(其值自动转换为整型数据),再进行两个整数的相减运算
C/C++语言编译系统提供的内部数据类型的自动隐式转换规则如下:
①程序在执行算术运算时,低类型可以转换为高类型。
②在赋值表达式中,右边表达式的值自动隐式转换为左边变量的类型,并赋值给它。
⑨当在函数调用时,将实参值赋给形参,系统隐式地将实参转换为形参的类型后,赋给形参。
④函数有返回值时,系统将自动地将返回表达式类型转换为函数类型后,赋值给调用函数。
参考解析
解析:本题考查程序语言基础知识。
在表达式的求值过程中,若参与运算的数据类型不一致,则编译系统自动进行相应数据的类型转换(隐式类型转换),类型转换的一般规则是:为防止精度损失,如果必要的话,类型总是被提升为较宽的类型;所有含有小于整型的有序类型的算术表达式在计算之前其类型都会被转换成整型。
最宽的类型为long double,运算时另一个操作数无论是什么类型都将被转换成long double。如果两个操作数都不是long double型,那么若其中一个操作数的类型是double型,则另一个就被转换成double型。类似地,如果两个操作数都不是double型而其中一个操作float型,则另一个被转换成float型。否则如果两个操作数都不是3种浮点类型之一,它们一定是某种整值类型。在确定共同的目标提升类型之前,编译器将在所有小于int的整值类型上施加一个被称为整值提升的过程。
在进行整值提升时类型char、signed char、unsigned char和short int都被提升为类型int。
在表达式的求值过程中,若参与运算的数据类型不一致,则编译系统自动进行相应数据的类型转换(隐式类型转换),类型转换的一般规则是:为防止精度损失,如果必要的话,类型总是被提升为较宽的类型;所有含有小于整型的有序类型的算术表达式在计算之前其类型都会被转换成整型。
最宽的类型为long double,运算时另一个操作数无论是什么类型都将被转换成long double。如果两个操作数都不是long double型,那么若其中一个操作数的类型是double型,则另一个就被转换成double型。类似地,如果两个操作数都不是double型而其中一个操作float型,则另一个被转换成float型。否则如果两个操作数都不是3种浮点类型之一,它们一定是某种整值类型。在确定共同的目标提升类型之前,编译器将在所有小于int的整值类型上施加一个被称为整值提升的过程。
在进行整值提升时类型char、signed char、unsigned char和short int都被提升为类型int。
相关考题:
● 已知a是浮点型变量,k是整型变量,对程序中的表达式“a+k”求值时,在不损失精度的要求下,通常需要 (28) 。(28)A. 将k重新定义为浮点型变量B. 将a重新定义为整型变量C. 将k的值临时转换为浮点型D. 将a的值临时转换为整型
以下不正确的叙述是A.在C程序中,逗号运算符的优先级最低B.在C程序中,APH和aph是两个不同的变量C.若a和b类型相同,在计算了赋值表达式a=b后b中的值将放入a中,而b中的值不变D.当从键盘输入数据时,对于整型变量只能输入整型数值,对于实型变量只能输入实型数值
已知a是浮点型变量,k是整型变量,对程序中的表达式“a+k”求值时,在不损失精度的要求下,通常需要______。A.将k重新定义为浮点型变量B.将a重新定义为整型变量C.将k的值临时转换为浮点型D.将a的值临时转换为整型A.B.C.D.
以下叙述中正确的是( )A.C程序中,赋值运算符的优先级最低B.若a是实型变量,C程序中允许进行以下赋值:a=10,因此,实型变量中允许存放整型数C.若a和b类型相同,在执行了赋值a=b后b中的值将放入a中,b中的值将丢失D.在C程序中,除号运算符“/”两边的类型相同时才能进行相除运算
下列叙述中正确的是( )。A.在赋值表达式中,赋值号的左边既可以是变量,也可以是任意表达式B.实型变量中允许存放整型数C.若a和b类型相同,在执行了赋值a=b后,b中的值将放入a中,但b中的值不变D.在c程序中,求余运算符“%”两边的类型相同时才能进行运算
● 在C程序中,若表达式中的算术运算对象的类型不同,则需要先统一为相同类型后再进行计算。例如,表达式“a-b”中,若a是双精度浮点型变量,b是整型变量,为了尽可能保证运算精度,通常进行的处理是 __ 。A.读取b的值并转换为双精度浮点型数据,然后进行两个浮点数的相减运算,变量a的值不变B.读取a的值并转换为整型数据,然后进行两个整数的相减运算,变量b的值不变C.将b重新定义为双精度浮点型变量(其值自动转换为双精度型数据),再进行两个浮点数的相减运算D.将a重新定义为整型变量(其值自动转换为整型数据),再进行两个整数的相减运算
下列叙述中正确的是( )。A.在赋值表达式中,赋值号的左边既可以是变量,也可以是任意表达式 SXB 下列叙述中正确的是( )。A.在赋值表达式中,赋值号的左边既可以是变量,也可以是任意表达式B.实型变量中允许存放整型数C.若a和b类型相同,在执行赋值a=b后,b中的值将放入a中,但b中的值不变D.在C程序中,求余算符“%”两边的类型相同时才能进行运算
以下叙述不正确的是( )。A.在C程序中,逗号运算符的优先级最低B.在C程序中,APH和aph是两个不同的变量C.若a和b类型相同,在计算赋值表达式a=b后,b的值将放入a中,而b的值不变D.当从键盘输入数据时,对于整型变量只能输入整型数值,对于实型变量只能输入实型数值
●在C程序中,若表达式中的算术运算对象类型不同,则需要先统一为相同类型后再进行计算。例如,表达式“a-b”中,若a是双精度浮点型变量,b是整型变量,为了尽可能保证运算精度,通常进行的处理是(30)。(30)A.读取b的值并转换为双精度浮点型数据,然后进行两个浮点数的相减运算,变量b的值不变B.读取a的值并转换为整型数据,然后进行两个整数的相加减运算,变量a的值不变C.将b重新定义为双精度浮点型变量(其值自动转换为双精度型数据),再进行两个浮点数的相减运算D.将a重新定义为整型变量(其值自动转换为整型数据),再进行两个整数的相减运算
下面有关运算符的说法正确的是()。A、算术运算符不能对布尔类型,String*(字符串类型)和Object*(对象类型)进行算术运算B、关系运算中的”= =”和赋值运算符中的”=”是相同的C、sizeof运算符用来查询某种数据类型或表达式的值在内存中所占懂得内存空间大小(字节数)D、括号在运算符中的优先级中是最高的,它可以改变表达式的运算顺序
单选题下面有关运算符的说法正确的是()。A算术运算符不能对布尔类型,String*(字符串类型)和Object*(对象类型)进行算术运算B关系运算中的”= =”和赋值运算符中的”=”是相同的Csizeof运算符用来查询某种数据类型或表达式的值在内存中所占懂得内存空间大小(字节数)D括号在运算符中的优先级中是最高的,它可以改变表达式的运算顺序
单选题设变量a是整型,f是实型,i是双精度型,则表达式10+’a’+i*f值的数据类型为()。A不确定BdoubleCintDfloat