两道C语言题目,求答案和解析,谢谢~

麻烦大神解析下这两题... 麻烦大神解析下这两题 展开
 我来答
碧海风云

2017-10-09 · 碧海风的秘密小据点!
碧海风云
采纳数:909 获赞数:10281

向TA提问 私信TA
展开全部

第9题:【C】

核心知识点:1、逗号表达式,从左往右逐个计算表达式,整个表达式的值为最后一个表达式的值。2、++a与a++的区别,前者为先自加1而后引用当前值参与计算,后者为先引用当前值参与计算而后自加1。

x=(a=3,b=++a);

1)执行a=3,此时a值为3;2)执行++a,此时a值为4;3)执行b=++a,此时b值为4,a值为4;4)此时逗号表达式值为4,执行x=4,此时x值为4,a值为4,b值为4。

#include <stdio.h>
#include <stdlib.h>

int main (void) {
int x,a,b;
x=(a=3,b=++a);
printf ("x:%d a:%d b:%d", x, a, b);
getch ();
return 0;
}

运行结果


第10题:【B】

A:连续赋值,除了最右的项外,其余所有项都必须是可以赋值的变量,不可以是常量或者表达式。

B:y==1是一个逻辑表达式,从题干得出其值为0,再将其赋值给x,最终结果是x被赋值0。

C:i=float(x);语法错了。如果要实现将x强制转换为float类型并赋值给i,应该写作i=(float)(x);

D:求余运算(%)参与运算的量均必须为整型。

百度网友8ce788f
2017-10-09 · TA获得超过687个赞
知道小有建树答主
回答量:850
采纳率:80%
帮助的人:203万
展开全部
9 c.4 4 4;
这个题了解 逗号运算符的运算规则就行了 ; -----简单来说就是:分别运算。取最后一个值。
a=3 ---> a==3 ; ++a -> a == 4; b=++a; -> b==4; x=b --> x=4;
10. c (如果是多选 ,把B也选上)
A. x*3 表达式不能赋值;
B. Y==1 是一个c++中的bool值 x与bool类型不匹配(但是也可以这样用)
C. i = float(x) 把x的值强制转换为float类型 赋值给i 没毛病;
D. i%-3 前面i是float 后面-3 都有问题;
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式