在C程序中,若表达式中的算术运算对象的类型不同,则需要先统一为相同类型后再进行计算,例如,表达式“a-b”中,若a是双精度浮点型变量,b是整型变量,为了尽可能保证运算精度,通常进行的处理是( )。

题目
在C程序中,若表达式中的算术运算对象的类型不同,则需要先统一为相同类型后再进行计算,例如,表达式“a-b”中,若a是双精度浮点型变量,b是整型变量,为了尽可能保证运算精度,通常进行的处理是( )。

A.读取b的值并转换为双精度浮点型数据,然后进行两个浮点数的相减运算,变量b的值不变
B.读取a的值并转换为整型数据,然后进行两个整数的相减运算,变量a的值不变
C.将b重新定义为双精度浮点型娈量(其值自动转换为双精度型数据),再进行两个浮点数的相减运算
D.将a重新定义为整型变量(其值自动转换为整型数据),再进行两个整数的相减运算
C/C++语言编译系统提供的内部数据类型的自动隐式转换规则如下:
①程序在执行算术运算时,低类型可以转换为高类型。
②在赋值表达式中,右边表达式的值自动隐式转换为左边变量的类型,并赋值给它。
⑨当在函数调用时,将实参值赋给形参,系统隐式地将实参转换为形参的类型后,赋给形参。
④函数有返回值时,系统将自动地将返回表达式类型转换为函数类型后,赋值给调用函数。
参考答案和解析
答案:A
解析:
本题考查程序语言基础知识。
在表达式的求值过程中,若参与运算的数据类型不一致,则编译系统自动进行相应数据的类型转换(隐式类型转换),类型转换的一般规则是:为防止精度损失,如果必要的话,类型总是被提升为较宽的类型;所有含有小于整型的有序类型的算术表达式在计算之前其类型都会被转换成整型。
最宽的类型为long double,运算时另一个操作数无论是什么类型都将被转换成long double。如果两个操作数都不是long double型,那么若其中一个操作数的类型是double型,则另一个就被转换成double型。类似地,如果两个操作数都不是double型而其中一个操作float型,则另一个被转换成float型。否则如果两个操作数都不是3种浮点类型之一,它们一定是某种整值类型。在确定共同的目标提升类型之前,编译器将在所有小于int的整值类型上施加一个被称为整值提升的过程。
在进行整值提升时类型char、signed char、unsigned char和short int都被提升为类型int。
如果没有搜索结果或未解决您的问题,请直接 联系老师 获取答案。
相似问题和答案

第1题:

以下不正确的叙述是

A.在C程序中,逗号运算符的优先级最低

B.在C程序中,APH和aph是两个不同的变量

C.若a和b类型相同,在计算了赋值表达式a=b后b中的值将放入a中,而b中的值不变

D.当从键盘输入数据时,对于整型变量只能输入整型数值,对于实型变量只能输入实型数值


正确答案:D

第2题:

已知a是浮点型变量,k是整型变量,对程序中的表达式“a+k”求值时,在不损失精度的要求下,通常需要______。

A.将k重新定义为浮点型变量

B.将a重新定义为整型变量

C.将k的值临时转换为浮点型

D.将a的值临时转换为整型

A.

B.

C.

D.


正确答案:C
解析:本题考查程序设计语言基础知识。
  如果一个运算符两边的运算对象类型不同,则先要将其转换为相同的类型,即较低类型转换为较高类型数据,然后再参加运算。当较低类型的数据转换为较高类型时,一般只是形式上有所改变,而不影响数据的实质内容,而较高类型的数据转换为较低类型时则可能产生数据丢失

第3题:

● 已知a是浮点型变量,k是整型变量,对程序中的表达式“a+k”求值时,在不损失精度的要求下,通常需要 (28) 。

(28)

A. 将k重新定义为浮点型变量

B. 将a重新定义为整型变量

C. 将k的值临时转换为浮点型

D. 将a的值临时转换为整型


正确答案:C

第4题:

●在程序运行过程中, (19)时可能需要进行整型数据与浮点型数据之间的强制类型转换。

①访问数组元素 ②进行赋值运算

③对算术表达式求值 ④进行递归调用

(19)

A.②③

B.①②

C.①③

D.②④


正确答案:A

第5题:

下列叙述中正确的是( )。

A.在赋值表达式中,赋值号的左边既可以是变量,也可以是任意表达式

B.实型变量中允许存放整型数

C.若a和b类型相同,在执行了赋值a=b后,b中的值将放入a中,但b中的值不变

D.在c程序中,求余运算符“%”两边的类型相同时才能进行运算


正确答案:B
解析:选项A),在赋值表达式中,赋值号的左边只能是变量或者是代表某个存储单元的表达式,不能是任意表达式;在判断选项B)时首先应该建立这样的概念,整型变量中只能存放整型数,实型变量中能存放实型数,也能存放整型数:选项C),执行表达式a=b后,将把变量b存储单元中的值赋给变量a,从而覆盖a中原有的值,但b中原有的值并不改变;选项D),在C程序中,求余运算符“%”两边的类型均为整型数据。

第6题:

设变量a为整型,f是实型,i是双精度型,则表达式10+'a'+i*f值的数据类型不能确定为何类型。()

此题为判断题(对,错)。


参考答案:错误

第7题:

以下叙述中正确的是( )

A.C程序中,赋值运算符的优先级最低

B.若a是实型变量,C程序中允许进行以下赋值:a=10,因此,实型变量中允许存放整型数

C.若a和b类型相同,在执行了赋值a=b后b中的值将放入a中,b中的值将丢失

D.在C程序中,除号运算符“/”两边的类型相同时才能进行相除运算


正确答案:D

第8题:

在算术运算中,如果操作数具有不同的数据精度,则VB规定运算结果的数据类型采用精度低的数据类型。()


正确答案:错误

第9题:

● 在C程序中,若表达式中的算术运算对象的类型不同,则需要先统一为相同类型后再进行计算。例如,表达式“a-b”中,若a是双精度浮点型变量,b是整型变量,为了尽可能保证运算精度,通常进行的处理是 __ 。

A.读取b的值并转换为双精度浮点型数据,然后进行两个浮点数的相减运算,变量a的值不变

B.读取a的值并转换为整型数据,然后进行两个整数的相减运算,变量b的值不变

C.将b重新定义为双精度浮点型变量(其值自动转换为双精度型数据),再进行两个浮点数的相减运算

D.将a重新定义为整型变量(其值自动转换为整型数据),再进行两个整数的相减运算


正确答案:A
在C程序中,若表达式中的算术运算对象的类型不同,为了保证运算精度,应该将精度较小的向精度较大的靠拢,因此在本题中,应该将b的值并转换为双精度浮点型数据,然后进行两个浮点数的相减运算,而a的值不变。参考答案A

第10题:

对于一个数值变量,如果程序中不做任何说明,其默认的类型是 ______。

A.整型

B.长整型

C.单精度型

D.双精度型


正确答案:C
解析:Visual Basic规定数值变量的默认类型是单精度型。

更多相关问题