如果x的当前值为5,则执行语句“if(x=3) x=x+5”后,x的值认为5.这句话对还是错?

1、在C++语言中,表达式(010+2)的值是?为什么?2、声明语句为“chara[10]”,执行printf(“%d,%d\n”,strcmp("abc","aBc")... 1、在C++语言中,表达式(010+2)的值是?为什么?
2、声明语句为“char a[10]”,执行printf(“%d,%d\n”,strcmp("abc","aBc"),strlen(strcpy(a,"windows")))的输出结果是什么?
展开
 我来答
戴静柏0Ep
推荐于2018-05-06 · TA获得超过1796个赞
知道小有建树答主
回答量:426
采纳率:0%
帮助的人:782万
展开全部

x=3是赋值表达式,就是将3赋值给x,表达式的返回值为3,这时x的值为3,由于返回值3为真,会进入if语句,然后执行x = x + 5,就是将3 + 5后赋值给x,最后x的值为8

010,以0开头的整数,为8进制
以0x开头的整数,为16进制

010转换成10进制就是8,运算结果以10进制显示就是10,以8进制显示是12

printf(“%d,%d\n”,strcmp("abc","aBc"),strlen(strcpy(a,"windows")))
strcmp(A,B)为字符串比较函数,若A>B,则返回1,A=B则返回0,A<B则返回-1
A和B的大小以ASCII码表为顺序
由于,在ASCII中,小写的字母排在大写的字母前,故"abc">"aBc",所以第一个输出1
strcpy(A,B)为字符串拷贝函数,返回值为源字符串B
strlen(A)用来求字符串的实际长度
由于strcpy(a, "windows")返回字符串"windows",故字符串的长度为7,所以第二个输出7

综上,输出结果是:1,7
帐号已注销
2010-01-11 · TA获得超过4630个赞
知道大有可为答主
回答量:1345
采纳率:50%
帮助的人:1641万
展开全部
你这句代码根本就不能编译通过。原因就是if语句的条件表达式要是能够判断真假的逻辑值,即0或者1,x=3是赋值表达式,编译根本就不能判断条件的真假。

如果你改正,因为当前值x=5,条件是x=3,显然不能成立,没有其他操作的话x的值是不变的。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
IrenBest
2010-01-11
知道答主
回答量:28
采纳率:0%
帮助的人:23.1万
展开全部
if里面是“==” 号还是 “=”号?
如果是一个=,那么,x执行完应该等于8
如果是两个=,则x的值为5
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式