在c语言中,若有定义int y=2;float z=5.5,x=-4.3;则表达式y+=abs(x)+x+z的值为 6 7 8 9 ?

作者&投稿:丹万 (若有异议请与网页底部的电邮联系)
在C语言中,若有定义 int y=2; float z=5.5 ,x=-4.3; 则表达式y+=abs(x)+x+z的值为,请帮我详细解答,谢谢~

真蛋痛的题目,
结果为 y = 7;
y+=abs(x)+x+z;
即y = 2+(4.3-4.3+5.5)
y=2+5.5;
因为int类型会忽略掉小数,所以y=7
至于abs输入浮点数会不会报错,自己看着办,反正没差

我对你题目及问题分析下,不对之处还清指出:
A:是求余,所以Z不能是小数,虽然z貌似是等于2,但是在定义的时候z是float内容,编译器会议float的存储方式储存,所以属于小数。
B:正确格式为:x > 0 ? (y = x):(y = -x);
C:从左至右开始计算,y = x / 2 再 x/2 = z;后面的部分出错了,x/2 = 2,2 = z,好像是对的,不过常量不能作为左值,所以错误。
D:就不说了,你都知道D是对的了。

等于7
y+=abs(x)+x+z;
相当于y=y+abs(x)+x+z;
及y=y+z;转换为int类型就是7.5=7

8

7

7


C语言问题:若有定义
(p++)->s 可以理解为 *((p++)->s)而p++是先取值,所以取的是第一个结构体,s是一个char[].所以 *((p++)->s) 是取第一个结构的s的第一个字母。白写了半天,你采纳的是错的。按照采纳的说法 *(p++)->s 应该解释为 (*(p++))->s 这时是不能使用 -> 操作符的,因为前边(*(...

在c语言中,若有定义:int a=5,b=2,c=1;则表达式a-b<c | |b = =c的值
先计算 a-b<c 即 5-2<1 不成立 值为假。然后计算b==c 即 2==1 不成立, 值为假。||两侧都是假。 结果为假。 即0.

c语言 若有定义语句 int b = 2; 则表达式 ( b<<2 ) \/ ( 3 || b...
而在|| 的世界里,只认两个值 0 和 1。 即真和假 所有非零值 都会 被当成1 来 运算,零就是零。所以 3||b 3被认为是1来进行运算的,即真值。一个真||(真\/假)均为真。所以3||b的值就是 真,就是1. 这个高中数学里都用的吧。。那叫什么逻辑命题来着。真真假假的,其实是...

在C语言中,若有定义:static int x[2][3]={2,3,4,5,6,7},则表达式*x[1...
答案该是5。int x[2][3]表示2行3列 2 3 4 5 6 7 X[0]就表示第0行第0列的数 X[1]表示 第1行第0列的数

c语言题:若有定义int a[9],*p=a;则p+5表示( )
你好,选B。int *p = a表示指针p指向数组a的首地址。也可以说是a[0]的地址。所以p+5指向a[5]的地址

在C语言中,若有定义:int a=8,b=5,c;执行语句c=a\/b+0.4;后,c的值为...
c=1+0.4=1。计算过程中小数点之后的全部舍去。不是按四舍五入计算!int类型在内存中占用了4个字节,也就是32位。int类型是有符号的,因此,32位并不会全部用来存储数据,使用最高位来存储符号,最高位是0,提示数据是正数,最高位是1,表示数据是负数,使用其他的31位来存储数据。

C语言若有定义int x[10]={0,1,2,3,4,5,6,7,8,9},*p1;则数组不为3的表达...
答案是C..我解释是这样,供你参考:B解释,x为数组首地址,+3就是向后移动三个地址,指针指向数值3的位置,将地址赋给指针变量P1,因为运算符++比*高一级,所以先执行P1++,但是看清楚,这里的P1的地址值没变,接着执行*运算符,取值就为3... 你的问题在于:P++在此次运算并不会加1,只能在...

C语言中:若有定义语句:int a[4][10],*p,*q[4];且0≤i<4。
原因:p[i]应该存放一个数据,而a[i]是二维数组a的第i列的首地址,类型不匹配(你的p也没有赋初值,是个野指针,即指向不确定空间,有的编译器可能能通过,不过运行会有问题),第二个式子的意思是把a的第i列的首地址赋值给p(此时p就相当于一个一维数组,它能访问a的第i列的元素);

C语言中若有定义:char c='\\010';怎样解释这条语句?望讲的详细一点。谢谢...
\\010 是八进制数,(十进制为8)ASCII中为一个特殊字符,相当于\\b(向左退一格)。用%d输出为十进制数8。以下为测试,只显示2个1 include"stdio.h"void main(){ char x='\\010';printf("111%c",x);}

C语言若有定义语句:char s[10]=〞1234567\\0\\0〞;,则strlen(s)的值是
答案是:strlen(s)的值为7 strlen(s)的意思是求字符串s的长度,strlen()函数有一个特点,就是以\\0是串结束的标志,遇到\\0就会停止,且字符串"1234567\\0\\0"中含有\\0,所以strlen函数计数1、2、3、4、5、6、7这七个数后就停止了,然后返回结果。下图是用VC6.0运行该题代码,得到真确的结果...

顺德区19348875934: 在C语言中,若有定义 int y=2; float z=5.5 ,x= - 4.3; 则表达式y+=abs(x)+x+z的值为,请帮我详细解答,谢谢 -
钟离态醋酸: 真蛋痛的题目,结果为 y = 7; y+=abs(x)+x+z; 即y = 2+(4.3-4.3+5.5) y=2+5.5; 因为int类型会忽略掉小数,所以y=7 至于abs输入浮点数会不会报错,自己看着办,反正没差

顺德区19348875934: 在c语言中,若有定义int y=2;float z=5.5,x= - 4.3;则表达式y+=abs(x)+x+z的值为 6 7 8 9 ? -
钟离态醋酸: 等于7 y+=abs(x)+x+z; 相当于y=y+abs(x)+x+z; 及y=y+z;转换为int类型就是7.5=7

顺德区19348875934: 若有定义:int x=2,y=3;float i;,则以下符合C语言语法的表达式是( ). -
钟离态醋酸: B、C都是正确的.A——=是右结合的, x=x*3=2等价于 x=(x*3=2),x*3不是左值表达式,不能赋值 D——%两边必须都是整数,i是float型浮点数,所以错.请看——

顺德区19348875934: 若有定义:int x=2,y=3;float i;,则以下符合C语言语法的表达式是( ) -
钟离态醋酸: B y==1是表达式,在C/C++中表达式为真则为1,为假则为0(其它语言为布尔型,不能这么用)

顺德区19348875934: 在C语言中,若有定义:int y=3,x[7]={1,2,3,4,5,6,7},则表达式y+=x[5]的值 为( ).求解释. -
钟离态醋酸: 定义一个整形数组,数组包括7个元素,并初始化各个元素的值分别为1、2、3、4、5、6、7对应元素x[0]、x[1]、x[2]、x[3]、x[4]、x[5]、x[6],x[5]的值为6,y+=x[5]相当于y=y+x[5]=3+6=9.

顺德区19348875934: 在c语言中,若int x=2,y=2,z=2;则表达式 z+=++x+y++的值 -
钟离态醋酸: 这个表达式其实就是z=z+[(++x)+(y++)] 最后z=7.

顺德区19348875934: C语言中,设有定义:int x=2;.x++,2*x的值是多少,为什么 -
钟离态醋酸: 2;6. x++ 相当于先取x的值返回作为此时结果2,然后x=x+1,所以结果为2 ++x相当于先运算x=x+1,再返回此时的x(即前面运算的结果2+1=3),所以第二个结果为2*3=6, 结果为2;6

顺德区19348875934: C语言问题求详细解答 若有如下定义:int a=2,b=3; float x=3.5,y=2. -
钟离态醋酸: 答案选d 你得搞清楚函数的概念,一个函数要调用必须得有定义.当然如果调用出现在定义之后则可以直接调用,如果调用出现在定义之前,那么在调用之前需要对这个函数进行声明,声明和定义必须相同. 还有函数的返回值类型为void时表示函数没有返回值,不能使用函数的返回值. a错 因为调用在定义之前但是没有声明 b错 函数定义的时候返回值类型为void,却欲图使用函数的返回值. c错 函数的声明返回值为int,定义返回值为void 不相符 d正确 请采纳.

顺德区19348875934: c语言中,若有语句int a=1,b;double y=2.3;b=(int)y;则b的值为 A 3 B 1 C 2 D2.3 -
钟离态醋酸: b=(int)y; //对double变量取整,然后赋给int型变量b,所以b的值为y的整数部分,是2

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网